/** Shopify CDN: Minification failed

Line 1092:84 Expected ":"

**/
.sc-placeholder{background:color-mix(in srgb,currentColor 8%,transparent);
      border:1px solid color-mix(in srgb,currentColor 50%,transparent);
      border-radius:2px;box-sizing:border-box;overflow:hidden}
    @keyframes sc-shine{0%{background-position:100% 50%}100%{background-position:0% 50%}}
    html.sc-dc-streaming .sc-placeholder,
    html.sc-dc-streaming .sc-interp.sc-missing{position:relative;
      background:color-mix(in srgb,currentColor 5%,transparent);
      border-color:transparent}
    html.sc-dc-streaming .sc-placeholder::before,
    html.sc-dc-streaming .sc-interp.sc-missing::before{content:'';
      position:absolute;inset:0;pointer-events:none;
      background:linear-gradient(90deg,rgba(217,119,87,0) 25%,rgba(247,225,211,.95) 37%,rgba(217,119,87,0) 63%);
      background-size:400% 100%;animation:sc-shine 1.4s ease infinite}
    html.sc-dc-streaming .sc-placeholder:nth-child(n+9 of .sc-placeholder)::before,
    html.sc-dc-streaming .sc-interp.sc-missing:nth-child(n+9 of .sc-interp.sc-missing)::before{animation:none;
      background:color-mix(in srgb,currentColor 8%,transparent)}
    .sc-placeholder-error{padding:4px 8px;font:11px/1.4 ui-monospace,monospace;
      color:color-mix(in srgb,currentColor 70%,transparent);word-break:break-word}
    .sc-interp.sc-missing{display:inline-block;width:2em;height:1em;overflow:hidden;
      vertical-align:text-bottom;background:rgba(255,255,255,.3);border:1px solid rgba(0,0,0,.5);
      border-radius:2px;box-sizing:border-box;color:transparent;
      user-select:none}
    .sc-interp.sc-unresolved{font-family:ui-monospace,monospace;font-size:.85em;
      color:color-mix(in srgb,currentColor 50%,transparent);
      background:color-mix(in srgb,currentColor 10%,transparent);border-radius:3px;
      padding:0 3px}
    .sc-host.sc-has-error{position:relative}
    .sc-logic-error{position:absolute;top:8px;left:8px;z-index:2147483647;max-width:60ch;
      padding:6px 10px;background:#b00020;color:#fff;font:12px/1.4 ui-monospace,monospace;
      border-radius:4px;white-space:pre-wrap;pointer-events:none}
    /* Mirrors PRINT_BASELINE_CSS in apps/web deck-stage-export.ts — keep both
       in sync until dc-runtime regains a build step. */
    @media print {
      @page { margin: 0.5cm; }
      figure, table { break-inside: avoid; }
      #dc-root, #dc-root > .sc-host { height: auto; }
      *, *::before, *::after {
        print-color-adjust: exact; -webkit-print-color-adjust: exact;
        backdrop-filter: none !important; -webkit-backdrop-filter: none !important;
        animation-delay: -99s !important; animation-duration: .001s !important;
        animation-iteration-count: 1 !important; animation-fill-mode: both !important;
        animation-play-state: running !important; transition-duration: 0s !important;
      }
    }
html,body{background:transparent}
x-dc{display:none!important}
.fx{display:flex}.col{display:flex;flex-direction:column}.grid{display:grid}.ac{align-items:center}.jc{justify-content:center}.jb{justify-content:space-between}.f1{flex:1}.noshrink{flex-shrink:0}.wrap{flex-wrap:wrap}.fw5{font-weight:500}.fw6{font-weight:600}.fw7{font-weight:700}.fw8{font-weight:800}.fs11{font-size:11px}.fs12{font-size:12px}.fs13{font-size:13px}.fs14{font-size:14px}.fs15{font-size:15px}.fs16{font-size:16px}.fs20{font-size:20px}.fs22{font-size:22px}.upper{text-transform:uppercase}.tc{text-align:center}.nowrap{white-space:nowrap}.gap8{gap:8px}.gap10{gap:10px}.gap12{gap:12px}.gap16{gap:16px}.gap24{gap:24px}.m0{margin:0}.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.mb16{margin-bottom:16px}.posrel{position:relative}.posabs{position:absolute}.round{border-radius:50%}.ohide{overflow:hidden}.bbox{box-sizing:border-box}.pointer{cursor:pointer}.w100{width:100%}.b0{border:none}
html,body{height:100%;margin:0}#dc-root,#dc-root>.sc-host{height:100%}
/* JusSpray PDP - exact rebuild of Figma node 6:1276 (360 x 10007).
             Sections are child DCs built from get_design_context: real hex,
             real geometry, real exported assets, CSS masks wherever Figma uses
             a mask (an <img> there renders the wrong colour - the v1 defect).

             ORDER AND SPACING ARE MEASURED, not assumed. The Figma children are
             absolutely positioned, so document order and visual order disagree:
             reviews (12:117) is genuinely last despite sitting before the
             closer in the document. Measured tops/heights:
               nav 16 h46 / hero 78 h316 / buy 418 h815 / problem 1272 h945 /
               compare 2265 h1070 / made 3383 h2218 / 6:1667 5649 h571 /
               6:1700 6268 h655 / 6:1775 6971 h652 / guarantee 7671 h556 /
               closer 8032 h189 (overlaps by design) / reviews 8393 h1545.
             Stacking flush lost ~1185px of intended breathing room, so these
             gaps are applied explicitly.

             The hero gallery no longer matches the Figma: the source was a 4-up
             swipe rail with empty placeholder slides, and it is now a main image
             plus thumbnails plus arrows. That component owns its own responsive
             rules - nothing about .hg belongs in this file.

             The footer is also not from the Figma - it is rebuilt from the live
             site and sits outside .page so it runs full bleed. */
          *{box-sizing:border-box}
          html,body{margin:0;padding:0;background:#fff}
          .page{width:360px;margin:0 auto;background:#fff;overflow-x:hidden;
                font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif;
                -webkit-font-smoothing:antialiased}
          .pad{padding-left:12px;padding-right:12px}
          .sec{width:100%}
          .g16{margin-top:16px}.g24{margin-top:24px}.g39{margin-top:39px}.g48{margin-top:48px}
          html{scroll-behavior:smooth}
          #buy{scroll-margin-top:24px}

          /* ================= RESPONSIVE LAYER =================
             The Figma source is a 360px mobile frame, so there is no wide-screen
             design to convert - it is designed here. Everything below 768px is
             the mobile build untouched: every rule below sits inside a min-width
             query, so the phone layout cannot regress.

             Selectors are doubled (.page.page) on purpose. The section files are
             imported AFTER this stylesheet, so at equal specificity they win;
             doubling the class outranks them without reaching for !important.
             !important appears only where a rule fights an inline style
             attribute the section writes per item, which specificity cannot beat.

             THREE failure modes recur, all from converting absolutely-positioned
             Figma frames, and all invisible at 360px:

             1. Anything pinned to a fixed left or width lands wrong once the
                container is wider - a chevron at left:303px sits mid-sentence,
                a 250px inner block inside a 301px card pushes its text 14px past
                the card edge. Re-anchor or make it fluid.
             2. Photos are hand-placed px crops sized against a 141px, 153px or
                222px card. At any other width the crop stops covering and the
                card's own fill shows through, or the image stretches because its
                width and height percentages were tuned for one exact box. Make
                the image cover instead - on the WRAPPER as well as the image,
                since the wrapper carries its own inline px size.
             3. Content that flows must stay POSITIONED. These cards put their
                artwork and photo panels in absolutely positioned siblings, and a
                positioned element paints above a static one - so the moment copy
                drops to static it disappears behind its own background. */

          /* ---------- TABLET: 768px and up ---------- */
          @media (min-width:768px){
            .page.page{width:100%;max-width:1280px;padding:0 24px}
            .page.page > .sec{max-width:900px;margin-left:auto;margin-right:auto}
            .page.page .pad{padding-left:0;padding-right:0}

            /* nav spans the full content width and gains height to match */
            .page.page .navbar{height:64px;padding:0 20px;border-radius:14px}
            .page.page .navlogo{width:158px;height:25.7px;
              -webkit-mask-size:158px 25.7px;mask-size:158px 25.7px}
            .page.page .navpill{height:38px;width:92px;border-radius:8px;padding-left:12px}
            .page.page .navcarttx{font-size:15px}

            /* the recurring 328px content column, everywhere it appears */
            .page.page .s3card,.page.page .s3cardbg,.page.page .s3cta,
            .page.page .s4card,.page.page .s4cta,
            .page.page .s7btn,.page.page .s8btn,.page.page .s9btn,
            .page.page .gcard,.page.page .gart,.page.page .gbtn,
            .page.page .rwrap,.page.page .rfaqRow,.page.page .rbtn,
            .page.page .rcard,.page.page .rcardArt,
            .page.page .him-row,.page.page .him-tiles,.page.page .him-cta,
            .page.page .cmp-cta,.page.page .navbar{width:100%;max-width:none}

            /* copy measured to a phone line length */
            .page.page .s3copy{width:calc(100% - 32px)}
            .page.page .s3feat{width:calc(100% - 12px)}
            .page.page .s3featin{width:calc(100% - 32px)}
            .page.page .s3h1,.page.page .s3sub,.page.page .s4h1,.page.page .s4lede,
            .page.page .s8body,.page.page .s8head,.page.page .s8sub,
            .page.page .s9sub,.page.page .rhead,.page.page .cmp-h2,
            .page.page .clist,.page.page .him-body,.page.page .him-head,
            .page.page .s7h,.page.page .s8h,.page.page .s9h{width:100%;max-width:100%}

            /* FAILURE MODE 1: pinned to a fixed left edge */
            .page.page .him-chev,.page.page .rfaqC,
            .page.page .gbtnAr,.page.page .rbtnAr{left:auto;right:16px}
            .page.page .him-rowtx,.page.page .rfaqQ{width:calc(100% - 56px)}

            /* tier cards share the row evenly instead of holding a phone width */
            .page.page .s3tiers,.page.page .s9tiles{gap:16px}
            .page.page .s3tier,.page.page .s9tile{flex:1 1 0;width:auto}

            /* the shipping / clock / refund reassurances read as a row */
            .page.page .s9perks{display:grid;grid-template-columns:repeat(3,1fr);
              gap:24px;width:100%;align-items:start}
            .page.page .s9perk{width:100%}

            /* rails stop being swipe rails. Column counts are per rail so no
               row ends in an orphan. */
            .page.page .s7rail,.page.page .him-rail,.page.page .s8rail,
            .page.page .ugcRow{
              display:grid;overflow:visible;scroll-snap-type:none;gap:16px;width:100%}
            .page.page .him-rail,.page.page .ugcRow,
            .page.page .s8rail{grid-template-columns:repeat(3,1fr)}
            .page.page .s7rail{grid-template-columns:repeat(2,1fr)}
            .page.page .s7card,.page.page .him-card,.page.page .s8rev,
            .page.page .ugcCard,.page.page .him-tile{width:100%;flex:1 1 auto}

            /* FAILURE MODE 2: hand-placed photo crops */
            .page.page .ugcCard,.page.page .him-tile{height:auto;aspect-ratio:141/169}
            .page.page .ugcInner,
            .page.page .him-tileinner,.page.page .him-tileclip,
            .page.page .him-shotinner,.page.page .him-shotclip,.page.page .him-shotveil{
              position:absolute!important;left:0!important;top:0!important;
              width:100%!important;height:100%!important;transform:none!important}
            .page.page .ugcInner img,.page.page .him-tile img,
            .page.page .him-shot img,.page.page .s4shot img{
              position:absolute!important;left:0!important;top:0!important;
              width:100%!important;height:100%!important;object-fit:cover;
              transform:none!important}

            /* the pagination dots belong to a swipe rail; a grid has no pages */
            .page.page .s7dots,.page.page .him-dots,.page.page .s8dots,
            .page.page .cmp-progress{display:none}

            /* comparison table is a fixed 720px composition, so centre it */
            .page.page .cmp-tablewrap{overflow:visible}
            .page.page .cmp-table{margin-left:auto;margin-right:auto}

            /* PROBLEM CARD. The card is one exported 328x827 SVG with a folder
               tab cut into its top-left corner. Stretched to 1000px the tab
               becomes a wide slab with the red label stranded beside it, so on
               wide screens the art is dropped and the card is drawn in CSS.
               The tab is rebuilt as a real bordered box the label sits inside,
               which is where the red "The Problem" text belongs. */
            .page.page .s4cardbg{display:none}
            .page.page .s4card{background:#ffffff;border:1px solid #eeeeee;
              border-radius:0 12px 12px 12px;margin-top:34px}
            .page.page .s4kicker{position:absolute;left:-1px;top:-35px;
              min-width:0;width:auto;padding:8px 20px;background:#ffffff;
              border:1px solid #eeeeee;border-bottom:0;border-radius:12px 12px 0 0}
            .page.page .s4copy{padding-top:4px}

            /* REVIEWS. FAILURE MODE 3 first: the panel body must stay positioned
               or the two absolutely positioned photo layers paint over the
               heading. Then the card art: those layers are 705x356 boxes
               rotated 90deg to fill a 296px-wide phone panel, which at 1000px
               covers a fraction of it. One un-rotated covering layer instead,
               and the mirrored second layer is dropped - it only ever existed to
               fill the bottom of a 537px phone card. */
            .page.page .s8body{position:relative;z-index:1}
            .page.page .s8card > .s8bg:first-of-type{
              left:0;right:0;top:0!important;bottom:0;width:auto;height:auto}
            .page.page .s8card > .s8bg:nth-of-type(2){display:none}
            .page.page .s8bgin{width:100%!important;height:100%!important;
              transform:none!important}

            /* review cards: a 250px inner block absolutely placed at left 15.5
               inside a card that is now 301px wide, so every quote ran 14px past
               the right edge. Flow it with real padding instead. */
            .page.page .s8rev{height:auto;min-height:259px}
            .page.page .s8revin{position:relative;left:auto;top:auto;
              width:100%;padding:16px}
            .page.page .s8quote,.page.page .s8pn{width:100%}

            /* guarantee card: bottle re-anchored right, copy given the left half */
            .page.page .gbottle{left:auto;right:8px}
            .page.page .gcopy{width:calc(100% - 300px);min-width:260px}
            .page.page .gbody{width:100%}
            .page.page .ghead p{white-space:normal}

            /* closer card: photo pinned left across the copy */
            .page.page .rcardPhoto{left:auto;right:0}
            .page.page .rcardCopy{width:calc(100% - 400px);min-width:280px}

            /* type scales with the container */
            .page.page .s3h1{font-size:40px;line-height:1.1}
            .page.page .s4h1,.page.page .cmp-h2,.page.page .him-h2,
            .page.page .s7h,.page.page .s8h,.page.page .s9h,
            .page.page .rhead,.page.page .ghead{font-size:40px;line-height:1.12}
            .page.page .s3sub,.page.page .s4lede,.page.page .him-body,
            .page.page .cmp-sub,.page.page .s8sub{font-size:18px}
          }

          /* ---------- DESKTOP: 1024px and up ----------
             Two-column PDP: gallery left and sticky, buy box right. */
          @media (min-width:1024px){
            .page.page > .sec{max-width:1000px}
            .heroSplit{display:flex;gap:56px;align-items:flex-start;
                       max-width:1280px;margin:32px auto 0}
            .heroSplit > .sec{margin-top:0;max-width:none}
            .heroSplit .heroGallery{flex:1 1 54%;min-width:0}
            .heroSplit .heroBuy{flex:1 1 46%;min-width:0}

            /* the buy column is NARROWER here than the stacked tablet layout, so
               the tablet type bump comes back down or the intro runs into the
               feature box below it, which sits at a fixed top:266px. */
            .page.page .s3h1{font-size:36px}
            .page.page .s3sub{font-size:16px}

            .page.page .s4h1,.page.page .cmp-h2,.page.page .him-h2,
            .page.page .s7h,.page.page .s8h,.page.page .s9h,
            .page.page .rhead,.page.page .ghead{font-size:46px}
          }
/* Footer. Not in the Figma - rebuilt to match the live site at
             tryjusspray.com so the landing page does not end in a dead stop and
             so the policy links a paid-traffic page needs are present.
             Ground #367663 and white text are taken from the live footer.
             The wordmark is the same masked SVG the nav uses, on a white chip,
             matching the site.

             LINKS: only ones that actually resolve. The live site's footer also
             carries How It Works / Reviews / FAQ, which are in-page anchors to
             sections of ITS homepage and land nowhere from here - and because
             the checkout wiring repoints every href="#buy", they were silently
             turning into checkout links. Contact Us is dropped too: /pages/contact
             is a 404 on this store. The three policy URLs are verified live. */
          .ft{background:#367663;color:#ffffff;margin-top:56px;
              font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif;
              -webkit-font-smoothing:antialiased}
          .ftin{max-width:1120px;margin:0 auto;padding:40px 24px 28px}
          .ftcols{display:flex;flex-direction:column;gap:32px}
          .ftbrand{display:flex;flex-direction:column;gap:16px;max-width:280px}
          .ftchip{background:#ffffff;border-radius:10px;width:88px;height:56px;
                  display:flex;align-items:center;justify-content:center;flex:0 0 auto}
          .ftlogo{width:62px;height:10.1px;background:#005652;
                  -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
                  -webkit-mask-size:62px 10.1px;mask-size:62px 10.1px;
                  -webkit-mask-position:center;mask-position:center}
          .ftblurb{margin:0;font-size:15px;line-height:1.5;color:rgba(255,255,255,0.88)}
          .ftcol{display:flex;flex-direction:column;gap:12px}
          .fth{margin:0;font-size:16px;font-weight:600;line-height:1.3;color:#ffffff}
          .ftlink{color:rgba(255,255,255,0.88);font-size:15px;line-height:1.4;
                  text-decoration:none}
          .ftlink:hover{color:#ffffff;text-decoration:underline}
          .ftbadges{display:flex;flex-wrap:wrap;gap:10px}
          .ftbadge{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,0.14);
                   border-radius:8px;padding:8px 12px;font-size:14px;line-height:1.2;
                   color:#ffffff;white-space:nowrap}
          .ftbadge svg{width:14px;height:14px;flex:0 0 auto;display:block}
          .ftrule{height:1px;background:rgba(255,255,255,0.22);margin:28px 0 20px}
          .ftcopy{margin:0;text-align:center;font-size:14px;line-height:1.4;
                  color:rgba(255,255,255,0.8)}

          @media (min-width:768px){
            .ftin{padding:48px 32px 32px}
            .ftcols{flex-direction:row;justify-content:space-between;gap:40px}
            .ftbrand{flex:0 1 300px}
            .ftcol{flex:0 1 auto}
          }
/* Figma node 6:1321 - buy block. All hex / px / radii / tracking verbatim.
             The 328x416 card "Union" is an exported SVG that already bakes in the
             white fill AND the 1px #EEEEEE stroke AND the notch cut out of the
             top-right corner (path steps down to y=38 from x=228). It is NOT a
             mask - drawing it as a plain img behind absolutely-placed children is
             the faithful translation.
             Every child of the card is absolutely placed at the exact ml/mt from
             Figma, so the copy block (top 54) and the #fafaf5 feature box
             (top 266) sit exactly where the source puts them.
             The bottle tiles are one 16x64 window per bottle over a 241.71%-wide
             image pushed left -139.72% - that is Figma's crop, not a guess. The
             per-tier horizontal offsets live in the .s3st1/3/6 nth-child rules,
             in source DOM order (the 6-pack is authored right-to-left).
             The CTA arrow asset is an UP arrow (10.276 x 10.3332) rotated 90deg.

             NO PAGER DOTS. The source put five progress dots in the card's top
             notch at (242,14) as the hero carousel's position indicator. The
             hero is now a thumbnail gallery, which shows position directly on
             the thumbnails, so a second indicator sitting in a different section
             could only ever be decorative - and it was, since it never tracked
             anything. Removed rather than hidden.

             HERO CTA reads SECURE CHECKOUT with a padlock, because unlike every
             other CTA on the page this one sits inside the buy box next to the
             price and the payment marks - it is the button someone presses to
             pay, so it says so. The padlock is an inline SVG, never an emoji:
             emoji render as a different glyph on every platform and as a colour
             image next to white type. */
          .s3{width:100%;display:flex;flex-direction:column;gap:32px;align-items:flex-start;
              font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif;
              -webkit-font-smoothing:antialiased}
          .s3 p{margin:0}

          .s3card{position:relative;width:328px;max-width:100%;height:416px;flex:0 0 auto}
          .s3cardbg{position:absolute;left:0;top:0;width:328px;height:416px;display:block}

          .s3rate{position:absolute;left:16px;top:12px;display:flex;align-items:center;gap:6px}
          .s3rate .num{color:#1c3a13;font-size:14px;line-height:1.3;letter-spacing:-0.07px;text-align:center;white-space:nowrap}
          .s3rate .stars{width:70px;height:14px;display:block;flex:0 0 auto}
          .s3rate .rev{color:#1c3a13;font-size:14px;line-height:1.3;letter-spacing:-0.07px;text-align:center;white-space:nowrap;text-decoration:underline;text-decoration-style:solid}

          .s3copy{position:absolute;left:16px;top:54px;width:296px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
          .s3eyebrow{color:#6c8b17;font-size:14px;line-height:1.3;width:100%}
          .s3head{display:flex;flex-direction:column;gap:16px;align-items:flex-start;width:100%}
          .s3h1{text-transform:capitalize;font-weight:500;font-size:32px;line-height:1.15;letter-spacing:-0.64px;color:#1c3a13;width:100%}
          .s3sub{font-size:15px;line-height:1.3;color:#666;width:100%}

          .s3feat{position:absolute;left:6px;top:266px;width:316px;height:144px;background:#fafaf5;border-radius:12px;overflow:hidden}
          .s3featin{position:absolute;left:16px;top:16px;width:285px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}
          .s3featrow{display:flex;align-items:center;gap:5px}
          .s3featrow img{width:14px;height:14px;display:block;flex:0 0 auto}
          .s3featrow span{color:#1c3a13;font-size:15px;line-height:1.3;white-space:nowrap}

          .s3lower{display:flex;flex-direction:column;gap:28px;align-items:flex-start;width:100%}

          .s3tiers{display:flex;gap:8px;align-items:flex-start;width:100%}
          .s3tier{position:relative;width:104px;flex:0 0 auto;box-sizing:border-box;border:1px solid #e6e6e6;border-radius:5px;
                  padding:14px 8px;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center}
          .s3tier--pop{background:#e8ffef;border-color:#005652}
          .s3tier--best{border-color:#e6e6e6}
          .s3shelf{position:relative;height:64px;overflow:hidden;flex:0 0 auto}
          .s3shelf.s3st1{width:67.325px}
          .s3shelf.s3st3,.s3shelf.s3st6{width:70.4px}
          .s3bot{position:absolute;top:50%;transform:translate(-50%,-50%);width:16px;height:64px;overflow:hidden}
          .s3bot img{position:absolute;top:0;left:-139.72%;width:241.71%;height:100%;max-width:none;display:block}
          .s3st1 .s3bot:nth-child(1){left:50%}
          .s3st1 .s3bot:nth-child(n+2){display:none}
          .s3st3 .s3bot:nth-child(1){left:calc(50% - 10px)}
          .s3st3 .s3bot:nth-child(2){left:calc(50% + 1px)}
          .s3st3 .s3bot:nth-child(3){left:calc(50% + 10px)}
          .s3st3 .s3bot:nth-child(n+4){display:none}
          .s3st6 .s3bot:nth-child(1){left:calc(50% + 16.8px)}
          .s3st6 .s3bot:nth-child(2){left:calc(50% + 11.8px)}
          .s3st6 .s3bot:nth-child(3){left:calc(50% + 5.8px)}
          .s3st6 .s3bot:nth-child(4){left:calc(50% - 0.2px)}
          .s3st6 .s3bot:nth-child(5){left:calc(50% - 7.2px)}
          .s3st6 .s3bot:nth-child(6){left:calc(50% - 16px)}
          .s3tiertx{display:flex;flex-direction:column;gap:8px;align-items:center;width:100%}
          .s3tiername{text-transform:capitalize;font-weight:500;font-size:16px;line-height:1.2;letter-spacing:0.16px;color:#005652;text-align:center;width:100%}
          .s3tierprice{font-weight:500;font-size:14px;line-height:18px;color:#d00000;text-align:center;white-space:nowrap}
          .s3badge{position:absolute;left:7px;top:-10px;width:90px;height:18px;border-radius:12px;padding:2px 4px;box-sizing:border-box;
                   display:flex;align-items:center;justify-content:center;background:#6c8b17}
          .s3badge span{text-transform:capitalize;font-weight:500;font-size:12px;line-height:14px;color:#ffffff;text-align:center;white-space:nowrap}
          .s3badge--best{background:#005652}
          .s3badge--none{display:none}

          .s3buy{display:flex;flex-direction:column;gap:16px;align-items:flex-start;width:100%}
          .s3stock{display:flex;align-items:center;gap:6px}
          .s3stock img{width:8px;height:8px;display:block;flex:0 0 auto}
          .s3stock p{color:#005652;font-size:16px;line-height:1.3;letter-spacing:-0.08px;white-space:nowrap}
          .s3stock .lead{font-weight:500}

          .s3cta{position:relative;width:328px;max-width:100%;height:56px;background:#005652;border-radius:12px;overflow:hidden;flex:0 0 auto}
          .s3cta p{position:absolute;left:16px;right:48px;top:calc(50% - 0.5px);transform:translateY(-50%);
                   display:flex;align-items:center;gap:9px;
                   font-weight:500;font-size:16px;line-height:1.3;letter-spacing:0.4px;
                   color:#ffffff;white-space:nowrap}
          .s3lock{width:15px;height:15px;flex:0 0 auto;display:block}
          .s3ctaico{position:absolute;left:91.77%;right:5.08%;top:calc(50% - 0.86px);transform:translateY(-50%);
                    height:10.276px;display:flex;align-items:center;justify-content:center}
          .s3ctaico img{width:10.276px;height:10.3332px;display:block;transform:rotate(90deg)}

          .s3pay{display:flex;align-items:center;gap:5px}
          .s3pm{position:relative;width:30.845px;height:21.151px;border-radius:4px;flex:0 0 auto}
          .s3pm span{position:absolute;display:block}
          .s3pm img{position:absolute;left:0;top:0;width:100%;height:100%;display:block;max-width:none}

          .s3assure{display:flex;flex-direction:column;gap:12px;align-items:flex-start;width:100%}
          .s3assurerow{display:flex;align-items:center;gap:6px}
          .s3assurerow img{display:block;flex:0 0 auto}
          .s3assurerow p{color:#333;font-size:14px;line-height:1.3;white-space:nowrap}
/* Figma node 6:1450 (price comparison). Every value below is verbatim
             from get_design_context.
             The table (13:424 / 13:425) is 720px wide inside a 336px viewport,
             so it becomes a horizontal scroller. Ground is #30341d with the
             bubble photo (rotated 180, 25% opacity) under a rgba(0,86,82,0.65)
             tint layer, exactly as the source stacks them. The photo must stay
             visible, so the tint is translucent, not a flood fill.
             The JusSpray column is a white 86x331 card at left 140 / top 104,
             with the bottle crop (13:427) overhanging its top edge.
             Icon assets are the exported Figma SVGs: red circle-x for a miss,
             white circle-check for a competitor hit, #1C3A13 circle-check
             inside the white JusSpray card. None are hand drawn.

             COMPETITOR NAMES are masked consistently here, which the Figma is
             not: the source masked "T*wer 28" in the table, wrote "Tower 28"
             unmasked twice in body copy, "Tow*r 28" once, and left the other
             four brands unmasked entirely. Masking some mentions and not others
             defeats the point of masking any of them, so every competitor is
             masked the same way the table already did it - one vowel replaced. */
          .cmp{width:100%;display:flex;flex-direction:column;gap:28px;align-items:center;
               font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif}
          .cmp-head{display:flex;flex-direction:column;gap:16px;align-items:flex-start;width:100%;word-break:break-word}
          .cmp-h2{margin:0;text-transform:capitalize;font-weight:500;line-height:1.15;color:#1c3a13;font-size:32px;letter-spacing:-0.64px;width:281px}
          .cmp-sub{margin:0;font-weight:400;color:#666;font-size:16px;line-height:1.3;width:100%}

          .cmp-tablewrap{background:#ffffff;height:452px;border-radius:13px;width:100%;
                         overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none}
          .cmp-tablewrap::-webkit-scrollbar{display:none}
          .cmp-table{position:relative;width:720px;height:452px;background:#30341d;border-radius:12px;overflow:hidden}

          .cmp-bgwrap{position:absolute;left:calc(50% - 79px);top:0;width:1182.043px;height:566px;
                      transform:translateX(-50%);display:flex;align-items:center;justify-content:center;pointer-events:none}
          .cmp-bgrot{position:relative;flex:0 0 auto;width:1182.043px;height:566px;border-radius:12px;transform:rotate(180deg)}
          .cmp-bgclip{position:absolute;inset:0;overflow:hidden;border-radius:12px;opacity:0.25}
          .cmp-bgclip img{position:absolute;height:108.72%;left:-2.34%;top:-4.36%;width:102.92%;max-width:none}
          .cmp-bgtint{position:absolute;inset:0;border-radius:12px;background:rgba(0,86,82,0.65)}

          .cmp-bottle{position:absolute;left:calc(50% - 177.5px);top:calc(50% - 150px);transform:translate(-50%,-50%);
                      width:27px;height:106px;overflow:hidden}
          .cmp-bottle img{position:absolute;height:100%;left:-139.72%;top:0;width:241.71%;max-width:none}

          .cmp-labels{position:absolute;left:16px;top:120px;width:109px;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
          .cmp-label{margin:0;flex:0 0 auto;font-weight:500;line-height:1.3;font-size:14px;color:#ffffff;letter-spacing:-0.07px;word-break:break-word}
          .cmp-line{display:block;flex:0 0 auto;width:680px;height:0.5px;max-width:none}

          .cmp-card{position:absolute;background:#ffffff;left:140px;top:104px;width:86px;height:331px;border-radius:8px}
          .cmp-cardprice{position:absolute;margin:0;left:183.5px;top:123px;transform:translateX(-50%);
                         font-weight:400;line-height:1.3;color:#1c3a13;font-size:12px;text-align:center;letter-spacing:-0.06px;white-space:nowrap}

          .cmp-cols{position:absolute;left:239px;top:77px;display:flex;gap:16px;align-items:center}
          .cmp-col{display:flex;flex-direction:column;gap:25px;align-items:center;flex:0 0 auto}
          .cmp-colname{margin:0;flex:0 0 auto;font-weight:400;line-height:1.3;font-size:16px;text-align:center;color:#ffffff;letter-spacing:-0.08px;white-space:nowrap}
          .cmp-colinner{display:flex;flex-direction:column;gap:41px;align-items:center;flex:0 0 auto}
          .cmp-colprice{margin:0;flex:0 0 auto;font-weight:400;line-height:1.3;font-size:12px;text-align:center;color:#ffffff;letter-spacing:-0.06px}
          .cmp-icons{display:flex;flex-direction:column;gap:51px;align-items:flex-start;flex:0 0 auto;width:17px}
          .cmp-icon{display:block;flex:0 0 auto;width:17px;height:17px}

          .cmp-conc{position:absolute;left:164px;top:169px;width:38px;display:flex;flex-direction:column;gap:4px;align-items:center}
          .cmp-conc img{display:block;flex:0 0 auto;width:17px;height:17px}
          .cmp-conc p{margin:0;flex:0 0 auto;font-weight:400;line-height:1.3;color:#1c3a13;font-size:12px;text-align:center;letter-spacing:-0.06px;width:100%}
          .cmp-tick{position:absolute;display:block;width:17px;height:17px}

          .cmp-progress{display:block;width:199px;height:2px}
          .cmp-foot{margin:0;width:100%;font-weight:400;color:#666;font-size:16px;line-height:1.3;word-break:break-word}

          .cmp-ctawrap{display:flex;flex-direction:column;gap:16px;align-items:center;width:100%}
          .cmp-cta{position:relative;display:block;flex:0 0 auto;background:#005652;height:56px;width:328px;border-radius:12px;overflow:hidden;text-decoration:none}
          .cmp-ctatx{position:absolute;left:16px;right:48px;top:calc(50% - 0.5px);transform:translateY(-50%);
                     font-weight:500;font-size:16px;line-height:1.3;color:#ffffff;white-space:nowrap}
          .cmp-ctaarrow{position:absolute;left:91.77%;right:5.08%;top:calc(50% - 0.86px);transform:translateY(-50%);
                        height:10.276px;display:flex;align-items:center;justify-content:center}
          .cmp-ctaarrow img{display:block;width:10.276px;height:10.3332px;max-width:none;transform:rotate(90deg)}
          .cmp-guar{display:flex;gap:6px;align-items:center;justify-content:center;flex:0 0 auto}
          .cmp-guar img{display:block;flex:0 0 auto;width:14px;height:14px}
          .cmp-guar span{font-weight:400;line-height:1.3;color:#333;font-size:14px;white-space:nowrap}
/* Figma node 6:1667 - "Why you can trust this before the reviews roll
             in." Values verbatim from get_design_context.
             Heading  #1c3a13 / 32px / lh 1.15 / tracking -0.64px / capitalize.
             Cards    222px wide, gap 12px, tile 177px tall, radius 12, ground
                      #fafaf5. Icon chip 36px, radius 4, #dae2c5, icon centred
                      (18px, or 21px for the Tampa card, which the source also
                      nudges +0.5px on both axes).
             Tile copy #005652 / 24px / lh 1.15 / tracking -0.48px, absolutely
                      placed at left 16px, top 105px (77px on card 4).
             Caption  rgba(0,0,0,0.6) / 16px / lh 1.3.
             Dots     active #6c8b17 38x9 r125, rest rgba(108,139,23,0.25) 9px.
             CTA      #005652 / 56px / radius 12 / w 328; label left 16 right 48,
                      Medium 16 white. The Union asset is an UP arrow that the
                      source rotates 90deg, so it is rotated here rather than
                      replaced with a hand-drawn chevron. */
          .s7{display:flex;flex-direction:column;gap:28px;align-items:flex-start;width:100%;font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
          .s7 *{box-sizing:border-box}
          .s7h{margin:0;width:100%;font-weight:500;font-size:32px;line-height:1.15;letter-spacing:-0.64px;color:#1c3a13;text-transform:capitalize;overflow-wrap:break-word}
          .s7rail{display:flex;gap:12px;align-items:center;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:0px;scrollbar-width:none;-ms-overflow-style:none}
          .s7rail::-webkit-scrollbar{display:none}
          .s7card{display:flex;flex-direction:column;gap:16px;align-items:flex-start;width:222px;flex:0 0 auto;scroll-snap-align:start}
          .s7tile{position:relative;background:#fafaf5;height:177px;overflow:hidden;border-radius:12px;width:100%}
          .s7ico{position:absolute;left:16px;top:16px;width:36px;height:36px;background:#dae2c5;border-radius:4px;overflow:hidden}
          .s7ico img{position:absolute;display:block;transform:translate(-50%,-50%)}
          .s7tt{position:absolute;left:16px;margin:0;font-weight:500;font-size:24px;line-height:1.15;letter-spacing:-0.48px;color:#005652;text-transform:capitalize;overflow-wrap:break-word}
          .s7cap{margin:0;width:100%;font-size:16px;line-height:1.3;color:rgba(0,0,0,0.6);overflow-wrap:break-word}
          .s7dots{display:flex;gap:3px;align-items:center}
          .s7dota{width:38px;height:9px;border-radius:125px;background:#6c8b17;flex:0 0 auto}
          .s7dot{width:9px;height:9px;border-radius:125px;background:rgba(108,139,23,0.25);flex:0 0 auto}
          .s7cta{display:flex;flex-direction:column;gap:16px;align-items:center;width:100%}
          .s7btn{position:relative;background:#005652;height:56px;overflow:hidden;border-radius:12px;width:328px;max-width:100%;flex:0 0 auto}
          .s7btnt{position:absolute;left:16px;right:48px;top:calc(50% - 0.5px);transform:translateY(-50%);margin:0;font-weight:500;font-size:16px;line-height:1.3;color:#ffffff;white-space:nowrap}
          .s7arrow{position:absolute;left:91.77%;right:5.08%;height:10.276px;top:calc(50% - 0.86px);transform:translateY(-50%);display:flex;align-items:center;justify-content:center}
          .s7arrow img{width:10.276px;height:10.3332px;transform:rotate(90deg);display:block;flex:0 0 auto}
          .s7gr{display:flex;gap:6px;align-items:center;justify-content:center}
          .s7gr img{width:14px;height:14px;display:block;flex:0 0 auto}
          .s7grt{margin:0;font-size:14px;line-height:1.3;color:#333333;white-space:nowrap}
/* Figma node 6:1277, values verbatim from get_design_context.
             The logo is a MASK in the source, not an image: bg-white +
             maskImage. Dropping it in as a plain <img> renders it in the file's
             own colour - a faded wordmark, which is exactly what happened on
             the first pass. Mask + background-color is the faithful translation.

             CART AND MENU REMOVED. The source nav carried a cart pill and a
             hamburger, but this is a standalone landing page: there is no menu
             to open, and the cart pill went to a cart the page never adds to,
             since every CTA uses a cart permalink that goes straight to
             checkout. Both were controls that looked live and did nothing, so
             the bar is now the wordmark alone. */
          .navbar{background:#005652;border-radius:12px;height:46px;display:flex;align-items:center;padding:0 12px;position:relative}
          .navlogo{width:129px;height:20.97px;background:#ffffff;flex:0 0 auto;
                   -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;
                   -webkit-mask-size:129px 20.97px;mask-size:129px 20.97px;
                   -webkit-mask-position:center;mask-position:center}
/* Hero gallery. Figma node 6:1293 shipped a 4-up swipe rail of 316px
             squares with a hardcoded 5-dot pager; slides 2-4 were empty #005652
             placeholders. This is rebuilt as a real PDP gallery: one large main
             image, a thumbnail strip under it, and prev/next arrows.

             NO JAVASCRIPT. Selection is four hidden radio inputs plus sibling
             selectors - the thumbnails are <label for>, and each arrow is a
             label pointing at the neighbouring radio. That matters because this
             page is exported to a static Shopify template with the Claude Design
             runtime stripped out: anything driven by component state would work
             in the editor and be dead on the live page. CSS survives the export
             untouched.

             The inputs carry NO checked attribute, deliberately. The runtime
             renders this tree through React, and a checked attribute becomes a
             controlled prop - React then reverts the radio on every re-render
             and the gallery looks interactive while refusing to change. Left
             uncontrolled, the browser owns the state. The first slide is the
             default through CSS instead: it shows while nothing is checked, and
             :has() switches that default off the moment something is.

             Arrows are rendered once per slide and revealed by the checked
             radio, which is how a stateless selector knows what "next" means.
             The badge stays pinned to the first slide, as in the source. */
          .hg{position:relative;width:100%}
          .hg input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}

          .hgmain{position:relative;width:100%;aspect-ratio:1/1;border-radius:12px;
                  overflow:hidden;background:#fafaf5}
          .hgslide{position:absolute;inset:0;opacity:0;transition:opacity .25s ease}
          .hgslide img{width:100%;height:100%;object-fit:cover;display:block}
          .hgbadge{position:absolute;left:12px;top:12px;height:24px;display:none;
                   align-items:center;justify-content:center;padding:6px 10px;border-radius:124px;
                   background:#efffc3;color:#000;font-size:16px;line-height:1.3;letter-spacing:-0.08px;
                   font-weight:500;z-index:3;
                   font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif}

          .hgnav{position:absolute;inset:0;display:none;pointer-events:none;z-index:2}
          .hgarrow{position:absolute;top:50%;transform:translateY(-50%);width:36px;height:36px;
                   border-radius:50%;background:rgba(255,255,255,0.92);
                   box-shadow:0 1px 4px rgba(0,0,0,0.18);cursor:pointer;pointer-events:auto;
                   display:flex;align-items:center;justify-content:center}
          .hgarrow::before{content:"";width:9px;height:9px;border-left:2px solid #005652;
                           border-bottom:2px solid #005652}
          .hgprev{left:10px}
          .hgprev::before{transform:rotate(45deg);margin-left:3px}
          .hgnext{right:10px}
          .hgnext::before{transform:rotate(-135deg);margin-right:3px}

          .hgthumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;width:100%}
          .hgthumb{position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;
                   cursor:pointer;background:#fafaf5;
                   box-shadow:inset 0 0 0 1px rgba(0,0,0,0.08);transition:box-shadow .15s ease}
          .hgthumb img{width:100%;height:100%;object-fit:cover;display:block}
          .hgthumb:hover{box-shadow:inset 0 0 0 2px rgba(0,86,82,0.45)}

          /* default state: first slide, before anything has been clicked */
          .hgslide[data-i="1"]{opacity:1;z-index:1}
          .hgnav[data-i="1"]{display:block}
          .hgbadge{display:flex}
          .hgthumb[data-i="1"]{box-shadow:inset 0 0 0 2px #005652}

          /* once a radio is checked the defaults stand down and the checked
             slide takes over */
          .hg:has(input:checked) .hgslide[data-i="1"]{opacity:0;z-index:auto}
          .hg:has(input:checked) .hgnav[data-i="1"]{display:none}
          .hg:has(input:checked) .hgbadge{display:none}
          .hg:has(input:checked) .hgthumb[data-i="1"]{box-shadow:inset 0 0 0 1px rgba(0,0,0,0.08)}

          #hg1:checked ~ .hgmain .hgslide[data-i="1"],
          #hg2:checked ~ .hgmain .hgslide[data-i="2"],
          #hg3:checked ~ .hgmain .hgslide[data-i="3"],
          #hg4:checked ~ .hgmain .hgslide[data-i="4"]{opacity:1;z-index:1}
          #hg1:checked ~ .hgmain .hgbadge{display:flex}
          #hg1:checked ~ .hgmain .hgnav[data-i="1"],
          #hg2:checked ~ .hgmain .hgnav[data-i="2"],
          #hg3:checked ~ .hgmain .hgnav[data-i="3"],
          #hg4:checked ~ .hgmain .hgnav[data-i="4"]{display:block}
          #hg1:checked ~ .hgthumbs .hgthumb[data-i="1"],
          #hg2:checked ~ .hgthumbs .hgthumb[data-i="2"],
          #hg3:checked ~ .hgthumbs .hgthumb[data-i="3"],
          #hg4:checked ~ .hgthumbs .hgthumb[data-i="4"]{box-shadow:inset 0 0 0 2px #005652}

          @media (min-width:1024px){
            /* stays with the reader while the buy column scrolls past it, so the
               product is never off screen with empty space in its place */
            .hg{position:sticky;top:32px}
            .hgarrow{width:42px;height:42px}
            .hgthumbs{gap:10px;margin-top:10px}
          }
/* Figma node 6:1700 - "What Happens When You Try It" review panel.
             Panel   #30341d, 537px tall, radius 12. Two rotated photo layers
                     sit behind it: 705x356 boxes, opacity 0.25, each with a
                     flat tint on top - #005652 at 0.65 on the first (rotate
                     -90deg, top 0.45px) and #537827 at 0.65 on the second
                     (rotate 90deg + scaleY(-1), top 705.45px, which the 537px
                     clip hides entirely; kept for fidelity).
             Header  4.8 / 84x16 star strip / underlined "2,192+ Reviews" in
                     white 14px tracking -0.07px; H2 white 34px lh 1.15
                     tracking -0.68px capitalize; sub white 16px lh 1.3.
             Cards   280x259, ground #fafaf5, 0.5px rgba(255,255,255,0.55)
                     border, radius 8, inner block inset 15.5px, width 250.
                     Verified tick and author name #536c21. Bottle thumb is a
                     10x39.245 crop of the product shot inside a 48px chip
                     (bg rgba(255,255,255,0.15), 1px #e6e6e6, radius 6).
             Dots    active #efffc3 38x9 r125, rest rgba(250,253,182,0.25).
             CTA     #005652 / 56 / radius 12 / w 328; the Union asset is an UP
                     arrow the source rotates 90deg.

             REVIEWS: the Figma's main frame only carried one card, duplicated
             under a second name. The other two live in frame 6:1718, parked to
             the right of the artboard at x=456. All three are reproduced here
             verbatim from that frame. */
          .s8{display:flex;flex-direction:column;gap:28px;align-items:flex-start;width:100%;font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
          .s8 *{box-sizing:border-box}
          .s8card{position:relative;background:#30341d;height:537px;overflow:hidden;border-radius:12px;width:100%}
          .s8bg{position:absolute;right:-1px;width:356px;height:705px;display:flex;align-items:center;justify-content:center}
          .s8bgin{position:relative;width:705px;height:356px;flex:0 0 auto}
          .s8bgin img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;opacity:0.25;max-width:none;display:block}
          .s8tint{position:absolute;left:0;top:0;right:0;bottom:0}
          .s8body{position:absolute;left:50%;transform:translateX(-50%);top:25.45px;width:296px;display:flex;flex-direction:column;gap:28px;align-items:flex-start}
          .s8inner{display:flex;flex-direction:column;gap:28px;align-items:flex-start;width:100%}
          .s8head{display:flex;flex-direction:column;gap:12px;align-items:flex-start;justify-content:center;width:269px}
          .s8rate{display:flex;gap:6px;align-items:center}
          .s8rt{margin:0;font-size:14px;line-height:1.3;letter-spacing:-0.07px;color:#ffffff;white-space:nowrap}
          .s8ru{text-decoration:underline;text-decoration-skip-ink:none}
          .s8stars{width:84px;height:16px;display:block;flex:0 0 auto}
          .s8h{margin:0;width:100%;font-weight:500;font-size:34px;line-height:1.15;letter-spacing:-0.68px;color:#ffffff;text-transform:capitalize;overflow-wrap:break-word}
          .s8sub{margin:0;width:253px;font-size:16px;line-height:1.3;color:#ffffff}
          .s8rail{display:flex;gap:12px;align-items:center;width:296px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:0px;scrollbar-width:none;-ms-overflow-style:none}
          .s8rail::-webkit-scrollbar{display:none}
          .s8rev{position:relative;background:#fafaf5;border:0.5px solid rgba(255,255,255,0.55);height:259px;overflow:hidden;border-radius:8px;width:280px;flex:0 0 auto;scroll-snap-align:start}
          .s8revin{position:absolute;left:15.5px;top:15.5px;width:250px;display:flex;flex-direction:column;gap:24px;align-items:flex-start}
          .s8top{display:flex;flex-direction:column;gap:16px;align-items:flex-start;width:100%}
          .s8r1{display:flex;gap:6px;align-items:center}
          .s8st2{width:70px;height:14px;display:block;flex:0 0 auto}
          .s8rated{margin:0;font-size:14px;line-height:1.3;color:#000000;white-space:nowrap}
          .s8rated b{font-weight:500}
          .s8quote{margin:0;width:235px;font-size:16px;line-height:1.3;color:#000000}
          .s8auth{display:flex;gap:6px;align-items:center}
          .s8auth img{width:10.739px;height:9.069px;display:block;flex:0 0 auto}
          .s8authn{margin:0;font-weight:500;font-size:16px;line-height:1.3;color:#536c21;white-space:nowrap}
          .s8bot{display:flex;gap:15px;align-items:flex-end;width:100%}
          .s8pl{display:flex;gap:10px;align-items:center}
          .s8thumb{background:rgba(255,255,255,0.15);border:1px solid #e6e6e6;border-radius:6px;width:48px;height:48px;padding:6px 8px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
          .s8thin{position:relative;width:10px;height:39.245px;overflow:hidden;flex:0 0 auto}
          .s8thin img{position:absolute;left:-139.72%;top:0;height:100%;width:241.71%;max-width:none;display:block}
          .s8pn{margin:0;width:128px;font-size:14px;line-height:1.3;color:#000000}
          .s8date{margin:0;font-size:12px;line-height:1.3;color:#536c21;text-align:right;white-space:nowrap}
          .s8dots{display:flex;gap:6px;align-items:center}
          .s8dota{width:38px;height:9px;border-radius:125px;background:#efffc3;flex:0 0 auto}
          .s8dot{width:9px;height:9px;border-radius:125px;background:rgba(250,253,182,0.25);flex:0 0 auto}
          .s8cta{display:flex;flex-direction:column;gap:16px;align-items:center;width:100%}
          .s8btn{position:relative;background:#005652;height:56px;overflow:hidden;border-radius:12px;width:328px;max-width:100%;flex:0 0 auto}
          .s8btnt{position:absolute;left:16px;right:48px;top:calc(50% - 0.5px);transform:translateY(-50%);margin:0;font-weight:500;font-size:16px;line-height:1.3;color:#ffffff;white-space:nowrap}
          .s8arrow{position:absolute;left:91.77%;right:5.08%;height:10.276px;top:calc(50% - 0.86px);transform:translateY(-50%);display:flex;align-items:center;justify-content:center}
          .s8arrow img{width:10.276px;height:10.3332px;transform:rotate(90deg);display:block;flex:0 0 auto}
          .s8gr{display:flex;gap:6px;align-items:center;justify-content:center}
          .s8gr img{width:14px;height:14px;display:block;flex:0 0 auto}
          .s8grt{margin:0;font-size:14px;line-height:1.3;color:#333333;white-space:nowrap}

          /* Wide screens. The whole panel body is a 296px absolutely-positioned
             block inside a fixed 537px card - correct on a phone, and the reason
             the copy looked stranded in a narrow column on desktop. Above 768 it
             becomes a flowed block and the card grows to fit it.
             left:auto matters as much as the position change: the mobile rule
             pins left:50% with a -50% transform to centre the block, and leaving
             left:50% behind while dropping the transform shunts the entire panel
             halfway off its own card. */
          @media (min-width:768px){
            .s8card{height:auto;padding:40px 32px}
            .s8body{position:relative;left:auto;transform:none;width:100%;top:auto}
            .s8head{width:100%}
            .s8sub{width:100%;max-width:640px}
            .s8rail{width:100%}
          }
/* Figma node 6:1775 - "Same molecule. A fraction of the price."
             Heading #1c3a13 / 32px / lh 1.15 / tracking -0.64px / capitalize;
                     sub #666 / 16px / lh 1.3 / w 258.
             Tiles   3 x 104px, gap 8, radius 5, padding 14px 8px. Default
                     border #e6e6e6; the Buy 3 tile is #e8ffef with a #005652
                     border. Label #005652 / Medium 16 / lh 1.2 / tracking
                     0.16px / centred / capitalize. Price #d00000 / Medium 14 /
                     lh 18px. Badges are 90x18, radius 12, left 7px, top -10px:
                     #6c8b17 "Most Popular", #005652 "Best Value", white 12px
                     lh 14px capitalize.
             Bottles are one shared product shot rendered as a 16x64 window with
                     the image at left -139.72% / width 241.71% - the exact crop
                     the source uses. Offsets are the source's calc() values, in
                     source paint order so the overlaps stack the same way.
             Stock   8px #5CD33F dot + #005652 16px, tracking -0.08px.
             CTA     #005652 / 56 / radius 12 / w 328; the Union asset is an UP
                     arrow the source rotates 90deg. */
          .s9{display:flex;flex-direction:column;gap:36px;align-items:flex-start;width:100%;font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif;-webkit-font-smoothing:antialiased}
          .s9 *{box-sizing:border-box}
          .s9hd{display:flex;flex-direction:column;gap:16px;align-items:flex-start;width:100%}
          .s9h{margin:0;width:100%;font-weight:500;font-size:32px;line-height:1.15;letter-spacing:-0.64px;color:#1c3a13;text-transform:capitalize;overflow-wrap:break-word}
          .s9sub{margin:0;width:258px;font-size:16px;line-height:1.3;color:#666666}
          .s9body{display:flex;flex-direction:column;gap:28px;align-items:flex-start;width:100%}
          .s9grp{display:flex;flex-direction:column;gap:28px;align-items:flex-start;width:100%}
          .s9tiles{display:flex;gap:8px;align-items:flex-start;width:100%}
          .s9tile{position:relative;border:1px solid #e6e6e6;border-radius:5px;padding:14px 8px;display:flex;flex-direction:column;gap:8px;align-items:center;justify-content:center;width:104px;flex:0 0 auto}
          .s9tile.sel{background:#e8ffef;border-color:#005652}
          .s9img{position:relative;height:64px;overflow:hidden;flex:0 0 auto}
          .s9b{position:absolute;width:16px;height:64px;overflow:hidden;top:50%;transform:translate(-50%,-50%)}
          .s9b img{position:absolute;left:-139.72%;top:0;height:100%;width:241.71%;max-width:none;display:block}
          .s9pg{display:flex;flex-direction:column;gap:8px;align-items:center;width:100%}
          .s9lab{margin:0;width:100%;font-weight:500;font-size:16px;line-height:1.2;letter-spacing:0.16px;color:#005652;text-align:center;text-transform:capitalize}
          .s9pw{display:flex;flex-direction:column;align-items:center;width:100%}
          .s9price{margin:0;font-weight:500;font-size:14px;line-height:18px;color:#d00000;white-space:nowrap}
          .s9badge{position:absolute;left:7px;top:-10px;width:90px;height:18px;border-radius:12px;padding:2px 4px;display:flex;align-items:center;justify-content:center}
          .s9badge span{font-weight:500;font-size:12px;line-height:14px;color:#ffffff;text-align:center;text-transform:capitalize;white-space:nowrap}
          .s9blk{display:flex;flex-direction:column;gap:16px;align-items:flex-start;width:100%}
          .s9stock{display:flex;gap:6px;align-items:center}
          .s9stock img{width:8px;height:8px;display:block;flex:0 0 auto}
          .s9stockt{margin:0;font-size:16px;line-height:1.3;letter-spacing:-0.08px;color:#005652;white-space:nowrap}
          .s9stockt b{font-weight:500}
          .s9btn{position:relative;background:#005652;height:56px;overflow:hidden;border-radius:12px;width:328px;max-width:100%;flex:0 0 auto}
          .s9btnt{position:absolute;left:16px;right:48px;top:calc(50% - 0.5px);transform:translateY(-50%);margin:0;font-weight:500;font-size:16px;line-height:1.3;color:#ffffff;white-space:nowrap}
          .s9arrow{position:absolute;left:91.77%;right:5.08%;height:10.276px;top:calc(50% - 0.86px);transform:translateY(-50%);display:flex;align-items:center;justify-content:center}
          .s9arrow img{width:10.276px;height:10.3332px;transform:rotate(90deg);display:block;flex:0 0 auto}
          .s9perks{display:flex;flex-direction:column;gap:12px;align-items:flex-start;width:100%}
          .s9perk{display:flex;gap:6px;align-items:center}
          .s9perk img{display:block;flex:0 0 auto}
          .s9perkt{margin:0;font-size:14px;line-height:1.3;color:#333333;white-space:nowrap}
          .s9close{margin:0;width:100%;font-size:16px;line-height:1.3;color:#666666}
/* Figma 6:1834 + 6:1838 + 6:1839 + 6:1840 + 6:1849 + 6:1851.
             These are SIX LOOSE SIBLINGS on the Figma canvas, not one frame.
             Composed here into one section.

             6:1834 is the card art: a 328x556 SVG, white fill + #EEEEEE 1px
             stroke, with a 228x51 tab notch sticking up at the top left. It is
             art, not a mask, so it goes in as a plain <img>.
             6:1838 is the tab label, sitting inside that notch.
             6:1839 + 6:1840 stack (gap 16) at left 16 / top 58 of the card.
             6:1849 is the rotated bottle. It is a SIBLING drawn ON TOP of the
             art, so it paints over the card's right border and bleeds past the
             card to the 360px page edge, where the page clips it.
             6:1851 (CTA + guarantee line) sits 27px below the card bottom.

             Aeonik Medium is unavailable, so the display face falls back to the
             house SF stack at weight 500. Every hex, px, radius, font-size and
             tracking value below is verbatim from get_design_context. */
          .gsec{position:relative;width:100%;overflow:hidden;
                font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif}
          .gcard{position:relative;width:328px;height:556px;margin:0 auto}
          .gart{position:absolute;left:0;top:0;width:328px;height:556px;display:block}
          .glabel{position:absolute;left:16px;top:33px;transform:translateY(-50%);margin:0;
                  color:#6c8b17;font-size:14px;line-height:1.3;word-break:break-word}
          .gcopy{position:absolute;left:16px;top:58px;display:flex;flex-direction:column;gap:16px}
          .ghead{color:#1c3a13;font-size:34px;font-weight:500;letter-spacing:-0.68px;
                 text-transform:capitalize;word-break:break-word}
          .ghead p{margin:0;line-height:1.15;white-space:nowrap}
          .gbody{margin:0;width:160px;color:#666;font-size:16px;line-height:1.3;word-break:break-word}
          .gbottle{position:absolute;left:88.6px;top:13.4px;width:267.315px;height:545.915px;
                   display:flex;align-items:center;justify-content:center}
          .gbottleClip{position:relative;flex:0 0 auto;width:135px;height:529px;
                       overflow:hidden;transform:rotate(15deg)}
          .gbottleClip img{position:absolute;left:-139.72%;top:0;width:241.71%;height:100%;
                           max-width:none;display:block}
          .gcta{margin-top:27px;display:flex;flex-direction:column;align-items:center;gap:16px}
          .gbtn{position:relative;width:328px;height:56px;border-radius:12px;background:#005652;overflow:hidden}
          .gbtnTx{position:absolute;left:16px;right:48px;top:calc(50% - 0.5px);transform:translateY(-50%);
                  margin:0;color:#ffffff;font-size:16px;font-weight:500;line-height:1.3;white-space:nowrap}
          .gbtnAr{position:absolute;left:300.9px;width:10.44px;height:10.276px;
                  top:calc(50% - 0.86px);transform:translateY(-50%);
                  display:flex;align-items:center;justify-content:center}
          .gbtnAr img{width:10.276px;height:10.3332px;transform:rotate(90deg);display:block}
          .gtrust{display:flex;align-items:center;justify-content:center;gap:6px}
          .gtrust img{width:14px;height:14px;display:block;flex:0 0 auto}
          .gtrust span{color:#333;font-size:14px;line-height:1.3;white-space:nowrap}
/* Figma node 12:98. bg #fafaf5, radius 12, overflow clip. The node is
             size-full in the source, so its box comes from the parent frame -
             measured off the Figma render as 320 x 188, sitting at page x=22.
             Content block 12:99 is absolute at left 16 / top 16, width 285,
             flex column gap 12. Each row is a 14px check badge + 15px copy,
             gap 5, items-center. The per-row text widths (255 / 237 / 194) are
             what drive the line breaks, so they are kept verbatim; row 3's
             wrapper carries its own 282px width. */
          .csec{position:relative;width:100%;
                font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif}
          .ccard{position:relative;width:320px;height:188px;margin:0 auto;
                 background:#fafaf5;border-radius:12px;overflow:hidden}
          .clist{position:absolute;left:16px;top:16px;width:285px;
                 display:flex;flex-direction:column;gap:12px;align-items:flex-start}
          .crow{display:flex;gap:5px;align-items:center;flex:0 0 auto}
          .crow img{width:14px;height:14px;display:block;flex:0 0 auto}
          .crow p{margin:0;flex:0 0 auto;color:#1c3a13;font-size:15px;line-height:1.3;word-break:break-word}
/* Figma node 12:117. Root is a 328px column, gap 48, sitting at page
             x=16. Three blocks:
               13:543  UGC row - three 141x169 black cards, gap 8, centred in the
                       328px column. 3*141 + 2*8 = 439, so it OVERFLOWS the column
                       by 55.5px each side and is clipped by the 360px page frame.
                       Each card holds its own hand-placed crop (source offsets
                       kept verbatim); card 3 stacks two images.
               6:1863  "Questions, answered." + seven 328x60 accordion rows +
                       CTA block.
               6:1904  the 446px "Made properly" card + CTA block. Its art SVG
                       (bf270204) is the same tab-notch shape used by the
                       guarantee section: 328x446, white fill, #EEEEEE stroke,
                       tab 248x57. The cut-out pouch photo is a rotated 17.85deg
                       frame clipped by the card.
             box-sizing is set explicitly: the 328x60 accordion rows carry a 1px
             border, and without it they render 330x62 and the column drifts 2px
             per row against the Figma source.
             ACCORDION: .rfaqRow has no fixed height any more. Its collapsed box
             comes from .rfaqBtn, a real 58px button - 58 + 2px of border = the
             source's 60px under border-box - so the collapsed row is pixel
             identical while an open row grows to fit .rfaqA underneath. The
             question and chevron stay absolutely positioned against a padding
             box of exactly the old dimensions, so no offset moves.
             Aeonik Medium is unavailable - display face falls back to the house
             SF stack at weight 500. All other values verbatim. */
          .rsec,.rsec *{box-sizing:border-box}
          .rsec{position:relative;width:100%;overflow:hidden;
                font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif}
          .rwrap{width:328px;margin:0 auto;display:flex;flex-direction:column;gap:48px;align-items:flex-start}

          .ugcRow{width:328px;display:flex;gap:8px;align-items:center;justify-content:center;flex:0 0 auto}
          .ugcCard{position:relative;flex:0 0 auto;width:141px;height:169px;border-radius:12px;
                   overflow:hidden;background:#000000}
          .ugcInner{position:absolute}
          .ugcInner img{position:absolute;top:0;height:100%;max-width:none;display:block}

          .rblock{width:100%;display:flex;flex-direction:column;gap:28px;align-items:flex-start}
          .rhead{margin:0;width:268px;color:#1c3a13;font-size:34px;font-weight:500;line-height:1.15;
                 letter-spacing:-0.68px;text-transform:capitalize;word-break:break-word}
          .rfaq{width:100%;display:flex;flex-direction:column;gap:12px;align-items:flex-start;justify-content:center}
          .rfaqRow{position:relative;flex:0 0 auto;width:328px;
                   border:1px solid #e6e6e6;border-radius:12px}
          .rfaqBtn{position:relative;display:block;width:100%;height:58px;margin:0;padding:0;border:0;
                   background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;
                   -webkit-appearance:none;appearance:none}
          .rfaqQ{position:absolute;margin:0;transform:translateY(-50%);
                 color:#333;font-size:15px;font-weight:500;line-height:1.3;word-break:break-word}
          .rfaqC{position:absolute;left:303px;top:calc(50% - 0.2px);transform:translateY(-50%);
                 width:8px;height:6.4px;display:flex;align-items:center;justify-content:center}
          .rfaqC img{width:6.4px;height:8px;transform:rotate(-90deg);display:block}
          .rfaqA{margin:0;padding:0 15px 16px 15px;color:#666;font-size:14px;font-weight:400;
                 line-height:1.45;word-break:break-word}

          .rcard{position:relative;width:328px;height:446px;overflow:hidden;background:#ffffff;flex:0 0 auto}
          .rcardArt{position:absolute;left:0;top:0;width:328px;height:446px;display:block}
          .rcardLabel{position:absolute;left:16px;top:25px;transform:translateY(-50%);width:293px;margin:0;
                      color:#6c8b17;font-size:14px;line-height:1.3;word-break:break-word}
          .rcardPhoto{position:absolute;left:0;top:96px;width:377px;height:401px;overflow:hidden}
          .rcardPhotoBox{position:absolute;left:-9px;top:-80px;width:589.856px;height:580.206px;
                         display:flex;align-items:center;justify-content:center}
          .rcardPhotoRot{position:relative;flex:0 0 auto;width:472.383px;height:457.431px;
                         overflow:hidden;transform:rotate(17.85deg)}
          .rcardPhotoRot img{position:absolute;left:-35.48%;top:0.08%;width:135.45%;height:99.87%;
                             max-width:none;display:block}
          .rcardCopy{position:absolute;left:16px;top:50px;width:293px;display:flex;flex-direction:column;gap:16px}
          .rcardH{margin:0;color:#1c3a13;font-size:34px;font-weight:500;line-height:1.15;
                  letter-spacing:-0.68px;text-transform:capitalize;word-break:break-word}
          .rcardP{margin:0;width:211px;color:#666;font-size:16px;line-height:1.3;word-break:break-word}

          .rctaBlock{width:100%;display:flex;flex-direction:column;align-items:center;gap:16px}
          .rbtn{position:relative;width:328px;height:56px;border-radius:12px;background:#005652;overflow:hidden}
          .rbtnTx{position:absolute;left:16px;right:48px;top:calc(50% - 0.5px);transform:translateY(-50%);
                  margin:0;color:#ffffff;font-size:16px;font-weight:500;line-height:1.3;white-space:nowrap}
          .rbtnAr{position:absolute;left:300.9px;width:10.44px;height:10.276px;
                  top:calc(50% - 0.86px);transform:translateY(-50%);
                  display:flex;align-items:center;justify-content:center}
          .rbtnAr img{width:10.276px;height:10.3332px;transform:rotate(90deg);display:block}
          .rtrust{display:flex;align-items:center;justify-content:center;gap:6px}
          .rtrust img{width:14px;height:14px;display:block;flex:0 0 auto}
          .rtrust span{color:#333;font-size:14px;line-height:1.3;white-space:nowrap}
/* Figma node 6:1427 - problem section. All hex / px / radii / tracking verbatim.
             The 328x827 card "Union" is an exported SVG carrying its own white fill,
             1px #EEEEEE stroke and the notch cut out of the top-right corner (the
             path steps down to y=33 from x=122). Plain img behind absolutely-placed
             children is the faithful translation - it is not a mask fill.
             Note the h2 is 294px wide inside a 287px column in the source; that
             7px overhang is intentional in Figma and is preserved.
             Right-hand photo is not object-cover: Figma crops it with an inner
             206.25%-wide image pushed left -105.63% and top -0.05%, so those exact
             numbers are kept rather than swapped for a cover fit.
             The CTA arrow asset is an UP arrow (10.276 x 10.3332) rotated 90deg.
             The blank line between the two closing paragraphs is a real empty line
             in the source (16px x 1.3 = 20.8px), reproduced as margin-top. Figma's
             whitespace-pre-wrap is deliberately NOT carried over: the copy strings
             contain no newlines, and pre-wrap would instead render this file's own
             source indentation as extra blank lines and shove the last paragraph
             out through the bottom of the card. */
          .s4{width:100%;display:flex;flex-direction:column;gap:28px;align-items:flex-start;
              font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif;
              -webkit-font-smoothing:antialiased}
          .s4 p{margin:0}

          .s4card{position:relative;width:328px;max-width:100%;height:827px;flex:0 0 auto}
          .s4cardbg{position:absolute;left:0;top:0;width:328px;height:827px;display:block}

          .s4copy{position:absolute;left:16px;top:16px;width:287px;display:flex;flex-direction:column;gap:16px;align-items:flex-start}
          .s4kicker{color:#b52a1d;font-size:14px;line-height:1.3;min-width:100%}
          .s4h1{text-transform:capitalize;font-weight:500;font-size:32px;line-height:1.15;letter-spacing:-0.64px;color:#1c3a13;width:294px}
          .s4lede{color:#666;font-size:16px;line-height:1.3;width:287px}

          .s4shot{position:absolute;top:406px;width:153px;height:230px;border-radius:12px;overflow:hidden}
          .s4shot--a{left:8px}
          .s4shot--b{left:167px}
          .s4shot--a img{position:absolute;left:0;top:0;width:100%;height:100%;object-fit:cover;display:block;max-width:none}
          .s4shot--b img{position:absolute;left:-105.63%;top:-0.05%;width:206.25%;height:100.1%;display:block;max-width:none}

          .s4close{position:absolute;left:16px;top:660px;width:296px;color:#666;font-size:16px}
          .s4close p{line-height:1.3}
          .s4close p + p{margin-top:20.8px}
          .s4close .lead{font-weight:500;color:#000000;line-height:1.3}

          .s4foot{display:flex;flex-direction:column;gap:16px;align-items:center;width:100%}

          .s4cta{position:relative;width:328px;max-width:100%;height:56px;background:#005652;border-radius:12px;overflow:hidden;flex:0 0 auto}
          .s4cta p{position:absolute;left:16px;right:48px;top:calc(50% - 0.5px);transform:translateY(-50%);
                   font-weight:500;font-size:16px;line-height:1.3;color:#ffffff;white-space:nowrap}
          .s4ctaico{position:absolute;left:91.77%;right:5.08%;top:calc(50% - 0.86px);transform:translateY(-50%);
                    height:10.276px;display:flex;align-items:center;justify-content:center}
          .s4ctaico img{width:10.276px;height:10.3332px;display:block;transform:rotate(90deg)}

          .s4guar{display:flex;align-items:center;justify-content:center;gap:6px}
          .s4guar img{width:14px;height:14px;display:block;flex:0 0 auto}
          .s4guar p{color:#333;font-size:14px;line-height:1.3;white-space:nowrap}

          /* Wide screens. Every child of this card is absolutely positioned at a
             top measured against a 328px column - copy at 16, photos at 406,
             closing copy at 660 - inside a card frozen at 827px tall. Widen the
             card and the copy reflows shorter while those tops do not move, so
             the section opened a gap under the intro, then ran the closing
             paragraphs straight over the photos, then left more dead space at
             the bottom. Above 768 the children flow instead: copy full width,
             the two photos side by side, closing copy beneath, and the card
             sizes to its content. The card art is the one thing that stays
             absolute, stretched to whatever height the content ends up.

             Every flowed child keeps position:RELATIVE rather than dropping to
             static, for two separate reasons that both look like the element
             vanished:
               - the card art is an absolutely positioned sibling, and a
                 positioned element paints above a static one, so static copy
                 disappears behind the white panel;
               - only a positioned ancestor is a containing block, so a static
                 .s4shot stops clipping its 206%-wide crop and the photo escapes
                 across the whole card.
             The selectors are three classes deep so they outrank the page-level
             responsive layer, which still pins a top and left for mobile. */
          @media (min-width:768px){
            .s4card{height:auto;width:100%;padding:32px;
                    display:flex;flex-wrap:wrap;gap:28px 16px;align-items:flex-start}
            .s4cardbg{width:100%;height:100%}
            .s4 .s4card .s4copy{position:relative;top:auto;left:auto;flex:1 1 100%;width:100%}
            .s4h1{width:100%}
            .s4lede{width:100%}
            .s4 .s4card .s4shot{position:relative;top:auto;left:auto;
                                flex:0 1 calc(50% - 8px);height:340px}
            .s4 .s4card .s4close{position:relative;top:auto;left:auto;flex:1 1 100%;width:100%}
          }
/* Figma node 13:423. Values verbatim from get_design_context.
             Three parts, root gap 48: the "how it is made" block (headline,
             222px card carousel, dot pager, 3 accordion rows, closing copy,
             CTA), the 3 up 141x169 photo tiles (13:404), then the objection
             accordion block (6:1631) with its own CTA.
             The carousel is 3 x 222px + 12px gaps inside a 336px viewport, so
             it scrolls horizontally with x mandatory snapping. scroll-padding
             -left is 0 because the page frame already supplies the 12px gutter
             through its own side padding; without the declaration the snap
             would still cancel any gutter set here.
             Card photos are deliberate crops (negative offsets), not cover
             fits, so each photo carries its own geometry from the source. Each
             image card lays rgba(0,0,0,0.2) over the photo, which keeps the
             photo visible under the white title. The chevron on every accordion
             row is the exported Vector asset rotated -90deg, never a drawn
             glyph; open rows rotate it to +90deg, a 180deg flip.
             13:404 is 328px wide holding 3 x 141px + 8px gaps = 439px, centre
             justified, so the outer two tiles bleed past the page edge. That is
             the source geometry; the page frame clips it, same as Figma.
             .him-row is overflow:hidden for the same reason: 6:1645 carries
             right:-109px in the source, a text box that overhangs its row and
             is clipped by the frame.
             ACCORDION: .him-row no longer carries height:60px. Its collapsed
             height now comes from .him-rowbtn (a real 60px button), so the
             collapsed box is byte-identical to the source while an open row can
             grow to fit .him-ans underneath. This file is content-box (there is
             no box-sizing reset), so the row's padding box stays 328x60 and
             every absolute offset inside it is unchanged.

             NO INTRO PARAGRAPH under the headline. The Figma had one (12:72)
             but it was the comparison section's intro pasted in verbatim, down
             to "here is the whole category side by side" - describing a table
             that is not in this section. Removed rather than reworded, because
             the headline already sets up the three cards that follow it. */
          .him{width:100%;display:flex;flex-direction:column;gap:48px;align-items:flex-start;
               font-family:-apple-system,'SF Pro Display','Helvetica Neue',Helvetica,sans-serif}
          .him-blk{display:flex;flex-direction:column;gap:28px;align-items:flex-start;width:100%}
          .him-head{display:flex;flex-direction:column;gap:16px;align-items:flex-start;width:100%;word-break:break-word}
          .him-h2{margin:0;text-transform:capitalize;font-weight:500;line-height:1.15;color:#1c3a13;font-size:32px;letter-spacing:-0.64px;width:100%}
          .him-body{margin:0;width:100%;font-weight:400;color:#666;font-size:16px;line-height:1.3;word-break:break-word}

          .him-rail{display:flex;gap:12px;align-items:center;width:100%;
                    overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
                    scroll-snap-type:x mandatory;scroll-padding-left:0px;scrollbar-width:none}
          .him-rail::-webkit-scrollbar{display:none}
          .him-card{display:flex;flex-direction:column;gap:16px;align-items:flex-start;width:222px;flex:0 0 222px;scroll-snap-align:start}
          .him-shot{position:relative;background:#b7b7b7;height:280px;border-radius:12px;overflow:hidden;width:100%;flex:0 0 auto}
          .him-shotinner{position:absolute}
          .him-shotclip{position:absolute;inset:0;overflow:hidden}
          .him-shotclip img{max-width:none}
          .him-shotveil{position:absolute;inset:0;background:rgba(0,0,0,0.2)}
          .him-shottitle{position:absolute;margin:0;text-transform:capitalize;font-weight:500;line-height:1.15;font-size:24px;color:#ffffff;letter-spacing:-0.48px;word-break:break-word}
          .him-cap{margin:0;width:100%;font-weight:400;font-size:16px;line-height:1.3;color:rgba(0,0,0,0.6);word-break:break-word}

          .him-dots{display:flex;gap:3px;align-items:center;flex:0 0 auto}
          .him-dot-on{background:#6c8b17;height:9px;width:38px;border-radius:125px;flex:0 0 auto}
          .him-dot-off{background:rgba(108,139,23,0.25);height:9px;width:9px;border-radius:125px;flex:0 0 auto}

          .him-acc{display:flex;flex-direction:column;gap:12px;align-items:flex-start;justify-content:center;width:100%}
          .him-row{position:relative;border:1px solid #e6e6e6;border-radius:12px;width:328px;flex:0 0 auto;overflow:hidden}
          .him-rowbtn{position:relative;display:block;width:100%;height:60px;margin:0;padding:0;border:0;
                      background:none;font:inherit;color:inherit;text-align:left;cursor:pointer;
                      -webkit-appearance:none;appearance:none}
          .him-rowtx{position:absolute;left:15px;top:50%;transform:translateY(-50%);font-weight:500;font-size:15px;line-height:1.3;color:#333;word-break:break-word}
          .him-chev{position:absolute;left:303px;top:calc(50% - 0.2px);transform:translateY(-50%);width:8px;height:6.4px;display:flex;align-items:center;justify-content:center}
          .him-chev img{display:block;width:6.4px;height:8px;max-width:none;transform:rotate(-90deg)}
          .him-ans{margin:0;padding:0 15px 16px 15px;font-weight:400;font-size:14px;line-height:1.45;color:#666;word-break:break-word}

          .him-tiles{display:flex;gap:8px;align-items:center;justify-content:center;width:328px;flex:0 0 auto}
          .him-tile{position:relative;background:#000000;height:169px;width:141px;border-radius:12px;overflow:hidden;flex:0 0 auto}
          .him-tileinner{position:absolute}
          .him-tileclip{position:absolute;inset:0;overflow:hidden}
          .him-tileclip img{max-width:none}

          .him-ctawrap{display:flex;flex-direction:column;gap:16px;align-items:center;width:100%}
          .him-cta{position:relative;display:block;flex:0 0 auto;background:#005652;height:56px;width:328px;border-radius:12px;overflow:hidden;text-decoration:none}
          .him-ctatx{position:absolute;left:16px;right:48px;top:calc(50% - 0.5px);transform:translateY(-50%);
                     font-weight:500;font-size:16px;line-height:1.3;color:#ffffff;white-space:nowrap}
          .him-ctaarrow{position:absolute;left:91.77%;right:5.08%;top:calc(50% - 0.86px);transform:translateY(-50%);
                        height:10.276px;display:flex;align-items:center;justify-cont