/* =========================================================
   POOL ACCESSORY
   /pool-heater/evo-connect/, /pool-heater/evo-j-box/,
   /pool-heater/evo-louvre-1000/

   Figma: Evo Connect 704:3360, Evo J-Box 704:3749,
   Evo Louvre 1000 704:4121 (file hEz76xPVqoOfNSJ9VKwfTQ).
   Every number below was read off a layer with get_metadata (boxes)
   or get_design_context (type, fills, radii, crops), or off the frame
   export itself where a node was too large for the MCP to return
   (the FAQ and footer band tops). Nothing is eyeballed or rounded.

   This file replaces the three templates' inline <style> blocks. The
   harness strips those via the markers in
   scripts/figma-gate/migrated/pool-accessory.json and the templates
   drop them in the same edit, so what ships is what gets measured.

   WHY EVERYTHING IS PLACED BY HAND
   The three frames are hand-laid 1920px artboards: the J-Box tab bar
   sits 1px right of the other two, the Louvre cards are 398 wide and
   the Connect cards 480, tick marks in one list are 30, 28 and 32px
   apart, and both brand blues ship. None of it is on a grid, so each
   section gets its exact Figma height plus a 1920px centred stage and
   its contents are placed at their exact Figma coordinates. Section
   heights chain, so the shared tail (evaluation CTA, reviews, logos,
   FAQ, footer) lands on its Figma y too.

   Everything fixed-pixel is inside @media(min-width:1201px), matching
   site.css. Below that the flow layout carried over from the inline
   blocks is untouched, so mobile keeps working with no horizontal
   scroll at 375px.
   ========================================================= */


/* ---------------------------------------------------------
   0. Base rules, every width.
   Carried over from the three templates' inline <style> blocks so the
   pages below 1201px keep the layout they had before this pass. The
   figma-exact placement in section 2 onwards overrides these from
   1201px up.
   --------------------------------------------------------- */
.evo-tpl-pool-accessory .fip-hero{position:relative;min-height:657px;overflow:hidden;color:#fff;background:#27506e;}
.evo-tpl-pool-accessory .fip-hero .bg{position:absolute;inset:0;z-index:0;}
.evo-tpl-pool-accessory .fip-hero .bg img{width:100%;height:100%;object-fit:cover;}
.evo-tpl-pool-accessory .fip-hero .bg .ov{position:absolute;inset:0;background:rgba(0,0,0,.2);}
.evo-tpl-pool-accessory .fip-hero .container{position:relative;z-index:2;padding-top:296px;}
.evo-tpl-pool-accessory .fip-hero .eyebrow{font-weight:400;font-size:18px;margin-bottom:16px;}
.evo-tpl-pool-accessory .fip-hero h1{font-weight:700;font-size:72px;line-height:1;letter-spacing:-2px;margin-bottom:5px;}
.evo-tpl-pool-accessory .fip-hero .sub{font-weight:400;font-size:22px;letter-spacing:-0.2px;}
.evo-tpl-pool-accessory .quotebar{position:relative;z-index:3;}

.evo-tpl-pool-accessory .fip-intro{padding:150px 0 150px;text-align:center;}
.evo-tpl-pool-accessory .fip-intro h2{font-weight:700;font-size:44px;line-height:1.15;letter-spacing:-1px;color:var(--ink);margin-bottom:20px;}
.evo-tpl-pool-accessory .fip-intro .sub{font-weight:300;font-size:17px;line-height:1.55;color:var(--ink);max-width:900px;margin:0 auto 20px;}
.evo-tpl-pool-accessory .fip-intro .compat{font-weight:400;font-size:17px;color:var(--ink);margin:0 auto 56px;}
.evo-tpl-pool-accessory .fip-intro .carousel{display:grid;grid-template-columns:repeat(3,1fr);gap:50px;align-items:center;max-width:1400px;margin:0 auto;position:relative;}
.evo-tpl-pool-accessory .fip-intro .carousel img{max-height:300px;width:auto;object-fit:contain;margin:0 auto;}
.evo-tpl-pool-accessory .fip-intro .cb{position:relative;}

.evo-tpl-pool-accessory .lv-intro{padding:150px 0 130px;text-align:center;}
.evo-tpl-pool-accessory .lv-intro h2{font-weight:700;font-size:52px;letter-spacing:-1.4px;color:var(--ink);margin-bottom:26px;}
.evo-tpl-pool-accessory .lv-intro p{font-weight:300;font-size:17px;line-height:1.7;color:var(--ink);max-width:1040px;margin:0 auto 70px;}
.evo-tpl-pool-accessory .lv-intro .gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:60px;max-width:1300px;margin:0 auto;}
.evo-tpl-pool-accessory .lv-intro .gallery .g{background:#fff;min-height:420px;display:flex;align-items:center;justify-content:center;}
.evo-tpl-pool-accessory .lv-intro .gallery .g img{width:100%;max-width:400px;object-fit:contain;}

.evo-tpl-pool-accessory .fip-subnav{background:var(--navy);color:#fff;position:sticky;top:0;z-index:40;}
.evo-tpl-pool-accessory .fip-subnav .container{display:flex;align-items:center;gap:34px;height:80px;}
.evo-tpl-pool-accessory .fip-subnav .pname{font-weight:600;font-size:18px;border-right:1px solid rgba(255,255,255,.3);padding-right:30px;}
.evo-tpl-pool-accessory .fip-subnav a{font-family:var(--font-ui);font-weight:500;font-size:14.5px;color:rgba(255,255,255,.85);}
.evo-tpl-pool-accessory .fip-subnav a:hover{color:#fff;}
.evo-tpl-pool-accessory .fip-subnav .gq{margin-left:auto;height:40px;padding:0 24px;background:var(--red-alt);border-radius:20px;font-size:14px;}

.evo-tpl-pool-accessory .fip-feat{padding:150px 0 150px;}
.evo-tpl-pool-accessory .fip-feat .grid{display:grid;grid-template-columns:1.1fr 0.9fr;gap:70px;align-items:center;max-width:1300px;margin:0 auto;}
.evo-tpl-pool-accessory .fip-feat .media img.punit{width:100%;max-width:520px;object-fit:contain;margin:0 auto;display:block;}
.evo-tpl-pool-accessory .fip-feat h2{font-weight:700;font-size:38px;line-height:1.15;letter-spacing:-0.9px;color:var(--ink);margin-bottom:26px;}
.evo-tpl-pool-accessory .fip-feat p{font-weight:300;font-size:16px;line-height:1.6;color:var(--ink);margin-bottom:26px;}
.evo-tpl-pool-accessory .fip-feat .fbtns{display:flex;gap:20px;margin-top:36px;}
.evo-tpl-pool-accessory .fip-feat .fbtns .btn{height:64px;padding:0 34px;border-radius:32px;font-size:17px;}
.evo-tpl-pool-accessory .fip-feat .fbtns .btn-red{background:var(--red-alt);}
.evo-tpl-pool-accessory .fip-feat .fbtns .btn-blue{background:var(--blue-hero);}
.evo-tpl-pool-accessory .fip-feat .checks,
.evo-tpl-pool-accessory .fip-why .checks{display:grid;grid-template-columns:1fr;gap:16px;margin-top:8px;}
.evo-tpl-pool-accessory .fip-feat .checks div,
.evo-tpl-pool-accessory .fip-why .checks div{position:relative;padding-left:28px;font-weight:300;font-size:17px;line-height:1.4;color:var(--ink);}

.evo-tpl-pool-accessory .fip-why{padding:150px 0 130px;}
.evo-tpl-pool-accessory .fip-why .grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start;max-width:1300px;margin:0 auto;}
.evo-tpl-pool-accessory .fip-why h2{font-weight:700;font-size:52px;line-height:1.08;letter-spacing:-1.4px;color:var(--ink);}
.evo-tpl-pool-accessory .fip-why p{font-weight:300;font-size:16px;line-height:1.65;color:var(--ink);margin-bottom:24px;}
.evo-tpl-pool-accessory .fip-why .compat{font-weight:400;font-size:16px;color:var(--ink);margin-bottom:30px;}

.evo-tpl-pool-accessory .fip-cards{background:var(--band);padding:130px 0 130px;}
.evo-tpl-pool-accessory .fip-cards h2{text-align:center;font-weight:700;font-size:44px;letter-spacing:-0.9px;color:var(--ink);margin-bottom:88px;}
.evo-tpl-pool-accessory .fip-cards .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:70px 40px;max-width:1510px;margin:0 auto;}
.evo-tpl-pool-accessory .fip-card{text-align:center;}
.evo-tpl-pool-accessory .fip-card .img{aspect-ratio:24/17.5;border-radius:20px;background:#dfe4ea;overflow:hidden;margin-bottom:30px;}
.evo-tpl-pool-accessory .fip-card .img img{width:100%;height:100%;object-fit:cover;}
.evo-tpl-pool-accessory .fip-card h3{font-weight:600;font-size:21px;color:var(--ink);letter-spacing:-0.2px;margin-bottom:16px;}
.evo-tpl-pool-accessory .fip-card p{font-weight:300;font-size:15px;line-height:1.6;color:var(--ink);max-width:380px;margin:0 auto;}
.evo-tpl-pool-accessory .fip-card.cta{text-align:left;background:var(--navy);border-radius:20px;padding:44px 42px;color:#fff;position:relative;display:flex;flex-direction:column;justify-content:center;}
.evo-tpl-pool-accessory .fip-card.cta h3{color:#fff;font-weight:700;font-size:28px;line-height:1.2;margin-bottom:18px;max-width:230px;}
.evo-tpl-pool-accessory .fip-card.cta p{color:rgba(255,255,255,.9);max-width:none;margin:0 0 26px;font-size:14.5px;}
.evo-tpl-pool-accessory .fip-card.cta .btn{align-self:flex-start;height:46px;padding:0 26px;background:var(--blue-hero);border-radius:23px;font-size:14.5px;}
.evo-tpl-pool-accessory .fip-card.cta .gbadge{position:absolute;top:26px;right:26px;width:96px;height:96px;}

.evo-tpl-pool-accessory .fip-warranty{padding:120px 0 60px;text-align:center;}
.evo-tpl-pool-accessory .fip-warranty h2{font-weight:700;font-size:44px;letter-spacing:-0.9px;color:var(--ink);margin-bottom:34px;}
.evo-tpl-pool-accessory .fip-warranty .note{font-weight:300;font-size:16px;line-height:1.7;color:var(--ink);max-width:1040px;margin:0 auto;}

.evo-tpl-pool-accessory .fip-dl{padding:86px 0 140px;text-align:center;}
.evo-tpl-pool-accessory .fip-dl h2{font-weight:700;font-size:44px;letter-spacing:-0.9px;color:var(--ink);margin-bottom:60px;}
.evo-tpl-pool-accessory .fip-dl .row{display:flex;gap:30px;justify-content:center;flex-wrap:wrap;}
.evo-tpl-pool-accessory .fip-dl .dcard{background:var(--band);border-radius:16px;padding:40px 34px 42px;width:260px;}
.evo-tpl-pool-accessory .fip-dl .dcard .wordmark{background:#fff;border-radius:10px;padding:22px 12px;margin-bottom:20px;display:flex;align-items:center;justify-content:center;}
.evo-tpl-pool-accessory .fip-dl .dcard .wordmark img{max-width:100%;height:auto;}
.evo-tpl-pool-accessory .fip-dl .dcard .t{font-weight:300;font-size:14px;color:var(--ink);margin-bottom:20px;}
.evo-tpl-pool-accessory .fip-dl .dcard .btn{height:38px;padding:0 24px;background:var(--blue-hero);border-radius:19px;font-size:13.5px;}

.evo-tpl-pool-accessory .fip-explore{background:var(--band);padding:150px 0 262px;}
.evo-tpl-pool-accessory .fip-explore h2{text-align:center;font-weight:700;font-size:44px;letter-spacing:-0.9px;color:var(--ink);margin-bottom:85px;}

/* carousel arrows are added to the markup by this pattern, so they are
   styled here at every width (Figma 704:3552 / 704:3555 and twins) */
.evo-tpl-pool-accessory .fip-arrow{display:flex;align-items:center;justify-content:center;
   width:58px;height:58px;border-radius:29px;box-sizing:border-box;}
.evo-tpl-pool-accessory .fip-arrow img{width:14px;height:12px;}

/* the 1201px-and-up line breaks this pattern adds to the markup. Hidden
   below that so the copy reflows on a phone. Today pool-category.css
   supplies this through the leaked body class; production will not. */
.evo-tpl-pool-accessory br.fxbr{display:none;}


@media(min-width:1201px){

/* Everything in this file from here down is 1201px and up only: below
   that the pages keep the flow layout of section 0 and the shared
   components keep their own defaults, so nothing is pushed past a
   375px viewport. */

/* ---------------------------------------------------------
   1. Cross-pattern reset.
   The harness matches url patterns by prefix, so the pool CATEGORY
   pattern ("/pool-heater/") puts evo-tpl-page-pool-heater on these
   three product URLs as well and its rules then supply, and shift,
   this pattern's shared tail. Production will not put that class on a
   product page, so everything the tail needs is restated here from
   these three frames. Written up in
   docs/fleet-issues/pool-accessory.md; the category stylesheet is not
   ours to edit.
   pool-accessory.css sorts BEFORE pool-category.css, so equal
   specificity would lose. Every rule here therefore carries `body`.
   --------------------------------------------------------- */
/* EVALUATION CTA, 704:3558 / 704:3930 / and the Louvre twin. Same box
   set on all three frames, and the same one the two pool product
   frames draw, which is NOT the category frame's (box x209 not 215,
   copy x713 not 718, badge x1430.55 not 1441, button 233x60 not
   234x70). The band keeps its 807px height: 171 top + 325 content +
   311 bottom. */
body.evo-tpl-pool-accessory main>section.ctaform .cf-inner{padding:171px 0 311px;}
body.evo-tpl-pool-accessory main>section.ctaform .cfbg>img{object-fit:fill;left:-0.576px;top:-23.06px;
   right:auto;bottom:auto;width:1920px;height:788.14px;}                                  /* 704:3559 fill h102.89% top -3.01% left -0.03% */
body.evo-tpl-pool-accessory main>section.ctaform .cfbg .ov{background:rgba(0,0,0,0.2);height:766px;bottom:auto;}
body.evo-tpl-pool-accessory main>section.ctaform .cfbg::before{content:none;}             /* 704:3560 is hidden on these frames */
body.evo-tpl-pool-accessory main>section.ctaform .cfbg::after{content:"";position:absolute;left:0;right:0;
   top:659px;height:329px;background:#ffffff;border-radius:28px;z-index:3;pointer-events:none;}  /* 704:3570 h329 */
body.evo-tpl-pool-accessory main>section.ctaform .cfcard{margin-left:9px;width:421px;height:325px;
   background:rgba(217,217,217,0.5);border-radius:20px;}                                  /* 704:3561 #d9d9d9 at 50% */
body.evo-tpl-pool-accessory main>section.ctaform .cf-copy{margin-top:0;margin-left:83px;} /* 704:3562 x713 */
body.evo-tpl-pool-accessory main>section.ctaform .cfhead{width:643.619px;max-width:none;height:114px;
   line-height:57px;display:flex;flex-direction:column;justify-content:center;padding-top:0;}   /* 704:3567 48/-1.92 two lines */
body.evo-tpl-pool-accessory main>section.ctaform .cfbody{width:672.423px;height:84px;line-height:28px;
   margin-bottom:34px;padding-top:0;}                                                     /* 704:3563 y+300 h84 */
body.evo-tpl-pool-accessory main>section.ctaform .cfbtn{width:233px;height:60px;font-size:18px;padding-top:0;}  /* 704:3564 + 704:3566 label 18px */
body.evo-tpl-pool-accessory main>section.ctaform .cfbadge{margin-top:0.422px;margin-left:40.552px;
   width:252.99px;height:248.305px;}                                                      /* 704:3568 x1430.552 */
/* REVIEWS 704:3571, LOGOS 704:3630: the component's own boxes, restated
   so they do not depend on the category class. */
body.evo-tpl-pool-accessory main>section.reviews .rh{width:610px;height:63px;max-width:100%;
   margin:0 0 22px 464px;padding-top:4px;}                                                /* 704:3628 x663 w610 h63 */
body.evo-tpl-pool-accessory main>section.reviews .rlogo{margin:0 auto 107px 595px;}       /* 704:3629 x794 w349 h69 */
body.evo-tpl-pool-accessory main>section.logos .lh{width:367px;max-width:100%;height:33px;display:flex;
   flex-direction:column;justify-content:center;margin:0 0 53px 784px;text-align:center;} /* 704:3631 x784 w367 h33 */
/* FAQ: the category class also carries that frame's own row heights and
   divider positions, which are not these frames' rows. Cleared back to
   the shared component's defaults. */
body.evo-tpl-pool-accessory main>section.php-faq h2{height:auto;display:block;margin:0 0 22px;padding-top:0;}
body.evo-tpl-pool-accessory main>section.php-faq .lead2{height:auto;margin:0 0 28px;}
body.evo-tpl-pool-accessory main>section.php-faq details:first-of-type .fb{height:auto;margin-top:0;padding:0 0 24px;}
body.evo-tpl-pool-accessory main>section.php-faq details{border-bottom-color:var(--line);}
body.evo-tpl-pool-accessory main>section.php-faq details::after{content:none;}
body.evo-tpl-pool-accessory main>section.php-faq summary{align-items:center;}
body.evo-tpl-pool-accessory main>section.php-faq summary::after{top:50%;transform:translateY(-50%);}
body.evo-tpl-pool-accessory main>section.php-faq details:nth-of-type(n) summary{padding-left:0;}
body.evo-tpl-pool-accessory main>section.php-faq .fbtn{font-size:14.5px;}
/* the scrolling logo strip overflows to x2006 and would widen the full
   page screenshot past 1920 */
body.evo-tpl-pool-accessory main>section.logos{overflow:hidden;}



/* ---------------------------------------------------------
   2. Shared placement for all three frames.
   Same component, same boxes on each frame: the tab bar, the download
   cards, the explore row and the arrows. Anything that differs per
   page is in section 3, 4 or 5.
   --------------------------------------------------------- */
.evo-tpl-pool-accessory .fip-hero>.container,
.evo-tpl-pool-accessory .fip-intro>.container,
.evo-tpl-pool-accessory .lv-intro>.container,
.evo-tpl-pool-accessory .fip-subnav>.container,
.evo-tpl-pool-accessory .fip-feat>.container,
.evo-tpl-pool-accessory .fip-why>.container,
.evo-tpl-pool-accessory .fip-cards>.container,
.evo-tpl-pool-accessory .fip-warranty>.container,
.evo-tpl-pool-accessory .fip-dl>.container,
.evo-tpl-pool-accessory .fip-explore>.container{position:relative;width:1920px;max-width:none;padding:0;margin:0 auto;height:100%;}

.evo-tpl-pool-accessory br.fxbr{display:inline;}

/* ---- hero shell ---- */
.evo-tpl-pool-accessory .fip-hero{position:relative;height:657px;padding:0;min-height:0;overflow:visible;background:#27506e;color:#fff;}
.evo-tpl-pool-accessory .fip-hero .bg img{width:100%;height:100%;}
.evo-tpl-pool-accessory .fip-hero>.container{z-index:2;padding-top:0;}
.evo-tpl-pool-accessory .fip-hero .eyebrow{position:absolute;left:214px;top:294px;width:95px;height:23px;
   font-family:'Circular Std',sans-serif;font-weight:400;font-size:18px;line-height:23px;color:#ffffff;margin:0;}
.evo-tpl-pool-accessory .fip-hero h1{position:absolute;left:214px;top:319px;height:89px;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:75px;line-height:89px;letter-spacing:-1.5px;color:#ffffff;margin:0;}
.evo-tpl-pool-accessory .fip-hero .sub{position:absolute;left:214px;top:400px;height:50px;
   font-family:'Circular Std',sans-serif;font-weight:400;font-size:26px;line-height:50px;letter-spacing:-0.52px;color:#ffffff;margin:0;}
/* the second, taller overlay: rgba(0,0,0,0.15) from the top of the
   frame to y747, painted under the copy and under the quote bar */
.evo-tpl-pool-accessory .fip-hero::before{content:"";position:absolute;left:0;right:0;top:0;height:747px;
   background:rgba(0,0,0,0.15);z-index:1;pointer-events:none;}

/* ---- product tab bar ---- */
.evo-tpl-pool-accessory .fip-subnav{position:relative;height:80px;padding:0;min-height:0;background:#002b54;}
.evo-tpl-pool-accessory .fip-subnav>.container{display:block;}
.evo-tpl-pool-accessory .fip-subnav .pname{position:absolute;top:24px;height:33px;
   font-family:'Circular Std',sans-serif;font-weight:400;font-size:26px;line-height:33px;letter-spacing:-0.78px;color:#ffffff;border:0;padding:0;}
.evo-tpl-pool-accessory .fip-subnav .fip-tab-divider{position:absolute;top:13px;width:1px;height:55.009px;
   background:#44688a;display:block;}                                                     /* 704:3419 stroke #44688A */
/* Figma draws the six tabs as ONE text layer padded with hand-typed
   spaces, so the build keeps real links inside one pre-formatted run:
   same string, same font, therefore the same label positions. */
.evo-tpl-pool-accessory .fip-subnav .fip-tab-links{position:absolute;top:23px;width:699px;height:28px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:28px;letter-spacing:-0.4px;color:#ffffff;
   white-space:pre;display:block;}
.evo-tpl-pool-accessory .fip-subnav .fip-tab-links a,
.evo-tpl-pool-accessory .fip-subnav .fip-tab-links span{font:inherit;letter-spacing:inherit;color:inherit;}
.evo-tpl-pool-accessory .fip-subnav .fip-tab-active{position:absolute;top:55px;width:74px;height:2px;
   background:#2ca9e3;display:block;}
.evo-tpl-pool-accessory .fip-subnav .gq{position:absolute;top:15px;width:180px;height:50px;background:#d2232a;
   border-radius:100px;padding:0;margin:0;
   font-family:'Circular Std',sans-serif;font-weight:500;font-size:17px;line-height:22px;color:#ffffff;}

/* ---- feature cards, shared type ---- */
.evo-tpl-pool-accessory .fip-cards{position:relative;padding:0;min-height:0;background:#f4f4f4;border-radius:28px;}
.evo-tpl-pool-accessory .fip-cards .grid{display:block;position:static;max-width:none;gap:0;}
.evo-tpl-pool-accessory .fip-cards>.container>h2{position:absolute;height:50px;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:50px;line-height:50px;letter-spacing:-1.5px;color:#27272d;
   text-align:center;margin:0;}
/* each card is hand-placed on the frame, so the wrapper is not a box
   and every image, title and body carries its own coordinates */
.evo-tpl-pool-accessory .fip-card{display:contents;}
.evo-tpl-pool-accessory .fip-card .img{position:absolute;border-radius:20px;overflow:hidden;margin:0;
   aspect-ratio:auto;background:#dfe4ea;}
.evo-tpl-pool-accessory .fip-card .img img{width:100%;height:100%;object-fit:cover;}
/* Figma centres every card's title and body inside its own box: each
   card's Group 436 carries text-center and both text layers are placed
   by their centre. */
.evo-tpl-pool-accessory .fip-card h3{position:absolute;font-family:'Circular Std',sans-serif;font-weight:500;font-size:24px;
   line-height:30px;letter-spacing:-0.72px;color:#27272d;margin:0;text-align:center;}
.evo-tpl-pool-accessory .fip-card p{position:absolute;font-family:'Circular Std',sans-serif;font-weight:300;font-size:17px;
   line-height:24px;letter-spacing:-0.51px;color:#27272d;margin:0;max-width:none;text-align:center;}

/* ---- warranty, prose only on all three frames ---- */
.evo-tpl-pool-accessory .fip-warranty{position:relative;padding:0;min-height:0;}
.evo-tpl-pool-accessory .fip-warranty h2{position:absolute;left:780px;width:361px;height:50px;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:50px;line-height:50px;letter-spacing:-1.5px;color:#27272d;
   text-align:center;margin:0;}
.evo-tpl-pool-accessory .fip-warranty .note{position:absolute;left:448px;width:1024px;height:78px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:17px;line-height:26px;letter-spacing:-0.17px;color:#27272d;
   text-align:center;margin:0;max-width:none;}

/* ---- downloads ---- */
.evo-tpl-pool-accessory .fip-dl{position:relative;padding:0;min-height:0;}
.evo-tpl-pool-accessory .fip-dl h2{position:absolute;top:0;width:248px;height:50px;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:50px;line-height:50px;letter-spacing:-1.5px;color:#27272d;
   text-align:center;margin:0;}
.evo-tpl-pool-accessory .fip-dl .row{position:static;display:block;gap:0;}
.evo-tpl-pool-accessory .fip-dl .dcard{position:absolute;top:103px;width:425px;height:225px;
   background:#f4f4f4;border-radius:15px;padding:0;}
.evo-tpl-pool-accessory .fip-dl .dcard .wordmark{position:absolute;left:35px;top:34px;width:356px;height:65px;
   background:#ffffff;border-radius:10px;padding:0;margin:0;display:block;}
.evo-tpl-pool-accessory .fip-dl .dcard .wordmark img{position:absolute;max-width:none;object-fit:cover;}
.evo-tpl-pool-accessory .fip-dl .dcard .t{position:absolute;left:0;right:0;top:113px;width:auto;height:22px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:18px;line-height:22px;color:#000000;margin:0;text-align:center;}
.evo-tpl-pool-accessory .fip-dl .dcard .btn{position:absolute;left:140px;top:148px;width:146px;height:47px;
   background:#2ca9e3;border-radius:50px;padding:0;
   font-family:'Circular Std',sans-serif;font-weight:400;font-size:17px;color:#ffffff;}

/* ---- explore other products (shared product-card component) ---- */
.evo-tpl-pool-accessory .fip-explore{position:relative;padding:0;min-height:0;background:#f4f4f4;}
.evo-tpl-pool-accessory .fip-explore h2{position:absolute;left:703px;width:512px;height:58px;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:50px;line-height:58px;letter-spacing:-1px;color:#27272d;
   text-align:center;margin:0;}
.evo-tpl-pool-accessory .fip-explore .row{position:absolute;left:199px;display:grid;
   grid-template-columns:repeat(3,480px);gap:40px;width:1520px;max-width:none;margin:0;}
.evo-tpl-pool-accessory .fip-explore .php-pcard{position:relative;width:480px;height:645px;background:#ffffff;
   border-radius:28px;padding:0;display:block;text-align:center;}                          /* 704:3524 rotated 645x480 */
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(1) .pimg{position:absolute;left:64px;top:75px;
   width:372px;height:248px;margin:0;}                                                     /* 704:3526 */
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(2) .pimg{position:absolute;left:80px;top:66px;
   width:355px;height:275px;margin:0;}                                                     /* 704:3537 */
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(3) .pimg{position:absolute;left:153px;top:51px;
   width:194px;height:281px;margin:0;}                                                     /* 704:3544 */
.evo-tpl-pool-accessory .fip-explore .php-pcard .pimg img{width:100%;height:100%;object-fit:contain;}
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(2) .pimg img{position:absolute;left:-7.69%;top:-12.6%;
   width:113.61%;height:120.61%;max-width:none;object-fit:fill;}
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(3) .pimg img{position:absolute;left:-33.59%;top:0;
   width:175.78%;height:100%;max-width:none;object-fit:fill;}
/* 704:3530 draws the badge fill with object-cover, so the artwork fills the
   whole 316x90 box and the overflow is cropped. contain was letterboxing the
   two badges whose export is not exactly 316:90 - the OPTIMUM export is
   632x204 and the SUPERIOR 632x202 against SMART's 632x180 - which rendered
   those two about 35px narrow inside a box the gate still measured as right. */
.evo-tpl-pool-accessory .fip-explore .php-pcard .pbadge{position:absolute;left:99px;top:341px;width:316px;height:90px;
   object-fit:cover;}                                                                      /* 704:3530 */
.evo-tpl-pool-accessory .fip-explore .php-pcard h3{position:absolute;top:455px;height:32px;
   font-family:'Circular Std',sans-serif;font-weight:500;font-size:30px;line-height:32px;letter-spacing:-0.6px;color:#27272d;
   margin:0;text-align:center;}
.evo-tpl-pool-accessory .fip-explore .php-pcard .psub{position:absolute;top:495px;height:22px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:17px;line-height:22px;color:#000000;margin:0;text-align:center;}
/* Figma does not centre this row's text on the card: each card's Group
   418 sits right of the card centre and the two layers are placed by
   hand inside it, a different offset per card. Reproduced as drawn. */
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(1) h3{left:186px;width:141px;}    /* 704:3528 x385 w141 */
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(1) .psub{left:164px;width:187px;} /* 704:3529 x363 w187 */
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(2) h3{left:159px;width:179px;}    /* 704:3534 x878 w179 */
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(2) .psub{left:158px;width:181px;} /* 704:3535 x877 w181 */
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(3) h3{left:131px;width:248px;top:456px;}    /* 704:3541 x1370 y+456 */
.evo-tpl-pool-accessory .fip-explore .php-pcard:nth-child(3) .psub{left:125px;width:260px;top:496px;} /* 704:3542 x1364 */
.evo-tpl-pool-accessory .fip-explore .php-pcard .pbtn{position:absolute;left:88px;top:548px;width:321px;height:45px;
   background:#002b54;border-radius:9999px;padding:0;
   font-family:var(--font-ui);font-weight:500;font-size:16px;line-height:26.4px;color:#ffffff;}   /* 704:3545 Inter Medium */
.evo-tpl-pool-accessory .fip-explore .fip-arrow.prev{position:absolute;left:102px;width:58px;height:58px;
   border-radius:29px;border:1px solid #18181e;opacity:.5;}                                 /* 704:3552 */
.evo-tpl-pool-accessory .fip-explore .fip-arrow.next{position:absolute;left:1757px;width:58px;height:58px;
   border-radius:29px;background:#002b54;}                                                  /* 704:3555 */

/* the tick used by the J-Box and Louvre check lists, 704:3817 / 704:4186:
   a 15.707x11.309 box whose 1.5px stroke overflows it by 0.75 on each
   side, so the 17.207x12.809 svg is drawn at -0.75,-0.75 */
.evo-tpl-pool-accessory .checks div::before{content:"";position:absolute;left:0;width:17.207px;height:12.809px;
   background:url('/wp-content/themes/evoheat/assets/img/figma/pool-accessory/tick.svg') no-repeat 0 0/17.207px 12.809px;}


/* =========================================================
   3. EVO CONNECT  704:3360   (page 9326 tall)
   ========================================================= */
/* the section stack: every height carries the page to the next Figma y */
.evo-tpl-pool-accessory.evo-product-connect .fip-intro{position:relative;height:883px;padding:0;min-height:0;text-align:left;}
.evo-tpl-pool-accessory.evo-product-connect .fip-feat{position:relative;height:672px;padding:0;min-height:0;}
.evo-tpl-pool-accessory.evo-product-connect .fip-cards{height:1573px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-warranty{height:378px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-dl{height:473px;}
/* Figma draws this band 1080 tall but the evaluation photo starts at
   y5861, 55px before it ends, and paints over the rest */
.evo-tpl-pool-accessory.evo-product-connect .fip-explore{height:1025px;}

/* hero 704:3361 */
.evo-tpl-pool-accessory.evo-product-connect .fip-hero .bg{position:absolute;left:0;right:0;top:0;height:721px;z-index:0;overflow:hidden;}   /* 704:3362 */
.evo-tpl-pool-accessory.evo-product-connect .fip-hero .bg img{position:absolute;left:-0.62%;top:-28.25%;width:110.92%;height:128.15%;
   max-width:none;object-fit:fill;}
.evo-tpl-pool-accessory.evo-product-connect .fip-hero .bg .ov{position:absolute;left:0;right:0;top:0;height:721px;background:rgba(0,0,0,0.2);}
.evo-tpl-pool-accessory.evo-product-connect .fip-hero h1{width:428px;}                      /* 704:3366 */
.evo-tpl-pool-accessory.evo-product-connect .fip-hero .sub{width:379px;}                    /* 704:3368 */

/* intro 704:3391 */
.evo-tpl-pool-accessory.evo-product-connect .fip-intro h2{position:absolute;left:461px;top:106px;width:996px;height:53px;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:50px;line-height:53px;letter-spacing:-1.5px;color:#27272d;
   text-align:center;margin:0;}                                                             /* 704:3399 */
/* 704:3400 is ONE text layer: the paragraph, an empty line, then the
   compatibility note, all 20/26 Light. The build keeps its two real
   paragraphs and reproduces the empty line as the gap. */
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .sub{position:absolute;left:436px;top:176px;width:1047px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:26px;color:#27272d;
   text-align:center;margin:0;max-width:none;}
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .compat{position:absolute;left:436px;top:254px;width:1047px;height:26px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:26px;color:#27272d;
   text-align:center;margin:0;}
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .carousel{position:static;display:block;max-width:none;gap:0;}
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .carousel .cb{position:absolute;overflow:hidden;}
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .carousel .cb:nth-child(1){left:212px;top:376px;width:470px;height:358px;}   /* 704:3403 */
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .carousel .cb:nth-child(2){left:728px;top:360px;width:481px;height:398px;}   /* 704:3402 */
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .carousel .cb:nth-child(3){left:1246px;top:367px;width:475px;height:367px;}  /* 704:3401 */
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .carousel .cb img{position:absolute;max-width:none;max-height:none;object-fit:fill;margin:0;}
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .carousel .cb:nth-child(1) img{left:-16.44%;top:-7.89%;width:125.46%;height:114.8%;}
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .carousel .cb:nth-child(2) img{left:-9.42%;top:0;width:118.66%;height:100%;}
.evo-tpl-pool-accessory.evo-product-connect .fip-intro .carousel .cb:nth-child(3) img{left:-6.43%;top:-9.26%;width:128.68%;height:115.91%;}

/* tab bar 704:3410 */
.evo-tpl-pool-accessory.evo-product-connect .fip-subnav .pname{left:202px;width:142px;}      /* 704:3418 */
.evo-tpl-pool-accessory.evo-product-connect .fip-subnav .fip-tab-divider{left:420.5px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-subnav .fip-tab-links{left:472px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-subnav .fip-tab-active{left:472px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-subnav .gq{left:1540px;}

/* feature overview 704:3420 */
.evo-tpl-pool-accessory.evo-product-connect .fip-feat .grid{display:block;position:static;max-width:none;gap:0;}
.evo-tpl-pool-accessory.evo-product-connect .fip-feat h2{position:absolute;left:202px;top:150px;width:867px;height:150px;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:45px;line-height:50px;letter-spacing:-1.35px;color:#27272d;margin:0;}  /* 704:3440 */
.evo-tpl-pool-accessory.evo-product-connect .fip-feat p{position:absolute;left:204px;width:774px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:26px;letter-spacing:-0.4px;color:#27272d;margin:0;}
.evo-tpl-pool-accessory.evo-product-connect .fip-feat p:nth-of-type(1){top:331px;}           /* 704:3441 first paragraph */
.evo-tpl-pool-accessory.evo-product-connect .fip-feat p:nth-of-type(2){top:435px;}           /* after the empty line */
.evo-tpl-pool-accessory.evo-product-connect .fip-feat .media{position:absolute;left:1133px;top:80px;width:588px;height:467px;
   background:none;border-radius:0;min-height:0;display:block;overflow:hidden;}              /* 704:3444 */
.evo-tpl-pool-accessory.evo-product-connect .fip-feat .media img.punit{position:absolute;left:-7.1%;top:-5.96%;width:127.5%;height:111.93%;
   max-width:none;object-fit:fill;margin:0;}

/* feature cards 704:3445 */
.evo-tpl-pool-accessory.evo-product-connect .fip-cards>.container>h2{left:467px;top:121px;width:985px;}          /* 704:3473 */
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(1) .img{left:200px;top:255px;width:480px;height:350px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(1) h3{left:194px;top:641px;width:492px;height:30px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(1) p{left:243px;top:687px;width:394px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(2) .img{left:719px;top:255px;width:480px;height:350px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(2) h3{left:715px;top:637px;width:487px;height:35.502px;line-height:35.502px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(2) p{left:736px;top:687px;width:448px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(3) .img{left:1241px;top:255px;width:480px;height:350px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(3) h3{left:1268px;top:637px;width:427px;height:30px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(3) p{left:1280px;top:681px;width:402px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(4) .img{left:200px;top:884px;width:480px;height:350px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(4) h3{left:239px;top:1268px;width:427px;height:30px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(4) p{left:239px;top:1324px;width:402px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(5) .img{left:719px;top:884px;width:480px;height:350px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(5) h3{left:826px;top:1270px;width:267px;height:30px;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(5) p{left:731px;top:1324px;width:457px;}
/* Figma crops these fills inside their frame; the same crop box against
   the same source export renders exactly what the frame renders */
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(3) .img img{position:absolute;left:-12.49%;top:-0.12%;width:112.51%;height:100%;
   max-width:none;object-fit:fill;}                                                          /* 704:3458 */
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(4) .img img{position:absolute;left:0;top:0.16%;width:104.84%;height:99.82%;
   max-width:none;object-fit:fill;}                                                          /* 704:3469 */
.evo-tpl-pool-accessory.evo-product-connect .fip-card:nth-child(5) .img img{position:absolute;left:-11.16%;top:0.09%;width:112.51%;height:100%;
   max-width:none;object-fit:fill;}                                                          /* 704:3466 */
/* the CTA card 704:3474 */
.evo-tpl-pool-accessory.evo-product-connect .fip-card.cta{position:absolute;left:1241px;top:884px;width:480px;height:545px;
   background:#002b54;border-radius:20px;padding:0;display:block;text-align:left;}
.evo-tpl-pool-accessory.evo-product-connect .fip-card.cta h3{position:absolute;left:54px;top:97px;width:317px;height:126px;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:40px;line-height:42px;letter-spacing:-1.6px;color:#ffffff;
   margin:0;max-width:none;text-align:left;}                                                 /* 704:3479 x1295 y3393 */
.evo-tpl-pool-accessory.evo-product-connect .fip-card.cta p{position:absolute;left:54px;top:242px;width:376px;height:140px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:28px;letter-spacing:-0.4px;color:#ffffff;
   margin:0;max-width:none;text-align:left;}                                                 /* 704:3480 x1295 y3538 */
.evo-tpl-pool-accessory.evo-product-connect .fip-card.cta .btn{position:absolute;left:52px;top:414px;width:376px;height:50px;
   background:#2ca9e3;border-radius:50px;padding:0;align-self:auto;
   font-family:'Circular Std',sans-serif;font-weight:500;font-size:20px;color:#ffffff;}      /* 704:3476 x1293 y3710 */
.evo-tpl-pool-accessory.evo-product-connect .fip-card.cta .gbadge{position:absolute;left:325px;top:-26px;right:auto;width:205px;height:201px;
   object-fit:cover;}                                                                        /* 704:3481 x1566 y3270 */

/* warranty 704:3482 */
.evo-tpl-pool-accessory.evo-product-connect .fip-warranty h2{top:121px;}                     /* 704:3498 y4106 */
.evo-tpl-pool-accessory.evo-product-connect .fip-warranty .note{top:207px;}                  /* 704:3497 y4192 */

/* downloads 704:3499 */
.evo-tpl-pool-accessory.evo-product-connect .fip-dl h2{left:837px;}                          /* 704:3500 */
.evo-tpl-pool-accessory.evo-product-connect .fip-dl .dcard:nth-child(1){left:517px;}         /* 704:3501 */
.evo-tpl-pool-accessory.evo-product-connect .fip-dl .dcard:nth-child(2){left:978px;}         /* 704:3511 */
.evo-tpl-pool-accessory.evo-product-connect .fip-dl .dcard .wordmark img{left:93px;top:22px;width:170px;height:21px;}  /* 704:3504 */

/* explore 704:3521 */
.evo-tpl-pool-accessory.evo-product-connect .fip-explore h2{top:123px;}                      /* 704:3551 y4959 */
.evo-tpl-pool-accessory.evo-product-connect .fip-explore .row{top:245px;}                    /* 704:3523 y5081 */
.evo-tpl-pool-accessory.evo-product-connect .fip-explore .fip-arrow{top:540px;}              /* 704:3552 y5376 */

/* the shared tail: evaluation CTA 5861, reviews 6668, logos 7258,
   FAQ 7439, footer 8236 (band tops read off frame-connect.png) */
.evo-tpl-pool-accessory.evo-product-connect main>section.reviews{padding:0 0 144px;}
.evo-tpl-pool-accessory.evo-product-connect main>section.logos{padding:0;}
.evo-tpl-pool-accessory.evo-product-connect main>section.php-faq{padding:0 0 310px;}


/* =========================================================
   4. EVO J-BOX  704:3749   (page 8507 tall)
   ========================================================= */
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat{position:relative;height:751px;padding:0;min-height:0;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-why{position:relative;height:600px;padding:0;min-height:0;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-cards{height:906px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-warranty{height:392px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-dl{height:511px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-explore{height:1025px;}

/* hero 704:3750: this frame draws the photo 1920x777 with no inner
   overlay, only the 0.15 wash down to y747 */
/* 704:3753 is drawn inside a "-scale-y-100 rotate-180" wrapper, which
   composes to a horizontal mirror of the photo box */
.evo-tpl-pool-accessory.evo-product-jbox .fip-hero .bg{position:absolute;left:0;right:0;top:0;height:777px;z-index:0;overflow:hidden;
   transform:scaleX(-1);}
/* 704:3753 draws the fill stretched to the box (size-full, no cover), so
   the 683x1024 source is squashed into 1920x777 exactly as the frame does */
.evo-tpl-pool-accessory.evo-product-jbox .fip-hero .bg img{width:100%;height:100%;object-fit:fill;object-position:bottom;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-hero .bg .ov{display:none;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-hero h1{left:207px;width:330px;}               /* 704:3756 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-hero .sub{top:408px;width:550px;}              /* 704:3758 */

/* intro 704:3781: image left, copy and two buttons right */
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat .grid{display:block;position:static;max-width:none;gap:0;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat .media{position:absolute;left:339px;top:87px;width:396px;height:568px;
   background:none;border-radius:0;min-height:0;display:block;overflow:hidden;}              /* 704:3803 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat .media img.punit{width:100%;height:100%;max-width:none;object-fit:cover;margin:0;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat h2{position:absolute;left:868px;top:154px;width:733px;height:107px;
   display:flex;flex-direction:column;justify-content:center;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:50px;line-height:53px;letter-spacing:-1.5px;color:#27272d;margin:0;}  /* 704:3789 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat p{position:absolute;left:875px;width:719px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:26px;color:#27272d;margin:0;max-width:none;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat p:nth-of-type(1){top:294px;}              /* 704:3790 y1071 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat p:nth-of-type(2){top:372px;}              /* 704:3790 after two lines plus the empty line */
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat .fbtns{position:absolute;left:868px;top:498px;display:block;margin:0;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat .fbtns .btn{position:absolute;top:0;height:70px;border-radius:60px;padding:0;
   font-family:'Circular Std',sans-serif;font-weight:500;font-size:20px;color:#ffffff;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat .fbtns .btn-red{left:0;width:249px;background:#d2232a;}     /* 704:3792 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-feat .fbtns .btn-blue{left:260px;width:193px;background:#2ca9e3;} /* 704:3795 */

/* tab bar 704:3804: this frame sits 1px right of the other two */
.evo-tpl-pool-accessory.evo-product-jbox .fip-subnav .pname{left:203px;width:109px;}          /* 704:3812 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-subnav .fip-tab-divider{left:421.5px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-subnav .fip-tab-links{left:473px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-subnav .fip-tab-active{left:473px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-subnav .gq{left:1541px;}

/* why buy 704:3814 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-why .grid{display:block;position:static;max-width:none;gap:0;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-why h2{position:absolute;left:203px;top:102px;width:673px;height:222px;
   display:flex;flex-direction:column;justify-content:center;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:50px;line-height:53px;letter-spacing:-1.5px;color:#27272d;margin:0;}  /* 704:3835 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-why p{position:absolute;left:942px;width:780px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:26px;color:#27272d;margin:0;max-width:none;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-why p:nth-of-type(1){top:102px;}                /* 704:3834 y1710 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-why p:nth-of-type(2){top:180px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-why .compat{position:absolute;left:942px;top:284px;width:780px;height:26px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:26px;color:#27272d;margin:0;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-why .checks{position:absolute;left:968px;top:347px;width:398px;height:120px;
   display:block;margin:0;gap:0;}                                                             /* 704:3824 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-why .checks div{position:relative;padding:0;margin:0;height:30px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:30px;color:#27272d;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-why .checks div::before{left:-26.75px;}
/* the four ticks are 30, 28 and 32px apart on this frame, not evenly
   spaced: 704:3817 y1965, 704:3818 y1995, 704:3819 y2023, 704:3820 y2055 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-why .checks div:nth-child(1)::before{top:9.25px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-why .checks div:nth-child(2)::before{top:9.25px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-why .checks div:nth-child(3)::before{top:7.25px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-why .checks div:nth-child(4)::before{top:9.25px;}

/* feature cards 704:3836 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-cards>.container>h2{left:468px;top:121px;width:985px;}   /* 704:3853 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-card:nth-child(1) .img{left:201px;top:255px;width:480px;height:350px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-card:nth-child(1) h3{left:195px;top:641px;width:492px;height:30px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-card:nth-child(1) p{left:244px;top:687px;width:394px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-card:nth-child(2) .img{left:720px;top:255px;width:480px;height:350px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-card:nth-child(2) h3{left:716px;top:637px;width:487px;height:35.502px;line-height:35.502px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-card:nth-child(2) p{left:736px;top:687px;width:448px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-card:nth-child(3) .img{left:1242px;top:255px;width:480px;height:350px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-card:nth-child(3) h3{left:1269px;top:637px;width:427px;height:30px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-card:nth-child(3) p{left:1281px;top:687px;width:402px;}

/* warranty 704:3854 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-warranty h2{top:135px;}                         /* 704:3870 y3249 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-warranty .note{top:221px;}                      /* 704:3869 y3335 */

/* downloads 704:3871 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-dl h2{left:837px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-dl .dcard:nth-child(1){left:517px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-dl .dcard:nth-child(2){left:978px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-dl .dcard .wordmark img{left:114px;top:20px;width:128px;height:26px;}  /* 704:3876 */

/* explore 704:3893 */
.evo-tpl-pool-accessory.evo-product-jbox .fip-explore h2{top:123px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-explore .row{top:245px;}
.evo-tpl-pool-accessory.evo-product-jbox .fip-explore .fip-arrow{top:540px;}

/* shared tail: CTA 5042, reviews 5849, logos 6439, FAQ 6620, footer 7417 */
.evo-tpl-pool-accessory.evo-product-jbox main>section.reviews{padding:0 0 144px;}
.evo-tpl-pool-accessory.evo-product-jbox main>section.logos{padding:0;}
.evo-tpl-pool-accessory.evo-product-jbox main>section.php-faq{padding:0 0 310px;}


/* =========================================================
   5. EVO LOUVRE 1000  704:4121   (page 8703 tall)
   ========================================================= */
.evo-tpl-pool-accessory.evo-product-louvre .lv-intro{position:relative;height:883px;padding:0;min-height:0;text-align:left;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat{position:relative;height:705px;padding:0;min-height:0;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-cards{height:953px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-warranty{height:359px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-dl{height:456px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-explore{height:1025px;}

/* hero 704:4122: photo 1920x688 with its own 0.2 wash, then the 0.15
   wash to y747 */
/* 704:4124 is drawn inside the same "-scale-y-100 rotate-180" wrapper as
   the J-Box hero, which composes to a horizontal mirror */
.evo-tpl-pool-accessory.evo-product-louvre .fip-hero .bg{position:absolute;left:0;right:0;top:0;height:688px;z-index:0;overflow:hidden;
   transform:scaleX(-1);}
.evo-tpl-pool-accessory.evo-product-louvre .fip-hero .bg img{position:absolute;left:-1.08%;top:-71.56%;width:101.92%;height:379.34%;
   max-width:none;object-fit:fill;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-hero .bg .ov{position:absolute;left:0;right:0;top:0;height:688px;background:rgba(0,0,0,0.2);}
.evo-tpl-pool-accessory.evo-product-louvre .fip-hero h1{width:555px;}                          /* 704:4127 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-hero .sub{width:379px;}                        /* 704:4129 */

/* intro 704:4154 */
.evo-tpl-pool-accessory.evo-product-louvre .lv-intro h2{position:absolute;left:521px;top:106px;width:877px;height:53px;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:50px;line-height:53px;letter-spacing:-1.5px;color:#27272d;
   text-align:center;margin:0;}                                                                /* 704:4162 */
.evo-tpl-pool-accessory.evo-product-louvre .lv-intro>.container>p{position:absolute;left:436px;top:176px;width:1047px;height:52px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:26px;color:#27272d;
   text-align:center;margin:0;max-width:none;}                                                 /* 704:4163 */
.evo-tpl-pool-accessory.evo-product-louvre .lv-intro .gallery{position:static;display:block;max-width:none;gap:0;}
.evo-tpl-pool-accessory.evo-product-louvre .lv-intro .gallery .g{position:absolute;background:none;min-height:0;display:block;overflow:hidden;}
.evo-tpl-pool-accessory.evo-product-louvre .lv-intro .gallery .g img{width:100%;height:100%;max-width:none;object-fit:cover;}
.evo-tpl-pool-accessory.evo-product-louvre .lv-intro .gallery .g:nth-child(1){left:225px;top:313px;width:362px;height:404px;}        /* 704:4165 */
.evo-tpl-pool-accessory.evo-product-louvre .lv-intro .gallery .g:nth-child(2){left:671px;top:335px;width:525.197px;height:390.803px;} /* 704:4164 */
.evo-tpl-pool-accessory.evo-product-louvre .lv-intro .gallery .g:nth-child(3){left:1280px;top:319px;width:415px;height:391px;}        /* 704:4166 */
.evo-tpl-pool-accessory.evo-product-louvre .lv-intro .gallery .g:nth-child(3) img{position:absolute;left:-14.12%;top:0;width:126.76%;height:100%;object-fit:fill;}

/* tab bar 704:4173 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-subnav .pname{left:202px;width:182px;}         /* 704:4181 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-subnav .fip-tab-divider{left:420.5px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-subnav .fip-tab-links{left:472px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-subnav .fip-tab-active{left:472px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-subnav .gq{left:1540px;}

/* feature overview 704:4183 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat .grid{display:block;position:static;max-width:none;gap:0;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat .media{position:absolute;left:202px;top:127px;width:478px;height:451px;
   background:none;border-radius:0;min-height:0;display:block;overflow:hidden;}                /* 704:4205 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat .media img.punit{position:absolute;left:-14.12%;top:0;width:126.76%;height:100%;
   max-width:none;object-fit:fill;margin:0;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat h2{position:absolute;left:749px;top:127px;width:983px;height:50px;
   font-family:'Circular Std',sans-serif;font-weight:700;font-size:45px;line-height:50px;letter-spacing:-1.35px;color:#27272d;margin:0;}  /* 704:4203 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat p{position:absolute;left:749px;width:959px;
   font-family:'Circular Std',sans-serif;font-weight:300;line-height:26px;letter-spacing:-0.4px;color:#27272d;margin:0;max-width:none;}
/* 704:4204 draws its first paragraph at 24px and the rest at 20px */
/* 704:4204 keeps "EvoHeat" on the first line. Chromium sets this line
   about 9px wider than Figma does, so it would re-wrap one word early
   inside the same 959px box: the paragraph therefore breaks only where
   the frame breaks (white-space:pre plus the br the markup carries),
   and the setting is released below 1201px with the br itself. */
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat p:nth-of-type(1){top:215px;font-size:24px;white-space:pre;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat p:nth-of-type(2){top:293px;font-size:20px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat .checks{position:absolute;left:775px;top:437px;width:543px;height:120px;
   display:block;margin:0;gap:0;}                                                              /* 704:4193 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat .checks div{position:relative;padding:0;margin:0;height:30px;
   font-family:'Circular Std',sans-serif;font-weight:300;font-size:20px;line-height:30px;color:#27272d;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat .checks div::before{left:-26.75px;}
/* ticks 704:4186 y2187, 704:4187 y2217, 704:4188 y2245, 704:4189 y2277 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat .checks div:nth-child(1)::before{top:9.25px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat .checks div:nth-child(2)::before{top:9.25px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat .checks div:nth-child(3)::before{top:7.25px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-feat .checks div:nth-child(4)::before{top:9.25px;}

/* feature cards 704:4206: four 398px cards in one row */
.evo-tpl-pool-accessory.evo-product-louvre .fip-cards>.container>h2{left:484px;top:140px;width:951px;}   /* 704:4228 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(1) .img{left:99px;top:274px;width:398px;height:350px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(1) h3{left:115px;top:660px;width:366px;height:30px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(1) p{left:101px;top:706px;width:394px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(2) .img{left:539px;top:274px;width:398px;height:350px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(2) h3{left:561px;top:660px;width:362px;height:60px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(2) p{left:571px;top:730px;width:334px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(3) .img{left:981px;top:274px;width:398px;height:350px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(3) h3{left:1013px;top:660px;width:335px;height:60px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(3) p{left:979px;top:730px;width:402px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(4) .img{left:1423px;top:274px;width:398px;height:350px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(4) h3{left:1456px;top:658px;width:331px;height:30px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(4) p{left:1451px;top:705px;width:344px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(1) .img img{position:absolute;left:-1.22%;top:0;width:123.05%;height:100%;
   max-width:none;object-fit:fill;}                                                            /* 704:4212 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(2) .img img{position:absolute;left:0.22%;top:0.01%;width:99.53%;height:99.68%;
   max-width:none;object-fit:fill;}                                                            /* 704:4217 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(3) .img img{position:absolute;left:-4.93%;top:0.06%;width:106.67%;height:99.8%;
   max-width:none;object-fit:fill;}                                                            /* 704:4219 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-card:nth-child(4) .img img{position:absolute;left:0.04%;top:0.3%;width:99.74%;height:99.32%;
   max-width:none;object-fit:fill;}                                                            /* 704:4224 */

/* warranty 704:4229 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-warranty h2{top:105px;}                        /* 704:4245 y3503 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-warranty .note{top:191px;}                     /* 704:4244 y3589 */

/* downloads 704:4246: one card, and the wordmark plate carries two
   stacked images with 704:4252 painted over 704:4251 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-dl h2{left:835px;}                             /* 704:4247 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-dl .dcard:nth-child(1){left:746px;}            /* 704:4248 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-dl .dcard .wordmark img.wm-base{left:114px;top:20px;width:128px;height:26px;}  /* 704:4251 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-dl .dcard .wordmark img.wm-top{left:68px;top:18px;width:219px;height:29px;}    /* 704:4252 */

/* explore 704:4259 */
.evo-tpl-pool-accessory.evo-product-louvre .fip-explore h2{top:123px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-explore .row{top:245px;}
.evo-tpl-pool-accessory.evo-product-louvre .fip-explore .fip-arrow{top:540px;}

/* shared tail: CTA 5238, reviews 6045, logos 6635, FAQ 6816, footer 7613 */
.evo-tpl-pool-accessory.evo-product-louvre main>section.reviews{padding:0 0 144px;}
.evo-tpl-pool-accessory.evo-product-louvre main>section.logos{padding:0;}
.evo-tpl-pool-accessory.evo-product-louvre main>section.php-faq{padding:0 0 284px;}

}


/* ---------------------------------------------------------
   6. Below 1201px: the flow layout the inline blocks carried, kept
   working. No fixed pixel widths, no horizontal scroll at 375px.
   --------------------------------------------------------- */
@media(max-width:1200px){
  .evo-tpl-pool-accessory .fip-hero{min-height:640px;}
  .evo-tpl-pool-accessory .fip-hero .container{padding-top:300px;}
  .evo-tpl-pool-accessory .fip-hero h1{font-size:48px;}
  .evo-tpl-pool-accessory .fip-intro .carousel{grid-template-columns:1fr;gap:30px;}
  .evo-tpl-pool-accessory .lv-intro .gallery{grid-template-columns:1fr;gap:30px;max-width:460px;}
  .evo-tpl-pool-accessory .fip-subnav .container{overflow-x:auto;gap:20px;}
  .evo-tpl-pool-accessory .fip-feat .grid{grid-template-columns:1fr;gap:44px;}
  /* a grid item's automatic minimum is its content width, and the J-Box
     button row and the product renders are both wider than a 375px
     column, which pushed the page to 434 */
  .evo-tpl-pool-accessory .fip-feat .grid>*,
  .evo-tpl-pool-accessory .fip-why .grid>*{min-width:0;}
  .evo-tpl-pool-accessory .fip-feat .fbtns{flex-wrap:wrap;}
  .evo-tpl-pool-accessory .fip-feat .media img.punit{max-width:100%;}
  .evo-tpl-pool-accessory .fip-why .grid{grid-template-columns:1fr;gap:40px;}
  .evo-tpl-pool-accessory .fip-cards .grid{grid-template-columns:1fr;max-width:460px;}
  .evo-tpl-pool-accessory .fip-explore .row{display:grid;grid-template-columns:1fr;gap:30px;max-width:460px;margin:0 auto;}
  .evo-tpl-pool-accessory .fip-arrow{display:none;}
  .evo-tpl-pool-accessory .fip-tab-divider,
  .evo-tpl-pool-accessory .fip-tab-active{display:none;}
  .evo-tpl-pool-accessory .fip-tab-links{white-space:normal;display:flex;gap:20px;flex-wrap:wrap;}
  .evo-tpl-pool-accessory .fip-dl .dcard .wordmark img{max-width:100%;height:auto;}
  .evo-tpl-pool-accessory .checks div::before{display:none;}
  .evo-tpl-pool-accessory .fip-feat .checks div,
  .evo-tpl-pool-accessory .fip-why .checks div{padding-left:28px;}
  .evo-tpl-pool-accessory .fip-feat .checks div::after,
  .evo-tpl-pool-accessory .fip-why .checks div::after{content:"\2713";position:absolute;left:0;top:0;color:var(--blue);font-weight:700;}
}
@media(max-width:768px){
  .evo-tpl-pool-accessory .fip-hero h1{font-size:38px;}
  .evo-tpl-pool-accessory .fip-intro h2,
  .evo-tpl-pool-accessory .lv-intro h2,
  .evo-tpl-pool-accessory .fip-feat h2,
  .evo-tpl-pool-accessory .fip-why h2,
  .evo-tpl-pool-accessory .fip-cards h2,
  .evo-tpl-pool-accessory .fip-warranty h2,
  .evo-tpl-pool-accessory .fip-dl h2,
  .evo-tpl-pool-accessory .fip-explore h2{font-size:29px;}
  .evo-tpl-pool-accessory.evo-product-louvre .fip-cards .grid{grid-template-columns:1fr;max-width:400px;}
}
