/* =========================================================
   COMMERCIAL POOL HEATERS category  (/commercial-pool-heater/)
   Figma frame 704:10083 "Commercial Heat Pumps", 1920 x 13403.

   Everything here was read off the layers, never eyeballed. The page-scoped
   <style> block that used to live in page-commercial-pool-heater.php moved
   into this file so the render harness can measure what actually ships; the
   fragment scripts/figma-gate/migrated/commercial-pool-category.json strips
   the old block and mirrors every markup change.

   HOW THE DESKTOP LAYER WORKS
   The frame is absolutely positioned in Figma and its x values are not on a
   grid: the feature cells start at 201, 202, 199, 193, 720, 721, 717, 1242,
   1243 and 1240. A flow layout cannot reproduce that, so above 1200px each
   unique section is a fixed-height block whose .container is a 1920px canvas
   and whose children sit at their exact frame coordinates, section top
   subtracted. Section tops, from the frame:

     com-hero      0      h 732     photo band, white 28px panel from y684
     com-intro     732    h 1125
     com-range     1857   h 1140    #f4f4f4 r28 band
     ctaform       2996   h 767     shared evaluation CTA (margin-top -1px)
     reviews       3763   h 592     shared
     com-leaders   4355   h 784     #002b54 r28 band
     com-mod       5139   h 1056
     com-accolade  6195   h 354     #002b54, square corners in Figma
     com-cases     6549   h 883
     com-feat      7432   h 2866    #f4f4f4 r28 band
     com-proj      10298  h 996
     logos         11294  h 388     shared
     php-faq       11682  h 536     shared
     footer        12218            shared

   Figma has no mobile frame, so every fixed-pixel rule is inside
   @media(min-width:1201px) and the base rules below it carry the phone and
   tablet layout, ported from the old inline block.
   ========================================================= */

/* ---------------------------------------------------------
   BASE LAYER: fluid layout for <=1200px, ported from the
   template's old inline <style> block. Values that Figma
   settles (type, colour, radius) are the Figma ones.
   --------------------------------------------------------- */
.evo-tpl-page-commercial-pool-heater .com-hero{position:relative;min-height:702px;overflow:hidden;color:#fff;background:#0a4a7a;}
.evo-tpl-page-commercial-pool-heater .com-hero .bg{position:absolute;inset:0;z-index:0;overflow:hidden;}
.evo-tpl-page-commercial-pool-heater .com-hero .bg img{width:100%;height:100%;object-fit:cover;}
.evo-tpl-page-commercial-pool-heater .com-hero .bg .ov{display:none;}
.evo-tpl-page-commercial-pool-heater .com-hero .lip{position:absolute;left:0;right:0;bottom:-1px;height:56px;background:#fff;border-radius:28px 28px 0 0;z-index:3;}
.evo-tpl-page-commercial-pool-heater .com-hero .container{position:relative;z-index:2;padding-top:398px;}
.evo-tpl-page-commercial-pool-heater .com-hero .eyebrow{font-weight:400;font-size:20px;line-height:25.28px;margin-bottom:6px;}
.evo-tpl-page-commercial-pool-heater .com-hero h1{font-weight:700;font-size:75px;line-height:89px;letter-spacing:-1.5px;}

.evo-tpl-page-commercial-pool-heater .com-intro{padding:120px 0 160px;}
.evo-tpl-page-commercial-pool-heater .com-intro .top{display:grid;grid-template-columns:1fr 1fr;gap:110px;align-items:start;max-width:1180px;margin:0 auto;}
.evo-tpl-page-commercial-pool-heater .com-intro h2{font-weight:700;font-size:50px;line-height:50px;letter-spacing:-1.5px;color:#27272d;margin-bottom:22px;}
.evo-tpl-page-commercial-pool-heater .com-intro .lead{font-weight:300;font-size:24px;line-height:26px;color:#000;margin-bottom:30px;max-width:665px;}
.evo-tpl-page-commercial-pool-heater .com-intro .btns{display:flex;gap:11px;}
.evo-tpl-page-commercial-pool-heater .com-intro .btns .b1{height:61px;padding:0 28px;background:#d2232a;border-radius:60px;font-weight:500;font-size:20px;}
.evo-tpl-page-commercial-pool-heater .com-intro .btns .b2{height:61px;padding:0 28px;background:#2ca9e3;border-radius:60px;font-weight:500;font-size:20px;}
.evo-tpl-page-commercial-pool-heater .com-intro .rcol p{font-weight:300;font-size:20px;line-height:26px;color:#000;}
.evo-tpl-page-commercial-pool-heater .com-intro .rcol p+p{margin-top:26px;}
.evo-tpl-page-commercial-pool-heater .com-intro .imgs{display:grid;grid-template-columns:1fr 1fr;gap:34px;max-width:1180px;margin:80px auto 0;}
.evo-tpl-page-commercial-pool-heater .com-intro .imgs .ic{border-radius:20px;overflow:hidden;background:#cdd6df;height:470px;position:relative;}
.evo-tpl-page-commercial-pool-heater .com-intro .imgs .ic img{width:100%;height:100%;object-fit:cover;}

.evo-tpl-page-commercial-pool-heater .com-range{background:#f4f4f4;border-radius:28px;padding:84px 0 238px;}
.evo-tpl-page-commercial-pool-heater .com-range h2{text-align:center;font-weight:700;font-size:48px;line-height:60.672px;letter-spacing:-1.44px;color:#27272d;margin-bottom:80px;}
.evo-tpl-page-commercial-pool-heater .com-range .row{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;max-width:1400px;margin:0 auto;}
.evo-tpl-page-commercial-pool-heater .com-pcard{background:#fff;border-radius:20px;padding:34px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;position:relative;}
.evo-tpl-page-commercial-pool-heater .com-pcard .pimg{height:380px;display:flex;align-items:center;justify-content:center;margin-bottom:22px;position:relative;}
.evo-tpl-page-commercial-pool-heater .com-pcard .pimg img{height:100%;width:auto;max-width:100%;object-fit:contain;}
.evo-tpl-page-commercial-pool-heater .com-pcard .pimg img.pbadge{position:absolute;right:0;bottom:0;height:auto;width:80px;}
.evo-tpl-page-commercial-pool-heater .com-pcard .crate{margin-bottom:18px;}
.evo-tpl-page-commercial-pool-heater .com-pcard .crate img{width:316px;max-width:100%;height:auto;}
.evo-tpl-page-commercial-pool-heater .com-pcard h3{font-weight:700;font-size:30px;line-height:37.92px;color:#27272d;letter-spacing:-0.6px;margin-bottom:5px;}
.evo-tpl-page-commercial-pool-heater .com-pcard .tag2{font-weight:400;font-size:18px;line-height:22.752px;letter-spacing:-0.36px;color:#27272d;margin-bottom:20px;}
.evo-tpl-page-commercial-pool-heater .com-pcard .lm{width:321px;max-width:100%;height:45px;background:#002b54;border-radius:9999px;font-family:var(--font-ui);font-weight:500;font-size:16px;line-height:26.4px;margin-top:auto;}

.evo-tpl-page-commercial-pool-heater .com-leaders{background:#002b54;border-radius:28px;color:#fff;padding:99px 0 100px;text-align:center;}
.evo-tpl-page-commercial-pool-heater .com-leaders h2{font-weight:700;font-size:48px;line-height:60.672px;letter-spacing:-0.96px;max-width:1035px;margin:0 auto 65px;}
.evo-tpl-page-commercial-pool-heater .com-leaders h2 .blue{color:#2ca9e3;}
.evo-tpl-page-commercial-pool-heater .com-leaders .badges2{background:none;border-radius:0;max-width:1348px;margin:0 auto 46px;padding:0;min-height:0;display:block;}
.evo-tpl-page-commercial-pool-heater .com-leaders .badges2 img{width:100%;height:auto;display:block;}
.evo-tpl-page-commercial-pool-heater .com-leaders p{font-weight:300;font-size:28px;line-height:39px;letter-spacing:-0.56px;max-width:1214px;margin:0 auto;color:#fff;}

.evo-tpl-page-commercial-pool-heater .com-mod{padding:150px 0 160px;}
.evo-tpl-page-commercial-pool-heater .com-mod .head{text-align:center;max-width:1327px;margin:0 auto 100px;}
.evo-tpl-page-commercial-pool-heater .com-mod .head h2{font-weight:700;font-size:50px;line-height:49.975px;letter-spacing:-1.5px;color:#27272d;margin-bottom:20px;}
.evo-tpl-page-commercial-pool-heater .com-mod .head p{font-weight:300;font-size:24px;line-height:30.336px;color:#000;max-width:940px;margin:0 auto;}
.evo-tpl-page-commercial-pool-heater .com-mod .grid{display:grid;grid-template-columns:710px 1fr;gap:57px;align-items:center;max-width:1534px;margin:0 auto;background:#fff;border-radius:20px;}
.evo-tpl-page-commercial-pool-heater .com-mod .grid .info{background:none;border-radius:0;min-height:0;display:block;overflow:hidden;}
.evo-tpl-page-commercial-pool-heater .com-mod .grid .info img{width:100%;height:auto;display:block;}
.evo-tpl-page-commercial-pool-heater .com-mod h3{font-weight:500;font-size:32px;line-height:40.448px;letter-spacing:-0.96px;color:#27272d;margin-bottom:21.55px;}
.evo-tpl-page-commercial-pool-heater .com-mod .rcol p{font-weight:300;font-size:20px;line-height:26px;color:#27272d;}
.evo-tpl-page-commercial-pool-heater .com-mod .rcol p+p{margin-top:26px;}

.evo-tpl-page-commercial-pool-heater .com-accolade{background:#002b54;border-radius:0;color:#fff;padding:102px 0;}
.evo-tpl-page-commercial-pool-heater .com-accolade .in{display:flex;align-items:center;justify-content:space-between;gap:40px;max-width:1400px;margin:0 auto;}
.evo-tpl-page-commercial-pool-heater .com-accolade p{font-weight:700;font-size:40px;line-height:50.56px;letter-spacing:-0.8px;color:#fff;max-width:1069px;}
.evo-tpl-page-commercial-pool-heater .com-accolade p .blue{color:#2ca9e3;}
.evo-tpl-page-commercial-pool-heater .com-accolade .badge{width:342px;height:342px;max-width:40vw;border-radius:0;background:none;flex:none;font-size:0;color:transparent;}
.evo-tpl-page-commercial-pool-heater .com-accolade .badge img{width:100%;height:100%;object-fit:contain;display:block;}

.evo-tpl-page-commercial-pool-heater .com-cases{padding:120px 0 134px;}
.evo-tpl-page-commercial-pool-heater .com-cases h2{text-align:center;font-weight:700;font-size:50px;line-height:63.2px;letter-spacing:-1.5px;color:#27272d;margin-bottom:80px;}
.evo-tpl-page-commercial-pool-heater .com-cases .wrap{display:flex;align-items:center;gap:30px;justify-content:center;max-width:1600px;margin:0 auto;}
.evo-tpl-page-commercial-pool-heater .com-cases .arrow{width:58px;height:58px;border-radius:29px;border:1px solid #18181e;opacity:.5;font-size:0;flex:none;background-color:transparent;background-repeat:no-repeat;background-position:center;background-size:14px 12px;background-image:url(/wp-content/themes/evoheat/assets/img/figma/commercial-pool-category/arrow-prev.svg);}
.evo-tpl-page-commercial-pool-heater .com-cases .arrow.on{opacity:1;border-color:transparent;background-color:#002b54;background-image:url(/wp-content/themes/evoheat/assets/img/figma/commercial-pool-category/arrow-next.svg);}
.evo-tpl-page-commercial-pool-heater .com-cases .cards{display:grid;grid-template-columns:1fr 1fr;gap:34px;flex:1;}
.evo-tpl-page-commercial-pool-heater .com-vcard{position:relative;border-radius:28px;overflow:hidden;background:#123;aspect-ratio:723/422;display:block;}
.evo-tpl-page-commercial-pool-heater .com-vcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.evo-tpl-page-commercial-pool-heater .com-vcard .cov{position:absolute;inset:0;background:rgba(0,0,0,.2);border-radius:28px;}
.evo-tpl-page-commercial-pool-heater .com-vcard .play{position:absolute;z-index:3;top:50%;left:50%;transform:translate(-50%,-50%);width:91.706px;height:72.728px;background:transparent no-repeat center/100% 100%;border-radius:0;background-image:url(/wp-content/themes/evoheat/assets/img/figma/commercial-pool-category/play-1.svg);}
.evo-tpl-page-commercial-pool-heater .com-vcard .play::after{display:none;}
.evo-tpl-page-commercial-pool-heater .com-vcard:nth-child(2) .play{background-image:url(/wp-content/themes/evoheat/assets/img/figma/commercial-pool-category/play-2.svg);}

.evo-tpl-page-commercial-pool-heater .com-feat{background:#f4f4f4;border-radius:28px;padding:122px 0 160px;}
.evo-tpl-page-commercial-pool-heater .com-feat h2{text-align:center;font-weight:700;font-size:50px;line-height:63.2px;letter-spacing:-1.5px;color:#27272d;margin-bottom:70px;}
.evo-tpl-page-commercial-pool-heater .com-feat .grid{display:grid;grid-template-columns:repeat(3,1fr);gap:96px 34px;max-width:1520px;margin:0 auto;}
.evo-tpl-page-commercial-pool-heater .com-fcard{text-align:center;}
.evo-tpl-page-commercial-pool-heater .com-fcard .fimg{border-radius:20px;overflow:hidden;background:#dfe4ea;height:350px;margin-bottom:30px;display:block;position:relative;}
.evo-tpl-page-commercial-pool-heater .com-fcard .fimg img{width:100%;height:100%;object-fit:cover;}
.evo-tpl-page-commercial-pool-heater .com-fcard h3{font-weight:500;font-size:24px;line-height:30.336px;letter-spacing:-0.72px;color:#27272d;margin-bottom:12px;}
.evo-tpl-page-commercial-pool-heater .com-fcard p{font-weight:300;font-size:17px;line-height:24px;letter-spacing:-0.51px;color:#27272d;max-width:480px;margin:0 auto;}
.evo-tpl-page-commercial-pool-heater .com-fcard.cta{background:#002b54;border-radius:20px;color:#fff;text-align:left;padding:44px 40px;display:flex;flex-direction:column;justify-content:center;position:relative;}
.evo-tpl-page-commercial-pool-heater .com-fcard.cta h3{font-weight:700;font-size:40px;line-height:42px;letter-spacing:-1.6px;color:#fff;margin-bottom:18px;}
.evo-tpl-page-commercial-pool-heater .com-fcard.cta p{max-width:376px;margin:0 0 26px;color:#fff;font-weight:300;font-size:20px;line-height:25.28px;letter-spacing:-0.4px;}
.evo-tpl-page-commercial-pool-heater .com-fcard.cta .cbtn{align-self:flex-start;width:376px;max-width:100%;height:50px;padding:0;background:#2ca9e3;border-radius:50px;font-weight:500;font-size:20px;}
.evo-tpl-page-commercial-pool-heater .com-fcard.cta .gbadge{position:absolute;top:-26px;right:-4px;width:205px;height:201px;border-radius:0;background:transparent no-repeat center/contain;background-image:url(/wp-content/themes/evoheat/assets/ctaform-badge.png);font-size:0;color:transparent;}

.evo-tpl-page-commercial-pool-heater .com-proj{padding:152px 0 153px;}
.evo-tpl-page-commercial-pool-heater .com-proj h2{text-align:center;font-weight:700;font-size:50px;line-height:67px;letter-spacing:-1px;color:#27272d;margin-bottom:54px;}
.evo-tpl-page-commercial-pool-heater .com-proj .wrap{display:flex;align-items:center;gap:30px;justify-content:center;max-width:1600px;margin:0 auto;}
.evo-tpl-page-commercial-pool-heater .com-proj .arrow{width:58px;height:58px;border-radius:29px;border:1px solid #18181e;opacity:.5;font-size:0;flex:none;background-color:transparent;background-repeat:no-repeat;background-position:center;background-size:14px 12px;background-image:url(/wp-content/themes/evoheat/assets/img/figma/commercial-pool-category/arrow-prev.svg);}
.evo-tpl-page-commercial-pool-heater .com-proj .arrow.on{opacity:1;border-color:transparent;background-color:#002b54;background-image:url(/wp-content/themes/evoheat/assets/img/figma/commercial-pool-category/arrow-next.svg);}
.evo-tpl-page-commercial-pool-heater .com-proj .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:38px;flex:1;}
.evo-tpl-page-commercial-pool-heater .com-pjcard{position:relative;border-radius:40px;overflow:hidden;background:#123;aspect-ratio:481/570;display:block;color:#fff;}
.evo-tpl-page-commercial-pool-heater .com-pjcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.evo-tpl-page-commercial-pool-heater .com-pjcard .cov{position:absolute;inset:0;border-radius:40px;background:linear-gradient(180deg,rgba(0,0,0,0) 50%,rgba(0,0,0,.8) 100%);opacity:.6;}
.evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(2) .cov,
.evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(3) .cov{opacity:.7;}
.evo-tpl-page-commercial-pool-heater .com-pjcard .lab{position:absolute;left:0;bottom:24px;z-index:2;padding:0 28px;font-weight:500;font-size:40px;line-height:50.56px;letter-spacing:-1.6px;}

/* The shared TRUSTED BY strip pushes the document to 2006px at a 1920 viewport:
   site.css gives .logo-row margin-left:-100px and .lpill:last-child a 236px
   flex-basis, so the sixth pill ends 86px past the canvas and the whole page
   gains a horizontal scrollbar. The frame is 1920 and clips there, so clipping
   the band reproduces the frame and removes the scrollbar. Scoped to this
   page's body class, the same containment about.css and pool-product-a.css
   already apply to their own pages. The site.css cause is shared and is
   written up in docs/fleet-issues/commercial-pool-category.md. */
.evo-tpl-page-commercial-pool-heater main>section.logos{overflow:hidden;}

/* ---------------------------------------------------------
   DESKTOP LAYER: the 1920 artboard, exact.
   --------------------------------------------------------- */
@media(min-width:1201px){

  /* --- the shared canvas: one 1920px coordinate space per section --- */
  .evo-tpl-page-commercial-pool-heater main>section.com-hero,
  .evo-tpl-page-commercial-pool-heater main>section.com-intro,
  .evo-tpl-page-commercial-pool-heater main>section.com-range,
  .evo-tpl-page-commercial-pool-heater main>section.com-leaders,
  .evo-tpl-page-commercial-pool-heater main>section.com-mod,
  .evo-tpl-page-commercial-pool-heater main>section.com-accolade,
  .evo-tpl-page-commercial-pool-heater main>section.com-cases,
  .evo-tpl-page-commercial-pool-heater main>section.com-feat,
  .evo-tpl-page-commercial-pool-heater main>section.com-proj{position:relative;padding:0;margin:0;}

  .evo-tpl-page-commercial-pool-heater main>section.com-hero>.container,
  .evo-tpl-page-commercial-pool-heater main>section.com-intro>.container,
  .evo-tpl-page-commercial-pool-heater main>section.com-range>.container,
  .evo-tpl-page-commercial-pool-heater main>section.com-leaders>.container,
  .evo-tpl-page-commercial-pool-heater main>section.com-mod>.container,
  .evo-tpl-page-commercial-pool-heater main>section.com-accolade>.container,
  .evo-tpl-page-commercial-pool-heater main>section.com-cases>.container,
  .evo-tpl-page-commercial-pool-heater main>section.com-feat>.container,
  .evo-tpl-page-commercial-pool-heater main>section.com-proj>.container{
    position:absolute;left:50%;top:0;margin-left:-960px;
    width:1920px;max-width:none;height:100%;padding:0;z-index:2;
  }

  /* =====================================================
     HERO  704:10084   y0 h732
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater .com-hero{height:732px;min-height:0;overflow:hidden;background:none;}
  /* photo 704:10087 is 1924 wide, 4px past the frame, and clipped by it */
  .evo-tpl-page-commercial-pool-heater .com-hero .bg{left:0;top:0;right:auto;bottom:auto;width:1924px;height:732px;}
  /* object-fit:fill, not cover: 704:10087's fill carries a non-uniform crop,
     so the frame draws this photo at 1924x1205 where its own ratio would give
     1924x1237. Cover re-crops it and the band diffs at 11%; fill at 1.7%. */
  .evo-tpl-page-commercial-pool-heater .com-hero .bg img{position:absolute;left:0.01%;top:-26.41%;width:100%;height:164.62%;max-width:none;object-fit:fill;}
  /* white panel 704:10098: y684, 915 tall, 28px radius, clipped at the band's foot */
  .evo-tpl-page-commercial-pool-heater .com-hero .lip{top:684px;bottom:auto;height:915px;border-radius:28px;}
  .evo-tpl-page-commercial-pool-heater .com-hero .container{padding-top:0;}
  /* eyebrow 704:10091 centred on y421.5, Book, leading normal = 1.264 em.
     Circular Std's own metrics make Figma's auto leading 1.264 em, which the
     woff2 in this theme does not report, so every auto-leading line on this
     page carries that number explicitly instead of line-height:normal. */
  .evo-tpl-page-commercial-pool-heater .com-hero .eyebrow{position:absolute;left:195px;top:421.5px;margin:0;white-space:nowrap;transform:translateY(-50%);}
  /* h1 704:10090 centred on y473.5 with an 89px line */
  .evo-tpl-page-commercial-pool-heater .com-hero h1{position:absolute;left:195px;top:473.5px;margin:0;white-space:nowrap;transform:translateY(-50%);}

  /* =====================================================
     INTRO  704:10099   y732 h1125
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater .com-intro{height:1125px;}
  .evo-tpl-page-commercial-pool-heater .com-intro .top,
  .evo-tpl-page-commercial-pool-heater .com-intro .imgs{display:block;max-width:none;margin:0;gap:0;}
  /* h2 704:10102 centred on y880, two 50px lines */
  .evo-tpl-page-commercial-pool-heater .com-intro h2{position:absolute;left:215px;top:98px;width:715px;margin:0;}
  /* lead 704:10103 */
  .evo-tpl-page-commercial-pool-heater .com-intro .lead{position:absolute;left:215px;top:219px;width:665px;max-width:none;margin:0;}
  /* right column 704:10101 */
  .evo-tpl-page-commercial-pool-heater .com-intro .rcol{position:absolute;left:1084px;top:108px;width:593px;}
  /* buttons 704:10107 and 704:10110 */
  .evo-tpl-page-commercial-pool-heater .com-intro .btns{position:absolute;left:215px;top:314px;display:block;gap:0;}
  .evo-tpl-page-commercial-pool-heater .com-intro .btns .b1{position:absolute;left:0;top:0;width:249px;height:61px;padding:0;}
  .evo-tpl-page-commercial-pool-heater .com-intro .btns .b2{position:absolute;left:260px;top:0;width:193px;height:61px;padding:0;}
  /* image pair 704:10104 / 704:10105, the right one mirrored with a 5% black wash */
  .evo-tpl-page-commercial-pool-heater .com-intro .imgs .ic{position:absolute;top:482px;width:739px;height:483px;background:none;}
  .evo-tpl-page-commercial-pool-heater .com-intro .imgs .ic:nth-child(1){left:194px;}
  .evo-tpl-page-commercial-pool-heater .com-intro .imgs .ic:nth-child(2){left:986px;transform:scaleX(-1);}
  .evo-tpl-page-commercial-pool-heater .com-intro .imgs .ic:nth-child(1) img{position:absolute;left:-0.89%;top:-1.81%;width:101.99%;height:103.91%;max-width:none;}
  .evo-tpl-page-commercial-pool-heater .com-intro .imgs .ic:nth-child(2) img{position:absolute;left:-26.14%;top:-34.3%;width:159.43%;height:162.7%;max-width:none;}
  .evo-tpl-page-commercial-pool-heater .com-intro .imgs .ic:nth-child(2)::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,.05);border-radius:20px;}

  /* =====================================================
     PRODUCT RANGE  704:10112   y1857 h1140
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater .com-range{height:1140px;}
  /* h2 704:10148 centred on (959.5, 2038), two lines at leading normal */
  .evo-tpl-page-commercial-pool-heater .com-range h2{position:absolute;left:435px;top:120.33px;width:1049px;margin:0;}
  .evo-tpl-page-commercial-pool-heater .com-range .row{display:block;max-width:none;margin:0;gap:0;}
  .evo-tpl-page-commercial-pool-heater .com-pcard{position:absolute;top:334px;width:420px;height:643px;padding:0;display:block;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(1){left:95px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(2){left:539px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(3){left:983px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(4){left:1427px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard .pimg{position:absolute;height:auto;margin:0;display:block;overflow:hidden;}
  .evo-tpl-page-commercial-pool-heater .com-pcard .pimg img{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;}
  /* 704:10116 is cropped inside its box, the other renders are not */
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(1) .pimg{left:102px;top:47px;width:217px;height:314px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(1) .pimg img{left:-33.59%;top:0;width:175.78%;height:100%;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(2) .pimg{left:43px;top:65px;width:333px;height:351px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(3) .pimg{left:50px;top:49px;width:316px;height:333px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(4) .pimg{left:21px;top:76px;width:371px;height:347px;overflow:visible;}
  /* 704:10147, the warranty badge, is its own layer over the unit pair */
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(4) .pimg img.pbadge{left:256px;top:200px;right:auto;bottom:auto;width:122px;height:155px;}
  /* efficiency rating images 704:10119 and 704:10135 */
  .evo-tpl-page-commercial-pool-heater .com-pcard .crate{position:absolute;left:52px;width:316px;height:90px;margin:0;overflow:hidden;}
  .evo-tpl-page-commercial-pool-heater .com-pcard .crate img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(1) .crate{top:361px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(3) .crate{top:374px;left:52px;}
  /* names 704:10117 etc, each centred on y2669 */
  .evo-tpl-page-commercial-pool-heater .com-pcard h3{position:absolute;top:459.04px;margin:0;white-space:nowrap;text-align:left;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(1) h3{left:87px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(2) h3{left:144px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(3) h3{left:153px;}
  .evo-tpl-page-commercial-pool-heater .com-pcard:nth-child(4) h3{left:163px;}
  /* sub lines 704:10118 etc, centred on the card and on y2699.5 */
  .evo-tpl-page-commercial-pool-heater .com-pcard .tag2{position:absolute;left:0;top:497.12px;width:420px;margin:0;text-align:center;}
  /* buttons 704:10120 etc */
  .evo-tpl-page-commercial-pool-heater .com-pcard .lm{position:absolute;left:50px;top:548px;width:321px;margin:0;}

  /* =====================================================
     EVALUATION CTA  704:10150 (shared)   y2996 h767
     The frame draws this group 18px left of the home frame: box x197,
     copy x700, badge x1423 against 215 / 718 / 1441. The row's internal
     gaps are unchanged, so one margin moves all three.
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater main>section.ctaform{margin-top:-1px;}
  .evo-tpl-page-commercial-pool-heater main>section.ctaform .cf-inner{padding:158px 0 242px;}
  .evo-tpl-page-commercial-pool-heater main>section.ctaform .cfcard{margin-left:-3px;}
  /* 704:10162: a white 28px-radius panel rides up over the photo's last 107px
     and carries the reviews band. The shared component has no element for it,
     so it is drawn here, scoped to this page, and logged in
     docs/fleet-issues/commercial-pool-category.md for the component's owner. */
  .evo-tpl-page-commercial-pool-heater main>section.ctaform .cfbg{overflow:hidden;}
  /* 704:10151 crops the photo 23px into its top edge, where the shared
     component centres it; and 704:10152 lays a half-opacity black gradient
     over the band's top 684px. Both are page-scoped here, both logged. */
  .evo-tpl-page-commercial-pool-heater main>section.ctaform .cfbg>img{
    inset:auto;left:-0.03%;top:-3.01%;width:100%;height:102.89%;
    max-width:none;max-height:none;object-fit:cover;
  }
  .evo-tpl-page-commercial-pool-heater main>section.ctaform .cfbg .ov{
    background-color:rgba(0,0,0,0.2);
    background-image:linear-gradient(180deg,rgba(0,0,0,0.4) 0,rgba(0,0,0,0) 684px);
  }
  .evo-tpl-page-commercial-pool-heater main>section.ctaform .cfbg::after{
    content:"";position:absolute;left:1px;right:-1px;top:660px;height:329px;
    background:#fff;border-radius:28px;z-index:3;
  }

  /* =====================================================
     REVIEWS  704:10163 (shared)   y3763 h592
     Heading y3788 and badge y3873 keep the shared rhythm; the frame puts
     the review columns 107px under the badge, not 133, and nudges the
     heading and badge 8px right of centre.
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater main>section.reviews{padding:25px 0 121px;}
  .evo-tpl-page-commercial-pool-heater main>section.reviews .rh{position:relative;left:8px;}
  .evo-tpl-page-commercial-pool-heater main>section.reviews .rlogo{position:relative;left:8px;margin-bottom:107px;}

  /* =====================================================
     INDUSTRY LEADERS  704:10222   y4355 h784
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater .com-leaders{height:784px;padding:0;}
  /* h2 704:10225, box drawn 1035 wide at y4454 */
  .evo-tpl-page-commercial-pool-heater .com-leaders h2{position:absolute;left:443px;top:99px;width:1035px;max-width:none;margin:0;}
  /* awards row 704:10229 is one 1348x179 image, no card behind it.
     site.css caps every .badges2 img at 80px tall for the placeholder rows,
     so this one has to release that cap. */
  .evo-tpl-page-commercial-pool-heater .com-leaders .badges2{position:absolute;left:266px;top:264px;width:1348px;height:179px;max-width:none;margin:0;overflow:hidden;}
  .evo-tpl-page-commercial-pool-heater .com-leaders .badges2 img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;}
  /* body 704:10224 */
  .evo-tpl-page-commercial-pool-heater .com-leaders p{position:absolute;left:338px;top:468px;width:1214px;max-width:none;margin:0;}

  /* =====================================================
     MODERNISE  704:10230   y5139 h1056
     One white 1534x671 card at y5485 holding the infographic and the copy.
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater .com-mod{height:1056px;padding:0;}
  .evo-tpl-page-commercial-pool-heater .com-mod .head{max-width:none;margin:0;}
  /* h2 704:10244 centred on (970.5, 5345), leading 99.95% */
  .evo-tpl-page-commercial-pool-heater .com-mod .head h2{position:absolute;left:307px;top:156.03px;width:1327px;margin:0;}
  /* sub 704:10245 centred on (955, 5460): the frame centres this box, and the
     real copy takes two lines at 940 wide, so it is pinned by its centre */
  .evo-tpl-page-commercial-pool-heater .com-mod .head p{position:absolute;left:485px;top:321px;width:940px;max-width:none;margin:0;transform:translateY(-50%);}
  /* card 704:10232 */
  .evo-tpl-page-commercial-pool-heater .com-mod .grid{position:absolute;left:193px;top:346px;width:1534px;height:671px;display:block;max-width:none;margin:0;gap:0;}
  /* infographic 704:10235 sits on the card's left edge, 125px down */
  .evo-tpl-page-commercial-pool-heater .com-mod .grid .info{position:absolute;left:0;top:125px;width:710px;height:461px;}
  /* site.css caps .com-mod .info img at 430px and rounds it; the frame draws
     it square and full bleed inside its own frame, so both are released */
  .evo-tpl-page-commercial-pool-heater .com-mod .grid .info img{position:absolute;left:0.02%;top:-1.65%;width:99.98%;height:103.3%;max-width:none;max-height:none;border-radius:0;object-fit:cover;}
  /* copy 704:10233 centred on card y196, body 704:10234 at card y258 */
  .evo-tpl-page-commercial-pool-heater .com-mod .grid .rcol{position:absolute;left:767px;top:155.55px;width:781px;}
  .evo-tpl-page-commercial-pool-heater .com-mod .grid .rcol p{width:763px;}

  /* =====================================================
     GOLD SUPPLIER STRIP  704:10246   y6195 h354
     Square corners, and the badge overhangs the strip by 65px.
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater .com-accolade{height:354px;padding:0;overflow:visible;}
  .evo-tpl-page-commercial-pool-heater .com-accolade .in{display:block;max-width:none;margin:0;gap:0;}
  /* text 704:10248 */
  .evo-tpl-page-commercial-pool-heater .com-accolade p{position:absolute;left:227px;top:106px;width:1069px;max-width:none;margin:0;}
  /* badge 704:10249 */
  .evo-tpl-page-commercial-pool-heater .com-accolade .badge{position:absolute;left:1342px;top:-65px;width:342px;height:342px;max-width:none;}
  .evo-tpl-page-commercial-pool-heater .com-accolade .badge img{object-fit:cover;}

  /* =====================================================
     CASE STUDY CAROUSEL  704:10319   y6549 h883
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater .com-cases{height:883px;padding:0;}
  /* h2 704:10335 centred on x960.5: the 1px pad puts the text centre there */
  .evo-tpl-page-commercial-pool-heater .com-cases h2{position:absolute;left:0;top:120px;width:1920px;padding-left:1px;margin:0;}
  .evo-tpl-page-commercial-pool-heater .com-cases .wrap,
  .evo-tpl-page-commercial-pool-heater .com-cases .cards{display:block;max-width:none;margin:0;gap:0;}
  /* cards 704:10321 / 704:10329 */
  .evo-tpl-page-commercial-pool-heater .com-vcard{position:absolute;top:327px;width:723px;height:422px;aspect-ratio:auto;}
  .evo-tpl-page-commercial-pool-heater .com-vcard:nth-child(1){left:217px;}
  .evo-tpl-page-commercial-pool-heater .com-vcard:nth-child(2){left:980px;}
  .evo-tpl-page-commercial-pool-heater .com-vcard img{inset:auto;max-width:none;max-height:none;}
  .evo-tpl-page-commercial-pool-heater .com-vcard:nth-child(1) img{left:-0.07%;top:-18.25%;width:105.12%;height:135.07%;}
  .evo-tpl-page-commercial-pool-heater .com-vcard:nth-child(2) img{left:-0.05%;top:-17.17%;width:104.68%;height:134.51%;}
  /* play buttons 704:10322 / 704:10332, two different exports */
  .evo-tpl-page-commercial-pool-heater .com-vcard .play{top:175px;left:auto;transform:none;}
  .evo-tpl-page-commercial-pool-heater .com-vcard:nth-child(1) .play{left:339px;}
  .evo-tpl-page-commercial-pool-heater .com-vcard:nth-child(2) .play{left:316px;}
  /* arrows 704:10336 / 704:10339 sit outside the cards */
  .evo-tpl-page-commercial-pool-heater .com-cases .arrow{position:absolute;top:509px;left:103px;}
  .evo-tpl-page-commercial-pool-heater .com-cases .arrow.on{left:1758px;}

  /* =====================================================
     FEATURE GRID  704:10250   y7432 h2866
     Eleven cells plus the navy CTA card. Each cell box is its 480x350
     image; the caption pair hangs below it, centred on the frame's own
     centre for that cell, which is not the image's centre.
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater .com-feat{height:2866px;padding:0;}
  /* h2 704:10310 centred on (966, 7618) */
  .evo-tpl-page-commercial-pool-heater .com-feat h2{position:absolute;left:432px;top:122.8px;width:1068px;margin:0;}
  .evo-tpl-page-commercial-pool-heater .com-feat .grid{display:block;max-width:none;margin:0;gap:0;}
  .evo-tpl-page-commercial-pool-heater .com-fcard{position:absolute;width:480px;height:350px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard .fimg{position:absolute;left:0;top:0;width:100%;height:350px;margin:0;background:none;}
  /* each cell's fill carries its own crop in the frame, so none of them is a
     plain centred cover: these are the layer transforms, cell by cell */
  .evo-tpl-page-commercial-pool-heater .com-fcard .fimg img{position:absolute;max-width:none;max-height:none;object-fit:cover;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(1) .fimg img{left:0;top:-1.59%;width:100%;height:103.43%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(2) .fimg img{left:-3.54%;top:0.11%;width:107.08%;height:99.86%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(3) .fimg img{left:0.05%;top:0.03%;width:99.87%;height:99.86%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(4) .fimg img{left:-23.79%;top:-7.26%;width:132.89%;height:122.65%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(5) .fimg img{left:-21.11%;top:-0.13%;width:142.05%;height:100%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(6) .fimg img{left:-14.72%;top:0.1%;width:119.71%;height:99.87%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(7) .fimg img{left:0;top:0;width:100%;height:100%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(8) .fimg img{left:0;top:0;width:100%;height:100%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(9) .fimg img{left:0;top:0;width:100%;height:100%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(10) .fimg img{left:-12.57%;top:-0.13%;width:142.05%;height:100%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(11) .fimg img{left:0.03%;top:0.04%;width:99.93%;height:101.81%;}
  .evo-tpl-page-commercial-pool-heater .com-fcard h3,
  .evo-tpl-page-commercial-pool-heater .com-fcard p{position:absolute;margin:0;max-width:none;transform:translateY(-50%);}
  /* cell boxes */
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(1){left:201px;top:312px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(2){left:720px;top:312px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(3){left:1242px;top:312px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(4){left:202px;top:899px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(5){left:721px;top:899px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(6){left:1243px;top:899px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(7){left:193px;top:1539px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(8){left:721px;top:1539px;width:479px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(9){left:1240px;top:1539px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(10){left:199px;top:2147px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(11){left:721px;top:2147px;}
  /* titles */
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(1) h3{left:111px;top:399px;width:260px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(2) h3{left:-0.5px;top:399px;width:480px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(3) h3{left:1px;top:397px;width:480px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(4) h3{left:-6px;top:401px;width:492px;}
  /* 704:10277 and 704:10293 are the two titles the designer drew with a
     35.502px box instead of the 30.336 auto line every other cell uses.
     Both stay pinned by their centre, so the glyphs do not move: the taller
     line only makes the box the size the frame draws, y8713 and y9353. */
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(5) h3{left:-4px;top:399.75px;width:487px;line-height:35.502px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(6) h3{left:20px;top:399px;width:427px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(7) h3{left:0;top:401px;width:492px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(8) h3{left:-4px;top:399.75px;width:487px;line-height:35.502px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(9) h3{left:14px;top:399px;width:427px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(10) h3{left:-6px;top:401px;width:492px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(11) h3{left:0.5px;top:399px;width:480px;}
  /* bodies */
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(1) p{left:11px;top:473px;width:457px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(2) p{left:0;top:462px;width:480px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(3) p{left:40px;top:462px;width:402px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(4) p{left:10px;top:512px;width:458px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(5) p{left:14px;top:476px;width:450px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(6) p{left:20px;top:464px;width:425px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(7) p{left:17px;top:476px;width:457px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(8) p{left:14px;top:476px;width:450px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(9) p{left:27px;top:476px;width:437px;}
  /* 704:10302 is drawn at y10004, the same line as cell 11's body 704:10307;
     the old 481 put this one 8px low against the frame */
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(10) p{left:11px;top:473px;width:457px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard:nth-child(11) p{left:15px;top:485px;width:450px;}
  /* CTA card 704:10311, 480x545 navy, badge overhanging its top edge */
  .evo-tpl-page-commercial-pool-heater .com-fcard.cta{position:absolute;left:1240px;top:2147px;width:480px;height:545px;padding:0;display:block;}
  .evo-tpl-page-commercial-pool-heater .com-fcard.cta h3{position:absolute;left:54px;top:160px;width:317px;transform:translateY(-50%);}
  .evo-tpl-page-commercial-pool-heater .com-fcard.cta p{position:absolute;left:54px;top:242px;width:376px;max-width:none;margin:0;transform:none;}
  .evo-tpl-page-commercial-pool-heater .com-fcard.cta .cbtn{position:absolute;left:52px;top:414px;width:376px;height:50px;}
  .evo-tpl-page-commercial-pool-heater .com-fcard.cta .gbadge{left:325px;right:auto;top:-26px;}

  /* =====================================================
     FEATURED PROJECTS  704:10342   y10298 h996
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater .com-proj{height:996px;padding:0;}
  /* h2 704:10370 centred on x961.5 with an explicit 67px line */
  .evo-tpl-page-commercial-pool-heater .com-proj h2{position:absolute;left:0;top:152px;width:1920px;padding-left:3px;margin:0;}
  .evo-tpl-page-commercial-pool-heater .com-proj .wrap,
  .evo-tpl-page-commercial-pool-heater .com-proj .cards{display:block;max-width:none;margin:0;gap:0;}
  .evo-tpl-page-commercial-pool-heater .com-pjcard{position:absolute;top:273px;width:481px;height:570px;aspect-ratio:auto;}
  .evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(1){left:201px;}
  .evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(2){left:720px;}
  .evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(3){left:1241px;}
  .evo-tpl-page-commercial-pool-heater .com-pjcard img{inset:auto;max-width:none;max-height:none;}
  .evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(1) img{left:-39.57%;top:-0.06%;width:158%;height:100%;}
  /* 704:10351 is mirrored: the crop offset is mirrored with it */
  .evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(2) img{left:-6.391%;top:-0.08%;width:158%;height:100%;transform:scaleX(-1);}
  .evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(3) img{left:-47.09%;top:-0.05%;width:158%;height:100%;}
  /* the wash layers are 480 wide over a 481 card */
  .evo-tpl-page-commercial-pool-heater .com-pjcard .cov{inset:auto;left:0;top:0;width:480px;height:570px;}
  /* labels 704:10346 / 704:10353 / 704:10363 */
  .evo-tpl-page-commercial-pool-heater .com-pjcard .lab{bottom:auto;padding:0;white-space:nowrap;}
  .evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(1) .lab{left:53px;top:484.5px;transform:translateY(-50%);}
  .evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(2) .lab{left:43px;top:484.5px;transform:translateY(-50%);}
  .evo-tpl-page-commercial-pool-heater .com-pjcard:nth-child(3) .lab{left:48px;top:470px;width:330px;line-height:50px;white-space:normal;transform:translateY(-50%);}
  /* arrows 704:10371 / 704:10374 */
  .evo-tpl-page-commercial-pool-heater .com-proj .arrow{position:absolute;top:529px;left:105px;}
  .evo-tpl-page-commercial-pool-heater .com-proj .arrow.on{left:1760px;}

  /* =====================================================
     TRUSTED BY  704:10377 (shared)   y11294 h388
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater main>section.logos{padding:0 0 207px;}
  /* the shared heading is line-height:normal, which this woff2's own metrics
     render at 31px where the frame's auto leading is 32.864. Left alone the
     pill row lands 2px high and the FAQ and footer follow it up. Logged in
     docs/fleet-issues/commercial-pool-category.md. */
  .evo-tpl-page-commercial-pool-heater main>section.logos .lh{line-height:32.864px;}

  /* =====================================================
     FAQ  704:10392 (shared)   y11682 h536
     The frame draws the block at x224, 8px left of the pool frame's x232,
     which moves both columns at once.
     ===================================================== */
  .evo-tpl-page-commercial-pool-heater main>section.php-faq{padding:0 0 41px;}
  .evo-tpl-page-commercial-pool-heater main>section.php-faq .grid{margin-left:24px;width:1488px;}
}

/* ---------------------------------------------------------
   PHONE AND TABLET, ported from the old inline block. No Figma
   frame exists below 1201px, so these only keep the page working.
   --------------------------------------------------------- */
@media(max-width:1200px){
  .evo-tpl-page-commercial-pool-heater .com-hero{min-height:560px;}
  .evo-tpl-page-commercial-pool-heater .com-hero .container{padding-top:300px;}
  .evo-tpl-page-commercial-pool-heater .com-hero h1{font-size:48px;line-height:1.1;}
  /* minmax(0,1fr) and min-width:0 below, not a plain 1fr: a grid item's
     automatic minimum size is its min-content, and the intro button row is
     426px of min-content because the two pills sit side by side. On a 375
     viewport that widened the track, then the page, to 480 and clipped the
     feature cards. The row wraps and every track is allowed to shrink. */
  .evo-tpl-page-commercial-pool-heater .com-intro .top,
  .evo-tpl-page-commercial-pool-heater .com-intro .imgs,
  .evo-tpl-page-commercial-pool-heater .com-mod .grid,
  .evo-tpl-page-commercial-pool-heater .com-cases .cards,
  .evo-tpl-page-commercial-pool-heater .com-proj .cards{grid-template-columns:minmax(0,1fr);gap:40px;}
  .evo-tpl-page-commercial-pool-heater .com-mod .grid{padding:24px;}
  .evo-tpl-page-commercial-pool-heater .com-range .row{grid-template-columns:repeat(2,minmax(0,1fr));}
  .evo-tpl-page-commercial-pool-heater .com-feat .grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:60px 34px;}
  .evo-tpl-page-commercial-pool-heater .com-intro .top>*,
  .evo-tpl-page-commercial-pool-heater .com-intro .imgs>*,
  .evo-tpl-page-commercial-pool-heater .com-mod .grid>*,
  .evo-tpl-page-commercial-pool-heater .com-cases .cards>*,
  .evo-tpl-page-commercial-pool-heater .com-proj .cards>*,
  .evo-tpl-page-commercial-pool-heater .com-range .row>*,
  .evo-tpl-page-commercial-pool-heater .com-feat .grid>*{min-width:0;}
  .evo-tpl-page-commercial-pool-heater .com-intro .btns{flex-wrap:wrap;}
  .evo-tpl-page-commercial-pool-heater .com-cases .arrow,
  .evo-tpl-page-commercial-pool-heater .com-proj .arrow{display:none;}
  .evo-tpl-page-commercial-pool-heater .com-accolade .in{flex-direction:column;text-align:center;}
  .evo-tpl-page-commercial-pool-heater .com-accolade p{font-size:clamp(24px,4vw,40px);line-height:1.25;}
  .evo-tpl-page-commercial-pool-heater .com-leaders h2{font-size:clamp(28px,5vw,48px);line-height:1.2;}
  .evo-tpl-page-commercial-pool-heater .com-leaders p{font-size:clamp(17px,2.2vw,28px);line-height:1.45;}
  .evo-tpl-page-commercial-pool-heater .com-pcard .lm{width:100%;}
}
@media(max-width:768px){
  .evo-tpl-page-commercial-pool-heater .com-hero h1{font-size:38px;}
  .evo-tpl-page-commercial-pool-heater .com-range .row,
  .evo-tpl-page-commercial-pool-heater .com-feat .grid{grid-template-columns:minmax(0,1fr);max-width:460px;margin:0 auto;}
  .evo-tpl-page-commercial-pool-heater .com-intro h2,
  .evo-tpl-page-commercial-pool-heater .com-mod .head h2,
  .evo-tpl-page-commercial-pool-heater .com-range h2,
  .evo-tpl-page-commercial-pool-heater .com-cases h2,
  .evo-tpl-page-commercial-pool-heater .com-feat h2,
  .evo-tpl-page-commercial-pool-heater .com-proj h2,
  .evo-tpl-page-commercial-pool-heater .com-leaders h2{font-size:28px;line-height:1.2;}
  .evo-tpl-page-commercial-pool-heater .com-intro .lead{font-size:18px;}
  .evo-tpl-page-commercial-pool-heater .com-mod h3{font-size:24px;line-height:1.25;}
  .evo-tpl-page-commercial-pool-heater .com-pjcard .lab{font-size:24px;line-height:1.2;}
  .evo-tpl-page-commercial-pool-heater .com-fcard.cta h3{font-size:28px;line-height:1.15;}
  .evo-tpl-page-commercial-pool-heater .com-accolade .badge{width:200px;height:200px;}
}
