/** Shopify CDN: Minification failed

Line 334:2 Unexpected "{"
Line 334:3 Unexpected "{"
Line 334:5 Expected identifier but found "''"

**/
/* ============================================================================
   Samedi PDP v2. Extracted from sections/samedi-product.liquid on 3 Oct 2026.
   ⛔ WHY: the section hit Shopify's 256 KB template limit. Nothing here changed,
   it only moved. ORDER IS PRESERVED EXACTLY as it was inline, and the stylesheet
   is linked at the same point in the section where the first block used to sit,
   so the cascade resolves identically.
   ⚠️ Keep adding new rules at the END of this file, never in the middle.
   ============================================================================ */


  /* [sm-28sep] A sold-out SIZE says so in words, not only a strike-through (Ilyas: sizes shown
     even when sold out). Length chips only: the rings keep their bare struck letters. The word is an
     inline-block so the button's line-through does not run through it. */
  .pdp .buybox .opt-row:has(select[data-opt=length]) .opt-chip.out .opt-chip-t::after{content:"Sold out";display:inline-block;margin-left:8px;text-decoration:none;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase}
  /* [b8-29sep] DESKTOP ONLY. "Find your size" sits directly under the size buttons, in the normal
     flow (it follows the size row in the markup). Phones keep it top right on the size label line. */
  @media (min-width:901px){
    /* [pdpdesk-30sep] Ilyas 29 Sep: "Find your size" back on the Size line, right aligned, the way
       phones have it, so Add to cart moves up into the gap it left. Replaces the [b8-29sep]
       under-the-dropdown placement. top:18px centres it on the 20px Size label (form padding 18px). */
    .pdp .buybox .pdp-form > .fit-btn:not(.fit-btn--solo){position:absolute !important;top:18px !important;right:0 !important;left:auto !important;display:inline-flex !important;align-items:center !important;min-height:0 !important;margin:0 !important;padding:0 !important;background:transparent !important}
    .pdp .buybox .pdp-form > .fit-btn:not(.fit-btn--solo) .fit-btn-h{display:none !important}
    /* [pdpdesk-30sep] The size row now ends the size section: 20px to the hairline above Add to
       cart, the same rhythm as the hairline under the card logos (about 18 to 20px each side). */
    .pdp .buybox .pdp-form .opt-row{margin-bottom:0 !important}
    .pdp .buybox .pdp-form .atc-sep{margin-top:20px !important}
  }
  /* [pdpdesk-30sep] Desktop title on ONE line at 1280 and 1440 for every product. Longest title is
     "King's Byzantine Bracelet (6mm)", 448px at 30px; the 1280 buy column is 420px, so all titles
     share 27.5px (410px), the smallest step down that clears it with a margin for Safari. */
  @media (min-width:1001px){
    .pdp .buybox .title-block h1,.pdp .buybox h1{font-size:27.5px !important}
  }
  @media (min-width:901px){
    /* [b8-29sep] DESKTOP ONLY, lighter type (Ilyas: refined, not heavy; Serge DeNimes benchmark).
       Only weights already loaded are used (Fraunces 400, Archivo 400/500, Hanken 400), so nothing
       new is downloaded and nothing is synthesised. Phones are untouched. */
    .pdp h1,.pdp .buybox h1{font-weight:400 !important}
    .pdp .buybox .price,.pdp .buybox [data-price]{font-weight:400 !important}
    .pdp .buybox .pdp-form .opt-row .opt-label,.pdp .buybox .pdp-form .opt-row--fixed .opt-label{font-weight:400 !important}
    .pdp .spec-tx .k{font-weight:500 !important}
    .pdp .spec-tx .v{font-weight:400 !important}
    .pdp .buybox .deliver-row b{font-weight:500 !important}
    .pdp .buybox .fit-btn-l{font-weight:400 !important}
    .pdp #atc-form [type=submit]{font-weight:500 !important}
    .pdp .ship-line,.pdp .ship-line span{font-weight:400 !important}
    .pdp summary,.pdp .pd-h,.pdp .acc-t,.pdp h2,.pdp h3{font-weight:400 !important}
  }
  /* [pdpdesk-30sep] Ilyas 29 Sep (desc-gap.png): less air between the "Product details" heading and
     the first line of the description, phone and desktop. */
  .pdp .spec-acc-d{margin-top:0 !important}
  /* [specdesc-30sep] Ilyas 29 Sep: descenders (g, y) in the Specification values were cut off.
     Cause: samedi.css gives `.buybox .spec .v` overflow:hidden (for the ellipsis) and
     [spec2b-29sep] a 1.15 line height, so the Fraunces tails fell outside the box. More line
     height and a little more cell padding, phone and desktop; the ellipsis still works. */
  .pdp .buybox .spec2-grid .v{line-height:1.4 !important;padding-bottom:1px}
  .pdp .buybox .spec2-grid .spec{padding-top:7px !important;padding-bottom:7px !important}
  @media (min-width:901px){.pdp .buybox .spec2-grid .spec{padding-top:8px !important;padding-bottom:8px !important}}
  .pdp .buybox .fit-line{margin:-4px 0 14px;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:13.5px;line-height:1.5;color:var(--lx-ink,#111)}
  .pdp .buybox .fit-line-a{display:inline;margin:0 0 0 4px;padding:6px 0;border:0;background:none;font:inherit;color:var(--lx-ink,#111);text-decoration:underline;text-decoration-color:var(--lx-gold,#C9A866);text-underline-offset:3px;cursor:pointer}
  .sgx-fits{display:grid;gap:14px;margin:22px 0 26px}
  .sgx-fit{border-top:1px solid var(--lx-line,rgba(0,0,0,.12))}
  .sgx-len{margin:14px 0 4px;font-family:var(--serif);font-weight:400;font-size:30px;line-height:1.1;color:var(--lx-ink,#111)}
  .sgx-len-s{margin-left:10px;font-family:'Archivo',sans-serif;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--lx-mute,#6B6B6B);vertical-align:middle}
  .sgx-rows{margin:0}
  .sgx-row{display:flex;justify-content:space-between;align-items:baseline;gap:12px;padding:12px 0;border-bottom:1px solid var(--lx-line,rgba(0,0,0,.12))}
  .sgx-row dt{font-family:'Archivo',sans-serif;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--lx-mute,#6B6B6B)}
  .sgx-row dd{margin:0;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:16px;color:var(--lx-ink,#111)}
  .sgx-row--h{padding:14px 0 8px}
  .sgx-h{margin:0;font-family:'Archivo',sans-serif;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--lx-mute,#6B6B6B)}
  .sgx-w{margin:0;flex:0 0 auto;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:16px;color:var(--lx-ink,#111);white-space:nowrap}
  .sgx-a{margin:0;text-align:right;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:14.5px;line-height:1.4;color:var(--lx-mute,#6B6B6B)}
  .sgx-a b{font-weight:500;color:var(--lx-ink,#111)}
  .sgx-fits .sgx-note{margin-top:10px}
  .sgx-h.sgx-h--size{font-family:var(--serif);font-size:19px;letter-spacing:0;text-transform:none;color:var(--lx-ink,#111)}
  .sgx-intro{margin:0 0 18px;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:15.5px;line-height:1.55;color:var(--lx-ink,#111)}
  .sgx-f{margin:0;font-family:'Archivo',sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--lx-ink,#111)}
  .sgx-fit .sgx-w{text-align:right}
  .sgx-calm{margin:14px 0 0;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:14.5px;line-height:1.5;color:var(--lx-ink,#111)}
  .sgx-fits .sgx-calm + .sgx-note{margin-top:4px}
  .sgx-k{margin:0 0 10px;font-family:'Archivo',sans-serif;font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--lx-label-deep,#85672A)}
  .sgx-k--how{margin-top:4px}
  .sgx-note{margin:6px 0 0;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:13px;line-height:1.45;color:var(--lx-mute,#6B6B6B)}



  .sgd.sg-modal{position:fixed;inset:0;z-index:1002;display:block}
  .sgd.sg-modal[hidden]{display:none}
  .sgd-scrim{position:absolute;inset:0;display:block;background:rgba(17,17,17,.45);opacity:0;transition:opacity .28s ease;cursor:pointer}
  .sgd-panel{position:absolute;top:0;right:0;bottom:0;display:flex;flex-direction:column;width:440px;max-width:92vw;background:#fff;color:var(--lx-ink,#111);box-shadow:-24px 0 60px -30px rgba(0,0,0,.35);transform:translateX(100%);transition:transform .32s cubic-bezier(.2,.7,.2,1);outline:none}
  .sgd.is-open .sgd-scrim{opacity:1}
  .sgd.is-open .sgd-panel{transform:none}
  @media (prefers-reduced-motion:reduce){.sgd-scrim,.sgd-panel{transition:none}}
  .sgd-head{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 16px 14px 28px;border-bottom:1px solid rgba(0,0,0,.1)}
  .sgd-title{margin:0;font-family:var(--serif,'Fraunces',Georgia,serif);font-weight:400 !important;font-size:26px;line-height:1.2;letter-spacing:0;color:var(--lx-ink,#111)}
  .sgd-x{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;margin:0;padding:0;border:0;background:none;color:var(--lx-ink,#111);cursor:pointer;border-radius:4px}
  .sgd-x svg{width:20px;height:20px}
  .sgd-x:focus-visible{outline:2px solid var(--lx-gold,#C9A866);outline-offset:1px}
  .sgd-body{flex:1 1 auto;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:22px 28px 32px}
  .sgd-steps{margin:0 0 16px;padding:0;list-style:none;counter-reset:sgd}
  .sgd-steps li{counter-increment:sgd;display:flex;gap:6px;margin:0 0 4px;font-family:'Hanken Grotesk',system-ui,sans-serif;font-weight:400;font-size:15.5px;line-height:1.55;color:var(--lx-ink,#111)}
  .sgd-steps li::before{content:counter(sgd) ".";flex:0 0 auto;min-width:16px}
  .sgd-p{margin:0 0 12px;font-family:'Hanken Grotesk',system-ui,sans-serif;font-weight:400;font-size:15px;line-height:1.6;color:var(--lx-ink,#111)}
  .sgd-p--mute{color:var(--lx-mute,#6B6B6B)}
  .sgd-ill{display:block;margin:22px 0 24px;color:#3A3B40}
  .sgd-ill svg{display:block;width:100%;height:auto}
  .sgd-ill .ln{fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
  .sgd-ill .tk{fill:none;stroke:currentColor;stroke-width:1;stroke-linecap:round}
  .sgd-ill .gd{fill:none;stroke:#C9A866;stroke-width:2.2;stroke-linecap:round}
  .sgd-ill .ld{fill:none;stroke:currentColor;stroke-width:1;stroke-dasharray:2 2.5}
  .sgd-ill .nm{font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:7.5px;fill:currentColor}
  .sgd-ill .pill{fill:#111}
  .sgd-ill .pt{font-family:'Hanken Grotesk',system-ui,sans-serif;font-weight:500;font-size:10.5px;fill:#fff}
  .sgd-tbl{width:100%;border-collapse:collapse;margin:0 0 16px;font-family:'Hanken Grotesk',system-ui,sans-serif;color:var(--lx-ink,#111)}
  .sgd-tbl th{padding:0 12px 10px;text-align:left;font-family:'Archivo',sans-serif;font-weight:500;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--lx-mute,#6B6B6B)}
  .sgd-tbl td{padding:12px;font-size:15px;font-weight:400;line-height:1.3;vertical-align:middle}
  .sgd-tbl tbody tr:nth-child(odd) td{background:#F2F2F2}
  .sgd-tbl tbody + tbody tr:first-child td{border-top:10px solid #fff}
  .sgd-tbl .sz{width:34%;white-space:nowrap}
  .sgd-tbl .sz b{display:block;font-family:var(--serif,'Fraunces',Georgia,serif);font-weight:400;font-size:20px;line-height:1.1}
  .sgd-tbl .sz small{display:block;margin-top:2px;font-size:12.5px;color:var(--lx-mute,#6B6B6B)}
  .sgd-tbl .w{text-align:right;white-space:nowrap}
  .sgd-tbl th.w{text-align:right}
  .sgd-calm{margin:4px 0 6px;font-family:'Hanken Grotesk',system-ui,sans-serif;font-weight:400;font-size:15px;line-height:1.5;color:var(--lx-ink,#111)}
  .sgd-video{margin-top:22px}
  .sgd-video video{display:block;width:100%;height:auto}
  @media (max-width:600px){
    .sgd-head{padding:14px 10px 12px 20px}
    .sgd-title{font-size:23px}
    .sgd-body{padding:18px 20px 28px}
    .sgd-steps li{font-size:15px}
    .sgd-tbl td{padding:11px 10px}
    .sgd-tbl th{padding:0 10px 9px}
  }



  /* [playbadge-2oct] play cue on gallery video tiles */
  .gal-slide{position:relative}
  .gal-playbadge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
    width:52px;height:52px;pointer-events:none;z-index:2;opacity:.92;transition:opacity .2s ease}
  .gal-playbadge svg{width:100%;height:100%;display:block}
  .gal-slide:hover .gal-playbadge{opacity:1}
  @media (max-width:899px){.gal-playbadge{width:48px;height:48px}}
  /* once it is actually playing the motion is the cue, so both fade away */
  .gal-slide.is-playing .gal-playbadge{opacity:0}

  /* [headband-24sep] white band: thumbnail strip, then eyebrow, title, price and rating, ending
     where Specification starts. Phones use the same full-bleed trick as the grey band. */
  .pdp .thumb-rail,.buybox .head-band{background:#fff}
  .pdp .thumb-rail{padding-top:12px}
  .buybox .head-band{padding-bottom:14px}
  @media (max-width:899px){
    .pdp .thumb-rail,.buybox .head-band{box-shadow:0 0 0 100vmax #fff;clip-path:inset(0 -100vmax)}
    .buybox .head-band{padding-top:14px}
  }
  @media (min-width:900px){
    .buybox .head-band{padding:0 22px 16px;margin:0 -22px}
    .pdp .thumb-rail{padding-bottom:10px}
  }
  .gal-slide img{cursor:zoom-in}
  .zoombox{position:fixed;inset:0;z-index:9999;background:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden;touch-action:none}
  .zoombox[hidden]{display:none}
  .zoombox-img{max-width:100%;max-height:100%;transform-origin:0 0;will-change:transform;user-select:none;-webkit-user-drag:none;cursor:zoom-in}
  .zoombox.is-in .zoombox-img{cursor:grab}
  .zoombox-x{position:absolute;top:14px;right:14px;width:44px;height:44px;border:0;border-radius:50%;background:#fff;color:#111;box-shadow:0 2px 10px rgba(0,0,0,.18);font-size:22px;line-height:1;cursor:pointer;z-index:2}
  .zoombox-tip{position:absolute;bottom:18px;left:0;right:0;text-align:center;font-family:'Archivo',sans-serif;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:#6a6a6a;pointer-events:none}


  /* [bisx-3oct] back in stock modal */
  .bisx[hidden]{display:none}
  .bisx{position:fixed;inset:0;z-index:400;display:flex;align-items:center;justify-content:center;padding:20px}
  .bisx-scrim{position:absolute;inset:0;border:0;padding:0;background:rgba(0,0,0,.5);cursor:pointer}
  .bisx-card{position:relative;width:100%;max-width:360px;background:#fff;border-radius:8px;
    padding:22px 20px 20px;box-shadow:0 20px 50px -12px rgba(0,0,0,.45)}
  .bisx-x{position:absolute;top:8px;right:8px;width:36px;height:36px;display:flex;align-items:center;
    justify-content:center;background:none;border:0;color:#555;cursor:pointer}
  .bisx-x svg{width:19px;height:19px}
  .bisx-t{margin:0 26px 14px 0;font-family:'Hanken Grotesk',sans-serif;font-weight:600;font-size:16px;
    line-height:1.3;color:var(--lx-ink,#111)}
  .bisx input{width:100%;min-height:46px;padding:11px 13px;font-size:16px;
    font-family:'Hanken Grotesk',sans-serif;color:var(--lx-ink,#111);background:#fff;
    border:1px solid #DCDCDC;border-radius:4px;-webkit-appearance:none}
  .bisx input:focus{outline:2px solid var(--lx-gold,#C9A866);outline-offset:1px;border-color:var(--lx-gold,#C9A866)}
  .bisx-go{width:100%;min-height:46px;margin-top:9px;background:var(--lx-ink,#111);color:#fff;border:0;
    border-radius:4px;font-family:Archivo,sans-serif;font-weight:700;font-size:12.5px;letter-spacing:.12em;
    text-transform:uppercase;cursor:pointer}
  .bisx-go[disabled]{opacity:.55;cursor:default}
  .bisx-note{margin:10px 0 0;font-size:12.5px;line-height:1.45;color:#6b6b6b}
  .bisx-err{margin:9px 0 0;font-size:13px;color:#B3261E}
  .bisx-done{margin:0;font-size:15px;line-height:1.45;color:var(--lx-ink,#111)}

  /* [etaup-3oct] delivery promise, cutoff and date, directly above Add to Cart */
  .pdp .atc-eta{display:flex;align-items:center;gap:8px;margin:0 0 10px;
    font-family:'Hanken Grotesk',sans-serif;font-size:13.5px;line-height:1.4;color:#3d3d3d}
  .pdp .atc-eta svg{width:16px;height:16px;flex:none;color:var(--lx-gold,#C9A866)}
  .pdp .atc-eta b{font-weight:600;color:var(--lx-ink,#111)}

  /* [sibwidth-3oct] same piece, other width. Quiet by design: it sits under Add to Cart and must
     never compete with it. */
  .pdp .sibw{display:flex;align-items:center;justify-content:space-between;gap:12px;
    margin:14px 0 0;padding:13px 14px;background:#F7F7F7;border:1px solid #E6E6E6;border-radius:6px;
    text-decoration:none;color:var(--lx-ink,#111)}
  .pdp .sibw-q{font-family:'Hanken Grotesk',sans-serif;font-size:13.5px;color:#5b5b5b}
  .pdp .sibw-p{display:flex;align-items:center;gap:7px;font-family:'Hanken Grotesk',sans-serif;
    font-weight:600;font-size:14px;white-space:nowrap}
  .pdp .sibw-p svg{width:15px;height:15px;flex:none;color:var(--lx-gold,#C9A866)}
  .pdp .sibw:active{opacity:.65}
  @media (max-width:420px){
    .pdp .sibw{flex-direction:column;align-items:flex-start;gap:5px}
    .pdp .sibw-p{font-size:14.5px}
  }



  .opt-sel--laddered{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;
    overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
  .szl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:8px}
  .szl-fit{grid-column:1/-1;margin:2px 0 0;font-size:12.5px;line-height:1.4;color:var(--lx-mute,#6B6B6B)}
  .szl-o{display:flex;flex-direction:column;gap:2px;align-items:flex-start;text-align:left;
    padding:11px 13px;border:1px solid var(--lx-line,rgba(0,0,0,.12));background:#fff;
    border-radius:2px;font:inherit;color:inherit;width:100%}
  button.szl-o{cursor:pointer;transition:border-color .16s ease,background .16s ease}
  button.szl-o:hover{border-color:rgba(0,0,0,.34)}
  .szl-n{font-size:14.5px;font-weight:600;letter-spacing:.01em;color:var(--lx-ink,#111)}
  .szl-s{font-size:11.5px;line-height:1.3;color:var(--lx-mute,#6B6B6B)}
  /* The size this piece IS. Ink border, the same weight the primary button carries, so the eye
     lands on the one that can be bought. */
  .szl-o.is-on{border-color:var(--lx-ink,#111);border-width:2px;padding:10px 12px}
  /* Never made, and never dressed as a temporary shortage. No strike-through: it was not withdrawn,
     it does not exist, and a line through it reads as sold out. */
  .szl-o.is-na{background:var(--lx-grey,#F0F0F0);border-color:transparent}
  .szl-o.is-na .szl-n{color:#9A9A9A;font-weight:500}
  .szl-o.is-na .szl-s{color:#9A9A9A}
  /* Made, but at zero. This one IS a shortage, so it reads differently and keeps the strike. */
  .szl-o.is-oos{background:#fff;border-style:dashed}
  .szl-o.is-oos .szl-n{color:#9A9A9A;text-decoration:line-through;text-decoration-thickness:1px}
  .szl-o.is-oos .szl-s{color:#8A6F2E}
  @media (max-width:420px){
    .szl{gap:8px}
    .szl-o{padding:10px 11px}
    .szl-o.is-on{padding:9px 10px}
    .szl-n{font-size:14px}
  }

  /* ================= [v2bands-3oct] the three concept bands ================= */
  .vrev{background:#FAF8F5;border-top:1px solid #EFEBE5;border-bottom:1px solid #EFEBE5}
  .vrev-in{display:flex;align-items:center;gap:30px;padding-top:24px;padding-bottom:24px}
  .vrev-score{flex:none;text-align:center;padding-right:30px;border-right:1px solid #E6E1DA}
  .vrev-stars{display:block;color:var(--lx-gold,#C9A866);font-size:16px;letter-spacing:2px}
  .vrev-num{display:block;font-family:'Hanken Grotesk',sans-serif;font-weight:600;font-size:14px;margin-top:4px}
  .vrev-cnt{display:block;font-size:12px;color:#8a8a8a;margin-top:2px}
  .vrev-quotes{flex:1 1 auto;min-width:0;position:relative}
  .vrev-q{display:none;margin:0}
  .vrev-q.is-on{display:block}
  .vrev-q p{margin:0;font-family:Fraunces,Georgia,serif;font-size:17px;line-height:1.45;font-style:italic;color:var(--lx-ink,#111)}
  .vrev-q cite{display:block;margin-top:7px;font-style:normal;font-size:12.5px;color:#8a8a8a}
  .vrev-nav{flex:none;display:flex;gap:8px}
  .vrev-nav button{width:38px;height:38px;display:flex;align-items:center;justify-content:center;
    background:none;border:1px solid #DCD6CD;border-radius:50%;color:var(--lx-ink,#111);cursor:pointer}
  .vrev-nav svg{width:17px;height:17px}

  .vmat{background:#FAF8F5}
  .vmat-in{display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:center;
    padding-top:64px;padding-bottom:64px}
  .vmat-tx h2{margin:6px 0 16px;font-family:Fraunces,Georgia,serif;font-size:38px;line-height:1.1}
  .vmat-tx p{margin:0 0 22px;font-size:15px;line-height:1.65;color:#4a4a4a;max-width:46ch}
  .vmat-list{list-style:none;margin:0;padding:0;display:grid;gap:15px}
  .vmat-list li{display:flex;align-items:flex-start;gap:12px}
  .vmat-list svg{width:25px;height:25px;flex:none;color:var(--lx-ink,#111)}
  .vmat-list b{display:block;font-family:'Hanken Grotesk',sans-serif;font-weight:600;font-size:14.5px;line-height:1.3}
  .vmat-list i{display:block;font-style:normal;font-size:13px;color:#8a8a8a;margin-top:1px}
  .vmat-img img{display:block;width:100%;height:auto;border-radius:2px}

  .vlife{position:relative;background-size:cover;background-position:center 38%;color:#fff}
  .vlife::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(10,10,12,.88) 0%,rgba(10,10,12,.62) 42%,rgba(10,10,12,.12) 100%)}
  .vlife-in{position:relative;padding-top:96px;padding-bottom:96px;max-width:560px;margin-inline:0}
  .vlife .eyebrow{color:var(--lx-gold,#C9A866)}
  /* [goldeyebrow-3oct] The light bands inherit a grey .eyebrow from the main stylesheet, so the
     label gold is set here explicitly. #85672A is the theme's own --lx-label: the brighter
     --lx-gold is for dark grounds and goes muddy on cream. ⛔ The concept's orange is not used. */
  .vmat .eyebrow,.vrev .eyebrow{color:var(--lx-label,#85672A)}
  .vlife h2{margin:8px 0 14px;font-family:Fraunces,Georgia,serif;font-size:40px;line-height:1.08;color:#fff}
  .vlife p{margin:0;font-size:15px;line-height:1.65;color:rgba(255,255,255,.84);max-width:42ch}

  /* ---- phones ---- */
  @media (max-width:899px){
    .vrev-in{flex-direction:column;gap:16px;text-align:center;padding-top:22px;padding-bottom:22px}
    .vrev-score{padding-right:0;border-right:0;padding-bottom:14px;border-bottom:1px solid #E6E1DA;width:100%}
    .vrev-q p{font-size:16px}
    .vmat-in{grid-template-columns:1fr;gap:26px;padding-top:44px;padding-bottom:44px}
    .vmat-tx h2{font-size:30px}
    .vmat-img{order:-1}
    .vlife-in{padding-top:64px;padding-bottom:64px;max-width:none}
    .vlife h2{font-size:30px}
    .vlife::before{background:linear-gradient(180deg,rgba(10,10,12,.55) 0%,rgba(10,10,12,.86) 55%)}
    .vlife{background-position:center 25%}
  }




@media (min-width:990px){
  /* rail | stage. 72px matches the concept's thumbnail column. */
  
  
  
  
  
  /* the concept marks the chosen thumbnail with an ink hairline, not a colour */
  
  /* prev sits above the rail and next below it, as the small chevron does in the concept */
  
  

  /* ONE slide on the stage, portrait, the proportion the concept draws. */
  
  
  
  
  
}



  /* three badge strip, replacing the datasheet */
  {{ '' }}
  .pdp .spec2{display:none!important}
  .pdp .vbadge{list-style:none;display:flex;gap:0;margin:14px 0 18px;padding:14px 0;
    border-top:1px solid #ECE9E4;border-bottom:1px solid #ECE9E4}
  .pdp .vbadge li{flex:1 1 0;display:flex;align-items:center;gap:9px;min-width:0;padding:0 12px;
    border-right:1px solid #ECE9E4}
  .pdp .vbadge li:first-child{padding-left:0}
  .pdp .vbadge li:last-child{border-right:0;padding-right:0}
  .pdp .vbadge svg{width:21px;height:21px;flex:none;color:var(--lx-ink,#111);stroke-width:1.5}
  .pdp .vbadge span{display:flex;flex-direction:column;min-width:0}
  .pdp .vbadge b{font-size:13px;font-weight:600;line-height:1.25;color:var(--lx-ink,#111)}
  .pdp .vbadge i{font-style:normal;font-size:11px;line-height:1.3;color:var(--lx-mute,#6B6B6B)}

  /* the title, as the concept sets it: upper case, letter spaced, editorial */
  .pdp .head-band h1{text-transform:uppercase;letter-spacing:.035em;line-height:1.14}

  /* the primary button, heavier and full width as drawn */
  .pdp .pdp-form .btn-primary{min-height:54px;letter-spacing:.09em;text-transform:uppercase;
    font-weight:600;border-radius:2px}

  /* the trust row the concept puts under the button */
  .pdp .vtrust{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:0;
    margin:16px 0 0;padding:15px 0;border-top:1px solid #ECE9E4;border-bottom:1px solid #ECE9E4}
  .pdp .vtrust li{display:flex;align-items:flex-start;gap:8px;padding:0 10px;min-width:0;
    border-right:1px solid #ECE9E4}
  .pdp .vtrust li:first-child{padding-left:0}
  .pdp .vtrust li:last-child{border-right:0;padding-right:0}
  .pdp .vtrust svg{width:19px;height:19px;flex:none;color:var(--lx-ink,#111);stroke-width:1.5;margin-top:1px}
  .pdp .vtrust span{display:flex;flex-direction:column;min-width:0}
  .pdp .vtrust b{font-size:12px;font-weight:600;line-height:1.3;color:var(--lx-ink,#111)}
  .pdp .vtrust i{font-style:normal;font-size:10.5px;line-height:1.3;color:var(--lx-mute,#6B6B6B)}

  /* the slimmer width card: thumbnail, two lines, arrow, on a warm ground */
  .pdp a.sibw{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;
    padding:12px 14px;background:#F7F5F1;border:1px solid #ECE9E4;border-radius:2px;
    text-decoration:none;margin-top:18px}

  @media (max-width:749px){
    .pdp .vbadge{gap:0;padding:12px 0;margin:12px 0 14px}
    .pdp .vbadge li{padding:0 8px;gap:7px}
    .pdp .vbadge b{font-size:12px}
    .pdp .vbadge i{font-size:10px}
    .pdp .vbadge svg{width:18px;height:18px}
    .pdp .vtrust{padding:12px 0}
    .pdp .vtrust li{padding:0 7px;gap:6px}
    .pdp .vtrust b{font-size:11px}
    .pdp .vtrust i{font-size:10px}
    .pdp .vtrust svg{width:17px;height:17px}
  }
  @media (max-width:380px){
    .pdp .vbadge li i,.pdp .vtrust li i{display:none}
  }



  /* the existing stylesheet sets white on the container, so this has to out-specify it rather
     than merely come later */
  body .container.pdp{background:#FAF8F5!important}
  .shopify-section:has(> .container.pdp){background:#FAF8F5}
  /* the strip of canvas either side of the centred container, so the colour runs edge to edge */
  main:has(.container.pdp){background:#FAF8F5}
  .vmore{background:#FAF8F5}
  .pdp .szl-o{background:#fff}
  .pdp .szl-o.is-na{background:#F1EEE9}
  .pdp .gal{background:#EFEBE5}



  .vmore{background:#FAF8F5;border-top:1px solid #EFEBE5;padding:54px 0}
  .vmore-in{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:56px;align-items:start}
  .vmore-h{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--lx-mute,#6B6B6B);
    margin:0 0 16px;font-weight:600}
  .vmore-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
  .vmore-grid figure{margin:0;aspect-ratio:1/1;overflow:hidden;background:var(--lx-grey,#F0F0F0)}
  .vmore-grid img{width:100%;height:100%;object-fit:cover;display:block}
  /* the concept's irregular grid: three across, then two wider ones beneath */
  .vmore-grid figure:nth-child(4),.vmore-grid figure:nth-child(5){grid-column:span 1}
  .vmore .pdp-details{width:auto;max-width:none;margin:0}
  /* the four item strip that closes the page */
  .vfoot{border-top:1px solid #EFEBE5;background:#fff}
  .vfoot-in{display:grid;grid-template-columns:repeat(4,1fr);gap:0;padding:26px 0}
  .vfoot li{display:flex;align-items:center;gap:11px;padding:0 16px;border-right:1px solid #EFEBE5;min-width:0}
  .vfoot li:first-child{padding-left:0}
  .vfoot li:last-child{border-right:0;padding-right:0}
  .vfoot svg{width:22px;height:22px;flex:none;color:var(--lx-ink,#111);stroke-width:1.4}
  .vfoot span{display:flex;flex-direction:column;min-width:0}
  .vfoot b{font-size:12.5px;font-weight:600;color:var(--lx-ink,#111);line-height:1.3}
  .vfoot i{font-style:normal;font-size:11px;color:var(--lx-mute,#6B6B6B);line-height:1.3}
  .vfoot ul{list-style:none;margin:0;padding:0;display:contents}
  @media (max-width:989px){
    .vmore{padding:34px 0}
    .vmore-in{grid-template-columns:1fr;gap:30px}
    .vfoot-in{grid-template-columns:1fr 1fr;gap:18px 0;padding:22px 0}
    .vfoot li:nth-child(2){border-right:0}
    .vfoot li:nth-child(3){padding-left:0}
  }
  @media (max-width:420px){
    .vmore-grid{grid-template-columns:repeat(2,1fr)}
    .vfoot-in{grid-template-columns:1fr}
    .vfoot li{border-right:0;padding-left:0}
  }



  /* 1. ⛔ THE DROPDOWN GOES. "Obviously remove the size dropdown as we now have buttons."
     The earlier visually-hidden rule lost the cascade and the select was still sitting at full
     size above the ladder, so the man saw a dropdown AND buttons for the same choice.
     ⛔ Still only ever hidden by a class the script adds AFTER a ladder exists, so with no
     JavaScript the dropdown is the control and nothing is lost. */
  .pdp .opt-row .opt-sel.opt-sel--laddered{display:none!important}
  .pdp .opt-row .opt-chips{display:none!important}

  /* 2. "Change size text to choose your size". The value suffix goes with it: the ladder already
     shows which size is chosen, so repeating it in the label said the same thing twice. */
  .pdp .opt-row .opt-label{font-size:13px;letter-spacing:.01em;margin-bottom:9px}

  /* 3. "Remove the horizontal lines above and below this section" (the spec strip) and
     "Make the icons bigger to match the draft". */
  .pdp .vbadge{border-top:0!important;border-bottom:0!important;padding:4px 0 16px;margin:10px 0 4px}
  .pdp .vbadge li{border-right:0!important;gap:12px;align-items:center}
  .pdp .vbadge svg{width:29px!important;height:29px!important;stroke-width:1.25}
  .pdp .vbadge b{font-size:13.5px}
  .pdp .vbadge i{font-size:11.5px}

  /* 4. Trust icons bigger, same instruction. The rules between the three stay: they are in the
     concept and they are what stops it reading as one run-on sentence. */
  .pdp .vtrust svg{width:26px!important;height:26px!important;stroke-width:1.25}
  .pdp .vtrust li{gap:11px;align-items:center}
  .pdp .vtrust b{font-size:12.5px}
  .pdp .vtrust i{font-size:11px}

  /* 5. "Why is there a light background to the title? It should be the same background as the
     rest of the page." The head band carried white from the old white-page theme. */
  .pdp .head-band{background:transparent!important}

  /* 6. The rating strip: "ours has too much free space and is too small". The concept sets the
     quote large enough to read as a voice rather than a caption, and holds the three parts close
     together instead of pushing them to the far edges of a 1185px row. */
  .vrev-in{max-width:1000px;margin-left:auto;margin-right:auto;gap:38px;
    padding-top:30px;padding-bottom:30px}
  .vrev-stars{font-size:19px!important;letter-spacing:3px}
  .vrev-score strong,.vrev-score b{font-size:15px}
  .vrev-q{font-size:19px!important;line-height:1.5}
  .vrev-cnt{font-size:12.5px}
  .vrev-quotes,.vrev-body{flex:1 1 auto;min-width:0}
  .vrev-nav{flex:none;margin-left:auto}

  /* 7. Materials: "The image is too large, the text is aligned central instead of at the top.
     The image and text should be the same size." Equal columns, both starting at the top, and the
     photograph stretched to exactly the height of the prose beside it rather than setting its own. */
  .vmat-in{grid-template-columns:1fr 1fr!important;align-items:stretch!important;gap:56px}
  .vmat-in > *{align-self:stretch}
  .vmat-txt,.vmat-in > div:first-child{display:flex;flex-direction:column;justify-content:flex-start}
  .vmat-img{height:100%;min-height:0}
  .vmat-img img{width:100%;height:100%;object-fit:cover;display:block}

  @media (max-width:989px){
    .vmat-in{grid-template-columns:1fr!important;gap:26px}
    .vmat-img{height:auto;aspect-ratio:4/3}
    .vrev-in{gap:20px;padding-top:22px;padding-bottom:22px}
    .vrev-q{font-size:16px!important}
    .pdp .vbadge svg{width:25px!important;height:25px!important}
    .pdp .vtrust svg{width:23px!important;height:23px!important}
  }



  /* 1. "Keep the vertical lines, remove the horizontal." Both strips, as the reference draws them. */
  .pdp .vbadge,.pdp .vtrust{border-top:0!important;border-bottom:0!important}
  .pdp .vbadge li,.pdp .vtrust li{border-right:1px solid #E6E1DA!important}
  .pdp .vbadge li:last-child,.pdp .vtrust li:last-child{border-right:0!important}

  /* 2. "Remove the line separating choose your size and add to bag." */
  .pdp .pdp-form .atc-sep{display:none!important}

  /* 3. "Remove the tag when it says model is wearing M" — the old standalone line. The ladder's own
     line already carries it, so this was the same sentence twice. */
  .pdp .pdp-form .model-size{display:none!important}

  /* 4. The leftover assurance block from the old design. Its delivery and returns lines are now in
     the trust strip above, so only the thing the strip does NOT say is kept, quietly. */
  .pdp .deliver{border:0!important;padding:10px 0 0!important;margin:0!important}
  .pdp .deliver > *:not(:first-child){display:none!important}
  .pdp .deliver{font-size:12px;color:var(--lx-mute,#6B6B6B)}

  /* 5. "Prefer it slimmer is missing an image." */
  .pdp a.sibw{display:grid!important;grid-template-columns:62px 1fr auto!important;
    align-items:center;gap:14px;padding:10px 12px;justify-content:initial!important}
  .pdp a.sibw .sibw-thumb{width:62px;height:62px;display:block;overflow:hidden;background:var(--lx-grey,#F0F0F0)}
  .pdp a.sibw .sibw-thumb img{width:100%;height:100%;object-fit:cover;display:block}

  /* 6. The rating strip, proportioned off the reference: a wider score block with the stars and the
     score on ONE line, a larger quote, and the whole band tighter than it was. */
  .vrev-in{max-width:1120px;gap:0!important;padding-top:26px!important;padding-bottom:26px!important;
    align-items:center}
  .vrev-score{flex:0 0 30%!important;padding-right:34px!important;text-align:left!important;
    border-right:1px solid #E6E1DA!important}
  .vrev-score .vrev-stars{display:inline-block!important;vertical-align:middle;font-size:20px!important;
    letter-spacing:3px;margin-right:10px}
  .vrev-score .vrev-num,.vrev-score strong,.vrev-score b{display:inline-block;vertical-align:middle;font-size:15px}
  .vrev-cnt{display:block!important;margin-top:7px;font-size:14px!important;color:var(--lx-mute,#6B6B6B)}
  /* "There's a line next to the reviews to the left of it. Remove that, but keep the line
     separating the star reviews and the actual reviews." */
  .vrev-q{border-left:0!important;padding-left:0!important;font-size:21px!important;line-height:1.45}
  .vrev-quotes{flex:1 1 auto!important;padding-left:40px!important;border-left:0!important;min-width:0}
  .vrev-nav{flex:none!important;margin-left:auto;padding-left:24px}

  /* 7. "Definitely make the image smaller. It makes the section too large and there's too much
     empty space." The row height is now set by the prose, and the photograph fills whatever that
     comes to instead of setting its own 505px. Column widths follow the reference. */
  .vmat-in{grid-template-columns:minmax(0,.92fr) minmax(0,1.18fr)!important;align-items:stretch!important;
    gap:52px!important}
  .vmat-img{aspect-ratio:auto!important;height:100%!important;min-height:0!important;align-self:stretch}
  .vmat-img img{width:100%;height:100%;object-fit:cover;display:block}
  .vmat-in > div:first-child{justify-content:flex-start}

  @media (max-width:989px){
    .vrev-in{flex-wrap:wrap;gap:16px!important;padding-top:20px!important;padding-bottom:20px!important}
    .vrev-score{flex:1 1 100%!important;border-right:0!important;padding-right:0!important;
      padding-bottom:14px;border-bottom:1px solid #E6E1DA!important}
    .vrev-quotes{padding-left:0!important}
    .vrev-q{font-size:17px!important}
    .vmat-in{grid-template-columns:1fr!important;gap:24px!important}
    .vmat-img{height:auto!important;aspect-ratio:3/2!important}
  }



  /* the old standalone model line: a later rule was beating display:none, so this out-specifies it */
  /* ⚠️ The theme already carries `:root:root:root .pdp .model-size{display:flex!important}`, a
     deliberate specificity stack, so an ordinary !important loses. Four roots out-rank three. */
  :root:root:root:root .pdp .pdp-form .model-size,
  :root:root:root:root .pdp .model-size{display:none!important}
  /* the materials photograph: it was sizing the row off its own ratio at full column width, so the
     section stood 700px tall with the prose stranded in the middle of it. Now it starts at the top,
     keeps a landscape crop and never sets the row height. */
  .vmat-in{grid-template-columns:minmax(0,1fr) minmax(0,.95fr)!important;align-items:start!important}
  .vmat-img{aspect-ratio:4/3!important;height:auto!important;max-height:430px!important;
    align-self:start!important}
  .vmat-img img{height:100%!important;object-fit:cover}
  @media (max-width:989px){
    .vmat-img{max-height:none!important;aspect-ratio:3/2!important}
  }



@media (min-width:990px){
  /* stacked, not display-toggled, so the lazy loader can still see them */
  
  
}



@media (min-width:990px){
  /* the price and the title are set in their own block below: see [v2head-3oct] */

  /* the proof strip: readable, not a caption */
  .pdp .vbadge{padding:10px 0 20px!important}
  .pdp .vbadge b{font-size:15px!important}
  .pdp .vbadge i{font-size:12.5px!important}

  /* the size cards: deeper, with the label and the availability on their own lines */
  .pdp .szl{gap:12px!important;margin-top:11px!important}
  .pdp .szl-o{padding:15px 16px!important;gap:5px!important}
  .pdp .szl-o.is-on{padding:14px 15px!important}
  .pdp .szl-n{font-size:16px!important;font-weight:600!important}
  .pdp .szl-s{font-size:12.5px!important}
  .pdp .szl-fit{font-size:13.5px!important;margin-top:9px!important}
  .pdp .opt-row .opt-label{font-size:14px!important;font-weight:600!important;margin-bottom:11px!important}

  /* the button: more air above and below it, and a label with presence */
  .pdp .pdp-form .btn-primary{min-height:56px!important;font-size:15px!important;margin-top:16px!important}
  .pdp .pdp-form .atc-eta{font-size:13px!important;margin-bottom:12px!important}

  /* the trust row */
  .pdp .vtrust{padding:18px 0!important;margin-top:20px!important}
  .pdp .vtrust b{font-size:13.5px!important}
  .pdp .vtrust i{font-size:12px!important}

  /* the width card: a larger photograph and a clear two line block beside it */
  .pdp a.sibw{grid-template-columns:84px 1fr auto!important;padding:14px!important;gap:16px!important;
    margin-top:22px!important}
  .pdp a.sibw .sibw-thumb{width:84px!important;height:84px!important}
  .pdp a.sibw .sibw-q{font-size:12.5px!important;display:block}
  .pdp a.sibw .sibw-p{font-size:16px!important;font-weight:600!important;display:block;margin-top:3px}

  /* the editorial headings carry the brand, so they get the reference's scale */
  .vmat h2{font-size:52px!important;line-height:1.08!important;max-width:11ch}
  .vmat p{font-size:16.5px!important;line-height:1.6!important}
  .vmat li b,.vmat-feats b{font-size:15px!important}
  .vmat li i,.vmat-feats i,.vmat li span span{font-size:13px!important}
  .vmat .eyebrow,.vlife .eyebrow{font-size:11.5px!important;letter-spacing:.16em!important}
  .vlife h2{font-size:52px!important;line-height:1.08!important}
  .vlife p{font-size:16.5px!important;line-height:1.6!important}

  /* the recommendations are browsing, not the decision, so the heading comes down to match */
  .pdp-sec .sec-head h2{font-size:26px!important;line-height:1.2!important}
}



@media screen and (min-width: 990px) {
  :root:root .pdp .buybox .head-band h1 { font-size: 34px !important; line-height: 1.16 !important; }
  :root:root .pdp .buybox .head-band .price { font-size: 34px !important; font-weight: 500 !important; line-height: 1.1 !important; }
}



@media screen and (min-width: 990px) {
  .vmat p{font-size:17.5px!important;line-height:1.62!important}
  .vmat li b,.vmat-feats b,.vmat-feats strong{font-size:16px!important}
  .vmat li i,.vmat-feats i{font-size:13.5px!important}
  .vmat svg{width:30px!important;height:30px!important}
  .vmat li,.vmat-feats > *{gap:14px!important;margin-bottom:16px!important}
}



@media screen and (min-width: 990px) {
  /* 1. "More views has excessive empty space... let its height follow the taller of the gallery
        grid and accordion, with approximately 40 to 50px bottom padding." */
  .vmore{padding:50px 0 46px!important}
  .vmore-in{align-items:start!important}
  .vmore-grid{grid-template-columns:repeat(3,1fr)!important;gap:12px!important;align-content:start}
  .vmore-grid figure{aspect-ratio:1/1!important}

  /* 2. OVERCORRECTION, acknowledged. Codex: "the materials image was reduced too far... bring the
        image to roughly 52 to 55% of the content width and restore a near-square crop." The height
        is still capped so the section cannot go back to the 700px it was. */
  .vmat-in{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr)!important;gap:56px!important}
  /* ⚠️ The 560px cap was holding the square image to 39% of the row when Codex asked for 52 to 55%.
     The cap is raised to let the column drive the width; the section is still far short of the
     700px it started at. */
  .vmat-img{aspect-ratio:1/1!important;max-height:660px!important;height:auto!important;width:100%}

  /* 4. "Recommendations remain disproportionately large... five compact cards, shallower images." */
  /* ⛔ Forcing five columns was wrong: this product only has THREE recommendations, so two tracks
     sat empty and the row stopped half way across with a hole to the right. Codex caught it in the
     render, which is the lesson: judge the rendered result, not the configured column count.
     `auto-fit` collapses the empty tracks, so whatever number the section returns fills the row. */
  
  
  .pdp-sec .sec-head{margin-bottom:18px!important}

  /* 5. "The review quote lacks the concept's presence: increase its type and constrain its width so
        it forms two readable lines. Align the rating block and quote vertically." */
  .vrev-in{align-items:center!important}
  .vrev-q{font-size:23px!important;line-height:1.42!important;max-width:30ch}
  .vrev-quotes{padding-left:46px!important}

  /* 6. "Increase row spacing and use less prominent row labels." */
  .vmore .spec-acc-q{padding-top:15px!important;padding-bottom:15px!important}
  .vmore .spec-acc-t{font-size:15px!important;font-weight:500!important;letter-spacing:.005em}
}



@media screen and (min-width: 990px) {
  /* 1. "The product title, the text above it, the review stars under it is too large. Keep the same
        size as the live site." Live sets `.title-block h1,.pdp .buybox h1{font-size:27.5px}`, and my
        34px override was beating it. Reverted.
     ⚠️ The price is brought back in line with it too. It was not on his list, but leaving it at 34px
     next to a 27.5px title made the price larger than the product name, which reads wrong. Say the
     word and it goes back up. */
  :root:root .pdp .buybox .head-band h1{font-size:27.5px!important;line-height:1.2!important}
  :root:root .pdp .buybox .head-band .price{font-size:27.5px!important;font-weight:500!important}

  /* 2. "The size buttons are too tall and bulky. Reduce the height, make it sleek, only use the
        necessary height." 79px down to the height the two lines actually need. */
  .pdp .szl-o{padding:9px 12px!important;gap:1px!important}
  .pdp .szl-o.is-on{padding:8px 11px!important}
  .pdp .szl-n{font-size:15px!important;line-height:1.3!important}
  .pdp .szl-s{font-size:12px!important;line-height:1.25!important}

  /* 5. "On the size selection buttons, centre the text." */
  .pdp .szl-o{align-items:center!important;text-align:center!important}

  /* 4. "Choose your size title and find your size button text need to be the same size (make the
        find your size larger)." */
  /* ⚠️ The label computes at 17px from a live rule, not the 14px I had set, so "Find your size"
     comes UP to 17px to match it. His words: "make the find your size larger". */
  .pdp .pdp-form .fit-btn,.pdp .fit-btn{font-size:17px!important;font-weight:600!important}

  /* 6. "Make the 'Based on 7 reviews' text larger." */
  .vrev-cnt{font-size:16px!important}

  /* 3. the two delivery lines, once moved, read as a quiet pair rather than two stray sentences */
  .pdp .deliver,.pdp .pdp-form .atc-eta,.pdp .atc-eta--moved{font-size:13px!important;
    color:var(--lx-mute,#6B6B6B)!important}
  .pdp .atc-eta--moved{margin:10px 0 0!important}
}



@media screen and (min-width: 990px) {
  .vmat-in{grid-template-columns:minmax(0,.655fr) minmax(0,1fr)!important;gap:clamp(44px,4.5vw,72px)!important;
    align-items:start!important}
  .vmat-img{aspect-ratio:1/1!important;max-height:none!important;height:auto!important;width:100%}
  .vmat h2{font-size:52px!important;line-height:1.1!important;max-width:none!important}
  .vmat .vmat-tx p{font-size:17px!important;line-height:1.62!important;max-width:34ch}
  .vmat{padding:66px 0!important}
}



@media screen and (min-width: 990px) {
  /* 1. "The font used in the top section just looks too large... Also reduce the size of the review
        stars." Measured off his reference: the stars sit at about the height of the text beside
        them, not above it. */
  :root:root .pdp .buybox .head-band h1{font-size:24px!important;line-height:1.22!important}
  :root:root .pdp .buybox .head-band .price{font-size:24px!important}
  .pdp .head-band .pdp-sub{font-size:14px!important;line-height:1.4!important}
  .pdp .head-band .eyebrow{font-size:11.5px!important;letter-spacing:.13em!important}
  .pdp .head-band .rating-row{font-size:13.5px!important}
  .pdp .head-band .stars{font-size:15px!important;letter-spacing:1.5px!important}

  /* 2. "Replicate the spacing used between the sections in the ChatGPT design." Measured from the
        reference and scaled to 1440: breadcrumb 36, title 21, subtitle 30, stars 34. The rhythm is
        what makes that block read calmly; ours was running nearly twice as loose. */
  .pdp .head-band .eyebrow{display:block;margin:0 0 14px!important}
  .pdp .head-band .title-block{margin:0 0 10px!important}
  .pdp .head-band .pdp-sub{margin:0 0 15px!important}
  .pdp .head-band .rating-row{margin:0 0 4px!important;gap:12px!important}
  .pdp .head-band{padding-bottom:18px!important}

  /* 3. "For every trust icon section, centre each line inside the column." Both strips. */
  .pdp .vbadge li,.pdp .vtrust li{justify-content:center!important;text-align:center!important}
  .pdp .vbadge span,.pdp .vtrust span{align-items:center!important;text-align:center!important}
  .vmore .vfoot li,.vfoot li{justify-content:center!important;text-align:center!important}
  .vfoot span{align-items:center!important;text-align:center!important}

  /* 4. "Prefer it slimmer? should be on top of the Onyx Cuban title."
     ⚠️ It was not a styling slip: the card is a three column grid and the eyebrow and the title were
     landing in DIFFERENT COLUMNS, so they sat side by side. Two columns and two rows puts the
     eyebrow above the name, with the photograph spanning both. */
  .pdp a.sibw{grid-template-columns:84px minmax(0,1fr)!important;
    grid-template-rows:auto auto!important;row-gap:3px!important;align-items:center!important}
  .pdp a.sibw .sibw-thumb{grid-column:1!important;grid-row:1/3!important;align-self:center!important}
  .pdp a.sibw .sibw-q{grid-column:2!important;grid-row:1!important;color:var(--lx-mute,#6B6B6B)}
  .pdp a.sibw .sibw-p{grid-column:2!important;grid-row:2!important;display:flex!important;
    align-items:center;gap:8px;margin:0!important}
  .pdp a.sibw .sibw-p svg{margin-left:auto}

  /* 5. the two post purchase lines, given a shape of their own instead of sitting as stray text */
  .pdp .vextra{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:9px}
  .pdp .vextra li{display:flex;align-items:center;gap:10px;font-size:13px;
    color:var(--lx-mute,#6B6B6B);line-height:1.35}
  .pdp .vextra svg{width:17px;height:17px;flex:none;color:var(--lx-ink,#111);stroke-width:1.4}
  .pdp .vextra b{font-weight:600;color:var(--lx-ink,#111)}
  .pdp .deliver,.pdp .atc-eta--moved{display:none!important}
}

/* ============================================================================
   [v2fb2b-3oct] The subtitle and the review stars did not take at ordinary
   specificity: the theme sets both from rules that out-rank `.pdp .head-band x`.
   Same four-root trick already used for the title.
   Ilyas: "the font used in the top section just looks too large... also reduce
   the size of the review stars."
   ============================================================================ */
@media screen and (min-width: 990px) {
  :root:root:root .pdp .buybox .head-band .pdp-sub { font-size: 14px !important; line-height: 1.4 !important; }
  :root:root:root .pdp .buybox .head-band .stars { font-size: 15px !important; letter-spacing: 1.5px !important; }
  :root:root:root .pdp .buybox .head-band .rating-row { font-size: 13.5px !important; }
}

/* ============================================================================
   ⭐⭐ [v2width-3oct] THE REAL REASON IT DOES NOT LOOK LIKE THE DESIGN.
   I had been measuring everything at 1440. Ilyas works at about 1680, and at
   that width the page stops being the design:

     .container            max-width 1440   capped, correct
     .container.pdp        1665             NOT capped, stretches
     .vmat-in / .vmore-in  1665             NOT capped, stretches

   So on a wider screen the hero, the materials band and the lower page all
   spread while the rest of the shop stays at 1440, and the whole thing loses
   the proportions the concept was drawn with. The concept is a fixed canvas.

   Two more faults in the materials band, both mine, both visible in his
   screenshot: the paragraph was capped at 34ch (324px) inside a 580px column,
   so the copy filled barely half its own column, and the photograph was square
   at 52% of a 1665px row, which made it 885x885 and far taller than the text
   beside it. His words: "Why is the image 100 acres large? It should be just as
   tall as the text section ends up being."
   ============================================================================ */
.container.pdp,
.vmat-in,
.vmore-in,
.vfoot-in,
.vlife-in { max-width: 1440px; margin-left: auto; margin-right: auto; }

@media screen and (min-width: 990px) {
  /* the copy fills its column, as it does in the reference */
  .vmat .vmat-tx p { max-width: none !important; }

  /* ⛔ NO aspect-ratio on the photograph. With one, the image sets its own height
     from its width and the row grows to match. Without one, the TEXT sets the row
     height and the image fills exactly that, which is what was asked for. */
  .vmat-in { align-items: stretch !important; }
  .vmat-img { aspect-ratio: auto !important; height: 100% !important;
              max-height: none !important; min-height: 0 !important; align-self: stretch !important; }
  .vmat-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
  .vmat-tx { display: flex; flex-direction: column; justify-content: flex-start; }
}

/* ============================================================================
   ⭐⭐ [v2boss-3oct] Codex directing, round one. Ilyas: "Codex is the boss, it will
   tell you what to do, you have the experience, you will do the tasks."
   Its diagnosis: the width bug explained part of it, the rest is VISUAL HIERARCHY.
   "Your page gives photography enormous weight while much of the text reads like
   small supporting detail." Every value below is its number, not mine.
   ⛔ Guardrails held: gold untouched, light canvas, no dashes, no new claims.
   ============================================================================ */
@media screen and (min-width: 990px) {

  /* 1. TYPE HIERARCHY. Codex: this one buys the most. Readable body copy and
        lighter editorial headings, using the assets we already have. */
  .vmat .vmat-tx p,.vlife p{font-size:18px!important;line-height:1.45!important;
    font-weight:400!important;color:#454545!important}
  .vmat h2{font-size:52px!important;line-height:1.05!important;font-weight:400!important}
  .vlife h2{font-size:48px!important;line-height:1.08!important;font-weight:400!important}
  .vmat li i,.vmat-list i{font-size:14px!important}
  .vmat li b,.vmat-list b{font-size:16px!important;font-weight:600!important}
  

  /* 2. MATERIALS, a deliberate composition. 42% copy / 58% photograph after the gap,
        the copy centred, and the photograph capped so it stops dictating the band. */
  .vmat{padding:64px 0!important}
  .vmat-in{grid-template-columns:minmax(0,42fr) minmax(0,58fr)!important;gap:48px!important;
    align-items:center!important}
  .vmat-tx{justify-content:center!important}
  .vmat .vmat-tx p{max-width:42ch!important}
  .vmat h2{max-width:11ch!important}          /* holds "Real silver." / "Built to last." on two lines */
  .vmat-img{height:auto!important;max-height:560px!important;aspect-ratio:auto!important;
    align-self:center!important}
  .vmat-img img{height:560px!important;max-height:560px!important;object-fit:cover!important;width:100%}

  /* 3. CROP. The source files cannot change here, but the framing can: the hero holds 4:5 and the
        crop is pulled off the hand, and the macro is nudged so whole links read rather than an
        abstract metal surface. A different photograph is still the proper fix and is Ilyas's. */
  
  

  /* 4. LIFESTYLE. Codex: the single line headline spreads across the photograph and weakens it. */
  .vlife{min-height:420px!important;height:420px!important;display:flex;align-items:center}
  .vlife-in{padding-left:64px!important;padding-right:64px!important}
  .vlife h2{max-width:10ch!important}          /* breaks after "statement" */
  .vlife p{max-width:38ch!important;margin-top:20px!important}
  .vlife .eyebrow{margin-bottom:14px!important}

  /* 5. LOWER PAGE. Stop the recommendations competing with the product. */
  .vmore{padding:64px 0!important}
  .vmore-grid{grid-template-columns:repeat(3,1fr)!important;gap:16px!important}
  .vmore-grid figure{max-height:220px!important;aspect-ratio:auto!important;height:220px!important}
  .vmore .spec-acc-t{font-size:18px!important}
  .vmore .spec-acc-q{min-height:56px!important;display:flex;align-items:center}
  
  
}

/* [v2boss-fix1] The recommendation images stayed at 458px: they carry `.lt-a defer-img`, not a
   card class, so the selector never matched. `.pdp-sec` now holds only "Pairs well with" (the long
   reviews rail was removed), so targeting its images directly is safe. */
@media screen and (min-width: 990px) {
  
}

/* ============================================================================
   ⭐⭐ [v2boss2-3oct] Codex round two. Verdict: "No. It is closer, but the
   unreadable lifestyle copy and broken recommendation cards still keep it below
   the concept's quality." Four causes, all found in the DOM:
   ============================================================================ */
@media screen and (min-width: 990px) {

  /* 1. THE BLACK RECTANGLE. Not a typography issue, a sizing one: `.lt-img` is a
        463x463 wrapper with a near black background (#141416) and I had shrunk the
        photograph inside it to 280px, so 183px of that background was left on show.
        The wrapper comes down to meet the photograph. */
  
  

  /* 4. CONSISTENT FRAMING. `cover` was cropping the tops off and each bracelet filled a
        different share of its frame. `contain` with clearance shows the whole piece, so the
        three can actually be compared. */
  .pdp-sec .lt-img img,

  /* 2. ⛔ MY BUG. I set the lifestyle paragraph to #454545 in the same rule as the materials
        copy, so dark grey body text was sitting on a dark photograph and vanishing.
        White copy, a gradient that is strongest where the words are, and the block moved to
        the section's left edge rather than floating near the middle of the picture. */
  .vlife p,.vlife h2,.vlife .eyebrow{color:#fff!important}
  .vlife .eyebrow{color:var(--lx-gold,#C9A866)!important}
  .vlife{position:relative;overflow:hidden}
  .vlife::before{content:"";position:absolute;inset:0;z-index:0;
    background:linear-gradient(90deg,rgba(0,0,0,.65) 0%,rgba(0,0,0,.45) 32%,rgba(0,0,0,0) 65%)}
  .vlife-in{position:relative;z-index:1;max-width:none!important;margin:0!important;
    padding:0 64px!important;display:flex;flex-direction:column;justify-content:center;
    height:100%;align-items:flex-start}
  .vlife p{max-width:38ch!important;margin-top:20px!important}

  /* 3. OVERCORRECTED HEIGHT, acknowledged. `.vmat` carries 64px of vertical padding AND
        `.vmat-in` carried another 64px, so the band stood 816px when 560 + 128 is 688.
        The inner's vertical padding goes; the horizontal stays. */
  .vmat-in{padding-top:0!important;padding-bottom:0!important}
}

/* ============================================================================
   ⭐⭐ [v2boss3-3oct] Codex round three.
   ⚠️ Its "two photographs are invisible" was a CONTRAST fault, not a loading one.
   All three are loaded and painted, measured in the DOM. They are "circle" crops,
   silver on near white, and I had put them on a grey #F0F0F0 field inside a
   463x280 box. `contain` then drew a 280px square in the middle of a much wider
   grey area, so a pale product on grey read as an empty card. On white they sit
   flush and read as product shots.
   ============================================================================ */
@media screen and (min-width: 990px) {
  /* 1 + 2. A squarer image area on white, with the name brought up close to it. */
  
  
  .pdp-sec .lt-img img,
  

  /* 3. "Three images across followed by one packaging image leaves an isolated tile and a large
        empty corner." Four tiles in a balanced 2 x 2, with the accordion still top aligned. */
  .vmore-grid{grid-template-columns:repeat(2,1fr)!important;gap:16px!important}
  .vmore-grid figure{height:auto!important;max-height:none!important;aspect-ratio:1/1!important}
  .vmore-in{align-items:start!important}
}

/* ============================================================================
   ⭐⭐ [v2boss4-3oct] Codex round four: "the product information feels too small
   beside the hero". Its targets were title 32px, price 28px, body and size labels
   16px, supporting labels 14px.

   ⛔ GUARDRAIL HELD, TITLE AND PRICE NOT RAISED. Ilyas has ruled on those twice,
   most recently "the font used in the top section just looks too large, can you
   reduce the font size", which is how they came 27.5 -> 24px. Taking them to 32
   and 28 would reverse an owner decision to satisfy a design note, so the title
   and price stay at 24px and the conflict goes to him, not into the CSS.

   Everything else in its note is applied: the weight it wanted is bought in the
   buying controls instead, where Ilyas has not objected and where it actually
   helps the decision.
   ============================================================================ */
@media screen and (min-width: 990px) {
  .pdp .szl-n{font-size:16px!important}
  .pdp .szl-s{font-size:13.5px!important}
  .pdp .szl-fit{font-size:14px!important}
  .pdp .vbadge b{font-size:16px!important}
  .pdp .vbadge i{font-size:13.5px!important}
  .pdp .vtrust b{font-size:14px!important}
  .pdp .vtrust i{font-size:13px!important}
  .pdp .vextra li{font-size:14px!important}
  .pdp a.sibw .sibw-q{font-size:13.5px!important}
  .pdp a.sibw .sibw-p{font-size:17px!important}
  .pdp .pdp-form .btn-primary{font-size:16px!important}
}

/* ============================================================================
   ⭐⭐ [v2boss6-3oct] Ilyas's eight, with Codex directing. Numbered to match him.
   ⛔ 7 is NOT in here on purpose. He asked to retain the live design for the
   "Pairs well with" cards, so every rule I had added for them was DELETED from
   this file rather than overridden. An override with `revert` would have dropped
   the theme's own styling too, which is the opposite of what he asked for.
   ============================================================================ */
@media screen and (min-width: 990px) {

  /* 1. "We have white margins on either side of the page which we should not have."
     ⚠️ The cause was not the 1440 cap. It was the "Pairs well with" section: a WHITE
     box 1424px wide inset at x=128 sitting on the cream page, so cream showed down
     both sides of a white block. Codex's rule: backgrounds span the viewport, content
     stays capped. So the section grounds go full bleed and only the content is held. */
  .pdp-sec,.pdp-sec.sec-div{background:transparent!important;max-width:none!important;
    width:auto!important;margin-left:0!important;margin-right:0!important}
  .vfoot{background:transparent!important}
  body{background:#FAF8F5}
  .container.pdp,.vmat-in,.vmore-in,.vfoot-in{max-width:1440px!important;
    padding-left:48px!important;padding-right:48px!important;
    margin-left:auto!important;margin-right:auto!important}

  /* 2 + 3. The title block. Codex: "the descriptor belongs closely to the title, while reviews and
     price need separate breathing room. Avoid adding uniform spacing throughout this block." */
  :root:root:root .pdp .buybox .head-band h1{line-height:30px!important;margin-bottom:0!important}
  :root:root:root .pdp .buybox .head-band .pdp-sub{font-size:14px!important;line-height:20px!important;
    margin:0 0 8px!important}
  :root:root:root .pdp .buybox .head-band .rating-row{margin:14px 0 0!important}
  :root:root:root .pdp .buybox .head-band .price{line-height:30px!important;margin-top:16px!important}
  .pdp .head-band{padding-bottom:24px!important}

  /* 4. "Find your size button text looks smaller than choose your size."
     ⚠️ Both already compute at 17px, so it was never size. It is weight and colour: the link was
     lighter and greyer than the label beside it. Same weight, same ink, underline kept. */
  .pdp .pdp-form .fit-btn,.pdp .fit-btn{font-size:17px!important;font-weight:500!important;
    color:var(--lx-ink,#111)!important;text-decoration:underline!important;
    text-underline-offset:3px!important;display:inline-flex!important;align-items:center!important;
    gap:6px!important}
  .pdp .fit-btn svg{width:16px!important;height:16px!important}
  .pdp .opt-row .opt-label{font-weight:500!important;color:var(--lx-ink,#111)!important}

  /* 5. "The trust icons under ATC are too small and too far from the text." */
  .pdp .vtrust{margin-top:24px!important}
  .pdp .vtrust svg{width:26px!important;height:26px!important}
  .pdp .vtrust li{gap:8px!important;align-items:center!important}
  .pdp .vtrust b{font-size:14px!important;line-height:18px!important}
  .pdp .vtrust i{font-size:12px!important;line-height:16px!important}
  .pdp .vbadge svg{width:26px!important;height:26px!important}
  .pdp .vbadge li{gap:8px!important}

  /* 6. The slimmer option: price on its own line, bigger arrow, centred. */
  .pdp a.sibw{padding:18px!important;grid-template-columns:88px minmax(0,1fr) auto!important;
    column-gap:16px!important;row-gap:6px!important;align-items:center!important}
  .pdp a.sibw .sibw-thumb{width:88px!important;height:88px!important;grid-row:1/4!important}
  .pdp a.sibw .sibw-q{font-size:14px!important;grid-row:1!important;grid-column:2!important}
  .pdp a.sibw .sibw-p{font-size:17px!important;grid-row:2!important;grid-column:2!important;
    display:block!important;margin:0!important}
  .pdp a.sibw .sibw-p svg{width:24px!important;height:24px!important;
    position:absolute;right:18px;top:50%;transform:translateY(-50%)}
  .pdp a.sibw{position:relative}

  /* 8. "In our materials, the margins are too narrow, make the text extend more and make the trust
        lines under it and the icons larger." */
  .vmat-in{gap:64px!important}
  .vmat .vmat-tx p{max-width:440px!important;font-size:17px!important;line-height:24px!important}
  .vmat svg{width:32px!important;height:32px!important}
  .vmat li,.vmat-list li{gap:14px!important;margin-bottom:22px!important;align-items:center!important}
  .vmat li b,.vmat-list b{font-size:16px!important}
  .vmat li i,.vmat-list i{font-size:14px!important}
}

/* [v2boss6-fix] Two that did not take.
   ⚠️ "Choose your size" was still weight 400 while "Find your size" was 500, which is the optical
   difference Ilyas was actually seeing. Codex asked for BOTH at 500.
   ⚠️ The cream canvas needed to sit on `body`, outside the desktop media query, so no white shows
   at any width. */
body{background:#FAF8F5}
@media screen and (min-width: 990px) {
  :root:root:root .pdp .opt-row .opt-label{font-weight:500!important;color:var(--lx-ink,#111)!important}
}

/* ⚠️ The theme sets a white body with more weight than a bare selector, so the cream canvas needs
   the stack. This stylesheet is only loaded by the product section, so it does not touch other pages. */
html:root body,body{background:#FAF8F5!important}

/* [v2sibsplit-3oct] The width card, now that the name and the price are separate elements.
   Three rows in the second column: intro, name, price. The arrow is centred against the whole card. */
@media screen and (min-width: 990px) {
  .pdp a.sibw{grid-template-columns:88px minmax(0,1fr)!important;
    grid-template-rows:auto auto auto!important;row-gap:4px!important;column-gap:16px!important;
    align-items:center!important;padding:18px!important;position:relative}
  .pdp a.sibw .sibw-thumb{grid-column:1!important;grid-row:1/4!important;width:88px!important;height:88px!important}
  .pdp a.sibw .sibw-q{grid-column:2!important;grid-row:1!important;font-size:14px!important}
  .pdp a.sibw .sibw-p{grid-column:2!important;grid-row:2!important;font-size:17px!important;
    font-weight:600!important;display:block!important;margin:0!important}
  .pdp a.sibw .sibw-pr{grid-column:2!important;grid-row:3!important;font-size:17px!important;
    display:block!important;margin-top:2px!important;color:var(--lx-ink,#111)}
  .pdp a.sibw .sibw-arrow{position:absolute!important;right:18px!important;top:50%!important;
    transform:translateY(-50%)!important;width:24px!important;height:24px!important}
}

/* ============================================================================
   ⭐⭐ [v2boss10-3oct] Ilyas's six, values from Codex. Numbered to match him.
   ============================================================================ */
/* 2. ⛔ THE WHITE MARGINS, CAUSE FOUND AT LAST. `html` computed rgb(255,255,255)
   while `body` computed cream. A background set on `html` STOPS `body`'s colour
   propagating to the canvas, so white painted behind everything and showed at the
   edges. Setting it on html as well is the actual fix; three previous attempts at
   body level could never have worked. The header joins the canvas too. */
html,html:root,body,html body{background:#FAF8F5!important}
.site-header,header.site-header{background:#FAF8F5!important}

@media screen and (min-width: 990px) {
  /* 1. "The gap between the reviews and price should be the same as the title and reviews." 14px both. */
  :root:root:root .pdp .buybox .head-band .rating-row{margin:14px 0 0!important}
  :root:root:root .pdp .buybox .head-band .price{margin-top:14px!important}

  /* 3. Under the price: the icon stands the full height of its two line block, 40px. */
  .pdp .vbadge svg{width:40px!important;height:40px!important;stroke-width:1.15!important}
  .pdp .vbadge li{gap:12px!important;align-items:center!important}

  /* 4. Under the ATC: 34px, centred, 12px to the text. */
  .pdp .vtrust svg{width:34px!important;height:34px!important;stroke-width:1.15!important}
  .pdp .vtrust li{gap:12px!important;align-items:center!important}

  /* 5. "Free Next / Day Delivery" is three lines with "UK only", so the icon stays at 34px and
        centres against the whole block rather than growing to match it. */
  .pdp .vtrust b{line-height:18px!important}

  /* 6. ⛔ The paragraph cap is GONE. He has asked three times. Codex: "let it occupy 100% of the
        existing materials text column, with 32px clearance before the image. Increasing the outer
        margins would narrow it again." */
  .vmat .vmat-tx p{max-width:none!important;width:100%!important;padding-right:32px!important}
  .vmat li b,.vmat-list b{font-size:16px!important;line-height:22px!important}
  .vmat li i,.vmat-list i{font-size:14px!important;line-height:20px!important}
  .vmat svg{width:32px!important;height:32px!important;stroke-width:1.15!important}
  .vmat li,.vmat-list li{gap:14px!important;margin-bottom:24px!important;align-items:center!important}
}

/* [v2boss10-fix] ⚠️ The reviews-to-price gap measured 20px against 14px for title-to-reviews.
   The 14px margin I set on `.price` was not the whole story: `.price-row` was contributing a
   further 6px of its own before the price text began. Zeroing the row and keeping the 14px on the
   price itself makes the two gaps genuinely equal, which is what Ilyas asked for. */
@media screen and (min-width: 990px) {
  :root:root:root .pdp .buybox .head-band .price-row{margin-top:0!important;padding-top:0!important}
  :root:root:root .pdp .buybox .head-band .price{margin-top:14px!important}
}

/* ============================================================================
   ⭐⭐ [v2bleed-4oct] ⛔ THE WHITE MARGINS, ACTUAL CAUSE, AFTER FOUR FAILED ATTEMPTS.
   The theme carries this, from the days when the buy panel was white:

     .pdp .thumb-rail, .buybox .head-band {
       box-shadow: 0 0 0 100vmax #fff;
       clip-path: inset(0 -100vmax);
     }

   That is a deliberate trick: a 100vmax white spread shadow, unclipped sideways,
   so a white panel BLEEDS to both viewport edges. It paints white across the full
   width regardless of what the element's own background is, which is why setting
   `.head-band{background:transparent}` changed nothing, and why html, body and
   main all reporting cream still left white at the edges. The DOM was telling the
   truth; the paint was coming from a shadow, not a background.
   ⚠️ Lesson: when computed backgrounds say one colour and the rendered pixels say
   another, look for box-shadow, outline or clip-path before doubting the capture.
   I wrongly blamed a stale screenshot first.
   ============================================================================ */
/* ⛔ RECOLOURING THE SHADOW WAS WRONG AND IT BROKE THE PAGE. A 100vmax spread paints an enormous
   rectangle, and once it was opaque cream instead of white it covered the title, the price, the
   spec strip and the trust row. Codex caught it immediately in the capture.
   The bleed exists only to extend a WHITE panel to the edges. There is no white panel any more, so
   the right answer is to remove it outright, not to tint it. The clip-path goes with it: it exists
   solely to let that shadow escape sideways. */
.pdp .thumb-rail,.buybox .head-band,
.container.pdp,.pdp-sec,.pdp-sec.sec-div{box-shadow:none!important;clip-path:none!important}

/* ============================================================================
   ⭐⭐ [v2scale2-4oct] Ilyas's four, values from Codex. Its diagnosis of his
   "something looks off and I cannot put my finger on it": OVERSIZED ICONS PAIRED
   WITH RELATIVELY SMALL TEXT, plus too many competing bold labels. We had been
   setting numbers per request for days and they had stopped belonging to one
   system. This block replaces them with a single scale.
   ⛔ Later in the file than every earlier rule, so it wins at equal specificity.
   ============================================================================ */
@media screen and (min-width: 990px) {

  /* 1. "The title is not bold whereas the rest of the text on the page is."
        It was the only heading at 400 on a page of 600s. */
  :root:root:root .pdp .buybox .head-band h1{font-size:24px!important;font-weight:600!important;
    line-height:30px!important}
  :root:root:root .pdp .buybox .head-band .price{font-size:24px!important;font-weight:500!important}

  /* 3. THE SHARED SCALE. */
  /* editorial headings */
  .vmat h2,.vlife h2{font-size:44px!important;line-height:48px!important;font-weight:400!important}
  /* eyebrows */
  .vmat .eyebrow,.vlife .eyebrow,.vmore-h{font-size:12px!important;line-height:16px!important;
    font-weight:600!important;letter-spacing:.14em!important}
  /* body copy */
  .vmat .vmat-tx p,.vlife p{font-size:16px!important;line-height:24px!important;font-weight:400!important}
  /* section labels and controls */
  .pdp .opt-row .opt-label,.pdp .fit-btn,.pdp .szl-n{font-size:16px!important;font-weight:600!important}
  .pdp .pdp-form .btn-primary{font-size:16px!important;font-weight:600!important}
  /* the three icon groups read as ONE system: 14/600 label, 14/400 support, 28px icon */
  .pdp .vbadge b,.pdp .vtrust b,.vmat li b,.vmat-list b{font-size:14px!important;font-weight:600!important;
    line-height:20px!important}
  .pdp .vbadge i,.pdp .vtrust i,.vmat li i,.vmat-list i{font-size:14px!important;font-weight:400!important;
    line-height:20px!important}
  .pdp .vbadge svg,.pdp .vtrust svg,.vmat svg,.vmat-list svg{width:28px!important;height:28px!important;
    stroke-width:1.5!important}
  /* supporting text */
  .pdp .szl-s,.pdp .szl-fit,.pdp .vextra li,.pdp .head-band .pdp-sub,.pdp a.sibw .sibw-q{
    font-size:14px!important;line-height:20px!important;font-weight:400!important}
  /* card arrows and inline utility icons */
  .pdp a.sibw .sibw-arrow{width:24px!important;height:24px!important}
  .pdp .fit-btn svg{width:16px!important;height:16px!important}

  /* 2. ⚠️ OWNER DECISION PENDING. Ilyas asked to go back to the live tile mosaic. Codex's first
        choice is to keep the rail and stage and simply CAP the stage so it sits inside the fold,
        which addresses the discomfort without losing the composition. That is what is built here,
        for him to judge. If he still wants the mosaic after seeing it, it is one rule to swap. */
  
  

  /* 4. Materials: the gap moves OUT of the row stack and INTO the space above it. */
  .vmat .vmat-tx p{margin-bottom:32px!important}
  .vmat li,.vmat-list li{margin-bottom:12px!important;gap:14px!important;align-items:center!important}
  .vmat li:last-child,.vmat-list li:last-child{margin-bottom:0!important}
  /* ⛔ the image matches the RENDERED CONTENT, not the stretched column. Codex: "remove the
     stretched text column as the height reference." */
  .vmat-in{align-items:start!important}
  .vmat-img{height:440px!important;max-height:440px!important;aspect-ratio:auto!important;
    align-self:start!important}
  .vmat-img img{height:440px!important;max-height:440px!important;object-fit:cover!important}
}

/* [v2scale2-fix] ⚠️ The materials rows measured 27px apart against the 12px asked for: `.vmat-list`
   is a GRID with its own 15px row-gap, which adds to the 12px margin on each item. Grid gap and
   item margin stack. The gap now carries the whole value and the margin is zeroed. */
@media screen and (min-width: 990px) {
  .vmat-list{display:grid!important;row-gap:12px!important;gap:12px!important}
  .vmat li,.vmat-list li{margin-bottom:0!important;margin-top:0!important}
}

/* ============================================================================
   ⭐ [v2detailsmove-4oct] The collapsible sections now live in the buy column, in
   the dead space the mosaic gallery left beside it. Codex's spacing: 28px below
   the width card, full column width, no extra enclosing card or divider above.
   ⛔ The separate "Product details" heading is gone: the first accordion already
   carries that label and the pair read as the same introduction twice.
   ============================================================================ */
@media screen and (min-width: 990px) {
  .pdp .buybox .pdp-details--incolumn{margin-top:28px!important;width:100%!important;
    max-width:none!important;padding:0!important;background:transparent!important}
  .pdp .buybox .pdp-details--incolumn .spec-acc-q{min-height:52px!important}
  .pdp .buybox .pdp-details--incolumn .spec-acc-t{font-size:16px!important;font-weight:600!important}
  /* ⚠️ The column is 548px against the 589px it had in the old two column section, so panel copy
     wraps earlier. That only makes it taller, which the grid absorbs. */
  .pdp .buybox .pdp-details--incolumn table{width:100%!important;table-layout:fixed!important}
  .pdp .buybox .pdp-details--incolumn img{max-width:100%!important;height:auto!important}
}

/* [v2detailsmove-fix] The details block computed a 16px top margin against the 28px Codex specified:
   the theme sets its own margin on `.pdp-details` with more weight than my class selector carried.
   Stacking the root out-ranks it, as it has for the title, the subtitle and the stars before it. */
@media screen and (min-width: 990px) {
  :root:root:root .pdp .buybox .pdp-details--incolumn{margin-top:28px!important}
}

/* ============================================================================
   ⭐⭐ [v2boss19-4oct] Ilyas's six, values from Codex. Numbered to match him.
   ============================================================================ */
@media screen and (min-width: 990px) {
  /* 1. the standalone pair is gone; the timing now sits inside the trust strip and the packaging
        line inside Delivery & returns */
  .pdp .vextra{display:none!important}
  .pdp .gift-line{margin:10px 0 0!important;font-size:14px!important;line-height:20px!important;
    color:var(--lx-mute,#6B6B6B)!important}
  .pdp .vtrust i{line-height:19px!important}

  /* 2. "Make the Pairs well with cards smaller." ⛔ SIZE ONLY. He asked to retain the live card
        design, so nothing here touches typography, colour, borders or interactions. */
  .pdp-sec [class*="grid"]{grid-template-columns:repeat(3,320px)!important;gap:24px!important;
    justify-content:center!important;max-width:1008px!important;margin-left:auto!important;
    margin-right:auto!important}
  .pdp-sec .lt-img{width:320px!important;height:320px!important}

  /* 3. the closing strip, larger */
  .vfoot b{font-size:16px!important;font-weight:600!important;line-height:22px!important}
  .vfoot i{font-size:14px!important;line-height:20px!important}
  .vfoot svg{width:28px!important;height:28px!important}
  .vfoot-in{padding:32px 0!important}
  .vfoot li{gap:14px!important}

  /* 4. the materials rows, a little larger */
  .vmat li b,.vmat-list b{font-size:16px!important;line-height:22px!important}
  .vmat li i,.vmat-list i{font-size:15px!important;line-height:21px!important}
  .vmat svg,.vmat-list svg{width:32px!important;height:32px!important}

  /* 5. "Make the model wears M text black." Codex confirmed it stays below the size controls in the
        hierarchy at 14px regular, so no other emphasis is needed. */
  :root:root:root .pdp .szl-fit{color:var(--lx-ink,#111)!important}

  /* 6. ⭐ THE TITLE FONT, and the orphan it sat next to. The page runs THREE families: Fraunces for
        editorial headings, Hanken Grotesk for everything functional, and ARCHIVO FOR THE PRICE AND
        NOTHING ELSE, sitting directly beside the title at the same size. Codex: put the title in
        Hanken Grotesk 600 so it connects to the buying interface, and kill the Archivo orphan so the
        title and price read as one block. Fraunces stays on the editorial headings and the accordion
        labels, which is where it earns its place. */
  :root:root:root .pdp .buybox .head-band h1{font-family:'Hanken Grotesk',sans-serif!important;
    font-size:24px!important;font-weight:600!important;line-height:30px!important}
  :root:root:root .pdp .buybox .head-band .price{font-family:'Hanken Grotesk',sans-serif!important;
    font-size:24px!important;font-weight:500!important}
}

/* ============================================================================
   ⭐ [v2boss22-4oct] Two from Ilyas, values from Codex.
   ============================================================================ */
@media screen and (min-width: 990px) {
  /* 1. "Give the trust line section a bit more space so the text looks less squished."
        ⚠️ The cause: three EQUAL columns of 183px, of which 40px went to the icon and its gap and
        10px to padding, leaving about 126px of text for a column that now carries four lines.
        Codex: weight the columns 40/30/30 so the delivery column gets about 219px. */
  .pdp .vtrust{grid-template-columns:40% 30% 30%!important;padding:20px 0!important}
  .pdp .vtrust li{gap:8px!important;padding-right:0!important}
  .pdp .vtrust li:not(:first-child){padding-left:14px!important}

  /* 2. "The Pairs well with section looks a bit off."
        ⛔ MINE. When the cards came down to 320px I centred the GRID but left the HEADING where it
        was, so the cards sat 201px in from their own title and floated in the middle of the section.
        Codex chose left alignment: the heading and the cards share an edge again.
        ⛔ GEOMETRY ONLY. No typography, colour, border or interaction touched, so the live card
        design Ilyas asked to keep is intact. */
  .pdp-sec [class*="grid"]{justify-content:start!important;margin-left:0!important;
    margin-right:0!important;max-width:1008px!important}
}

/* [v2trustfit-4oct] ⛔ CODEX ASKED ME TO SHORTEN "12 month guarantee" TO "12 month cover" SO IT FITS
   ON ONE LINE. I REFUSED. "Guarantee" is the policy word. "Cover" implies insurance, which this is
   not, and Samedi's own terms say guarantee everywhere else. Trimming a promise to win a line break
   is not a trade I will make on Ilyas's behalf.
   The uneven wrap was a WIDTH problem, so it is solved with width. Columns re-weighted to 36/27/37
   and the inner padding trimmed, so all three labels fit on one line with the words unchanged. */
@media screen and (min-width: 990px) {
  .pdp .vtrust{grid-template-columns:36% 27% 37%!important}
  .pdp .vtrust li:not(:first-child){padding-left:10px!important}
}

/* [v2divider-4oct] "The vertical line next to 14 day returns is too close to the text, move it so it
   sits in the middle of the two trust lines."
   ⚠️ Measured: the divider sat 9px from the text on its left but 46px from the text on its right.
   The cause is that each column leads with its ICON, so the next column's words start 36px after the
   line while the previous column's words run right up to it. Symmetric padding puts the line midway
   between the two blocks of content it separates. */
@media screen and (min-width: 990px) {
  .pdp .vtrust li{padding-left:14px!important;padding-right:14px!important}
  .pdp .vtrust li:first-child{padding-left:0!important}
  .pdp .vtrust li:last-child{padding-right:0!important}

  /* [v2fourth-4oct] four cards now fill the row instead of three leaving a hole */
  .pdp-sec [class*="grid"]{grid-template-columns:repeat(4,320px)!important;max-width:1352px!important}
}

/* [v2divider-fit] ⚠️ Adding symmetric padding to centre the dividers cost each column width, and
   "14 day returns" started wrapping. Re-weighted so every label still fits on one line AND the
   dividers stay between the content blocks: columns 36/29/35 with 12px of inner padding.
   Budget, measured rather than guessed: text needs 145 + 95 + 135, each column carries a 28px icon
   plus an 8px gap, and the four inner padding edges take 48. That totals 539 in a 548px strip. */
@media screen and (min-width: 990px) {
  .pdp .vtrust{grid-template-columns:36% 29% 35%!important}
  .pdp .vtrust li{padding-left:12px!important;padding-right:12px!important}
  .pdp .vtrust li:first-child{padding-left:0!important}
  .pdp .vtrust li:last-child{padding-right:0!important}
}

/* ============================================================================
   ⭐⭐ [v2mobile-4oct] THE MOBILE PASS. Codex directing, Ilyas: "optimise it for
   mobile, that is where most our traffic will come from."
   ⛔ EVERYTHING BELOW IS GUARDED BY max-width:989px. The desktop work above is
   untouched. ⚠️ The materials section was still rendering TWO columns at 390px,
   159px and 151px, because a desktop rule of mine had no width guard. That is the
   fault Codex flagged in its very first review and it is fixed here properly.
   ============================================================================ */
@media screen and (max-width: 989px) {

  /* --- 1. the buy area, in Codex's order, with its type scale --- */
  :root:root:root .pdp .buybox .head-band h1{font-size:22px!important;font-weight:600!important;
    line-height:27px!important}
  :root:root:root .pdp .buybox .head-band .price{font-size:22px!important;font-weight:500!important;
    display:block!important}          /* its own line, never competing with the title */
  :root:root:root .pdp .buybox .head-band .pdp-sub{font-size:14px!important;line-height:20px!important}
  .pdp .vbadge b{font-size:12px!important;font-weight:600!important;line-height:16px!important}
  .pdp .vbadge i{font-size:12px!important;line-height:16px!important}
  .pdp .vbadge{padding:10px 0!important}
  .pdp .vbadge svg{width:22px!important;height:22px!important}

  /* 48px minimum on anything a thumb has to hit */
  .pdp .szl-o{min-height:52px!important;padding:8px 10px!important}
  .pdp .pdp-form .btn-primary{min-height:52px!important;font-size:16px!important}
  .pdp .fit-btn{min-height:44px!important;display:inline-flex!important;align-items:center!important}
  .pdp .szl-n{font-size:15px!important}
  .pdp .szl-s{font-size:12.5px!important}

  /* --- 2. the trust strip STACKS. Three 111px columns on a 390px screen is not a layout. --- */
  .pdp .vtrust{grid-template-columns:1fr!important;gap:12px!important;padding:16px 0!important}
  .pdp .vtrust li{border-right:0!important;padding:0!important;gap:12px!important;
    align-items:center!important;text-align:left!important;justify-content:flex-start!important}
  .pdp .vtrust li span{text-align:left!important;align-items:flex-start!important}
  .pdp .vtrust svg{width:26px!important;height:26px!important}
  .pdp .vtrust b{font-size:14px!important;line-height:19px!important}
  .pdp .vtrust i{font-size:12.5px!important;line-height:17px!important}

  /* --- 3. materials: ONE column, in Codex's order, image capped --- */
  .vmat-in{grid-template-columns:1fr!important;gap:20px!important;align-items:start!important;
    padding-left:16px!important;padding-right:16px!important}
  .vmat{padding:36px 0!important}
  .vmat h2{font-size:26px!important;line-height:32px!important;max-width:none!important;
    font-weight:500!important}
  .vmat .vmat-tx p{font-size:14px!important;line-height:20px!important;max-width:none!important;
    padding-right:0!important;margin-bottom:20px!important}
  .vmat-img{height:240px!important;max-height:240px!important;aspect-ratio:auto!important;
    width:100%!important;order:2}
  .vmat-img img{height:240px!important;object-fit:cover!important}
  .vmat-list{gap:14px!important}
  .vmat-list b{font-size:14px!important;line-height:19px!important}
  .vmat-list i{font-size:13px!important;line-height:18px!important}
  .vmat svg,.vmat-list svg{width:26px!important;height:26px!important}

  /* --- the lifestyle band --- */
  .vlife{height:auto!important;min-height:300px!important}
  .vlife-in{padding:0 16px!important}
  .vlife h2{font-size:26px!important;line-height:32px!important;max-width:none!important}
  .vlife p{font-size:14px!important;line-height:20px!important;max-width:none!important}

  /* --- recommendations: same gutters as every other section, two cards across --- */
  /* ⚠️ `.pdp-sec` sits inside TWO nested `.container` elements, each with its own gutter, so adding
     16px of my own made it 295px against 375px for every other section. The containers already
     provide the gutter; mine is removed rather than added to. */
  /* ⚠️ `.pdp-sec` sits inside TWO nested `.container` elements, each with its own gutter, so it
     rendered 295px against 335px for the buy area and 375px for the full bleed bands. Removing my
     own padding was not enough because the constraint is the containers, not this element. It is
     pulled back out with a negative margin to match the BUY AREA, which is the width the eye is
     already using as the page's measure. Measured, not guessed: 335 - 295 = 40, so 20 each side. */
  .pdp-sec{padding-left:0!important;padding-right:0!important;max-width:none!important;
    margin-left:-20px!important;margin-right:-20px!important}
  .pdp-sec .sec-head{padding-left:0!important;padding-right:0!important}
  .pdp-sec [class*="grid"]{grid-template-columns:repeat(2,1fr)!important;gap:12px!important;
    max-width:none!important;width:100%!important}
  .pdp-sec .lt-img{width:100%!important;height:auto!important;aspect-ratio:1/1!important}
  .pdp-sec .sec-head h2{font-size:26px!important;line-height:32px!important}

  /* --- the closing strip --- */
  .vfoot-in{grid-template-columns:1fr 1fr!important;gap:18px 12px!important;padding:24px 16px!important}
  .vfoot b{font-size:13px!important;line-height:18px!important}
  .vfoot i{font-size:12px!important;line-height:16px!important}
  .vfoot svg{width:24px!important;height:24px!important}
  .vfoot li{border-right:0!important;padding:0!important;justify-content:flex-start!important;
    text-align:left!important}
  .vfoot span{text-align:left!important;align-items:flex-start!important}

  /* --- the sticky bar must not sit on top of the last section --- */
  .pdp .vextra{display:none!important}
  main{padding-bottom:88px!important}
}

/* ============================================================================
   [v2tablet-4oct] TABLET. Codex: at 768px go back to two columns, gallery about
   52% and the purchase panel about 48%, but keep materials STACKED until 1024px.
   ============================================================================ */
@media screen and (min-width: 768px) and (max-width: 989px) {
  .container.pdp{grid-template-columns:52% 48%!important;gap:24px!important;
    padding-left:24px!important;padding-right:24px!important}
  :root:root:root .pdp .buybox .head-band h1{font-size:24px!important}
  :root:root:root .pdp .buybox .head-band .price{font-size:24px!important}
  .pdp-sec [class*="grid"]{grid-template-columns:repeat(3,1fr)!important}
  .vfoot-in{grid-template-columns:repeat(4,1fr)!important}
}

/* ============================================================================
   [v2mobfix-4oct] Codex's mobile review. Three of these are my errors, stated plainly.
   ============================================================================ */
@media screen and (max-width: 989px) {
  /* ⛔ I CLAIMED THE PRICE WAS ON ITS OWN LINE. IT WAS NOT. `display:block` on the price does
     nothing when its PARENT is a flex ROW: the title and price were sitting side by side, which is
     what Codex read as a collision. The parent has to become a column. */
  :root:root:root .pdp .buybox .head-band .title-block{flex-direction:column!important;
    align-items:flex-start!important;gap:6px!important}
  :root:root:root .pdp .buybox .head-band .price-row{width:100%!important}

  /* ⛔ I CLAIMED EVERY TAP TARGET CLEARED 48px. The size guide link measured 41px. */
  .pdp .fit-btn{min-height:48px!important}

  /* ⛔ THE WIDTH CARD ARROW WAS RENDERING AT 95x95. My 24px rule was desktop only, so on mobile the
     SVG had no height constraint and stretched to its grid cell, which is why the card read as a
     huge arrow beside empty space. */
  .pdp a.sibw .sibw-arrow{width:22px!important;height:22px!important;flex:none!important;
    position:static!important;transform:none!important;align-self:center!important}
  .pdp a.sibw{grid-template-columns:72px minmax(0,1fr) 22px!important;
    grid-template-rows:auto auto auto!important;column-gap:12px!important;row-gap:2px!important;
    padding:14px!important;align-items:center!important}
  .pdp a.sibw .sibw-thumb{width:72px!important;height:72px!important;grid-column:1!important;
    grid-row:1/4!important}
  .pdp a.sibw .sibw-q{grid-column:2!important;grid-row:1!important;font-size:13px!important}
  .pdp a.sibw .sibw-p{grid-column:2!important;grid-row:2!important;font-size:16px!important}
  .pdp a.sibw .sibw-pr{grid-column:2!important;grid-row:3!important;font-size:16px!important}
  .pdp a.sibw .sibw-arrow{grid-column:3!important;grid-row:1/4!important}

  /* the lifestyle band was so dark the bracelet barely registered. The gradient is lifted on the
     right where the photograph lives, and held where the words sit so they stay legible. */
  .vlife::before{background:linear-gradient(90deg,rgba(0,0,0,.72) 0%,rgba(0,0,0,.5) 45%,rgba(0,0,0,.12) 100%)!important}

  /* secondary text Codex called hard to read */
  .pdp .vbadge i{font-size:12.5px!important}
  .vrev-cnt{font-size:13px!important}
}

/* [v2tap-4oct] ⚠️ The size guide link's min-height computed 0 despite two !important rules of mine:
   a theme rule out-ranks a plain class selector here, as it has for the title, the subtitle, the
   stars and the details block before it. Root stack, and the padding does the work since the element
   is absolutely positioned. 41px was below the 48px minimum Codex set and I had claimed it cleared. */
@media screen and (max-width: 989px) {
  :root:root:root .pdp .pdp-form .fit-btn{min-height:48px!important;
    padding:6px 10px 22px 10px!important;align-items:center!important}
}

/* ============================================================================
   ⭐⭐ [v2mob12-4oct] Ilyas's twelve mobile items, values from Codex, numbered to
   match him. ⛔ All inside max-width:989px. The signed-off desktop is untouched.
   ============================================================================ */
@media screen and (max-width: 989px) {

  /* 1. "The Solid Cuban line should be above the price." Final order from Codex:
        title, subtitle, price, rating. ⚠️ The title and price live inside `.title-block` while the
        subtitle is its SIBLING, so no amount of ordering within one parent could interleave them.
        `display:contents` dissolves the wrapper so all four become children of the same flex column
        and can be ordered freely. */
  :root:root:root .pdp .buybox .head-band{display:flex!important;flex-direction:column!important;
    align-items:stretch!important}
  :root:root:root .pdp .buybox .head-band .title-block{display:contents!important}
  :root:root:root .pdp .buybox .head-band h1{order:1!important;margin:0 0 6px!important}
  :root:root:root .pdp .buybox .head-band .pdp-sub{order:2!important;margin:0 0 8px!important}
  :root:root:root .pdp .buybox .head-band .price-row{order:3!important;margin:0 0 10px!important}
  :root:root:root .pdp .buybox .head-band .rating-row{order:4!important;margin:0!important}

  /* 2. ⛔ THE TITLE WAS STILL FRAUNCES ON MOBILE. We moved it to Hanken Grotesk on desktop and Ilyas
        approved that, but the rule sat inside min-width:990px so phones never received it. */
  :root:root:root .pdp .buybox .head-band h1{font-family:'Hanken Grotesk',sans-serif!important;
    font-size:24px!important;line-height:28px!important;font-weight:600!important}
  :root:root:root .pdp .buybox .head-band .price{font-family:'Hanken Grotesk',sans-serif!important;
    font-size:24px!important;font-weight:500!important}

  /* 3. the spec strip: three columns, ICON ABOVE, one short centred label, no secondary line */
  .pdp .vbadge{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important;
    padding:14px 0!important}
  .pdp .vbadge li{flex-direction:column!important;align-items:center!important;text-align:center!important;
    gap:6px!important;padding:0 4px!important;border-right:0!important}
  .pdp .vbadge svg{width:22px!important;height:22px!important}
  .pdp .vbadge b{font-size:12px!important;line-height:16px!important;text-align:center!important}
  .pdp .vbadge i{display:none!important}
  .pdp .vbadge span{align-items:center!important}

  /* 4. "Centre the text on Choose your size and make the buttons less tall." 62px -> 44px. */
  :root:root:root .pdp .opt-row .opt-label{text-align:center!important;display:block!important}
  .pdp .szl-o{min-height:44px!important;padding:6px 8px!important;align-items:center!important;
    text-align:center!important}
  .pdp .szl-o .szl-n,.pdp .szl-o .szl-s{text-align:center!important;width:100%!important}
  .pdp .szl-fit{text-align:center!important}

  /* 5. ⛔ REVERSES MY LAST MOBILE PASS ON ILYAS'S INSTRUCTION. Codex had me stack these; he has seen
        that and wants one row. Codex's way to make three columns fit at 390px without the squashing
        it objected to: short labels, icon above, no secondary lines. The delivery cutoff moves into
        Delivery and returns. */
  .pdp .vtrust{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:8px!important;
    padding:16px 0!important}
  .pdp .vtrust li{flex-direction:column!important;align-items:center!important;text-align:center!important;
    gap:6px!important;padding:0 4px!important;border-right:0!important}
  .pdp .vtrust svg{width:22px!important;height:22px!important}
  .pdp .vtrust b{font-size:12px!important;line-height:16px!important;text-align:center!important}
  .pdp .vtrust i{display:none!important}
  .pdp .vtrust span{align-items:center!important}

  /* 7. the review band, adapted from the concept: score, divider, one quote, arrows bottom right */
  .vrev-in{display:block!important;padding:20px 16px!important;max-width:none!important;height:auto!important}
  .vrev-score{border-right:0!important;border-bottom:1px solid #E6E1DA!important;padding:0 0 14px!important;
    text-align:left!important;flex:none!important;width:100%!important}
  .vrev-score .vrev-stars{font-size:18px!important;margin-right:8px!important}
  .vrev-cnt{display:block!important;margin-top:4px!important;font-size:13px!important}
  .vrev-quotes{padding:14px 0 0!important;border-left:0!important}
  .vrev-q{font-size:16px!important;line-height:23px!important;max-width:none!important;text-align:left!important}
  .vrev-nav{display:flex!important;justify-content:flex-end!important;margin-top:12px!important;padding:0!important}

  /* 8. "Huge gap between the start of Our Materials and the title." 80px -> 24px. */
  .vmat{padding-top:24px!important;padding-bottom:24px!important}
  .vmat .eyebrow{margin-bottom:8px!important;display:block!important}
  .vmat-in{padding-top:0!important;row-gap:0!important}

  /* 9. "Large gap below the text of that section." 16px to the image, 24px beneath it. */
  .vmat .vmat-tx{margin-bottom:16px!important}
  .vmat-list{margin-bottom:0!important}
  .vmat-img{margin-top:16px!important;margin-bottom:0!important}

  /* 11. "Apple Pay has rounded edges but ATC has sharp ones." Codex: round OURS to match rather than
         fight Apple Pay's shadow DOM, which our CSS cannot reach anyway. */
  .pdp .pdp-form .btn-primary{border-radius:8px!important}
  .pdp .szl-o{border-radius:8px!important}
  .pdp a.sibw{border-radius:8px!important}

  /* 12. payment icons directly under Apple Pay, moved by script, spaced here */
  .pdp .paylist[data-moved]{margin:8px 0 16px!important;display:flex!important;flex-wrap:wrap!important;
    gap:6px!important;justify-content:center!important}
}

/* [v2mob12-fix] Three of the twelve that did not land.
   ⛔ 11. THE BUTTON RADIUS. The theme sets `:root:root:root .pdp .btn-primary{border-radius:0
   !important}` across a long selector list, so my plain class rule never stood a chance. Four roots.
   ⚠️ 9. 68px sat below the materials image where 24px was asked for: `.vmat-in` was carrying its own
   bottom padding on top of the section's. Both are now explicit.
   ⚠️ 4. CODEX CONTRADICTED ITSELF and I am holding the safer number. It asked for 44px size cells in
   item 4, but set a 48px minimum touch target in its own mobile spec and corrected me when I shipped
   41px. 48px it is, and I have told it why. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .pdp-form .btn-primary,
  :root:root:root:root .pdp .buybox .btn-primary{border-radius:8px!important}
  :root:root:root:root .pdp .szl-o{border-radius:8px!important}
  :root:root:root:root .pdp a.sibw{border-radius:8px!important}

  .vmat-in{padding-bottom:0!important}
  .vmat .vmat-tx{margin-bottom:0!important}
  .vmat-img{margin-top:16px!important;margin-bottom:0!important}
  .vmat{padding-bottom:24px!important}

  .pdp .szl-o{min-height:48px!important;padding:5px 8px!important}
}

/* ============================================================================
   ⭐⭐ [v2mob8-4oct] Ilyas's eight, now with HIS MOBILE MOCKUP as the authority.
   ⛔ Items 3, 5 and 6 REVERSE Codex's previous mobile instruction. It had told me
   three columns could not carry icon-left plus two lines at 390px, so I shipped
   icon-above with no secondary text. The mockup does exactly that and it fits, so
   the real constraint was the type scale, not the width. Codex accepted this.
   ⚠️ I have NOT used its smallest numbers. It specified 9px and 10px secondary
   text, which contradicts its own earlier "utility text 12px minimum" and is below
   what anyone can comfortably read on a phone. Floor held at 11px.
   ============================================================================ */
@media screen and (max-width: 989px) {

  /* 1. "The title is too close to the images." */
  :root:root:root .pdp .buybox .head-band{padding-top:20px!important}
  :root:root:root .pdp .buybox .head-band h1{font-size:26px!important;line-height:30px!important;
    margin:0 0 6px!important}

  /* 2. "Put the reviews and in stock text ABOVE the price." */
  :root:root:root .pdp .buybox .head-band .pdp-sub{order:2!important;margin:0 0 10px!important}
  :root:root:root .pdp .buybox .head-band .rating-row{order:3!important;margin:0 0 10px!important}
  :root:root:root .pdp .buybox .head-band .price-row{order:4!important;margin:0!important}
  :root:root:root .pdp .buybox .head-band .price{font-size:28px!important;line-height:32px!important}
  :root:root:root .pdp .buybox .head-band .stars{font-size:14px!important}
  :root:root:root .pdp .buybox .head-band .rating-row{font-size:12px!important;flex-wrap:wrap!important}

  /* 3. the spec strip: icon LEFT, two lines, vertical dividers, as the mockup draws it */
  .pdp .vbadge{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:0!important;
    padding:14px 0!important}
  .pdp .vbadge li{flex-direction:row!important;align-items:center!important;text-align:left!important;
    gap:6px!important;padding:0 8px!important;
    border-right:1px solid #E6E1DA!important;min-height:32px!important}
  .pdp .vbadge li:first-child{padding-left:0!important}
  .pdp .vbadge li:last-child{border-right:0!important;padding-right:0!important}
  .pdp .vbadge svg{width:22px!important;height:22px!important;flex:none!important}
  .pdp .vbadge span{align-items:flex-start!important;text-align:left!important;min-width:0!important}
  .pdp .vbadge b{font-size:12px!important;line-height:15px!important;text-align:left!important;
    font-weight:600!important}
  .pdp .vbadge i{display:block!important;font-size:11px!important;line-height:14px!important;
    text-align:left!important}

  /* 4. "Align Choose your size text to the LEFT." */
  :root:root:root .pdp .opt-row .opt-label{text-align:left!important;font-size:14px!important;
    line-height:18px!important;font-weight:600!important}
  .pdp .opt-row{margin-top:24px!important}

  /* 5 + 6. the trust row below the button: dividers back, text back, cutoff in the delivery column */
  .pdp .vtrust{display:grid!important;grid-template-columns:repeat(3,1fr)!important;gap:0!important;
    padding:18px 0!important}
  .pdp .vtrust li{flex-direction:row!important;align-items:center!important;text-align:left!important;
    gap:6px!important;padding:0 8px!important;
    border-right:1px solid #E6E1DA!important;min-height:36px!important}
  .pdp .vtrust li:first-child{padding-left:0!important}
  .pdp .vtrust li:last-child{border-right:0!important;padding-right:0!important}
  .pdp .vtrust svg{width:24px!important;height:24px!important;flex:none!important}
  .pdp .vtrust span{align-items:flex-start!important;text-align:left!important;min-width:0!important}
  .pdp .vtrust b{font-size:12px!important;line-height:15px!important;text-align:left!important;
    font-weight:600!important}
  .pdp .vtrust i{display:block!important;font-size:11px!important;line-height:14px!important;
    text-align:left!important}

  /* 7. the standalone notice stays gone; its content lives in the delivery column now */
  .pdp .vextra{display:none!important}

  /* 8. the review band, to the mockup: stars and score on one line, italic quote, verified line,
        then dots centred with a single circular arrow at the right. */
  .vrev-in{display:block!important;padding:16px!important}
  .vrev-score{border:0!important;padding:0!important;width:auto!important;display:flex!important;
    align-items:center!important;gap:12px!important}
  .vrev-score .vrev-stars{font-size:14px!important;margin:0!important}
  .vrev-cnt{display:inline-block!important;margin:0!important;font-size:12px!important}
  .vrev-quotes{padding:10px 0 0!important;border:0!important}
  .vrev-q{font-size:17px!important;line-height:23px!important;text-align:left!important}
  .vrev-nav{display:flex!important;justify-content:flex-end!important;align-items:center!important;
    margin-top:10px!important}
  .vrev-nav button:first-child{display:none!important}   /* the mockup shows ONE arrow, not a pair */
}

/* [v2overflow-4oct] ⛔ REGRESSION I INTRODUCED. The draft's document scrollWidth was 417px on a 390px
   viewport while LIVE measures 375px, so the page could be dragged sideways. The offenders were all
   `mm-*` nodes, the slide-in menu's sub panel parked off canvas to the right.
   ⚠️ `overflow-x: clip` rather than `hidden`: `hidden` creates a scroll container, which silently
   breaks `position: sticky` on descendants, and the sticky purchase bar is the last thing we want to
   lose. `clip` crops without that side effect. */
html{overflow-x:clip!important}
@media screen and (max-width: 989px){
  body{overflow-x:clip!important}
}

/* ============================================================================
   [v2mobfix2-4oct] Codex's review. Four real defects, three of which it saw and I
   had not. One of its calls was wrong and I have left that alone.
   ============================================================================ */
@media screen and (max-width: 989px) {

  /* ⛔ THE TITLE WAS BEING CLIPPED. At 26px UPPERCASE, "ONYX CUBAN BRACELET (7MM)" does not fit
     335px and the element's scrollWidth exceeded its clientWidth, so the end of the name was cut
     off. The uppercase came from the desktop concept rule, which was never width guarded. The
     mockup shows sentence case anyway. Case restored, size trimmed, wrapping allowed. */
  :root:root:root .pdp .buybox .head-band h1{text-transform:none!important;font-size:24px!important;
    line-height:29px!important;letter-spacing:0!important;white-space:normal!important;
    overflow:visible!important;text-overflow:clip!important}

  /* ⛔ THE BUTTON WAS GOLD ON MOBILE. Codex caught this and I had missed it entirely: the dark ink
     button we agreed, and that the concept draws, was a DESKTOP ONLY rule, so phones kept the
     theme's gold. Gold is the accent, not the primary action. */
  :root:root:root:root .pdp .pdp-form .btn-primary,
  :root:root:root:root .pdp .buybox .btn-primary{background:var(--lx-ink,#111)!important;
    color:#fff!important;border-color:var(--lx-ink,#111)!important}
  :root:root:root:root .mcart .btn-primary{background:var(--lx-ink,#111)!important;color:#fff!important;
    border-color:var(--lx-ink,#111)!important}

  /* ⛔ TWO VISIBLE DUPLICATES OF THE DELIVERY COPY REMAINED. Ilyas: "remove the arrives gift boxed
     and order before 3pm, that will be a part of the trust icons below the ATC." I had hidden
     `.deliver` but `.deliver-row` is a DIFFERENT element and was still on screen, and the pill over
     the gallery repeats the cutoff a third time. Both go; the trust row carries it once. */
  .pdp .deliver-row{display:none!important}
  .pdp .stockpill.shippill{display:none!important}
}

/* ============================================================================
   ⭐⭐⭐ [v2scale-final-4oct] THE SINGLE MOBILE SCALE. This block GOVERNS. Everything
   above it that set a font size at phone width is superseded here.

   ⛔ THE ROOT CAUSE OF "THE FONTS ARE ALL DIFFERENT SIZES": the buy column was
   rendering TEN distinct sizes — 28, 24, 16, 15, 14, 13.5, 13, 12.5, 12, 11 —
   including 12 against 12.5 and 14 against 15. Those do not read as hierarchy, they
   read as mistakes. The cause was ours: about twenty CSS blocks appended across one
   session, each sizing whatever that round touched, with nothing governing the whole.
   ⛔ FIVE SIZES ONLY. Do not add a sixth. If something needs emphasis, use weight.
   ============================================================================ */
@media screen and (max-width: 989px) {

  /* ---- 24px: the price, and nothing else ---- */
  :root:root:root:root .pdp .buybox .head-band .price{font-size:24px!important;line-height:28px!important;
    font-weight:700!important}

  /* ---- 20px: the product title, and nothing else ---- */
  :root:root:root:root .pdp .buybox .head-band h1{font-size:20px!important;line-height:24px!important;
    font-weight:600!important;text-transform:none!important;letter-spacing:0!important}

  /* ---- 16px: the two primary controls ---- */
  :root:root:root:root .pdp .opt-row .opt-label{font-size:16px!important;line-height:20px!important;font-weight:600!important}
  :root:root:root:root .pdp .pdp-form .btn-primary{font-size:16px!important;line-height:20px!important;font-weight:700!important}

  /* ---- 14px: size options, review quote, width card, sticky ---- */
  :root:root:root:root .pdp .szl-n{font-size:14px!important;line-height:20px!important;font-weight:600!important}
  :root:root:root:root .vrev-q{font-size:14px!important;line-height:20px!important}
  :root:root:root:root .pdp a.sibw .sibw-p,
  :root:root:root:root .pdp a.sibw .sibw-pr{font-size:14px!important;line-height:20px!important}
  :root:root:root:root .mcart .m-name,
  :root:root:root:root .mcart .btn-primary{font-size:14px!important;line-height:20px!important}

  /* ---- 12px: EVERYTHING else that carries words ---- */
  :root:root:root:root .pdp .buybox .head-band .pdp-sub,
  :root:root:root:root .pdp .buybox .head-band .rating-row,
  :root:root:root:root .pdp .buybox .head-band .stars,
  :root:root:root:root .pdp .buybox .head-band .ship-line,
  :root:root:root:root .pdp .fit-btn,
  :root:root:root:root .pdp .szl-s,
  :root:root:root:root .pdp .szl-fit,
  :root:root:root:root .pdp .vbadge b,
  :root:root:root:root .pdp .vbadge i,
  :root:root:root:root .pdp .vtrust b,
  :root:root:root:root .pdp .vtrust i,
  :root:root:root:root .pdp a.sibw .sibw-q,
  :root:root:root:root .pdp .gift-line,
  :root:root:root:root .vrev-cnt,
  :root:root:root:root .mcart .m-price{font-size:12px!important;line-height:16px!important}
  :root:root:root:root .pdp .vbadge b,
  :root:root:root:root .pdp .vtrust b{font-weight:600!important}

  /* ---- 2. the heading rhythm: zero every margin, then apply Codex's gaps ---- */
  :root:root:root:root .pdp .buybox .head-band{padding:12px 0!important}
  :root:root:root:root .pdp .buybox .head-band > *,
  :root:root:root:root .pdp .buybox .head-band h1,
  :root:root:root:root .pdp .buybox .head-band .pdp-sub,
  :root:root:root:root .pdp .buybox .head-band .rating-row,
  :root:root:root:root .pdp .buybox .head-band .price-row{margin:0!important}
  :root:root:root:root .pdp .buybox .head-band .pdp-sub{margin-top:4px!important}
  :root:root:root:root .pdp .buybox .head-band .rating-row{margin-top:8px!important}
  :root:root:root:root .pdp .buybox .head-band .price-row{margin-top:8px!important;min-height:0!important}

  /* ---- 3. "Choose your size" and "Find your fit" SHARE ONE LINE ---- */
  :root:root:root:root .pdp .pdp-form{position:relative!important}
  :root:root:root:root .pdp .opt-row{margin-top:0!important;padding-top:0!important}
  :root:root:root:root .pdp .opt-row .opt-label{display:block!important;height:48px!important;
    line-height:48px!important;padding-right:110px!important;margin:0!important}
  :root:root:root:root .pdp .pdp-form .fit-btn{position:absolute!important;right:0!important;
    top:auto!important;height:48px!important;padding:0!important;align-items:center!important;
    justify-content:flex-end!important}
  :root:root:root:root .pdp .szl{margin-top:8px!important}

  /* ---- 4. SQUARE. He finds the rounding tacky and he is the owner. ---- */
  :root:root:root:root .pdp .pdp-form .btn-primary,
  :root:root:root:root .pdp .buybox .btn-primary,
  :root:root:root:root .pdp .szl-o,
  :root:root:root:root .pdp a.sibw,
  :root:root:root:root .mcart .btn-primary{border-radius:0!important}

  /* ---- 5. the model note, left ---- */
  :root:root:root:root .pdp .szl-fit{text-align:left!important;margin-top:8px!important}

  /* ---- 6. GOLD. ⛔ This reverses both of us: Codex called gold off-direction and I changed it to
       dark ink. Ilyas wants gold, it is his brand, and the dark ink was never his instruction. ---- */
  :root:root:root:root .pdp .pdp-form .btn-primary,
  :root:root:root:root .pdp .buybox .btn-primary,
  :root:root:root:root .mcart .btn-primary{background:var(--lx-gold,#C9A866)!important;
    border-color:var(--lx-gold,#C9A866)!important;color:var(--lx-ink,#111)!important;
    min-height:48px!important}
  :root:root:root:root .pdp .pdp-form .btn-primary{margin:16px 0!important}

  /* ---- 7. the trust row: icon ABOVE, every word kept, natural height ---- */
  :root:root:root:root .pdp .vtrust{grid-template-columns:repeat(3,1fr)!important;gap:8px!important;
    padding:16px 0!important}
  :root:root:root:root .pdp .vtrust li{flex-direction:column!important;align-items:center!important;
    text-align:center!important;gap:6px!important;padding:0!important;border-right:0!important;
    min-height:0!important;height:auto!important}
  :root:root:root:root .pdp .vtrust svg{width:20px!important;height:20px!important}
  :root:root:root:root .pdp .vtrust span{align-items:center!important;text-align:center!important}
  :root:root:root:root .pdp .vtrust b,
  :root:root:root:root .pdp .vtrust i{display:block!important;text-align:center!important}

  /* ---- 8. the cutoff line above the width card, and its separator, GO ---- */
  :root:root:root:root .pdp .atc-eta,
  :root:root:root:root .pdp .atc-eta--moved,
  :root:root:root:root .pdp .atc-sep,
  :root:root:root:root .pdp .deliver,
  :root:root:root:root .pdp .deliver-row{display:none!important}
  :root:root:root:root .pdp a.sibw{margin-top:16px!important}

  /* ---- 9. the review band: no dead space, dots added by script ---- */
  :root:root:root:root .vrev-in{padding:16px!important}
  :root:root:root:root .vrev-quotes{padding-top:8px!important;min-height:0!important}
  :root:root:root:root .vrev-q{margin:0 0 8px!important}
  :root:root:root:root .vrev-nav{margin-top:12px!important;margin-bottom:0!important}
  :root:root:root:root .vrev{padding-bottom:12px!important}
  .vrev-dots{display:flex!important;justify-content:center!important;gap:8px!important;margin-top:12px!important}
  .vrev-dots button{width:6px!important;height:6px!important;border-radius:50%!important;padding:0!important;
    border:0!important;background:#CFCAC2!important;position:relative!important}
  .vrev-dots button::after{content:"";position:absolute;inset:-21px}   /* 48px touch target */
  .vrev-dots button[aria-current="true"]{background:var(--lx-ink,#111)!important}
}

/* [v2scale-final-fix] Three that the governing block did not catch.
   ⚠️ THE STRAY SIZES WERE IN NESTED SPANS, not the elements I targeted: "4.9" and "(7 reviews)" sit
   inside `.rating`, the stock sentence inside `.ship-line`, and "Find your size" inside `.fit-btn-tx`.
   Sizing a container does not size a child that sets its own. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .buybox .head-band .rating,
  :root:root:root:root .pdp .buybox .head-band .rating *,
  :root:root:root:root .pdp .buybox .head-band .ship-line,
  :root:root:root:root .pdp .buybox .head-band .ship-line *,
  :root:root:root:root .pdp .fit-btn *,
  :root:root:root:root .pdp .fit-btn-l,
  :root:root:root:root .pdp .fit-btn-tx{font-size:12px!important;line-height:16px!important}

  /* the size row now HOLDS the fit link, so they share one line without absolute positioning */
  :root:root:root:root .pdp .opt-row{position:relative!important;display:block!important}
  :root:root:root:root .pdp .opt-row .fit-btn{position:absolute!important;right:0!important;
    top:0!important;bottom:auto!important;height:48px!important;display:inline-flex!important;
    align-items:center!important;padding:0!important}

  /* the review band: the DOTS now carry navigation, so the arrow block goes and takes its dead
     space with it. 97px of nothing under a two line quote was the complaint. */
  :root:root:root:root .vrev-nav{display:none!important}
  :root:root:root:root .vrev-quotes{min-height:0!important;padding-bottom:0!important}
  :root:root:root:root .vrev-dots{margin:12px 0 0!important}
  :root:root:root:root .vrev{padding-bottom:16px!important}
  :root:root:root:root .vrev-in{padding-bottom:0!important}
}

/* ============================================================================
   ⭐⭐ [v2revert-4oct] Ilyas's ten. ⛔ FOUR OF THESE ARE REVERSALS OF THINGS HE NEVER
   ASKED FOR: the Find your size move, the Add to Bag to Apple Pay gap, the trust
   dividers, and the review arrow. Each came from a Codex instruction that I applied
   in full rather than applying only the part he had asked about. That is the reason
   every round of fixes has produced a new round of breakage, and it stops here.
   ============================================================================ */
@media screen and (max-width: 989px) {

  /* 1. "Price is too large and bold and too close to the review." */
  :root:root:root:root .pdp .buybox .head-band .price{font-size:20px!important;line-height:24px!important;
    font-weight:600!important}
  :root:root:root:root .pdp .buybox .head-band .price-row{margin-top:14px!important}

  /* 2 + 8. "Made in Italy / Designed in London looks crammed" and the same for the delivery column.
     Three equal columns at 390px leave about 106px each, which two lines of twelve point text cannot
     sit in comfortably. The padding comes off, the columns breathe, and the rows grow naturally. */
  :root:root:root:root .pdp .vbadge{gap:6px!important;padding:12px 0!important}
  :root:root:root:root .pdp .vbadge li{padding:0!important;gap:7px!important;align-items:flex-start!important}
  :root:root:root:root .pdp .vbadge b,
  :root:root:root:root .pdp .vbadge i{line-height:15px!important;word-break:normal!important;
    overflow-wrap:break-word!important}
  :root:root:root:root .pdp .vtrust li{padding:0 2px!important}
  :root:root:root:root .pdp .vtrust b,
  :root:root:root:root .pdp .vtrust i{line-height:15px!important}

  /* 3. ⛔ REVERTED. The link goes back to its own right aligned position and the pointless
     "Measure your wrist and see how 20cm sits" hint is hidden. Neither was asked for. */
  :root:root:root:root .pdp .opt-row .fit-btn{position:absolute!important;right:0!important;
    top:0!important;height:auto!important}
  :root:root:root:root .pdp .fit-btn .fit-btn-h,
  :root:root:root:root .pdp .fit-btn-tx > :not(.fit-btn-l){display:none!important}
  :root:root:root:root .pdp .opt-row .opt-label{height:auto!important;line-height:20px!important;
    padding-right:0!important}

  /* 4. "Reduce the gap between the size buttons and Model wears." */
  :root:root:root:root .pdp .szl-fit{margin-top:6px!important}

  /* 5. "Reduce the gap between Model wears and the ATC button." */
  :root:root:root:root .pdp .pdp-form .btn-primary{margin-top:10px!important;margin-bottom:0!important}

  /* 6. ⛔ REVERTED. "Why did you increase the gap between ATC and Apple Pay? No one asked for that."
     Correct, that was Codex's 16px above and below the button, applied wholesale. */
  :root:root:root:root .pdp .pdp-express{margin-top:8px!important}

  /* 7. ⛔ REVERTED. "Why did you remove the vertical lines separating the trust icons?" Also not
     asked for: it came from the icon-above arrangement Codex specified. Lines back. */
  :root:root:root:root .pdp .vtrust li{border-right:1px solid #E6E1DA!important}
  :root:root:root:root .pdp .vtrust li:last-child{border-right:0!important}

  /* 9. ⛔ REVERTED. "Why did you remove the arrow on the reviews? They need to see it so they know to
     swipe. Keep the dots still." Both, as he asked. */
  :root:root:root:root .vrev-nav{display:flex!important;justify-content:flex-end!important;
    align-items:center!important;margin-top:0!important}
  :root:root:root:root .vrev-nav button:first-child{display:none!important}  /* one arrow, not a pair */
  :root:root:root:root .vrev-dots{margin:10px 0 0!important}

  /* 10. "Why is there a massive gap between the four trust lines and the footer?"
     ⛔ MINE. I padded `main` by 88px so the sticky bar could not cover the last section, but the
     closing strip sits INSIDE main, so the padding opened a gap before the footer instead. The bar
     may sit over the footer; that costs nothing. */
  :root:root:root:root main{padding-bottom:0!important}
  :root:root:root:root .vfoot{margin-bottom:0!important}
}

/* [v2revert-fix] ⚠️ The gap between the size buttons and the model note measured 14px, not the 6px
   I set: `.szl` is a GRID with an 8px row-gap, and that stacks on top of the margin. Row gap zeroed
   so the margin alone controls it. Column gap is untouched, so the two buttons keep their spacing. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .szl{row-gap:0!important;column-gap:8px!important}
  :root:root:root:root .pdp .szl-fit{margin-top:6px!important}
}

/* [v2fitpos-4oct] ⛔ MY REVERT MISSED. I wrote the rule for `.opt-row .fit-btn`, but the revert had
   already moved the link back OUT of the row, so that selector matched nothing and the theme's own
   `top: 136px` applied. That offset was written for the ORIGINAL spacing; since every gap above it
   has been tightened, 136px now lands the link on top of the Add to Bag button.
   ⚠️ A hardcoded pixel offset on an absolutely positioned element is a hidden dependency on the
   spacing above it. Anchored to the top of the form instead, which is where the size label sits. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .pdp-form{position:relative!important}
  :root:root:root:root .pdp .pdp-form .fit-btn{position:absolute!important;right:0!important;
    top:0!important;bottom:auto!important;height:auto!important;z-index:2!important}
}

/* [v2fitrow-4oct] The link is anchored to the size row so it stays level with "Choose your size" and
   right aligned, without a magic pixel offset. ⛔ The label keeps its own line height and no padding
   reservation: that reservation was part of what he objected to last time. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .opt-row{position:relative!important}
  :root:root:root:root .pdp .opt-row .fit-btn{position:absolute!important;right:0!important;
    top:0!important;bottom:auto!important;height:auto!important;padding:0!important;z-index:2!important}
}

/* ============================================================================
   ⭐⭐ [v2inline-4oct] Six from Ilyas. ⛔ ONLY these six. Nothing else is touched.
   ============================================================================ */
@media screen and (max-width: 989px) {

  /* 1. "Move the price inline with the title and align it right, like we do on the live site." */
  :root:root:root:root .pdp .buybox .head-band .title-block{display:flex!important;
    flex-direction:row!important;align-items:baseline!important;justify-content:space-between!important;
    gap:12px!important;width:100%!important}
  :root:root:root:root .pdp .buybox .head-band h1{order:0!important;margin:0!important;flex:1 1 auto!important}
  :root:root:root:root .pdp .buybox .head-band .price-row{order:0!important;margin:0!important;
    flex:0 0 auto!important;text-align:right!important}
  :root:root:root:root .pdp .buybox .head-band .pdp-sub{order:2!important;margin-top:4px!important}
  :root:root:root:root .pdp .buybox .head-band .rating-row{order:3!important}

  /* 2. "Add a separator line under the reviews / in stock." */
  :root:root:root:root .pdp .buybox .head-band .rating-row{margin:8px 0 0!important;
    padding-bottom:12px!important;border-bottom:1px solid #E6E1DA!important}
  :root:root:root:root .pdp .buybox .head-band{padding-bottom:0!important}

  /* 3. "Have the three trust thingies under that." The spec strip already follows; it just needs to
        sit tight to the new rule rather than carry its own top border or extra space. */
  :root:root:root:root .pdp .vbadge{margin-top:0!important;padding-top:12px!important;
    border-top:0!important}

  /* 4. "Reduce the gap between Choose your size and the trust lines." */
  :root:root:root:root .pdp .vbadge{padding-bottom:10px!important}
  :root:root:root:root .pdp .opt-row{margin-top:8px!important}

  /* 5. "Make Choose your size and Find your size the same size and actually make them sit on the
        same line, it is slightly below and overlaps the size button."
     ⚠️ He is right and my earlier check was wrong: I measured the LINK'S BOX, which starts level,
     not the WORDS inside it, which sat 15px lower because the hidden hint still occupies the flex
     column below them. The box is collapsed onto its visible text so the words themselves align. */
  :root:root:root:root .pdp .opt-row .fit-btn{top:0!important;padding:0!important;
    align-items:flex-start!important;line-height:20px!important;height:20px!important;
    overflow:hidden!important}
  :root:root:root:root .pdp .fit-btn .fit-btn-tx{display:block!important;line-height:20px!important}
  :root:root:root:root .pdp .fit-btn-l{font-size:16px!important;line-height:20px!important;
    font-weight:600!important;display:block!important}
  /* ⛔ DEAD RULE, KEPT ONLY AS A RECORD. This hid the size guide icon on mobile because it was pushing
     the words down. It is SUPERSEDED further down the file [v2icons-4oct], where the icon comes back
     at 16px without pushing anything. Desktop never hid it, so mobile now matches desktop rather than
     differing from it. Do not re-enable this; fix the alignment instead. */
  /* :root:root:root:root .pdp .fit-btn svg{display:none!important} */

  /* 6. "For the Free next day delivery trust line, copy what we did for desktop and give it more
        space." Desktop weights these 36/27/37 rather than three equal thirds. */
  :root:root:root:root .pdp .vtrust{grid-template-columns:38% 28% 34%!important}
}

/* [v2inline-fix] ⛔ MY OWN EARLIER RULE BROKE THIS. A previous block set
   `.price-row{width:100%}` back when the price was on its own line. Once the title block became a
   flex ROW, that 100% made the price row take the entire line and squeeze the H1 to ZERO WIDTH, so
   the title wrapped one character per line and opened a 532px hole in the buy column.
   ⚠️ This is the cost of stacking overrides instead of replacing them: a rule written for one layout
   silently sabotages the next. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .buybox .head-band .price-row{width:auto!important;flex:0 0 auto!important;
    min-width:0!important}
  :root:root:root:root .pdp .buybox .head-band h1{flex:1 1 auto!important;min-width:0!important;
    width:auto!important}
}

/* [v2gap-fix] ⚠️ The gap between the spec strip and "Choose your size" measured 30px against the 18
   I set, because THREE values stack: the strip's 4px bottom margin, the FORM's 18px top padding, and
   the row's 8px top margin. The form padding is the theme reserving room for the absolutely
   positioned size guide link, which now lives inside the row and no longer needs it. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .pdp-form{padding-top:0!important}
  :root:root:root:root .pdp .vbadge{margin-bottom:0!important}
  :root:root:root:root .pdp .opt-row{margin-top:12px!important}
}

/* [v2titlefit-4oct] ⚠️ The title wrapped to two lines, putting "(7mm)" under "Onyx Cuban Bracelet"
   while the price sat on the first line. Codex caught it.
   His reference is the live site, so I measured it rather than guessed: LIVE sets the mobile title
   at 19.5px and it fits on ONE line in 246px. Mine was 20px in 252px, which is just over the
   threshold for this product name. Matched to live exactly. Still four sizes in the column. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .buybox .head-band h1{font-size:19.5px!important;line-height:24px!important}
}

/* [v2pricematch-4oct] ⚠️ Title 19.5px beside price 20px is a half pixel apart: invisible as
   hierarchy, but it is a FIFTH value in a scale that is meant to have four, and near identical pairs
   are exactly what made this column look wrong in the first place. Matched to the title, which is
   also how desktop pairs them. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .buybox .head-band .price{font-size:19.5px!important;line-height:24px!important}
}

/* ============================================================================
   ⭐⭐ [v2icons-4oct] Ilyas's five, mobile only, values from Codex.
   ⛔ He said "don't make any other changes apart from the ones I've said". Nothing
   else is touched, and the one thing he missed is flagged to him, not fixed.
   ============================================================================ */
@media screen and (max-width: 989px) {

  /* 1. the spec icons stand the height of their text block, consistent across the three */
  :root:root:root:root .pdp .vbadge svg{width:30px!important;height:30px!important;
    flex:none!important;align-self:center!important;stroke-width:1.3!important}
  :root:root:root:root .pdp .vbadge li{align-items:center!important;gap:7px!important}

  /* 3. the size guide icon comes BACK. ⚠️ I hid it last round because it was pushing the words down
     and breaking the alignment he had just asked for. It is restored at a size that sits beside the
     label rather than above it, so it cannot push the text again. */
  :root:root:root:root .pdp .fit-btn svg{display:block!important;width:16px!important;height:16px!important;
    flex:none!important;align-self:center!important;margin-right:6px!important}
  :root:root:root:root .pdp .opt-row .fit-btn{display:inline-flex!important;align-items:center!important;
    flex-direction:row!important}
  :root:root:root:root .pdp .fit-btn .fit-btn-tx{display:inline-block!important}

  /* 4. the trust icons under Apple Pay */
  :root:root:root:root .pdp .vtrust svg{width:32px!important;height:32px!important;stroke-width:1.3!important}

  /* 5. the review arrow sits vertically centred against the QUOTE on the right, the dots stay last,
        and the space that used to sit under the dots for the arrow is removed. */
  :root:root:root:root .vrev-quotes{position:relative!important;padding-right:52px!important}
  :root:root:root:root .vrev-nav{position:absolute!important;right:0!important;top:50%!important;
    transform:translateY(-50%)!important;margin:0!important;display:flex!important}
  :root:root:root:root .vrev-nav button{width:38px!important;height:38px!important}
  :root:root:root:root .vrev-dots{margin:10px 0 0!important}
  :root:root:root:root .vrev-in{padding-bottom:12px!important}
  :root:root:root:root .vrev{padding-bottom:0!important}
}

/* [v2icons-fix1] ⛔ MY REGRESSION. Setting the size guide link to `inline-flex` with
   `flex-direction: row` to seat the new icon knocked the label off the line it shares with
   "Choose your size". The link is a flex ROW again but its text keeps the 20px line box that was
   holding the two level, and the icon is centred inside that box rather than defining it. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .opt-row .fit-btn{display:flex!important;flex-direction:row!important;
    align-items:center!important;height:20px!important;line-height:20px!important}
  :root:root:root:root .pdp .fit-btn svg{width:16px!important;height:16px!important;margin-right:6px!important;
    align-self:center!important;flex:none!important}
  :root:root:root:root .pdp .fit-btn .fit-btn-tx{display:flex!important;align-items:center!important;
    height:20px!important;line-height:20px!important}
  :root:root:root:root .pdp .fit-btn-l{line-height:20px!important}

  /* the review arrow was 12px off the quote's centre: the quote block includes its attribution line,
     so centring on the whole block sits low. Nudged to the quote text itself. */
  :root:root:root:root .vrev-nav{top:44%!important}
}

/* [v2specabove-4oct] ⛔ THE SPEC STRIP MOVES TO ICON ABOVE THE TEXT. Codex's ruling, and the reason
   is arithmetic rather than taste: three columns in 335px gives each about 112px. With the icon on
   the LEFT, "Designed in LDN" needs ~92px of that, leaving ~13px for an icon Ilyas has just said is
   already too small at 22px. His two requests, BIGGER ICONS and LDN ON ONE LINE, cannot both be met
   while the icon sits beside the words.
   ⚠️ This reverses the icon-left arrangement he asked for two rounds ago to match his mockup, so it
   is called out to him rather than slipped in. The three columns and the dividers are kept. */
@media screen and (max-width: 989px) {
  /* ⛔ REVERTED 4 Oct BY ILYAS: "Keep the icons to the left of trust lines." The icon-above
     arrangement is GONE; see the restoring block at the end of this file. Kept here commented so
     nobody re-derives it from the same arithmetic and reapplies it. */
  /* li{flex-direction:column} svg{30px} span{centred}  <- do not reinstate */
  /* ⛔ NO `white-space:nowrap` HERE ON PURPOSE. I had it, then took it out: with the icon above,
     the full 108px column is free and "Designed in LDN" measures 87px, so it sits on one line by
     itself. nowrap would have made a product with longer wording overflow the column instead of
     wrapping, which is a worse failure than the one it prevents. */
  :root:root:root:root .pdp .vbadge b,
  :root:root:root:root .pdp .vbadge i{text-align:center!important;overflow-wrap:anywhere!important}

  /* the section closes just beneath the dots */
  :root:root:root:root .vrev-in{padding-bottom:6px!important}
}

/* [v2icons-fix2] Two alignment faults, both fixed structurally rather than with a magic offset.
   ⚠️ 3. The size guide link keeps its 48px TOUCH TARGET, which is right, but `align-items:center`
   then centred its TEXT inside that 48px box, dropping the words 14px below "Choose your size".
   The box stays 48px for the thumb; the text aligns to the TOP of it so the two labels sit level.
   ⚠️ 5. The arrow used `top:44%` with a translate, but that percentage resolves against the whole
   quotes block including its attribution line, not against the quote. Percentages against a box you
   did not measure are guesses. The row is a flex container instead, so the arrow centres against the
   quote itself with no arithmetic. */
@media screen and (max-width: 989px) {
  :root:root:root:root .pdp .opt-row .fit-btn{align-items:flex-start!important;height:48px!important;
    min-height:48px!important;padding-top:0!important}
  :root:root:root:root .pdp .fit-btn .fit-btn-tx{align-items:flex-start!important;height:20px!important}
  :root:root:root:root .pdp .fit-btn svg{align-self:flex-start!important;margin-top:2px!important}

  :root:root:root:root .vrev-quotes{display:flex!important;flex-direction:row!important;
    align-items:center!important;gap:12px!important;padding-right:0!important;position:static!important}
  :root:root:root:root .vrev-quotes > :not(.vrev-nav){flex:1 1 auto!important;min-width:0!important}
  :root:root:root:root .vrev-nav{position:static!important;transform:none!important;top:auto!important;
    flex:0 0 auto!important;align-self:center!important;margin:0!important}
}

/* [v2revnav-4oct] the quote and its arrow are one flex row; the dots sit under that row and the
   section ends just beneath them. ⛔ Supersedes the absolute positioning and the top:44% above,
   both of which I measured as wrong before landing on this. */
@media screen and (max-width: 989px) {
  :root:root:root:root .vrev-row{display:flex!important;flex-direction:row!important;
    align-items:center!important;gap:14px!important}
  :root:root:root:root .vrev-row > .vrev-quotes{flex:1 1 auto!important;min-width:0!important;
    display:block!important;padding-right:0!important;position:relative!important}
  :root:root:root:root .vrev-row > .vrev-nav{flex:0 0 auto!important;position:static!important;
    transform:none!important;top:auto!important;right:auto!important;margin:0!important;
    display:flex!important;align-self:center!important}
  :root:root:root:root .vrev-in > .vrev-dots{margin:12px 0 0!important;padding:0!important}
  :root:root:root:root .vrev-in{padding-bottom:14px!important}
}

/* [v2revbot-final-4oct] ⛔ THE LAST WORD ON THE REVIEW BAND'S BOTTOM. There were SIX competing
   `.vrev-in` padding-bottom rules by this point, each written for a layout that the next one
   replaced, and the last one in the file was silently winning. This single block ends the stack.
   Ilyas: "the bottom of the section higher so it's just underneath the dots." */
@media screen and (max-width: 989px) {
  :root:root:root:root .vrev-in{padding-bottom:12px!important}
  :root:root:root:root .vrev-in > .vrev-dots{margin:12px 0 0!important;padding:0!important}
}

/* ============================================================================
   ⭐⭐ [v2specleft-4oct] ICON LEFT, ICONS SIZED TO THE TEXT. Ilyas, overruling the
   icon-above layout: "Keep the icons to the left of trust lines - I asked you to make
   them larger and have given you instructions as to how large."
   His rule, verbatim: the top of the TOP line of the text to the bottom of the BOTTOM
   line of the text IS the height of the icon.
   ⚠️ The consequence he should know about: a bigger icon on the left takes width away
   from the words, so the sub lines wrap and each column settles at three lines. The icon
   then matches that three line block. "Designed in LDN" is kept as the wording but it
   cannot sit on one line beside an icon this size. That is the trade of icon-left.
   ============================================================================ */
@media screen and (max-width: 989px) {
  /* ⚠️ THE GAPS ARE TIGHTENED ON PURPOSE, to buy width for the words. Every pixel taken by the
     column padding, the icon gap or the grid gap is a pixel the text cannot use, and the text width
     is what decides how many lines each column takes, which is what the icon has to match. */
  :root:root:root:root .pdp .vbadge{gap:2px!important}
  :root:root:root:root .pdp .vbadge li{flex-direction:row!important;align-items:center!important;
    text-align:left!important;gap:4px!important;padding:0!important}
  :root:root:root:root .pdp .vbadge svg{width:36px!important;height:36px!important;
    flex:0 0 36px!important;align-self:center!important;stroke-width:1.2!important}
  :root:root:root:root .pdp .vbadge span{display:flex!important;flex-direction:column!important;
    align-items:flex-start!important;text-align:left!important;min-width:0!important;flex:1 1 auto!important}
  :root:root:root:root .pdp .vbadge b,
  :root:root:root:root .pdp .vbadge i{text-align:left!important;overflow-wrap:anywhere!important}
}

/* ============================================================================
   ⭐⭐ [v2trustleft-4oct] Ilyas, two changes:
   "make the icons slightly smaller than currently in the trust lines under the reviews"
     -> the SPEC strip under the review line, 36px -> 32px. Still the largest that keeps
        every label on one line, so all three columns stay level at 45px.
   "make the icons as big as possible whilst keeping the icon to the LEFT of the trust line
    under the ATC button"
     -> the ATC trust strip moves from icon-ABOVE to icon-LEFT, at 44px.
   ⚠️ 44px IS THE CEILING, found by sweeping and measuring, not by eye. At 46px the words
   start breaking mid-word in the narrow middle column. 44 leaves that column exactly enough
   for its longest word, "tracked".
   ⛔ THE COLUMN WIDTHS 127/94/114 ARE LEFT ALONE ON PURPOSE. He asked for the delivery column
   to be given more space in an earlier round. I tested equal thirds and two rebalanced splits:
   every one of them made the strip TALLER (122px and 137px against 107px) because narrowing
   the delivery column adds lines faster than widening the middle one removes them.
   ============================================================================ */
@media screen and (max-width: 989px) {
  :root:root:root:root:root .pdp .vbadge svg{width:32px!important;height:32px!important;flex:0 0 32px!important}

  :root:root:root:root:root .pdp .vtrust li{flex-direction:row!important;align-items:center!important;
    text-align:left!important;gap:5px!important}
  :root:root:root:root:root .pdp .vtrust svg{width:44px!important;height:44px!important;
    flex:0 0 44px!important;align-self:center!important;stroke-width:1.2!important}
  :root:root:root:root:root .pdp .vtrust span{display:block!important;text-align:left!important;
    min-width:0!important;flex:1 1 auto!important}
  :root:root:root:root:root .pdp .vtrust b,
  :root:root:root:root:root .pdp .vtrust i,
  :root:root:root:root:root .pdp .vtrust strong,
  :root:root:root:root:root .pdp .vtrust em{text-align:left!important}
}

/* ============================================================================
   ⭐⭐ [v2trustsame-4oct] Ilyas: "give the trust lines under atc the same treatment as the
   ones under the price." The spec strip's treatment is: icon LEFT, tightened gaps, and an
   icon sized so ALL THREE COLUMNS COME OUT LEVEL with nothing broken. Applied here.
   ⚠️ 30px is the LARGEST icon that levels this strip, found by sweeping icon size against
   column width together, because the two interact. It is not a guess and it is not copied
   from the spec strip's 32px: at 32 nothing levels.
   ⚠️ THE COLUMN WIDTHS HAD TO CHANGE, and only measurement showed why. The delivery column
   carries a HARD line break, so it holds three fixed segments, and the middle one,
   "Order before 3pm", is 97px wide. Below that the column takes a fifth line and nothing can
   level with it. 133px gives it 98px of text, just over the floor.
   ⛔ The delivery column is STILL the widest of the three, which was his earlier ask.
   Result: 60/60/60 instead of 75/75/60, strip 107px -> 92px, no broken words, no overflow.
   ============================================================================ */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root .pdp .vtrust{gap:0!important;
    grid-template-columns:133px 112px 90px!important}
  :root:root:root:root:root:root .pdp .vtrust li{flex-direction:row!important;align-items:center!important;
    gap:4px!important;padding:0!important}
  :root:root:root:root:root:root .pdp .vtrust svg{width:30px!important;height:30px!important;
    flex:0 0 30px!important;align-self:center!important;stroke-width:1.2!important}
  :root:root:root:root:root:root .pdp .vtrust span{text-align:left!important;min-width:0!important;
    flex:1 1 auto!important}
}

/* ============================================================================
   ⛔⛔ [v2trustfluid-4oct] FIXED PIXEL COLUMNS WERE A BUG AND I CAUGHT IT BY TESTING 360px.
   The block above sized this strip as 133px + 112px + 90px, which is 335px of columns inside
   a container that is only 305px wide on a 360px phone. The last column SPILLED 30px past the
   edge, and the spec strip stopped levelling at the same width. Both are fixed here.
   The columns are now PROPORTIONAL, same 133:112:90 ratio, so they can never outgrow the
   container. The icon is sized from the space actually left over, by the same arithmetic used
   to pick 30px in the first place:
     the three text blocks need 97 + 78 + 55 = 230px between them, plus 12px of inner gaps,
     so each icon can have (container - 242) / 3.
   At 390 that lands on 30px, which is the value measured earlier. On a 360 phone it gives 21px,
   which is what keeps the three columns level there instead of spilling.
   ⚠️ Capped at 32px so a large phone does not get absurd icons, and floored at 20px.
   ============================================================================ */
@media screen and (max-width: 989px) {
  /* ⚠️ 137/110/88 and a 28px cap, NOT 133/112/90 and 30px. The earlier pair levelled the strip but
     left "Order before 3pm" with 2px before the divider, which read as crowded. The strip is exactly
     saturated, so there is no slack in the other two columns to borrow: the clearance had to come out
     of the ICON. 28px frees 6px, which goes to the delivery column, giving that line 7px of air. */
  :root:root:root:root:root:root:root .pdp .vtrust{
    grid-template-columns:137fr 110fr 88fr!important}
  :root:root:root:root:root:root:root .pdp .vtrust svg{
    width:clamp(20px, calc((100vw - 55px - 242px) / 3), 28px)!important;
    height:clamp(20px, calc((100vw - 55px - 242px) / 3), 28px)!important;
    flex:0 0 clamp(20px, calc((100vw - 55px - 242px) / 3), 28px)!important}

  /* the spec strip gets the same safeguard: its three columns are equal, each needs 70px for
     the longest label, so the icon can have (column - 74). Capped at the 32px he asked for. */
  :root:root:root:root:root:root:root .pdp .vbadge svg{
    width:clamp(20px, calc((100vw - 59px) / 3 - 74px), 32px)!important;
    height:clamp(20px, calc((100vw - 59px) / 3 - 74px), 32px)!important;
    flex:0 0 clamp(20px, calc((100vw - 59px) / 3 - 74px), 32px)!important}
}

/* [v2narrowguard-4oct] ⛔ BELOW 360px THE ICON GOES BACK ABOVE THE TEXT, and this is a
   correctness guard rather than a change of mind. On a 320px phone the buy column is only
   265px, so three columns with an icon BESIDE the words leave about 50px for the text and the
   words break mid-word, which looks broken. Measured: at the 20px icon floor, 320px still
   breaks. There is no icon size that avoids it, because the words themselves are wider than
   the space. Above the text the words get the full column and nothing breaks.
   ⚠️ Ilyas asked for icon-left and he has it on every current phone: 360, 375, 390, 414, 430.
   This only takes effect on 320px devices, an old iPhone SE. */
@media screen and (max-width: 359px) {
  :root:root:root:root:root:root:root .pdp .vtrust li,
  :root:root:root:root:root:root:root .pdp .vbadge li{flex-direction:column!important;
    align-items:center!important;text-align:center!important;gap:5px!important}
  :root:root:root:root:root:root:root .pdp .vtrust span,
  :root:root:root:root:root:root:root .pdp .vbadge span{text-align:center!important;width:100%!important}
  :root:root:root:root:root:root:root .pdp .vtrust svg,
  :root:root:root:root:root:root:root .pdp .vbadge svg{width:26px!important;height:26px!important;
    flex:0 0 auto!important;align-self:center!important}
  :root:root:root:root:root:root:root .pdp .vbadge b,
  :root:root:root:root:root:root:root .pdp .vbadge i{text-align:center!important}
}

/* ============================================================================
   ⭐⭐ [v2logofont-4oct] THE DISPLAY TYPE NOW MATCHES THE LOGO.
   Ilyas: "change the fonts so it matches the Samedi logo font."
   The logo is a PNG, so the face was chosen by rendering SAMEDI in five serifs and comparing
   against the image. Cormorant Garamond matched. Fraunces was too heavy and is RETIRED.
   ⛔ HANKEN GROTESK STAYS on buttons, size controls, the 12px strips and body copy. Cormorant is
   a light high contrast face: at 12px on a phone its hairlines go grey and it reads worse than
   what is there now. Codex ruled the same split. The brand face is on everything that reads as
   voice; the sans stays on everything that reads as a control.
   ⛔⛔ THE TITLE IS 22px, NOT THE 32px CODEX SPECIFIED. 32/28 needs 473px of a 335px row, so it
   would have broken the title and price sharing one line, which Ilyas asked for explicitly two
   rounds ago. 22/19 is the LARGEST pair that still fits, measured against the longest product
   name in the catalogue, not just this one: 310px of 335.
   ============================================================================ */
/* [deskv2-4oct] edit19 font: back to every width (owner, 4 Oct night: bring the mobile changes to desktop) */
:root:root:root:root .pdp h1,
:root:root:root:root .pdp .head-band .price,
:root:root:root:root .pdp .price-now,
:root:root:root:root .vmat h2, :root:root:root:root .vmat h3,
:root:root:root:root .vrev-q p,
:root:root:root:root .pdp-sec > summary, :root:root:root:root .pdp details > summary,
:root:root:root:root .vrec-name, :root:root:root:root .vmore-name{
  font-family:Fraunces, Georgia, serif!important}

/* ⛔ THE SIZE OVERRIDES THAT SAT HERE ARE GONE. They existed only to compensate for Cormorant
   rendering visually smaller than Fraunces. With Fraunces back on everything, compensating for a font
   that is no longer used would SHRINK the headings below what Ilyas had already accepted. Removing
   the rules lets the original sizes apply again, rather than layering another correction on top. */

/* ============================================================================
   ⭐ [v2air-4oct] Ilyas: "add a bit more spacing between everything, not too much, just enough so
   things don't look squashed on mobile."
   ⛔ ONE CONSISTENT STEP, NOT A LIST OF ONE OFF NUMBERS: every gap of 16px or less goes up by 4,
   and each strip's vertical padding goes up by 4. Larger gaps are LEFT ALONE, because he has twice
   made me REDUCE gaps in this column and blanket-reversing that would undo his own decisions.
   ⛔ NOT GROWN: size buttons to Add to Bag (26px) and payments to trust strip (39px).
   ============================================================================ */
@media screen and (max-width: 989px) {
  :root:root:root:root:root .pdp .vbadge{padding:16px 0 14px!important;margin-bottom:16px!important}
  :root:root:root:root:root .pdp .vtrust{padding:20px 0!important}
  :root:root:root:root:root .vmat{padding-top:28px!important;padding-bottom:28px!important}
  :root:root:root:root:root .pdp .btn-atc, :root:root:root:root:root .pdp button[name="add"]{
    margin-bottom:12px!important}
  :root:root:root:root:root .vmat p, :root:root:root:root:root .pdp-sec p{line-height:22px!important}
  :root:root:root:root:root .pdp-sec > summary, :root:root:root:root:root .pdp details > summary{
    padding-top:4px!important;padding-bottom:4px!important}
}

/* ============================================================================
   [v2logofont-fix] ⛔ FOUR THINGS IN THE BLOCK ABOVE DID NOT LAND, and the reason is the same one
   that has bitten this file repeatedly: I targeted a SHORTER selector than the one already winning.
   `.pdp h1` loses to `.pdp .buybox .head-band h1`, which carries one more class and was already
   setting both the family and the size. Matching the winning selector, not guessing at it.
   The accordion headings and the card names were also missed: they are NOT `summary` and
   `.vrec-name`, they are `.spec-acc-*` and `.lt-name`. Found by reading the DOM rather than
   assuming the markup. Those three were the last Fraunces holdouts, so Fraunces is now fully retired.
   ============================================================================ */
/* [deskv2-4oct] edit20 font: back to every width (owner, 4 Oct night: bring the mobile changes to desktop) */
:root:root:root:root:root .pdp .buybox .head-band h1,
:root:root:root:root:root .pdp .buybox .head-band .price,
:root:root:root:root:root .pdp .spec-acc-h, :root:root:root:root:root .pdp .spec-title,
:root:root:root:root:root .pdp .spec-acc-q, :root:root:root:root:root .pdp .spec-acc-t,
:root:root:root:root:root .pdp .spec-acc-ch,
:root:root:root:root:root .pdp .lt-name,
:root:root:root:root:root .pdp .v{
  font-family:Fraunces, Georgia, serif!important}

@media screen and (max-width: 989px) {
  /* the title and price keep their own measured sizes; the rest revert to the originals */
  :root:root:root:root:root .pdp .spec-acc-h, :root:root:root:root:root .pdp .spec-title,
  :root:root:root:root:root .pdp .spec-acc-q, :root:root:root:root:root .pdp .spec-acc-t{
    font-weight:500!important}
  :root:root:root:root:root .pdp .lt-name{font-weight:500!important}
  /* ⛔ the 16px bump here was ALSO a Cormorant compensation and is removed with it. */

  /* the Add to Bag to PayPal gap overshot: my 12px margin ADDED to an existing 8px and gave 20.
     Pinned to 12 total by zeroing the other side. Same stacking trap as the 30px gap on 4 Oct. */
  :root:root:root:root:root .pdp .btn-atc, :root:root:root:root:root .pdp button[name="add"]{
    margin-bottom:12px!important}
  :root:root:root:root:root .pdp .paylist, :root:root:root:root:root .pdp .shopify-payment-button{
    margin-top:0!important}
}

/* [v2logofont-fix2] The last two.
   ⚠️ The 20px gap was ATC's 12px margin PLUS `.pdp-express`'s own 8px top margin: the PayPal button
   sits inside `.pdp-express`, not inside `.paylist`, so zeroing `.paylist` changed nothing. Zeroing
   the element that actually carries the margin. THIRD time this round that a gap turned out to be two
   values stacking; always walk the siblings before setting a number.
   ⚠️ `.lt-name` is NOT inside `.pdp`. It lives in `.pdp-sec > .grid-3 > .lt > .lt-link`, so the
   `.pdp` prefix made the rule match nothing and it stayed on Fraunces. */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root .pdp .pdp-express{margin-top:0!important}
}
/* [deskv2-4oct] edit21 card name font: back to every width (owner, 4 Oct night: bring the mobile changes to desktop) */
:root:root:root:root:root:root .lt-name{font-family:Fraunces, Georgia, serif!important}
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root .lt-name{font-size:17px!important;font-weight:500!important}
}

/* [v2titlefluid-4oct] ⚠️ 22px FIXED WRAPPED ON A 360px PHONE, caught by testing rather than by eye:
   the title text needs 247px and the box there is only 241px, so it broke to a second line and the
   price no longer sat beside a single line of title. A fixed size that fits one phone is not a size
   that fits. The pair is fluid now, landing on 22/19 at 390 and easing to about 20/17 at 360, so the
   title stays on ONE line beside the price at every width. */
/* ⛔ superseded: this clamp was tuned for Cormorant's narrower letterforms. The Fraunces clamp
   further down replaces it. Left as a record of why the numbers differ. */

/* ============================================================================
   ⭐⭐ [v2livefont-4oct] Ilyas: "use the same font and weight as the live site for the item name
   and price. The font you used now is too thin."
   ⛔ MEASURED ON THE LIVE THEME, not guessed: the live product title is FRAUNCES, weight 500,
   19.5px, and the live price is Hanken Grotesk weight 400 at 16px.
   ⚠️ I have put the PRICE in Fraunces 500 as well, rather than the live site's sans, because here
   the name and price share ONE LINE and a serif name beside a sans price reads as two voices. On
   live they are stacked, so the mix does not show. Say the word and the price goes sans to match
   live exactly.
   ⛔ Cormorant Garamond is now OFF the name and price. It stays on the section headings, accordion
   headings, the quote and the card names, which he did not object to.
   ⚠️ FOR HIM: that leaves the page carrying Fraunces AND Cormorant AND Hanken. Two serifs is one
   too many. Flagged in the report; not changed unilaterally because he only asked about the name
   and the price.
   ============================================================================ */
/* [deskv2-4oct] edit23 title/price font: back to every width (owner, 4 Oct night: bring the mobile changes to desktop) */
:root:root:root:root:root:root:root .pdp .buybox .head-band h1,
:root:root:root:root:root:root:root .pdp .buybox .head-band .price{
  font-family:Fraunces, Georgia, serif!important;font-weight:500!important}
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root .pdp .buybox .head-band h1{
    font-size:19.5px!important;line-height:24px!important;letter-spacing:-0.1px!important}
  :root:root:root:root:root:root:root .pdp .buybox .head-band .price{
    font-size:17px!important;letter-spacing:-0.1px!important}
}

/* [v2paygap-4oct] ⛔ MY REGRESSION, AND HE SPOTTED IT. Last round I zeroed `.pdp-express`'s top
   margin to pull a 20px gap down to 12. That same margin was ALSO the only thing separating the
   payment icons from the PayPal button, so the icons ended up sitting flush on its edge: measured
   0px between them. The gap belongs BELOW the button, not above the row, so it goes on the icon
   row itself and the button keeps its own spacing. */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root .pdp .pdp-express{margin-top:10px!important}
  :root:root:root:root:root:root:root .pdp .paylist{margin-top:12px!important}
}

/* ============================================================================
   ⭐ [v2trustwide-4oct] Ilyas: "the trust lines under the atc just look squished, decrease the
   margins and make that section wider so we fit the text and icons in better."
   The strip now BLEEDS 10px past the buy column on each side, 335px -> 355px, which is the page
   gutter and nothing else: it stops level with the sticky bar and never reaches the screen edge.
   ⚠️ The extra 20px was spent on BOTH things he asked for, measured rather than split by eye:
   the columns go 137/110/88 -> 145/117/93 so the words get more room, AND the icons go 28 -> 34px.
   Still level at 60/60/60, still nothing broken.
   ⚠️ 36px was tested and does NOT level at this width; 34 is the ceiling.
   ============================================================================ */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root .pdp .vtrust{
    margin-left:-10px!important;margin-right:-10px!important;
    width:calc(100% + 20px)!important;gap:0!important}
  :root:root:root:root:root:root:root .pdp .vtrust li{gap:5px!important;padding:0!important}
  :root:root:root:root:root:root:root .pdp .vtrust svg{
    width:clamp(22px, calc((100vw - 35px - 242px) / 3), 34px)!important;
    height:clamp(22px, calc((100vw - 35px - 242px) / 3), 34px)!important;
    flex:0 0 clamp(22px, calc((100vw - 35px - 242px) / 3), 34px)!important}
}

/* [v2livefont-fluid] ⚠️ FIXED SIZES WRAPPED AT 360px AGAIN, and the cause is that FRAUNCES IS WIDER
   THAN CORMORANT at the same point size. 19.5px needs 334px of a 305px row on a 360 phone, so the
   title broke to two lines and stopped sitting beside the price. Measured against the widest product
   name, not this one. Fluid: 19.5/17 at 390, easing to 17.5/15 at 360.
   ⚠️ The trust strip had the same fault: its text BROKE mid-word at 360 because the strip scales down
   with the viewport while the icon did not. The icon is now derived from the NARROWEST column, which
   is the one that actually binds: it needs 78px for "tracked label", and that column gets a fixed
   share of the strip, so icon = 32.84vw - 94.5px. Lands on 34 at 390 and 24 at 360. */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root:root .pdp .buybox .head-band h1{
    font-size:clamp(17px, calc(6.67vw - 6.5px), 19.5px)!important;line-height:1.24!important}
  :root:root:root:root:root:root:root:root .pdp .buybox .head-band .price{
    font-size:clamp(14.5px, calc(6.67vw - 9px), 17px)!important}
  :root:root:root:root:root:root:root:root .pdp .vtrust svg{
    width:clamp(20px, calc(32.84vw - 94.5px), 34px)!important;
    height:clamp(20px, calc(32.84vw - 94.5px), 34px)!important;
    flex:0 0 clamp(20px, calc(32.84vw - 94.5px), 34px)!important}
}

/* ============================================================================
   ⭐ [v2allfraunces-4oct] Ilyas: "apply that font all over product details, reviews etc, it's all
   too thin." ⛔ CORMORANT IS OFF THE PAGE ENTIRELY. Fraunces, which the LIVE site uses, is now on
   every display element: title, price, section headings, accordion headings, the review quote, the
   card names and the spec table values. The webfont request for Cormorant is removed from the
   section as well, since nothing references it.
   ⚠️ The size overrides written for Cormorant were REMOVED rather than re-tuned. They existed only
   to compensate for Cormorant rendering smaller at the same point size; keeping them with Fraunces
   back would have shrunk the headings below what he had already accepted. This block only sets the
   WEIGHT, so the sizes he signed off on return by themselves.
   ============================================================================ */
/* [deskv2-4oct] edit26 Fraunces everywhere: back to every width (owner, 4 Oct night: bring the mobile changes to desktop) */
:root:root:root:root:root:root:root:root .pdp .spec-acc-h,
:root:root:root:root:root:root:root:root .pdp .spec-title,
:root:root:root:root:root:root:root:root .pdp .spec-acc-q,
:root:root:root:root:root:root:root:root .pdp .spec-acc-t,
:root:root:root:root:root:root:root:root .pdp .spec-acc-ch,
:root:root:root:root:root:root:root:root .pdp .v,
:root:root:root:root:root:root:root:root .lt-name,
:root:root:root:root:root:root:root:root .vmat h2,
:root:root:root:root:root:root:root:root .vmat h3,
:root:root:root:root:root:root:root:root .vrev-q p{
  font-family:Fraunces, Georgia, serif!important;font-weight:500!important}

/* ⚠️ the quote stays at 400: it is italic body voice, not a heading, and 500 italic Fraunces at
   quote size reads heavy. Everything else carries the 500 he asked for. */
/* [deskv2-4oct] edit26 quote weight: back to every width (owner, 4 Oct night: bring the mobile changes to desktop) */
:root:root:root:root:root:root:root:root .vrev-q p{font-weight:400!important}

/* [v2payclose-4oct] Ilyas: "bring Apple Pay button closer to atc." 22px -> 10px.
   ⛔ The 12px below the PAYMENT ICONS is left alone: that is the gap he asked me to open in the
   previous message because the icons were sitting on the button. Closing the wrong one of these two
   would undo his last instruction, so only the gap ABOVE the express button moves. */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root:root .pdp .btn-atc,
  :root:root:root:root:root:root:root:root .pdp button[name="add"]{margin-bottom:10px!important}
  :root:root:root:root:root:root:root:root .pdp .pdp-express{margin-top:0!important}
}

/* ============================================================================
   ⭐⭐ [v2truststack-4oct] THE TRUST STRIP BECOMES THREE ROWS, NOT THREE COLUMNS.
   Ilyas: "what if instead of having it in one row, we have it in three? because right now we don't
   seem to be able to make it fit... make it similar to how we currently have it on our live site."
   ⛔ He is right, and the measurements from the last three rounds say so: three columns in 335px
   gives each about 110px, and no icon size exists that both reads well and leaves the words room.
   Stacking removes the constraint entirely: each row now gets the FULL 335px.
   ⚠️ SPEC COPIED FROM THE LIVE SITE'S `.deliver` BLOCK, measured not guessed:
     container  flex column, 2px gap, 16px padding-top, 1px rgba(0,0,0,.08) top rule
     row        flex row, 10px icon-to-text gap, centred, 5px below each row
     icon       16x16, stroke-width 1.25
     text       13.5px, line height 17.55, weight 400
   ⛔ The column bleed, the fr columns and the big icons from the last two rounds are all UNDONE
   here. They were solving a problem that no longer exists.
   ============================================================================ */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root:root:root .pdp .vtrust{
    display:flex!important;flex-direction:column!important;gap:2px!important;
    grid-template-columns:none!important;
    margin:16px 0 0!important;width:100%!important;padding:16px 0 0!important;
    border-top:1px solid rgba(0,0,0,.08)!important}
  :root:root:root:root:root:root:root:root:root .pdp .vtrust li{
    display:flex!important;flex-direction:row!important;align-items:center!important;
    gap:10px!important;padding:0!important;margin:0 0 5px!important;
    border:0!important;text-align:left!important}
  :root:root:root:root:root:root:root:root:root .pdp .vtrust li:last-child{margin-bottom:0!important}
  :root:root:root:root:root:root:root:root:root .pdp .vtrust svg{
    width:16px!important;height:16px!important;flex:0 0 16px!important;
    stroke-width:1.25!important;align-self:center!important}
  /* the label and its sub now sit on ONE line, separated by a middot, the way a live row reads */
  :root:root:root:root:root:root:root:root:root .pdp .vtrust span{
    display:block!important;font-size:13.5px!important;line-height:17.55px!important;
    text-align:left!important;min-width:0!important}
  :root:root:root:root:root:root:root:root:root .pdp .vtrust b{
    display:inline!important;font-weight:600!important;font-size:13.5px!important}
  :root:root:root:root:root:root:root:root:root .pdp .vtrust i{
    display:inline!important;font-style:normal!important;font-size:13.5px!important;color:#6a6a6a!important}
  :root:root:root:root:root:root:root:root:root .pdp .vtrust i::before{content:' \00B7  '}
}

/* [v2life-4oct] Ilyas: "in the designed for everyday wear, can you center the text instead of
   aligning at the top, and make that section less tall."
   The band was a BLOCK with a 300px min-height, so its content sat at the top with 180px of empty
   image beneath it. It is a flex box now, centred, and 60px shorter. */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root .vlife{
    display:flex!important;align-items:center!important;
    min-height:240px!important;height:auto!important}
  :root:root:root:root:root:root .vlife .vlife-in{width:100%!important}
}

/* [v2stackfit-4oct] ⚠️ The delivery row needed 317px and had 309. EIGHT pixels.
   ⛔ I did NOT solve it by cutting "UK only" or any other words: dropping a qualifier is a content
   decision and his, not mine. The strip takes a 6px bleed into the page gutter instead, which is
   invisible against the column edge and buys 12px, so all three rows sit on ONE line at 390.
   ⚠️ On a 360px phone the delivery row still wraps to two lines: the sentence is simply longer than
   that screen allows at the live site's 13.5px. Flagged to him rather than hidden, since the fix
   would be shorter wording. */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root:root:root:root .pdp .vtrust{
    margin-left:-6px!important;margin-right:-6px!important;width:calc(100% + 12px)!important}
}

/* [v2lifecentre-fix] ⛔ MY CHECK WAS WRONG AND CODEX WAS RIGHT. I measured the WRAPPER and reported
   60px above and 60px below, which was true of the BOX and not of the WORDS: the eyebrow's line box
   carries half-leading above the capitals, so the text itself sat 69 above and 60 below. This is the
   same trap as the size guide link on 4 Oct, where I measured a box that started level while its
   words sat 15px lower. ⛔ MEASURE THE GLYPHS, NOT THE CONTAINER.
   The eyebrow's line box is tightened so it hugs its own capitals, which removes the dead space and
   leaves the text optically centred in the band. */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root .vlife .vlife-in > .eyebrow{
    display:block!important;line-height:1.02!important;margin-bottom:9px!important}
  :root:root:root:root:root:root .vlife .vlife-in > :last-child{margin-bottom:0!important}
}

/* ============================================================================
   ⭐⭐ [v2goldicons-4oct] Ilyas: "can you make the icons gold? and increase the size of the icons too."
   ⛔ THE GOLD IS #85672A, NOT #C9A866, AND THAT IS DELIBERATE. Measured on our cream #FAF8F4:
       #C9A866  2.14 : 1   below the 3:1 floor for non text graphics
       #85672A  4.99 : 1   clears it comfortably
   These icons are 1.25px hairlines. In #C9A866 they would read as a faint smudge rather than a gold
   icon, which is the opposite of what he asked for. ⚠️ #85672A is our OTHER brand gold, the one
   already on the eyebrow labels, so this is not a deviation from the palette, it is the other end of
   it. Codex ruled the same.
   ⚠️ Applied to ALL THREE icon groups. One strip gold and another near black in the same column would
   read as a bug, not a decision.
   SIZES, each at or under its own measured ceiling:
     trust strip  16 -> 20px   ⛔ 20 IS THE LIMIT: the delivery row needs 317px of the 321px it has,
                               and every pixel the icon gains comes off that row.
     spec strip   32 -> 36px   the ceiling found earlier, before the labels stop fitting on one line
     materials    26 -> 32px   full width, no real ceiling
   ============================================================================ */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root:root:root:root .pdp .vtrust svg{
    width:20px!important;height:20px!important;flex:0 0 20px!important;
    stroke:#85672A!important;color:#85672A!important;stroke-width:1.25!important}
  :root:root:root:root:root:root:root:root:root:root .pdp .vbadge svg{
    width:36px!important;height:36px!important;flex:0 0 36px!important;
    stroke:#85672A!important;color:#85672A!important}
  :root:root:root:root:root:root:root:root:root:root .vmat svg{
    width:32px!important;height:32px!important;flex:0 0 32px!important;
    stroke:#85672A!important;color:#85672A!important}
}
/* the colour is not viewport dependent, so it holds on desktop too; only the SIZES are mobile */
/* [deskv2-4oct] edit31 gold icons: back to every width (owner, 4 Oct night: bring the mobile changes to desktop) */
:root:root:root:root:root:root:root:root .pdp .vtrust svg,
:root:root:root:root:root:root:root:root .pdp .vbadge svg,
:root:root:root:root:root:root:root:root .vmat svg{stroke:#85672A!important;color:#85672A!important}

/* [v2goldfit] ⚠️ 20px left the delivery row EXACTLY 317px for text that needs EXACTLY 317px, and
   equal is not enough: sub-pixel rounding tipped it onto a second line. The 2px comes off the icon
   to text GAP, 10 -> 8, rather than off the icon, because the icon size is the thing he actually
   asked for and 2px of gap is imperceptible. Available becomes 319 against 317 needed. */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li{gap:8px!important}
}

/* [v2goldfluid] ⚠️ A FIXED 36px SPEC ICON BROKE 360px, caught by testing. At that width the column is
   100px, so a 36px icon leaves 60px of text and the longest label stops fitting, which un-levels the
   three columns. The fluid rule from earlier is restored with the NEW 36px maximum rather than the
   old 32, so it reads 36 on a 390 phone and eases to 26 on a 360 one.
   ⛔ Third time a fixed size has passed at 390 and failed at 360 today. Size from the space available,
   not from the number that looked right on one phone. */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge svg{
    width:clamp(24px, calc((100vw - 59px) / 3 - 74px), 36px)!important;
    height:clamp(24px, calc((100vw - 59px) / 3 - 74px), 36px)!important;
    flex:0 0 clamp(24px, calc((100vw - 59px) / 3 - 74px), 36px)!important}
}

/* [v2footgold-4oct] Ilyas: "make the icons at the bottom of the page to join our mailing list,
   follow us on Instagram, next day delivery gold as well."
   Same #85672A as the rest of the page, for the same contrast reason: the light brand gold measures
   2.14:1 on our cream and these are hairline strokes. ⛔ Not inside a media query, so the footer
   matches the product page on every screen size. */
/* [deskv2-4oct] edit34 gold footer: back to every width (owner, 4 Oct night: bring the mobile changes to desktop) */
:root:root:root:root:root:root:root:root .vfoot svg{stroke:#85672A!important;color:#85672A!important}
/* [deskv2-4oct] edit34 gold footer fill: back to every width (owner, 4 Oct night: bring the mobile changes to desktop) */
:root:root:root:root:root:root:root:root .vfoot svg [fill="currentColor"]{fill:#85672A!important}

/* [v2revline-4oct] Ilyas: "remove the separator line between the reviews and the collapsible section,
   because the line at the bottom of the FAQs acts as a separator anyway, and move the reviews up a
   little."
   ⚠️ He is right that there were TWO rules doing one job: the FAQ row carries its own 1px bottom
   border, and the review band carried a 1px top border 16px below it. The band's border goes; the
   FAQ's stays and does the separating.
   The reviews then come up 10px. ⛔ Only 10, because the band still needs to read as its own section
   rather than as part of the accordion stack, and he asked for "a little". */
@media screen and (max-width: 989px) {
  /* ⛔ 4 Oct: BOTH of these are OFF. Ilyas asked for the reviews section exactly as it stood at 1pm,
     and at 1pm the separator rule above the band was still there and the band had not been lifted.
     The removal and the lift came later, at about 13:26, in the message about the FAQ line. Left
     commented rather than deleted so putting them back is one line.
     was: .vrev{border-top:0 !important; margin-top:-10px !important} */
}

/* ⭐ [v2maker-4oct] The "who am I buying from" block, directly under the trust rows.
   Built to the page's own language rather than as a bolt-on: the same cream, the same thin
   rgba(0,0,0,.08) rule the trust strip uses above it, Hanken at the strip's 13.5px for the body so it
   reads as part of that group, and the links in the brand's #85672A with the same underline offset as
   "Find your size". No box, no tint, no avatar circle: a card here would compete with the Add to Bag
   button, which is the one thing on this screen that should look clickable. */
:root:root:root:root:root .pdp .vmaker{
  margin:14px 0 0!important;padding:14px 0 0!important;
  border-top:1px solid rgba(0,0,0,.08)!important}
:root:root:root:root:root .pdp .vmaker-t{
  margin:0 0 7px!important;font-family:'Hanken Grotesk',sans-serif!important;
  font-size:13.5px!important;line-height:19px!important;color:#4a4a4a!important}
:root:root:root:root:root .pdp .vmaker-l{margin:0!important;display:flex!important;
  flex-wrap:wrap!important;gap:4px 16px!important}
:root:root:root:root:root .pdp .vmaker-l a{
  font-family:'Hanken Grotesk',sans-serif!important;font-size:13.5px!important;
  font-weight:600!important;color:#85672A!important;text-decoration:underline!important;
  text-underline-offset:3px!important}
@media screen and (max-width: 989px) {
  :root:root:root:root:root .pdp .vmaker{margin-top:12px!important;padding-top:12px!important}
}

/* [v2maker-4oct-v2] ⛔ The stranded paragraph is GONE, replaced by a fourth trust row. It inherits
   everything from `.vtrust li` so it cannot drift from the three above it; the only addition is the
   link colour, which matches "Find your size" and the footer icons. */
:root:root:root:root:root:root .pdp .vtrust .vmaker-li i a{
  color:#85672A!important;text-decoration:underline!important;text-underline-offset:3px!important;
  font-weight:600!important}
/* the old block, removed. kept as a tombstone so it is not reintroduced by accident. */
:root:root:root:root:root .pdp .vmaker{display:none!important}

/* ⛔ [v2fittap-4oct] A MIS-TAP RISK ON THE PRIMARY CONTROL, found by testing hit areas rather than
   looking. The "Find your size" link keeps a 48px touch target, which is right, but that box was
   built downward from the label and hung 26px BELOW it, covering the top of the selected size button:
   2620 square pixels of overlap. The visible text never overlapped, which is why four rounds of
   screenshots missed it. A man aiming at "M - 20cm" could open the size guide instead.
   The box now grows UPWARD from the label instead of downward. The space above is the "Choose your
   size" line, which is a label and not interactive, so nothing is stolen from it, and the box now
   ENDS at the bottom of its own text, clear of the size buttons. */
@media screen and (max-width: 989px) {
  :root:root:root:root:root:root:root .pdp .opt-row .fit-btn{
    align-items:flex-end!important;height:44px!important;min-height:44px!important;
    margin-top:-24px!important}
  :root:root:root:root:root:root:root .pdp .opt-row .fit-btn svg{align-self:flex-end!important;
    margin-top:0!important;margin-bottom:2px!important}
  :root:root:root:root:root:root:root .pdp .opt-row .fit-btn .fit-btn-tx{align-items:flex-end!important}
}








/* ============================================================================
   ⛔ [v2revrevert-4oct] THE MOBILE REVIEW BAND IS BACK TO THE DESIGN HE APPROVED.
   Ilyas: "revert the mobile changes back to the old review design, not a fan of the new one. We can
   fix after launch if needed."
   REMOVED, not overridden: the peek carousel [v2revpeek-4oct], its width fix [v2revpeek-fix] and the
   two column score-left band [v2revsplit-4oct] are deleted from this file rather than buried under
   later rules, because this file has been bitten all day by dead rules outliving their purpose and
   quietly winning. The `revPeek()` call is removed from the section for the same reason.
   ⚠️ WHAT THIS RESTORES, and it is the state he signed off: the score line above, ONE quote, his arrow
   centred on the right of it, his dots beneath, and the section closing just under the dots with the
   FAQ rule doing the separating.
   ⛔ The underlying swipe work is NOT deleted from history, it is in the decision log with the
   measurements, so if he wants it after launch it is a known quantity rather than a fresh start.
   ============================================================================ */




/* ============================================================================
   ⭐ [v2rev1pm-4oct] THE REVIEWS SECTION AS IT STOOD AT 1PM, by his instruction.
   ⚠️ Established from this session's own timestamps rather than from memory: the icon work landed
   13:14 to 13:21, and the separator removal plus the 10px lift went in at about 13:26. So at 1pm the
   band was: score line, ONE quote, his arrow centred on the right of it, his dots beneath, and the
   1px separator rule still ABOVE the band.
   ⛔ Everything after that is off: the separator removal, the lift, the peek carousel, the two column
   score-left band, and the no-dots arrow-bottom-right version I built by mistake.
   ============================================================================ */


/* ============================================================================
   ⭐⭐ [deskv2-4oct] DESKTOP OPTIMISATION (owner, 4 Oct night). Codex spec: analysis-4oct/pdp-desktop-v2/codex-01.txt
   "Bring the mobile changes onto desktop and optimise it; it looks plain. Top of the section down to the price =
   the LIVE site. Keep the images on the left as tiles."
   ⛔ EVERYTHING HERE IS min-width:1001px, the width at which this section's tile gallery starts (it uses 1001, not 990; starting at 990 put the phone gallery under a desktop buy column between 990 and 1000). The phone page is measured before/after and must not move.
   ⛔ Not built from Codex's spec on purpose: the site header and footer are shared by every page, so they are
   left alone, and the page keeps the 1440 container the header uses rather than widening to 1552.
   ============================================================================ */
@media screen and (min-width: 1001px) {
  /* layout: gallery tiles left (unchanged), a 560px buy column */
  :root:root:root:root:root:root:root:root:root:root:root:root .container.pdp{grid-template-columns:minmax(0,1fr) 560px!important;column-gap:56px!important;
    padding:32px 40px 48px!important}

  /* --- the LIVE top block, measured on samedildn.co.uk at 1680 --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band{display:flex!important;flex-direction:column!important;background:transparent!important;
    padding:0 0 12px!important;border-bottom:1px solid rgba(0,0,0,.12)!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-sub{order:0!important;margin:4px 0 0!important;font-family:'Hanken Grotesk',system-ui,sans-serif!important;
    font-size:16px!important;line-height:21.6px!important;letter-spacing:.16px!important;color:#6B6B6B!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band h1,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .head-band h1{order:1!important;margin:6px 0 2px!important;
    font-family:Fraunces,Georgia,serif!important;font-size:31px!important;font-weight:400!important;line-height:37.2px!important;
    letter-spacing:-.155px!important;text-transform:none!important;color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating-row{order:2!important;display:flex!important;align-items:center!important;column-gap:20px!important;
    margin:6px 0 0!important;font-size:15px!important;line-height:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating{display:flex!important;align-items:center!important;gap:8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating .stars{font-size:19px!important;line-height:30.4px!important;letter-spacing:1px!important;gap:2px!important;color:#B8964F!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating b{font-size:16px!important;font-weight:700!important;line-height:25.6px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating a{font-size:16px!important;line-height:25.6px!important;color:#111!important;text-decoration:none!important;
    border-bottom:1px solid rgba(0,0,0,.3)!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .ship-line{margin-left:auto!important;font-size:16px!important;line-height:20.8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .price-row{order:3!important;display:flex!important;align-items:baseline!important;gap:14px!important;margin:6px 0 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .price,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .head-band .price{font-family:Archivo,sans-serif!important;font-size:26px!important;
    font-weight:400!important;line-height:41.6px!important;letter-spacing:-.26px!important;color:#111!important}

  /* --- spec strip: three equal columns, hairline dividers, gold icons, Fraunces values --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:0!important;
    margin:20px 0 0!important;padding:0!important;border:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li{display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:flex-start!important;
    gap:12px!important;min-height:72px!important;padding:0 12px!important;margin:0!important;border:0!important;text-align:left!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li:first-child{padding-left:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li + li{border-left:1px solid rgba(0,0,0,.12)!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li::before,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li::after{display:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge svg{width:24px!important;height:24px!important;flex:0 0 24px!important;stroke:#85672A!important;color:#85672A!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge span{display:flex!important;flex-direction:column!important;align-items:flex-start!important;text-align:left!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge b{font-family:Fraunces,Georgia,serif!important;font-weight:500!important;font-size:17px!important;line-height:22px!important;text-align:left!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge i{font-style:normal!important;font-family:'Hanken Grotesk',sans-serif!important;font-size:13px!important;
    line-height:18px!important;color:#6B6B6B!important;text-align:left!important}

  /* --- size, fit, Add to Bag (black on desktop, the owner's earlier choice) --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row{margin-top:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label{font-family:'Hanken Grotesk',sans-serif!important;font-size:14px!important;line-height:20px!important;font-weight:600!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-select{height:48px!important;margin-top:8px!important;padding:0 40px 0 16px!important;font-size:15px!important;
    border:1px solid rgba(0,0,0,.12)!important;background:#F2F2F2!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .szl-fit{margin-top:8px!important;font-size:13px!important;line-height:19px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .btn-atc,:root:root:root:root:root:root:root:root:root:root:root:root .pdp button[name="add"]{height:52px!important;min-height:52px!important;margin-top:20px!important;
    font-family:'Hanken Grotesk',sans-serif!important;font-weight:600!important;font-size:14px!important;letter-spacing:.8px!important;
    background:#111!important;color:#fff!important}

  /* --- trust: four stacked rows (the mobile design), gold 18px icons --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust{display:flex!important;flex-direction:column!important;gap:6px!important;grid-template-columns:none!important;
    margin:20px 0 0!important;padding:0!important;border:0!important;width:100%!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li{display:flex!important;flex-direction:row!important;align-items:center!important;gap:10px!important;
    min-height:28px!important;padding:0!important;margin:0!important;border:0!important;text-align:left!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li::before,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li::after{display:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust svg{width:18px!important;height:18px!important;flex:0 0 18px!important;stroke:#85672A!important;color:#85672A!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust span{display:block!important;font-size:13px!important;line-height:20px!important;text-align:left!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust b{display:inline!important;font-weight:600!important;font-size:13px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust i{display:inline!important;font-style:normal!important;font-size:13px!important;color:#6B6B6B!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust i::before{content:' \00B7  '}

  /* --- "Prefer it slimmer?" compact card --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp a.sibw{margin-top:24px!important;padding:14px!important;border:1px solid rgba(0,0,0,.12)!important;background:transparent!important;
    grid-template-columns:64px minmax(0,1fr)!important;column-gap:14px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-thumb,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-thumb img{width:64px!important;height:64px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-q{font-size:13px!important;line-height:18px!important;color:#6B6B6B!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-p{font-family:Fraunces,Georgia,serif!important;font-weight:500!important;font-size:16px!important;line-height:21px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-pr{font-size:14px!important;line-height:20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp a.sibw > svg{width:18px!important;height:18px!important}

  /* --- accordions --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-details{margin-top:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .spec-acc-h,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .spec-acc-q{font-family:Fraunces,Georgia,serif!important;font-weight:500!important;font-size:19px!important;line-height:25px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .spec-acc-q{min-height:58px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .spec-acc-a-in,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .spec-acc-a-in p,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .spec-acc-a-in li{font-size:15px!important;line-height:23px!important}

  /* --- reviews band: score | quote | arrows, hairlines top and bottom --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev{margin-top:40px!important;border-top:1px solid #E5E1DA!important;border-bottom:1px solid #E5E1DA!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-in{display:grid!important;grid-template-columns:280px minmax(0,1fr) 88px!important;column-gap:40px!important;align-items:center!important;
    width:100%!important;max-width:1440px!important;margin:0 auto!important;padding:32px 40px!important;box-sizing:border-box!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-score{width:auto!important;border:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-stars{font-size:20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-num{font-size:15px!important;font-weight:600!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-cnt{font-size:13px!important;line-height:20px!important;color:#6B6B6B!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-quotes{width:auto!important;max-width:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-q{max-width:760px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-q p{font-family:Fraunces,Georgia,serif!important;font-weight:500!important;font-style:italic!important;font-size:22px!important;line-height:31px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-q cite{display:block!important;margin-top:10px!important;font-size:13px!important;line-height:20px!important;font-style:normal!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-nav{justify-self:end!important;gap:12px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-nav button{width:36px!important;height:36px!important}

  /* --- our materials --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat{padding:64px 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-in{grid-template-columns:minmax(0,560px) minmax(0,1fr)!important;column-gap:80px!important;align-items:center!important;
    padding:0 40px!important;box-sizing:border-box!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-tx .eyebrow{font-family:'Hanken Grotesk',sans-serif!important;font-weight:700!important;font-size:12px!important;line-height:18px!important;
    letter-spacing:1.8px!important;color:#85672A!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat h2{font-family:Fraunces,Georgia,serif!important;font-weight:500!important;font-size:42px!important;line-height:48px!important;margin-top:8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-tx > p{margin-top:16px!important;font-size:16px!important;line-height:25px!important;max-width:480px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-list{margin-top:24px!important;gap:16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-list li{gap:12px!important;align-items:flex-start!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-list svg,:root:root:root:root:root:root:root:root:root:root:root:root .vmat svg{width:24px!important;height:24px!important;flex:0 0 24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-list b{font-size:15px!important;line-height:21px!important;font-weight:600!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-list i,:root:root:root:root:root:root:root:root:root:root:root:root .vmat-list small{font-size:14px!important;line-height:20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-img{height:auto!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-img img{width:100%!important;height:auto!important;aspect-ratio:2 / 1!important;object-fit:cover!important}

  /* --- lifestyle band: 400px, copy aligned to the page container --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .vlife{height:400px!important;min-height:400px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vlife-in{width:100%!important;max-width:1440px!important;margin:0 auto!important;padding:0 40px!important;box-sizing:border-box!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vlife-in > *{max-width:420px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vlife h2{font-family:Fraunces,Georgia,serif!important;font-weight:500!important;font-size:42px!important;line-height:48px!important;color:#fff!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vlife-in > p{margin-top:18px!important;font-size:16px!important;line-height:25px!important;color:#fff!important}

  /* --- pairs well with: three across, arrows to reach the fourth --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div{max-width:1440px!important;margin-left:auto!important;margin-right:auto!important;padding:56px 40px!important;box-sizing:border-box!important;width:100%!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .sec-head{align-items:flex-end!important;margin-bottom:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .grid-3{display:grid!important;grid-auto-flow:column!important;grid-template-columns:none!important;
    grid-auto-columns:calc((100% - 48px) / 3)!important;gap:24px!important;overflow-x:auto!important;scroll-snap-type:x mandatory!important;
    scrollbar-width:none!important;width:100%!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .grid-3::-webkit-scrollbar{display:none}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .grid-3 > *{scroll-snap-align:start}
  :root:root:root:root:root:root:root:root:root:root:root:root .lt-img{background:#F0F0F0!important}   /* no black flash while a card photo loads */
  .c2rail{display:flex;gap:12px;margin-left:auto}
  .c2rail button{width:36px;height:36px;border-radius:50%;border:1px solid rgba(0,0,0,.18);background:#fff;color:#111;display:inline-flex;
    align-items:center;justify-content:center;cursor:pointer;padding:0}
  .c2rail button:hover{border-color:#C9A866}
  .c2rail button:disabled{opacity:.35;cursor:default}
  .c2rail button:focus-visible{outline:2px solid #85672A;outline-offset:2px}
  .c2rail svg{width:16px;height:16px}

  /* --- closing service strip (this page's own section, not the site footer) --- */
  :root:root:root:root:root:root:root:root:root:root:root:root .vfoot{background:#FAF8F5!important;border-top:1px solid #E5E1DA!important;border-bottom:1px solid #E5E1DA!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vfoot-in{padding:24px 40px!important;box-sizing:border-box!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vfoot li{gap:12px!important;padding:0 24px!important;justify-content:center!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vfoot li + li{border-left:1px solid #E5E1DA!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vfoot svg{width:24px!important;height:24px!important;flex:0 0 24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vfoot b{font-size:14px!important;line-height:20px!important;font-weight:600!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vfoot i{font-size:13px!important;line-height:19px!important;font-style:normal!important;color:#6B6B6B!important}
}

@media screen and (min-width: 1001px) {
  /* [deskv2-4oct r1 fixes] rows left-aligned; card photos fill the wider cards; size guide link level with "Size" */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li{justify-content:flex-start!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .grid-3 .lt-img{width:100%!important;height:auto!important;aspect-ratio:1 / 1!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form > .fit-btn,:root:root:root:root:root:root:root:root:root:root:root:root .buybox .pdp-form > .fit-btn:not(.fit-btn--solo){top:42px!important}
}

@media screen and (min-width: 1001px) {
  /* [deskv2-4oct r2] Codex round 2 (codex-02.txt) */
  /* 1. Pairs well with: same content edges as the gallery/buy column. It sits inside two extra nested
     .container boxes (64px padding each = 256px), so it is sized against them and centred on the page:
     min(1360px, parent + 176px) is exactly .container.pdp's content width at every viewport. */
  /* width and left offset are set by the rail script from the MEASURED gallery left edge and buy column right
     edge (the nested containers' padding changes with width, so no fixed formula holds at every size) */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div{position:relative!important;max-width:none!important;margin:0!important;padding:56px 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .grid-3{max-width:none!important}
  /* 2. heading hierarchy */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .sec-head{margin-bottom:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .sec-head h2{font-family:Fraunces,Georgia,serif!important;font-weight:500!important;font-size:36px!important;line-height:43px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .sec-head h2::after{content:""!important;display:block!important;width:56px!important;height:2px!important;margin-top:10px!important;background:#C9A866!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .lt-name{font-size:20px!important;line-height:26px!important;margin:20px 20px 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .lt-desc,:root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .lt-rating,:root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .lt-price{margin-left:20px!important;margin-right:20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .lt-link{padding-bottom:20px!important}
  /* 3. fit guidance under the dropdown: the live site's own "Model is wearing M" line, hidden on desktop until now */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size{display:flex!important;align-items:center!important;gap:8px!important;margin-top:8px!important;
    font-family:'Hanken Grotesk',sans-serif!important;font-size:13px!important;line-height:19px!important;color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size svg,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size-ic svg,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size-ic{width:16px!important;height:16px!important;color:#85672A!important;stroke:#85672A!important;flex:0 0 16px!important}
}
/* 4. 1440-class screens */
@media screen and (min-width: 1001px) and (max-width: 1599px) {
  :root:root:root:root:root:root:root:root:root:root:root:root .vrev-in{grid-template-columns:240px minmax(0,1fr) 88px!important;column-gap:32px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat{padding:56px 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-in{grid-template-columns:minmax(0,520px) minmax(0,1fr)!important;column-gap:64px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat h2{font-size:38px!important;line-height:44px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vlife{height:360px!important;min-height:360px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vlife h2{font-size:38px!important;line-height:44px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vlife-in > *{max-width:380px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .sec-head h2{font-size:32px!important;line-height:39px!important}
}

@media screen and (min-width: 1001px) {
  /* [deskv2-4oct r3] the buy column scales on small laptops: 560px at full width, never under 400px,
     so a 990px window keeps a usable gallery (was 279px with a fixed 560 column) */
  :root:root:root:root:root:root:root:root:root:root:root:root .container.pdp{grid-template-columns:minmax(0,1fr) clamp(400px, 41.2%, 560px)!important;column-gap:clamp(32px, 3.5vw, 56px)!important}
}

@media screen and (min-width: 1001px) and (max-width: 1279px) {
  /* [deskv2-4oct r3] small laptops: spec strip labels may wrap instead of overflowing a 133px cell */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li{gap:8px!important;padding:0 8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li:first-child{padding-left:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge svg{width:20px!important;height:20px!important;flex:0 0 20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge b,:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge i{white-space:normal!important;overflow-wrap:anywhere!important;min-width:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge span{min-width:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge b{font-size:15px!important;line-height:19px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge i{font-size:12px!important;line-height:16px!important}
}

@media screen and (min-width: 1001px) and (max-width: 1279px) {
  /* [deskv2-4oct r3] Codex: if rating and stock cannot share a line, the stock group wraps beneath */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating-row{flex-wrap:wrap!important;row-gap:2px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .ship-line{margin-left:0!important}
}

@media screen and (min-width: 1001px) and (max-width: 1279px) {
  /* [deskv2-4oct r4] small laptops: materials text and photo share the row equally so the photo stays a real size */
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-in{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;column-gap:40px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .vmat-tx > p{max-width:none!important}
}

@media screen and (min-width: 990px) and (max-width: 1000px) {
  /* [deskv2-4oct r5] 990-1000 tablet band: clip the swipe gallery to the page like phones do, so its
     off-screen slides never widen the page (they did not scroll, but they widened full-page captures) */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp .gal-wrap{overflow:hidden!important;max-width:100%!important}
  :root:root:root:root:root:root:root:root:root:root:root:root .container.pdp{overflow-x:clip!important}
}

@media screen and (min-width: 990px) and (max-width: 1000px) {
  /* [deskv2-4oct r5] an older 990px rule fixes four 320px recommendation cards, which overran a 995px window */
  :root:root:root:root:root:root:root:root:root:root:root:root .pdp-sec.sec-div .grid-3{grid-template-columns:repeat(2,minmax(0,1fr))!important;max-width:100%!important}
}

/* ============================================================================
   [deskv2-4oct r6] OWNER'S DESKTOP PASS (desktop only, 1001px+). His list, in order.
   ============================================================================ */
@media screen and (min-width: 1001px) {
  /* no separator line between the price and the spec strip */
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band{border-bottom:0!important;padding-bottom:0!important}
  /* spec strip: sleeker, smaller text, bigger icons */
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge{margin:14px 0 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li{min-height:54px!important;gap:12px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge svg{width:30px!important;height:30px!important;flex:0 0 30px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge b{font-size:15px!important;line-height:19px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge i{font-size:12px!important;line-height:16px!important}
  /* size: BUTTONS, not the dropdown (the theme's own chips, wired to the variant; the select stays in the DOM) */
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row--chips .opt-sel--chips{display:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row .opt-chips{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(0,1fr))!important;gap:10px!important;margin-top:10px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip{display:flex!important;align-items:center!important;justify-content:center!important;height:52px!important;
    padding:0 12px!important;border:1px solid rgba(0,0,0,.18)!important;border-radius:0!important;background:#fff!important;color:#111!important;
    font-family:'Hanken Grotesk',sans-serif!important;font-size:15px!important;font-weight:500!important;letter-spacing:.2px!important;cursor:pointer!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip:hover{border-color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.on{border-color:#111!important;box-shadow:inset 0 0 0 1px #111!important;font-weight:600!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out{color:rgba(0,0,0,.38)!important;border-color:rgba(0,0,0,.1)!important;background:#F7F7F7!important;cursor:not-allowed!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out .opt-chip-t{text-decoration:line-through!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip:focus-visible{outline:2px solid #85672A!important;outline-offset:2px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label{font-size:15px!important;line-height:20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label .opt-val{display:none!important}
  /* model line + trust rows: bigger text and icons */
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size{font-size:15px!important;line-height:22px!important;margin-top:10px!important;gap:10px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size svg,:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size-ic svg,:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size-ic{width:20px!important;height:20px!important;flex:0 0 20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust{gap:8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li{min-height:30px!important;gap:12px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust svg{width:22px!important;height:22px!important;flex:0 0 22px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust span,:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust b,:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust i{font-size:15px!important;line-height:22px!important}
  /* reviews: a separator between the score and the quotes */
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vrev-score{border-right:1px solid #E5E1DA!important;align-self:stretch!important;display:flex!important;flex-direction:column!important;justify-content:center!important}
  /* our materials */
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-in{align-items:stretch!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-tx{justify-content:center!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat h2{max-width:none!important;width:auto!important;white-space:nowrap!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-tx > p{margin-top:8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-list{margin-top:16px!important;gap:14px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-list li{gap:14px!important;align-items:center!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-list svg,:root:root:root:root:root:root:root:root:root:root:root:root:root .vmat svg{width:30px!important;height:30px!important;flex:0 0 30px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-list b{font-size:17px!important;line-height:23px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-list i,:root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-list small,:root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-list span > :not(b){font-size:15px!important;line-height:21px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-img{height:100%!important;min-height:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-img img{height:100%!important;aspect-ratio:auto!important;object-fit:cover!important}
}
@media screen and (min-width: 1001px) and (max-width: 1279px) {
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat h2{font-size:30px!important;line-height:36px!important}
}

@media screen and (min-width: 1001px) {
  /* [deskv2-4oct r6b] the length on each size button comes from its own data-val ("18cm"), drawn by CSS,
     because a theme script rewrites the button text after variant changes */
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-val$="cm"]::after{content:"\00B7\00A0" attr(data-val);margin-left:6px;font-weight:400;color:inherit}
}

@media screen and (min-width: 1001px) {
  /* [deskv2-4oct r6c] size buttons share the row equally; materials gaps actually tighten */
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row .opt-chips{grid-template-columns:none!important;grid-auto-flow:column!important;grid-auto-columns:minmax(0,1fr)!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip{width:100%!important;min-width:0!important;margin:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat h2{margin-bottom:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root .vmat-tx > p{margin-bottom:0!important}
}

/* ============================================================================
   [deskv3-4oct] OWNER'S BUY-COLUMN MOCKUP (desktop 1001px+). Codex spec: analysis-4oct/pdp-desktop-v2/codex-07.txt
   Mockup copy replaced by Samedi's real facts (7 reviews, 14 day returns, 12 month guarantee, next day UK).
   ============================================================================ */
@media screen and (min-width: 1001px) {
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band{padding:0!important;border:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band h1,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .head-band h1{order:0!important;margin:0 0 4px!important;font-family:Fraunces,Georgia,serif!important;
    font-size:42px!important;font-weight:400!important;line-height:52px!important;letter-spacing:-.8px!important;color:#0C1824!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-sub{order:1!important;margin:0 0 10px!important;font-family:'Hanken Grotesk',sans-serif!important;font-size:19px!important;
    line-height:28px!important;letter-spacing:0!important;color:#626873!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating-row{order:2!important;margin:0 0 8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating{gap:12px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating .stars{font-size:21px!important;letter-spacing:3px!important;color:#C9A866!important;line-height:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating b,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating a{font-size:15px!important;font-weight:500!important;line-height:24px!important;color:#0C1824!important;border:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating b{margin-right:-8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .ship-line{display:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .price-row{order:3!important;margin:0 0 24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .price,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .head-band .price{font-family:'Hanken Grotesk',sans-serif!important;font-size:32px!important;
    font-weight:700!important;line-height:40px!important;letter-spacing:0!important;color:#0C1824!important}

  /* spec strip */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge{margin:0 0 36px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li{min-height:56px!important;gap:12px!important;padding:0 0 0 16px!important;position:relative!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li:first-child{padding-left:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li + li{border-left:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li + li::before{content:""!important;display:block!important;position:absolute!important;left:0!important;top:50%!important;
    width:1px!important;height:40px!important;margin-top:-20px!important;background:rgba(201,168,102,.25)!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge svg{width:32px!important;height:32px!important;flex:0 0 32px!important;stroke-width:1.5!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge span{gap:2px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge b{font-family:'Hanken Grotesk',sans-serif!important;font-weight:700!important;font-size:15px!important;line-height:20px!important;
    letter-spacing:-.15px!important;color:#0C1824!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge i{font-size:13px!important;line-height:18px!important;color:#737985!important}

  /* size heading + buttons */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row{margin-top:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label{font-family:'Hanken Grotesk',sans-serif!important;font-size:14px!important;line-height:20px!important;font-weight:500!important;
    letter-spacing:.5px!important;color:#344151!important;text-decoration:none!important;border:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label .opt-val{display:inline!important;font-weight:600!important;color:#0C1824!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label[data-c2len] .opt-val::after{content:" (" attr(data-c2len) ")"}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label.c2-nopick .opt-val{display:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form > .fit-btn svg,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn svg{display:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn *{font-family:'Hanken Grotesk',sans-serif!important;font-size:14px!important;line-height:20px!important;
    font-weight:400!important;color:#737985!important;letter-spacing:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn .fit-btn-l,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn [class*=fit-btn-l]{text-decoration:underline!important;text-underline-offset:3px!important;border:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row .opt-chips{gap:12px!important;margin:12px 0 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip{height:72px!important;border-radius:4px!important;border:1px solid transparent!important;background:#F4F3F1!important;
    box-shadow:none!important;color:#626873!important;flex-wrap:wrap!important;align-content:center!important;row-gap:2px!important;padding:0 8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip .opt-chip-t{order:1!important;font-size:16px!important;font-weight:500!important;line-height:22px!important;text-decoration:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-val$="cm"]::after{content:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-val$="cm"]::before{content:"\00A0\2013\00A0" attr(data-val)!important;order:2!important;font-size:16px!important;
    font-weight:500!important;line-height:22px!important;margin:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip::after{content:"In stock"!important;order:3!important;flex-basis:100%!important;text-align:center!important;font-size:14px!important;
    font-weight:400!important;line-height:20px!important;color:#737985!important;margin:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out::after{content:"Out of stock"!important;color:#8B8B88!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip:hover:not(.out){background:#EEEAE2!important;border-color:#C9A866!important;color:#0C1824!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.on{background:#fff!important;border:2px solid #0C1824!important;color:#0C1824!important;box-shadow:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.on .opt-chip-t,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.on::before{font-weight:700!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.on::after{color:#0C1824!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out{background:#F4F3F1!important;border:1px solid #E3E0DA!important;color:#8B8B88!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip:focus-visible{outline:2px solid #C9A866!important;outline-offset:3px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size{margin-top:12px!important;font-size:14px!important;line-height:20px!important;color:#626873!important}

  /* primary button */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .btn-atc,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp button[name="add"]{height:64px!important;min-height:64px!important;margin-top:18px!important;border-radius:4px!important;
    background:#101010!important;color:#fff!important;font-family:'Hanken Grotesk',sans-serif!important;font-size:17px!important;font-weight:700!important;
    line-height:24px!important;letter-spacing:2px!important;box-shadow:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .btn-atc:hover:not(:disabled),:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp button[name="add"]:hover:not(:disabled){background:#252525!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .btn-atc:focus-visible,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp button[name="add"]:focus-visible{outline:2px solid #C9A866!important;outline-offset:3px!important}

  /* service benefits: three cells + the owner line under them */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;column-gap:0!important;row-gap:12px!important;
    margin:20px 0 0!important;padding:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li{display:flex!important;align-items:flex-start!important;gap:12px!important;min-height:0!important;padding:0 0 0 16px!important;position:relative!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:first-child{padding-left:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(:first-child):not(.vmaker-li)::before{content:""!important;display:block!important;position:absolute!important;left:0!important;
    top:50%!important;width:1px!important;height:40px!important;margin-top:-20px!important;background:rgba(201,168,102,.25)!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) svg{width:32px!important;height:32px!important;flex:0 0 32px!important;stroke-width:1.5!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) span{display:flex!important;flex-direction:column!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) b{display:block!important;font-weight:400!important;font-size:14px!important;line-height:21px!important;color:#344151!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) i{display:block!important;font-size:12px!important;line-height:18px!important;color:#737985!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) i::before{content:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li{grid-column:1 / -1!important;align-items:center!important;padding:0!important;gap:10px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li svg{width:16px!important;height:16px!important;flex:0 0 16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li span,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li b,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li i{font-size:13px!important;line-height:20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li b{font-weight:400!important;color:#626873!important}

  /* also available card */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp a.sibw{margin-top:20px!important;padding:8px 46px 8px 10px!important;min-height:100px!important;box-sizing:border-box!important;border:0!important;
    border-radius:6px!important;background:#F5F4F2!important;grid-template-columns:148px minmax(0,1fr)!important;column-gap:20px!important;align-content:center!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp a.sibw:hover{background:#EEEAE2!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp a.sibw:focus-visible{outline:2px solid #C9A866!important;outline-offset:3px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-thumb,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-thumb img{width:148px!important;height:84px!important;border-radius:4px!important;object-fit:cover!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-q{font-family:'Hanken Grotesk',sans-serif!important;font-size:14px!important;line-height:20px!important;color:#737985!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-p{font-family:'Hanken Grotesk',sans-serif!important;font-size:17px!important;font-weight:700!important;line-height:23px!important;
    letter-spacing:-.15px!important;color:#0C1824!important;margin-top:2px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-pr{font-size:17px!important;font-weight:700!important;line-height:22px!important;color:#0C1824!important;margin-top:2px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp a.sibw > svg{width:20px!important;height:20px!important;right:16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-details{margin-top:32px!important}
}
@media screen and (min-width: 1001px) and (max-width: 1279px) {
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band h1,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .head-band h1{font-size:34px!important;line-height:42px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-sub{font-size:16px!important;line-height:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) svg,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge svg{width:26px!important;height:26px!important;flex:0 0 26px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li{gap:8px!important}
}

@media screen and (min-width: 1001px) {
  /* [deskv3-4oct b] "Size Guide" level with the size heading; an unmade size says so truthfully */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form > .fit-btn,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .buybox .pdp-form > .fit-btn:not(.fit-btn--solo){top:18px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-c2na]::after{content:"Not available"!important}
}

@media screen and (min-width: 1001px) {
  /* [deskv3-4oct c] stock line also on sized buttons (an earlier [data-val] rule outranked it); label length read
     from the .opt-val span itself */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-val]::after{content:"In stock"!important;order:3!important;flex-basis:100%!important;text-align:center!important;
    font-size:14px!important;font-weight:400!important;line-height:20px!important;color:#737985!important;margin:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-val].on::after{color:#0C1824!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-val].out::after{content:"Out of stock"!important;color:#8B8B88!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-val][data-c2na]::after{content:"Not available"!important;color:#8B8B88!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label .opt-val[data-c2len]::after{content:" (" attr(data-c2len) ")"}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label .opt-val:not([data-c2len])::after{content:none}
}

@media screen and (min-width: 1001px) {
  /* [deskv3-4oct d] no stray colon after the size label; unmade sizes muted, not struck; benefit text left-aligned */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label::after,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label::before{content:none!important;display:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-c2na] .opt-chip-t,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-c2na]::before,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-c2na]::after,
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out .opt-chip-t,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out::after{text-decoration:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) span,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) b,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) i{text-align:left!important;align-items:flex-start!important}
}

@media screen and (min-width: 1001px) {
  /* [deskv3-4oct e] Codex round: spacing back to spec (stray theme margins removed) */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .price,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .head-band .price{margin:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form{padding-top:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label{margin-bottom:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form > .fit-btn,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .buybox .pdp-form > .fit-btn:not(.fit-btn--solo){top:0!important}
}

@media screen and (min-width: 1001px) {
  /* [deskv3-4oct f] OWNER: "make the text smaller for the title, the description and the price - leave it the way it
     looks on the current site." Top block back to the LIVE site's measured values (sub-line above the title, 31px
     Fraunces title, rating row with the in-stock line, 26px Archivo price). The divider under the price stays
     removed (his earlier ask); the spec strip moves up under the price. */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band{padding:0!important;border:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-sub{order:0!important;margin:4px 0 0!important;font-family:'Hanken Grotesk',system-ui,sans-serif!important;font-size:16px!important;
    line-height:21.6px!important;letter-spacing:.16px!important;color:#6B6B6B!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band h1,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .head-band h1{order:1!important;margin:6px 0 2px!important;font-family:Fraunces,Georgia,serif!important;
    font-size:31px!important;font-weight:400!important;line-height:37.2px!important;letter-spacing:-.155px!important;color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating-row{order:2!important;margin:6px 0 0!important;column-gap:20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating{gap:8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating .stars{font-size:19px!important;line-height:30.4px!important;letter-spacing:1px!important;color:#B8964F!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating b{font-size:16px!important;font-weight:700!important;line-height:25.6px!important;color:#111!important;margin-right:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating a{font-size:16px!important;font-weight:400!important;line-height:25.6px!important;color:#111!important;border-bottom:1px solid rgba(0,0,0,.3)!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .ship-line{display:flex!important;margin-left:auto!important;font-size:16px!important;line-height:20.8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .price-row{order:3!important;margin:6px 0 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .price,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .head-band .price{margin:0!important;font-family:Archivo,sans-serif!important;font-size:26px!important;
    font-weight:400!important;line-height:41.6px!important;letter-spacing:-.26px!important;color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge{margin:14px 0 24px!important}
}
@media screen and (min-width: 1001px) and (max-width: 1279px) {
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band h1,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .head-band h1{font-size:28px!important;line-height:34px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .rating-row{flex-wrap:wrap!important;row-gap:2px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .ship-line{margin-left:0!important}
}

@media screen and (min-width: 1001px) {
  /* [deskv3-4oct g] the strike-through was set on the button itself and inherited by its text and pseudo lines */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-c2na]{text-decoration:none!important;background-image:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out *,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-c2na] *{text-decoration:none!important}
}

/* ============================================================================
   [deskv3-4oct h] PROPORTION PASS (owner: "the sizing and spacing looks a little off - make everything fit
   properly"). Codex diagnosis + spec: analysis-4oct/pdp-desktop-v2/codex-10.txt. Desktop 1001px+ only.
   Icons stay the site's icon gold #85672A (contrast on cream); the strip under the price stays tight (owner asked
   for it to move up). Copy, order and structure unchanged.
   ============================================================================ */
@media screen and (min-width: 1001px) {
  /* spec strip: quieter */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge{margin:14px 0 24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li{min-height:48px!important;gap:12px!important;padding:0 16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li:first-child{padding:0 16px 0 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li:last-child{padding:0 0 0 16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li + li::before{height:32px!important;margin-top:-16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge svg{width:24px!important;height:24px!important;flex:0 0 24px!important;stroke-width:1.5!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge b{font-size:14px!important;line-height:20px!important;color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge i{font-size:12px!important;line-height:18px!important}
  /* size row: black text, gold underline */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label{color:#111!important;text-decoration:underline!important;text-decoration-color:#C9A866!important;
    text-decoration-thickness:1px!important;text-underline-offset:3px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label .opt-val{color:#111!important;font-weight:700!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn *{color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn .fit-btn-l,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn [class*=fit-btn-l],:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form > .fit-btn{text-decoration:underline!important;
    text-decoration-color:#C9A866!important;text-decoration-thickness:1px!important;text-underline-offset:3px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row .opt-chips{margin-top:10px!important;gap:12px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip{height:60px!important;row-gap:2px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip .opt-chip-t,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-val$="cm"]::before{font-size:15px!important;line-height:20px!important;font-weight:600!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-val]::after{font-size:13px!important;line-height:18px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.on{border-color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.on .opt-chip-t,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.on::before,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.on::after{color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-c2na]{background:#F5F4F2!important;border:1px solid #E2DED7!important;color:#909090!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out *,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out::before,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.out::after,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip[data-c2na]::after{color:#909090!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size{margin-top:12px!important;gap:8px!important;font-size:14px!important;line-height:20px!important;font-weight:400!important;color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size b,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size strong{font-weight:700!important;color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size svg,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size-ic svg,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size-ic{width:16px!important;height:16px!important;flex:0 0 16px!important}
  /* Add to Bag */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .btn-atc,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp button[name="add"]{height:56px!important;min-height:56px!important;margin-top:18px!important;
    font-size:16px!important;line-height:20px!important;letter-spacing:1.5px!important;background:#111!important}
  /* benefits: delivery gets the room it needs, all text black */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust{grid-template-columns:216px 160px 184px!important;margin-top:20px!important;row-gap:16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li){gap:12px!important;padding:0 16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:first-child{padding:0 16px 0 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:nth-child(3){padding:0 0 0 16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(:first-child):not(.vmaker-li)::before{top:4px!important;margin-top:0!important;height:40px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) svg{width:24px!important;height:24px!important;flex:0 0 24px!important;margin-top:1px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) b{font-size:14px!important;line-height:20px!important;font-weight:500!important;color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) i{font-size:12px!important;line-height:18px!important;color:#111!important;margin-top:3px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li{gap:8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li svg{width:14px!important;height:14px!important;flex:0 0 14px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li b{color:#111!important;font-size:13px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li i,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li a{color:#111!important;font-weight:500!important;font-size:13px!important;
    text-decoration:underline!important;text-decoration-color:#C9A866!important;text-underline-offset:3px!important}
  /* also-available card: lighter frame */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp a.sibw{min-height:96px!important;padding:10px 40px 10px 10px!important;border-radius:4px!important;grid-template-columns:120px minmax(0,1fr)!important;column-gap:16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-thumb,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-thumb img{width:120px!important;height:76px!important;border-radius:3px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-q{font-size:13px!important;line-height:18px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-p,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw-pr{font-size:16px!important;line-height:22px!important;margin-top:4px!important;color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp a.sibw > svg{width:16px!important;height:16px!important;right:16px!important;color:#111!important}
  /* accordions */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .spec-acc-q{color:#111!important}
}

@media screen and (min-width: 1001px) {
  /* [deskv3-4oct h2] underline only the "Email the owner" link, not the separator before it */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li i{text-decoration:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li i a{text-decoration:underline!important;text-decoration-color:#C9A866!important;text-underline-offset:3px!important;color:#111!important;font-weight:500!important}
}

/* ============================================================================
   [r14-4oct] Owner round 14.
   ============================================================================ */
/* PHONES (up to 1000px): size buttons back in place of the dropdown. The theme still builds the buttons and keeps
   them in step with the hidden select, so variant, price, stock and Add to Bag run through the same code. */
@media screen and (max-width: 1000px) {
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-row--chips .opt-sel--chips{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;clip-path:inset(50%)!important;margin:0!important;padding:0!important;border:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-row .opt-chips{display:grid!important;grid-template-columns:repeat(auto-fit,minmax(0,1fr))!important;gap:10px!important;margin:8px 0 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-chip{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;
    height:52px!important;min-height:52px!important;width:100%!important;padding:0 8px!important;border:1px solid #D6D2CA!important;border-radius:4px!important;
    background:#fff!important;color:#111!important;font:600 15px/20px "Hanken Grotesk",sans-serif!important;text-decoration:none!important;box-shadow:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-chip.on{border:2px solid #111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-chip::after{content:"In stock";display:block;font:400 12px/16px "Hanken Grotesk",sans-serif;color:#6B6B6B;margin-top:1px}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-chip.out,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-chip[data-c2na]{background:#F5F4F2!important;border:1px solid #E2DED7!important;color:#909090!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-chip.out *{text-decoration:none!important;color:#909090!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-chip.out::after{content:"Out of stock";color:#909090}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-chip[data-c2na]::after{content:"Not available";color:#909090}
}
/* DESKTOP */
@media screen and (min-width: 1001px) {
  /* trust names under the price: bigger */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge b{font-size:16px!important;line-height:22px!important;color:#000!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge i{font-size:13.5px!important;line-height:19px!important}
  /* colon after "Choose your size" even before a size is picked */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label.c2-colon::after{content:":"!important;display:inline!important}
  /* icon before "Size Guide" */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn{display:inline-flex!important;align-items:center!important;gap:6px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn .fit-btn-ic{display:block!important;width:18px!important;height:18px!important;flex:0 0 18px!important;color:#85672A!important;stroke:#85672A!important}
  /* pure black: size row, model line, benefits, questions line */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label *,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn .fit-btn-l,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .model-size *:not(svg):not(path):not(circle),
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li b,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li i,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li a{color:#000!important;opacity:1!important}
  /* benefits: each column as wide as its own text, the spare room split evenly into the two gaps */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust{grid-template-columns:max-content max-content max-content!important;justify-content:space-between!important;column-gap:28px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li),:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:first-child,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:nth-child(3){padding:0!important;gap:10px!important;white-space:nowrap!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(:first-child):not(.vmaker-li)::before{left:-16px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li{grid-column:1 / -1!important;white-space:normal!important}
  /* questions line: bigger text and icon */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li{gap:10px!important;align-items:center!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li svg{width:20px!important;height:20px!important;flex:0 0 20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li b,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li i,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust .vmaker-li a{font-size:15px!important;line-height:22px!important}
}

@media screen and (min-width: 1001px) {
  /* [r14b-4oct] benefits: content-sized columns that may still shrink and wrap on narrower desktops */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust{grid-template-columns:auto auto auto!important;justify-content:space-between!important;column-gap:28px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li),:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:first-child,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:nth-child(3){white-space:normal!important;min-width:0!important}
}

/* [r15-4oct] owner round 15, desktop only */
@media screen and (min-width: 1001px) {
  /* colon after "Choose your size" before a size is picked too (the theme's ": Select option" is hidden then) */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label.c2-nopick::after{content:":"!important;display:inline!important;color:#000!important}
  /* "Choose your size" and "Size Guide": same size, same weight, black */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label .opt-val,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn .fit-btn-l{font-size:15px!important;line-height:20px!important;font-weight:500!important;color:#000!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-label .opt-val{font-weight:700!important}
  /* size buttons that can be picked no longer look sold out: white, a clear outline, black text */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip:not(.out):not([data-c2na]){background:#fff!important;border:1px solid #CFC8BB!important;color:#000!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip:not(.out):not([data-c2na]) .opt-chip-t,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip:not(.out):not([data-c2na])::before{color:#000!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip:not(.out):not([data-c2na])::after{color:#000!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip:not(.out):not([data-c2na]):hover{border-color:#111!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chip.on:not(.out){border:2px solid #111!important}
  /* more room between the trust row and "Questions before you order?" */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust{row-gap:26px!important}
}

/* [r16-4oct] owner round 16, PHONES only (same range as the phone size buttons) */
@media screen and (max-width: 1000px) {
  /* "Size:" becomes "Choose your size:" (drawn by CSS so the theme's label rewrites cannot undo it) */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-row--chips .opt-label{font-size:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-row--chips .opt-label::before{content:"Choose your size"!important;display:inline!important;font-size:16px!important;line-height:22px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox .opt-row--chips .opt-label::after{font-size:16px!important;line-height:22px!important}
  /* ruler icon closer to "Find your size", gold underline on the words */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn{gap:4px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .fit-btn .fit-btn-l{text-decoration:underline!important;text-decoration-color:#C9A866!important;text-decoration-thickness:1px!important;text-underline-offset:3px!important}
  /* "Select your size" on the button: lighter */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .btn-atc.c2-pickword,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp button[name="add"].c2-pickword{font-weight:500!important}
}

/* [ringchips-7oct] Products with more than four sizes (rings: P to Z) get compact square size buttons:
   letter only, no stock line, wrapping grid. Bracelets (two sizes) are untouched. */
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chips:has(> .opt-chip:nth-child(5)){display:grid!important;grid-template-columns:repeat(auto-fill,minmax(44px,1fr))!important;gap:8px!important;width:100%!important;overflow:visible!important;margin-top:10px!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chips:has(> .opt-chip:nth-child(5)) > .opt-chip{height:44px!important;min-height:44px!important;width:auto!important;min-width:0!important;padding:0!important;flex-direction:row!important;justify-content:center!important;align-items:center!important;font:600 15px/1 "Hanken Grotesk",Helvetica,Arial,sans-serif!important;border-radius:4px!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chips:has(> .opt-chip:nth-child(5)) > .opt-chip::after,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chips:has(> .opt-chip:nth-child(5)) > .opt-chip::before{content:none!important;display:none!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chips:has(> .opt-chip:nth-child(5)) > .opt-chip .opt-chip-t{font:inherit!important;color:inherit!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chips:has(> .opt-chip:nth-child(5)) > .opt-chip.out,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-chips:has(> .opt-chip:nth-child(5)) > .opt-chip[data-c2na]{background:#F2F0EC!important;border:1px solid #E6E2DA!important;color:#B4AEA4!important}

/* [cmchip-8oct] SIZE CHIPS: ONE LINE, SIZE + BRACELET LENGTH. Owner, 8 Oct (revised after viewing on his iPhone):
   "S · 18cm" / "M · 20cm" and nothing else. The size letter is the chip's own text from the select; the length is
   the Length variant value (S = the 18cm variant, M = the 20cm variant, the same rule as snippets/samedi-size-table.liquid).
   The second line ("In stock" / "Out of stock" / "Not available") is dropped on bracelet chips; sold-out and
   not-available chips keep their existing greyed / disabled look. Bracelet length rows only
   (select[data-opt^=length]): rings never match. Two-length bracelets carry 18cm/20cm as the chip value, one-size
   bracelets carry S/M, both matched. ⚠️ If the size table's lengths change, change these two strings too.
   ⚠️ The :root chain only exists to outrank the 20-deep chains above. To undo: delete this block. */
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip:is([data-val="S"],[data-val="18cm"])::before{content:"\00A0\00B7\00A0 18cm"!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip:is([data-val="M"],[data-val="20cm"])::before{content:"\00A0\00B7\00A0 20cm"!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip::after,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip[data-val]::after,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip[data-val].out::after,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip[data-val][data-c2na]::after,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip.out::after,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip[data-c2na]::after{content:none!important;display:none!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip{flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;align-content:center!important;justify-content:center!important;row-gap:0!important;white-space:nowrap!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip .opt-chip-t{order:1!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip::before{order:2!important;display:inline!important;margin:0!important}
@media screen and (max-width: 1000px) {
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip::before{font:inherit!important;color:inherit!important;text-decoration:inherit!important}
}
/* [/cmchip-8oct] */

/* [chipsub-9oct] SIZE CHIP SUB-LINE. Owner, 9 Oct: under S "For smaller wrists", under M "For a relaxed fit"
   (instead of a measuring instruction). Second line via ::after, which [cmchip-8oct] switches off; the 28-deep :root
   chain outranks its .out / [data-c2na] kill rules so sold-out chips keep the line too. Bracelet length rows only.
   Same 52px chip height (60px desktop). Checked at 360 / 430 / 1440. To undo: delete this block. */
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip{flex-wrap:wrap!important;align-content:center!important;row-gap:3px!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip:is([data-val="S"],[data-val="18cm"])::after{content:"For smaller wrists"!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip:is([data-val="M"],[data-val="20cm"])::after{content:"For a relaxed fit"!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt^="length"]) .opt-chip:is([data-val="S"],[data-val="18cm"],[data-val="M"],[data-val="20cm"])::after{display:block!important;order:3!important;flex-basis:100%!important;text-align:center!important;font:400 11.5px/1.2 "Hanken Grotesk",Helvetica,Arial,sans-serif!important;letter-spacing:.01em!important;color:#6B6B6B!important;text-decoration:none!important;margin:0!important}
/* [/chipsub-9oct] */

/* [ppsecondary-9oct] Owner, 9 Oct: the PayPal express button on the PRODUCT PAGE (desktop; iPhones get Apple Pay there
   instead) was brighter than the gold Add to cart. Shown in greyscale at every width so Add to cart is the clear primary
   action. On phones the wallet button is Apple Pay, which is already black, so greyscale leaves it looking the same.
   Still fully clickable. Cart drawer untouched. To undo: delete this block. */
.pdp .shopify-payment-button{filter:grayscale(1)!important}
/* [/ppsecondary-9oct] */

/* [whitebg-early-9oct] Owner 9 Oct: phones showed the product page cream at first, turning white only when the page finished loading,
   because the white rules sat in an inline style at the very end of the page. Same rules copied here so white arrives with the
   stylesheet itself. Phones only (max-width 989px); desktop untouched. The inline snippet stays as a backup. To undo: delete this block. */
@media screen and (max-width: 989px) {
  /* page ground, product page (was #FAF8F5 beige) */
  html:root, html:root body, html body{background:#FFFFFF!important}
  /* header: #FFFFFF on every other page on phones; the product page's own sheet tints it beige, so it is set back to match */
  html body .site-header, html body header.site-header{background:#FFFFFF!important}
  html body main:has(.container.pdp), html body .shopify-section:has(> .container.pdp), html body .container.pdp{background:#FFFFFF!important}
  html body .vmat, html body .vmore{background:#FFFFFF!important}
  html body .pdp a.sibw{background:#FFFFFF!important;border:1px solid #E6E6E6!important}
  html body .pdp .gal, html body .pdp .gallery .ph, html body .pdp .thumbs .ph, html body .pdp a.sibw .sibw-thumb, html body .vmore-grid figure{background:#FFFFFF!important}
  html body .pdp .opt-select{background:#FFFFFF!important}
  html body article.lt, html body .lt-img{background:#FFFFFF!important}
  html body .scd-bottom{background:#FFFFFF!important;border-top:1px solid #E6E6E6!important}
  html body .ci-img.ph, html body .ph{background-color:#FFFFFF!important}
  html body .sdp{--sdp-bg:#FFFFFF}

  /* [pdpbands-8oct] reviews band: darker neutral grey, edge to edge, no hairlines needed */
  html body .vrev{background:#F0F0F0!important;border-top:0!important;border-bottom:0!important}
  html body .vrev .vrev-score{border-bottom-color:#DCDCDC!important}
  html body .vrev .vrev-q cite, html body .vrev .vrev-cnt{color:#5F5F5F!important}   /* 5.6:1 on #F0F0F0 (was #8a8a8a, 3.0:1) */
  html body .vrev .vrev-nav button{background:#FFFFFF!important;border-color:#D4D4D4!important}
  html body .vrev .vrev-dots button{background:#B5B5B5!important}
  html body .vrev .vrev-dots button[aria-current="true"]{background:#111111!important}
  /* the materials section under it opens on white with no hairline (the grey band is the divider) */
  html body .vmat{border-top:0!important}
}
/* [/whitebg-early-9oct] */

/* [onesize-10oct] Owner, 10 Oct: one-size bracelets (Onyx Cuban 7mm, Voyager Anchor) showed a struck-out S chip that, with the
   9 Oct "For smaller wrists" line, read like a real size that had sold out. Owner asked for "a good design for the button".
   Now: the size it is not made in is hidden, and the one size it IS made in fills the row as a selected card: size on top,
   "One size · fits wrists 17 - 19.5 cm" under it (same numbers as the size guide table), a black tick on the right.
   All widths. Scoped to rows whose select is data-opt="length-one", which only one-length products render. 29-deep :root
   chain outranks [chipsub-9oct] (28). To undo: delete this block. */
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt="length-one"]) .opt-chips{grid-template-columns:1fr!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt="length-one"]) .opt-chips .opt-chip:disabled{display:none!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt="length-one"]) .opt-chips .opt-chip:not(:disabled){width:100%!important;max-width:none!important;justify-content:flex-start!important;text-align:left!important;padding:0 52px 0 18px!important;border:2px solid #111111!important;background:#FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='12' cy='12' r='11' fill='%23111111'/%3E%3Cpath d='M7 12.5l3.2 3.2L17 9' fill='none' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 16px center/20px 20px!important;cursor:default!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt="length-one"]) .opt-chips .opt-chip:not(:disabled)::after{text-align:left!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt="length-one"]) .opt-chips .opt-chip:is([data-val="M"],[data-val="20cm"])::after{content:"One size \00B7  fits wrists 17 - 19.5 cm"!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row:has(select[data-opt="length-one"]) .opt-chips .opt-chip:is([data-val="S"],[data-val="18cm"])::after{content:"One size \00B7  fits wrists 15 - 17 cm"!important}
/* [/onesize-10oct] */

/* =====================================================================================
   [revall-10oct] ALL REVIEWS, OPEN AND STACKED (snippets/samedi-reviews-all.liquid).
   Owner approved 10 Oct. Replaces the one-quote rotator; the section keeps class .vrev for the
   grey band (#F0F0F0) and hairlines, every inner rule here is on fresh .vra-* classes.
   TO UNDO: delete this block and put the old band markup back (see the snippet header).
   ===================================================================================== */
html body .vrev.vra{padding:0!important}
.vrev.vra .vra-in{display:block;padding-top:28px;padding-bottom:12px}
.vrev.vra .vra-h{margin:0 0 14px;font-family:Fraunces,Georgia,serif;font-weight:500;font-size:24px;line-height:30px;color:var(--lx-ink,#111)}
.vrev.vra .vra-score{display:flex;align-items:center;gap:12px}
.vrev.vra .vra-big{font-family:Fraunces,Georgia,serif;font-weight:500;font-size:40px;line-height:1;color:var(--lx-ink,#111)}
.vrev.vra .vra-scol{display:flex;flex-direction:column;gap:3px}
.vrev.vra .vra-stars{color:var(--lx-gold,#C9A866);font-size:17px;letter-spacing:2px;line-height:1}
.vrev.vra .vra-cnt{font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:13px;line-height:18px;color:#6B6B6B}
.vrev.vra .vra-bars{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:6px;max-width:360px}
.vrev.vra .vra-bars li{display:grid;grid-template-columns:44px minmax(0,1fr) 20px;align-items:center;gap:10px;margin:0;
  font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:12.5px;line-height:16px;color:#6B6B6B}
.vrev.vra .vra-bar{display:block;height:5px;border-radius:3px;background:#DADADA;overflow:hidden}
.vrev.vra .vra-bar > span{display:block;height:100%;font-size:0;line-height:0;background:var(--lx-ink,#111)}
.vrev.vra .vra-bn{text-align:right;font-variant-numeric:tabular-nums}
.vrev.vra .vra-list{list-style:none;margin:22px 0 0;padding:0}
.vrev.vra .vra-r{margin:0;padding:18px 0;border-top:1px solid #DCDCDC}
.vrev.vra .vra-rs{display:block;color:var(--lx-gold,#C9A866);font-size:14px;letter-spacing:2px;line-height:1}
.vrev.vra .vra-off{color:#CFCFCF}
.vrev.vra .vra-t{margin:10px 0 0;font-family:'Hanken Grotesk',system-ui,sans-serif;font-weight:600;font-size:15px;line-height:21px;color:var(--lx-ink,#111)}
.vrev.vra .vra-q{margin:8px 0 0;font-family:Fraunces,Georgia,serif;font-weight:400;font-style:normal;font-size:16px;line-height:24px;color:var(--lx-ink,#111)}
.vrev.vra .vra-who{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:10px 0 0;
  font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:13px;line-height:18px;color:#6B6B6B}
.vrev.vra .vra-n{color:var(--lx-ink,#111);font-weight:500}
.vrev.vra .vra-v{display:inline-flex;align-items:center;gap:4px}
.vrev.vra .vra-v svg{width:13px;height:13px;color:var(--lx-label,#85672A);stroke:var(--lx-label,#85672A)}
@media screen and (min-width:990px){
  .vrev.vra .vra-in{display:grid;grid-template-columns:300px minmax(0,1fr);column-gap:64px;align-items:start;
    max-width:1200px;margin:0 auto;padding:48px 40px 40px;box-sizing:content-box}
  .vrev.vra .vra-head{position:sticky;top:110px}
  .vrev.vra .vra-h{font-size:30px;line-height:36px}
  .vrev.vra .vra-list{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:48px}
  .vrev.vra .vra-r{padding:22px 0}
  .vrev.vra .vra-r:nth-child(-n+2){border-top:0;padding-top:4px}
  .vrev.vra .vra-q{font-size:17px;line-height:26px}
}
/* [/revall-10oct] */

/* =====================================================================================
   [arrives-10oct] "HOW IT ARRIVES" band (snippets/samedi-pdp-arrives.liquid), after the
   materials band. Phone: photo left, two lines right. Desktop: same, larger, centred column.
   TO UNDO: delete this block and the render line in samedi-product.liquid.
   ===================================================================================== */
.varr{background:transparent}
.varr .varr-in{display:grid;grid-template-columns:38% minmax(0,1fr);column-gap:18px;align-items:center;padding-top:28px;padding-bottom:28px}
.varr .varr-img{margin:0;border-radius:2px;overflow:hidden;background:#E0E0E0;aspect-ratio:1/1}
.varr .varr-img img{display:block;width:100%;height:100%;object-fit:cover}
.varr .eyebrow{display:block;color:var(--lx-label,#85672A)}
.varr h2{margin:6px 0 0;font-family:Fraunces,Georgia,serif;font-weight:500;font-size:22px;line-height:28px;color:var(--lx-ink,#111)}
.varr .varr-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.varr .varr-list li{display:grid;grid-template-columns:18px minmax(0,1fr);gap:9px;align-items:start;margin:0;
  font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:14px;line-height:20px;color:var(--lx-ink,#111)}
.varr .varr-list svg{width:18px;height:18px;margin-top:1px;color:var(--lx-label,#85672A);stroke:var(--lx-label,#85672A)}
@media screen and (min-width:990px){
  .varr .varr-in{grid-template-columns:360px minmax(0,460px);column-gap:56px;justify-content:center;padding-top:64px;padding-bottom:64px}
  .varr h2{font-size:34px;line-height:40px;margin-top:10px}
  .varr .varr-list{margin-top:20px;gap:14px}
  .varr .varr-list li{font-size:16px;line-height:24px;grid-template-columns:20px minmax(0,1fr);gap:12px}
  .varr .varr-list svg{width:20px;height:20px;margin-top:2px}
}
/* [/arrives-10oct] */

/* =====================================================================================
   [stocktext-10oct] LOW STOCK AS PLAIN TEXT under the size chips (was a dark pill with a flame
   and a close button over the hero photo). Undoes every pill rule from samedi.css
   [stockpill-21sep]: position, background, blur, border, ring animation, fade-in.
   TO UNDO: delete this block (and see the Liquid and samedi.js notes tagged the same).
   ===================================================================================== */
.pdp .stockpill.stockpill--line{position:static!important;display:block!important;margin:10px 0 0!important;padding:0!important;
  background:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;border:0!important;border-radius:0!important;
  opacity:1!important;transform:none!important;transition:none!important;z-index:auto!important;box-shadow:none!important}
.pdp .stockpill.stockpill--line[hidden]{display:none!important}
.pdp .stockpill.stockpill--line::before{content:none!important;animation:none!important}
.pdp .stockpill.stockpill--line .stockpill-tx{font-family:'Hanken Grotesk',system-ui,sans-serif!important;font-size:13.5px!important;font-weight:500!important;
  line-height:20px!important;color:#6B6B6B!important;white-space:normal!important}
html.scd-open .pdp .stockpill.stockpill--line,html:has(.sg-modal:not([hidden])) .pdp .stockpill.stockpill--line{opacity:1!important;pointer-events:auto!important}
/* [/stocktext-10oct] */

/* =====================================================================================
   [revmore-11oct] REVIEWS: FIRST FEW, THEN "SEE ALL" (snippets/samedi-reviews-all.liquid).
   Owner 11 Oct: "when there are a lot of reviews, especially on mobile, they stack up and the page
   gets really long. Limit showing only 3 reviews at a time with a 'See all reviews' button."
   Phones and tablets: first 3. Desktop (990px and up, the two-column list): first 4, two full rows.
   Only applies once the snippet's script has added .vra-js.is-clamped, so with JavaScript off every
   review shows and the button stays hidden. Button = the site's secondary button (white, 1px ink
   edge, Archivo caps, gold on hover), full width on phones.
   TO UNDO: delete this block and the [revmore-11oct] button and script in the snippet.
   ===================================================================================== */
.vrev.vra .vra-more-row{display:none;margin:0;padding:6px 0 16px}
.vrev.vra.vra-js .vra-more-row{display:block}
.vrev.vra.is-clamped .vra-r:nth-child(n+4){display:none}
.vrev.vra .vra-more{display:flex;align-items:center;justify-content:center;width:100%;min-height:48px;margin:0;padding:0 18px;
  border:1px solid var(--lx-ink,#111);border-radius:0;background:#FFFFFF;color:var(--lx-ink,#111);
  font-family:'Archivo',sans-serif;font-weight:600;font-size:12px;line-height:1.2;letter-spacing:.14em;text-transform:uppercase;
  cursor:pointer;transition:background .2s,border-color .2s;-webkit-tap-highlight-color:transparent}
.vrev.vra .vra-more:hover{background:var(--lx-gold,#C9A866);border-color:var(--lx-gold,#C9A866)}
.vrev.vra .vra-more:focus-visible{outline:2px solid var(--lx-ink,#111);outline-offset:2px}
@media screen and (min-width:990px){
  .vrev.vra .vra-more-row{grid-column:2;padding:10px 0 8px}
  .vrev.vra .vra-more{width:auto;min-width:280px}
  .vrev.vra.is-clamped .vra-r:nth-child(n+4){display:block}
  .vrev.vra.is-clamped .vra-r:nth-child(n+5){display:none}
  .vrev.vra.vra-js .vra-more-row--4{display:none}
}
/* [/revmore-11oct] */

/* =====================================================================================
   [arrgrey-11oct] "HOW IT ARRIVES" ON GREY, WITH A HAIRLINE ON TOP (snippets/samedi-pdp-arrives.liquid).
   Owner 11 Oct: "add a separator line on top of the How it arrives section and make that section's
   background grey." Same grey as the reviews band (#F0F0F0) and the page's hairline colour. Every
   width. Above it is the white materials band; below it the dark "everyday wear" photo band (or, on
   rings, "Pairs well with", which has its own hairline on top).
   TO UNDO: delete this block (the band goes back to transparent from [arrives-10oct]).
   ===================================================================================== */
html body .varr{background:#F0F0F0!important;border-top:1px solid #E6E6E6!important}
/* [/arrgrey-11oct] */

/* =====================================================================================
   [pairs-11oct] "PAIRS WELL WITH" CARDS = THE COLLECTION CARDS (snippets/samedi-pdp-pairs.liquid).
   Owner 11 Oct: "make the product cards look the same as the ones on the collections page, they
   currently do not have cards and it's just white background."
   Same snippet as /collections/the-classics (samedi-lcard, now with its Add to cart button). These
   rules only undo the product page's own card overrides ([whitebg-early-9oct] turned the card white on
   phones; older v2 rules set black spec text, 17/20px names and 20px insets) and put back the values
   the collection card computes to, measured on the-classics at 375, 390, 430 and 1440. Rail layout
   (2 per view swipe on phones, 3 plus arrows on desktop) is unchanged.
   The 14-deep :root chain outranks the 12-deep v2 card rules; scoped to .vpair so nothing else moves.
   TO UNDO: delete this block (and see the snippet header).
   ===================================================================================== */
:root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair article.lt{background:#F0F0F0!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-img{background:#F0F0F0!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-desc,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-desc-len,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-count{color:#6B6B6B!important}
/* price (with its hairline) pinned to the card foot, as on the collection, so prices and buttons sit level when a name wraps */
:root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-price{margin-top:auto!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .grid-3{align-items:stretch!important}
:root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .grid-3 > article.lt{align-self:stretch!important;height:auto!important}
@media screen and (max-width:767px){
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-name{font-size:15px!important;line-height:1.25!important}
}
@media screen and (min-width:768px) and (max-width:899px){
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-name{font-size:16px!important;line-height:1.25!important}
}
@media screen and (min-width:900px){
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-name{font-size:19px!important;line-height:1.25!important;margin:20px 24px 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-desc,:root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-rating{margin-left:24px!important;margin-right:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt-price{margin:auto 24px 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root .vpair .lt--atc .lt-link{padding-bottom:18px!important}
}
/* [/pairs-11oct] */

/* =====================================================================================
   [deskpdp-12oct] DESKTOP PRODUCT PAGE: REVIEWS, "HOW IT ARRIVES", BUY BOX. DESKTOP ONLY.
   Owner 10 Oct (analysis-11oct-desktop/owner-*.png):
   1. reviews: "the review stars etc on the left are too small and the reviews on the right are too
      large, the proportions of that section just look off."
   2. how it arrives: "looks off given it is positioned central when the rest of the sections aren't,
      and the image is too large compared to the text height."
   3. buy box: "looks unstructured and things look randomly placed; spacing, sizing, separator lines."
   Spec: analysis-11oct-desktop/codex-spec.md, checked against the real page in a browser.
   PHONES: every rule below sits inside min-width:990px (reviews, arrives) or min-width:1001px (buy
   box: the desktop buy column, its scripts in samedi-desk.js and the tile gallery all switch at
   1001, so 990-1000 keeps the tablet layout it has today). Nothing here reaches 989px and below.
   The buy box rules carry a 30-deep :root chain because [deskv3-4oct] .. [onesize-10oct] use up to
   29 and !important; a shorter selector loses.
   TO UNDO: delete this whole block, and put sizes="(min-width:990px) 360px, 40vw" back on the image
   in snippets/samedi-pdp-arrives.liquid ([deskpdp-12oct] note there).
   ===================================================================================== */

/* ---------- [deskpdp-12oct a] REVIEWS: same 40px page edge as the other bands, bigger score,
   quieter review text (Hanken 16/24 instead of Fraunces 17/26). ---------- */
@media screen and (min-width:990px){
  html body .vrev.vra .vra-in{grid-template-columns:clamp(320px,25vw,360px) minmax(0,1fr);column-gap:48px;
    width:100%;max-width:1440px;box-sizing:border-box;margin:0 auto;padding:56px 40px}
  html body .vrev.vra .vra-h{margin:0 0 24px;font-size:32px;line-height:40px;letter-spacing:-.01em}
  html body .vrev.vra .vra-score{gap:16px}
  html body .vrev.vra .vra-big{font-size:56px;line-height:56px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
  html body .vrev.vra .vra-scol{gap:4px}
  html body .vrev.vra .vra-stars{font-size:24px;line-height:28px;letter-spacing:2px}
  html body .vrev.vra .vra-cnt{font-size:14px;line-height:20px}
  html body .vrev.vra .vra-bars{margin-top:24px;gap:8px;max-width:none}
  html body .vrev.vra .vra-bars li{grid-template-columns:48px minmax(0,1fr) 24px;gap:12px;font-size:14px;line-height:24px}
  html body .vrev.vra .vra-bar{height:8px;border-radius:4px}
  html body .vrev.vra .vra-list{column-gap:32px;align-items:start}
  html body .vrev.vra .vra-r{padding:24px 0;border-top:1px solid #E6E6E6}
  html body .vrev.vra .vra-r:nth-child(-n+2){border-top:0;padding-top:0}
  html body .vrev.vra .vra-rs{font-size:18px;line-height:24px;letter-spacing:1px}
  html body .vrev.vra .vra-t{margin-top:8px;font-size:15px;line-height:24px}
  html body .vrev.vra .vra-q{margin-top:8px;font-family:'Hanken Grotesk',system-ui,sans-serif;font-size:16px;line-height:24px;letter-spacing:0}
  html body .vrev.vra .vra-who{margin-top:16px;gap:4px 12px;font-size:14px;line-height:20px}
  html body .vrev.vra .vra-v svg{width:16px;height:16px}
  html body .vrev.vra .vra-more-row{margin-top:8px;padding:0}
}
/* under 1120px the review track is too narrow for two columns: one column, same summary */
@media screen and (min-width:990px) and (max-width:1119px){
  html body .vrev.vra .vra-list{grid-template-columns:minmax(0,1fr)}
  html body .vrev.vra .vra-r:nth-child(2){border-top:1px solid #E6E6E6;padding-top:24px}
}

/* ---------- [deskpdp-12oct b] HOW IT ARRIVES: photo on the 40px page edge, 240px (was a centred
   360px), text left-aligned beside it, 48px band padding. ---------- */
@media screen and (min-width:990px){
  html body .varr .varr-in{grid-template-columns:240px minmax(0,1fr);column-gap:48px;justify-content:stretch;align-items:center;
    width:100%;max-width:1440px;box-sizing:border-box;margin:0 auto;padding:48px 40px}
  html body .varr .varr-tx{max-width:600px} /* 600 not 560: the delivery line (563px) then fits on one line, no lone "Saturday." */
  html body .varr h2{margin-top:8px;font-size:32px;line-height:40px;letter-spacing:-.01em}
  html body .varr .varr-list{margin-top:24px;gap:16px}
  html body .varr .varr-list li{grid-template-columns:20px minmax(0,1fr);gap:12px;font-size:16px;line-height:24px}
  html body .varr .varr-list svg{width:20px;height:20px;margin-top:2px}
}
@media screen and (min-width:990px) and (max-width:1119px){
  html body .varr .varr-in{grid-template-columns:208px minmax(0,1fr);column-gap:40px}
}

/* ---------- [deskpdp-12oct c] BUY BOX (1001px and up). One rhythm (8/12/16/24/32), neutral #E6E6E6
   hairlines that mark the groups (header | spec strip | size + button | trust | contact), and the
   spec strip and trust row on the SAME column grid so their dividers line up. ---------- */
@media screen and (min-width:1001px){
  /* header: descriptor, title, rating + stock, price */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band{display:flex!important;flex-direction:column!important;gap:0!important;margin:0!important;padding:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .pdp-sub{margin:0!important;font-size:14px!important;line-height:20px!important;letter-spacing:.01em!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band h1{margin:8px 0 0!important;line-height:38px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .rating-row{margin:12px 0 0!important;display:flex!important;align-items:center!important;justify-content:space-between!important;
    flex-wrap:wrap!important;gap:8px 16px!important;font-size:14px!important;line-height:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .rating-row .rating{gap:8px!important;align-items:center!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .rating-row .rating .stars{font-size:18px!important;line-height:24px!important;letter-spacing:1px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .rating-row .rating b,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .rating-row .rating a{font-size:14px!important;line-height:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .rating-row .ship-line{margin:0!important;font-size:14px!important;line-height:24px!important;gap:8px!important;align-items:center!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .rating-row .ship-line span{font-size:14px!important;line-height:24px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .rating-row .ship-line .stock-dot{margin:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .price-row{margin:16px 0 0!important;padding:0!important;border:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .head-band .price-row .price{line-height:32px!important}

  /* spec strip: hairline above and below, three cells, one neutral divider between cells */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge{margin:24px 0 0!important;padding:16px 0!important;border-top:1px solid #E6E6E6!important;border-bottom:1px solid #E6E6E6!important;
    display:grid!important;grid-template-columns:var(--dp-cols)!important;gap:0!important;min-height:0!important;height:auto!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li{min-width:0!important;min-height:40px!important;padding:0 8px!important;border:0!important;margin:0!important;
    display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:8px!important;text-align:left!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li:first-child{padding-left:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li:last-child{padding-right:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li + li{border-left:1px solid #E6E6E6!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li::before,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li::after{content:none!important;display:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li > svg,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li > img{flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge li > span{min-width:0!important;margin:0!important;padding:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge b{font-size:14px!important;line-height:20px!important;font-weight:600!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vbadge i{font-size:13px!important;line-height:20px!important;font-style:normal!important;color:#6B6B6B!important;margin:0!important}

  /* size group: 24px under the strip; a product with no strip (rings) keeps a hairline above it */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form{margin:24px 0 0!important;padding:0!important;border-top:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .buybox:not(:has(.vbadge)) .head-band{padding-bottom:24px!important;border-bottom:1px solid #E6E6E6!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form .opt-chips{margin-top:12px!important}
  /* ring sizes (11 chips): one row whose 44px-minimum tracks overflowed, so Y and Z were cut off at 1280.
     Now every chip takes an equal share of the row (about 45px at 1440, 40px at 1280, 31px at 1024).
     Kept to ONE row on purpose: wrapping to two rows moved the button 50px once the chips were drawn. */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .opt-row .opt-chips:has(> .opt-chip:nth-child(5)){grid-template-columns:none!important;grid-auto-flow:column!important;grid-auto-columns:minmax(0,1fr)!important;gap:6px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form .model-size{margin:12px 0 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form .stockpill.stockpill--line{margin:8px 0 0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form .opt-row + .stockpill.stockpill--line{margin-top:12px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-form button[name="add"]{margin-top:24px!important}

  /* trust row: same grid as the spec strip, hairline above, dividers the full height of the row */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust{margin:24px 0 0!important;padding:16px 0 0!important;border-top:1px solid #E6E6E6!important;
    display:grid!important;grid-template-columns:var(--dp-cols)!important;column-gap:0!important;row-gap:0!important;justify-content:stretch!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li){min-width:0!important;padding:0 8px!important;margin:0!important;border:0!important;
    display:flex!important;align-items:flex-start!important;gap:8px!important;justify-content:flex-start!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li):first-child{padding-left:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li):nth-child(3){padding-right:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) + li:not(.vmaker-li){border-left:1px solid #E6E6E6!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li::before,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li::after{content:none!important;display:none!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) > svg{flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) > span{min-width:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) b{font-size:14px!important;line-height:20px!important;font-weight:500!important;white-space:normal!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) i{font-size:12px!important;line-height:16px!important;margin-top:4px!important;white-space:normal!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li:not(.vmaker-li) i a.vguar-more{white-space:normal!important}

  /* contact: its own row, hairline above, 16px under the trust cells */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li.vmaker-li{grid-column:1/-1!important;margin:16px 0 0!important;padding:16px 0 0!important;border:0!important;
    border-top:1px solid #E6E6E6!important;display:flex!important;align-items:center!important;gap:8px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li.vmaker-li > svg{flex:0 0 20px!important;width:20px!important;height:20px!important;margin:0!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li.vmaker-li b,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li.vmaker-li i,:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .vtrust li.vmaker-li a{font-size:14px!important;line-height:24px!important}

  /* "Also available": square 80px photo, text, chevron in its own track */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw{margin:24px 0 0!important;padding:12px 16px 12px 12px!important;min-height:104px!important;box-sizing:border-box!important;
    display:grid!important;grid-template-columns:80px minmax(0,1fr) 20px!important;grid-template-rows:auto auto auto!important;
    column-gap:16px!important;row-gap:0!important;align-content:center!important;align-items:center!important;border:1px solid #E6E6E6!important;border-radius:4px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw .sibw-thumb{grid-column:1!important;grid-row:1/4!important;width:80px!important;height:80px!important;margin:0!important;position:static!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw .sibw-thumb img{width:80px!important;height:80px!important;object-fit:contain!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw .sibw-q{grid-column:2!important;grid-row:1!important;margin:0!important;font-size:13px!important;line-height:20px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw .sibw-p{grid-column:2!important;grid-row:2!important;margin:4px 0 0!important;font-size:15px!important;line-height:20px!important;font-weight:600!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw .sibw-pr{grid-column:2!important;grid-row:3!important;margin:4px 0 0!important;font-size:15px!important;line-height:20px!important;font-weight:500!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .sibw > svg{grid-column:3!important;grid-row:1/4!important;position:static!important;transform:none!important;width:20px!important;height:20px!important;margin:0!important;align-self:center!important}

  /* accordions: 32px under the card (or the contact row), hairline above the first row too */
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-details--incolumn{margin-top:32px!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-details--incolumn .spec-acc:first-child .spec-acc-h{border-top:1px solid #E6E6E6!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-details--incolumn .spec-acc-h{border-bottom-color:#E6E6E6!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-details--incolumn .spec-acc-q{min-height:56px!important;padding:16px 0!important;align-items:center!important}
  :root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root:root .pdp .pdp-details--incolumn .spec-acc-t{font-size:20px!important;line-height:24px!important}
}
/* the column grid both strips share, so the spec dividers and the trust dividers line up. 1200px and up:
   columns in proportion to the widest copy in each (measured: "Order before 3pm · UK only", "Rhodium
   finish", "Breaks & tarnish covered"), so nothing wraps at 1280. 1001-1199: equal thirds, copy wraps. */
@media screen and (min-width:1001px){
  .pdp{--dp-cols:repeat(3,minmax(0,1fr))}
}
@media screen and (min-width:1200px){
  .pdp{--dp-cols:minmax(0,185fr) minmax(0,131fr) minmax(0,171fr)}
}
/* [/deskpdp-12oct] */
