:root{
    /* RC-018: named design tokens. Existing component aliases below preserve the approved demo values. */
    --color-navy:#0B2545;
    --color-navy-action:#0B3A6E;
    --color-navy-deep:#082B52;
    --color-gold:#C8A24A;
    --color-gold-deep:#A9863A;
    --color-paper:#FFFFFF;
    --color-paper-alt:#E6E9EE;
    --color-blue-wash:#E6ECF4;
    --color-ink-soft:#4B5563;
    --color-steel:#4B5563;
    --color-line:#D8DEE6;
    --color-white:#FFFFFF;
    --color-success:#1e4d1e;
    --color-success-bg:#eef6ee;
    --color-success-border:#b9dcb9;
    --color-error:#9d2f2f;
    --color-error-bg:#fff7f7;
    --color-error-border:#e7b3b3;
    --color-warning:#6b4300;
    --color-warning-bg:#fff6e5;
    --color-warning-border:#f0d9a8;
    --paper:var(--color-paper);
    --paper-alt:var(--color-paper-alt);
    --ink:var(--color-navy);
    --ink-soft:var(--color-ink-soft);
    --charcoal:var(--color-navy-action);
    --charcoal-deep:var(--color-navy-deep);
    --sage:var(--color-navy-action);
    --sage-dark:var(--color-navy-deep);
    --sage-light:var(--color-blue-wash);
    --sand:var(--color-gold);
    --sand-deep:var(--color-gold-deep);
    --steel:var(--color-steel);
    --line:var(--color-line);
    --white:var(--color-white);
    --sale:var(--color-gold);
    --font-display:'Sora', sans-serif;
    --font-body:'Inter', sans-serif;
    --font-mono:'IBM Plex Mono', monospace;
    --type-xs:10.5px;
    --type-sm:12px;
    --type-body:14px;
    --type-lg:17px;
    --type-xl:22px;
    --type-display:clamp(26px,3.2vw,34px);
    --space-1:4px;
    --space-2:8px;
    --space-3:12px;
    --space-4:16px;
    --space-5:20px;
    --space-6:24px;
    --space-8:32px;
    --space-10:40px;
    --space-12:48px;
    --space-16:64px;
    --radius-sm:4px;
    --radius-md:8px;
    --radius-lg:12px;
    --radius-xl:16px;
    --radius-2xl:20px;
    --radius-pill:999px;
    --shadow-sm:0 1px 3px rgba(27,42,58,.05);
    --shadow-md:0 12px 26px rgba(27,42,58,.1);
    --shadow-lg:0 24px 50px rgba(11,58,110,.08);
    --focus-ring:0 0 0 3px rgba(127,185,224,.2);
    --bp-sm:560px;
    --bp-md:700px;
    --bp-lg:860px;
    --bp-xl:960px;
  }
  html.visual-test{--font-display:Arial,sans-serif;--font-body:Arial,sans-serif;--font-mono:monospace;}
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{background:var(--paper);color:var(--ink);font-family:var(--font-body);line-height:1.55;-webkit-font-smoothing:antialiased;}
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;}
  select{font-family:inherit;}
  .mono{font-family:var(--font-mono);}
  .wrap{max-width:1240px;margin:0 auto;padding:0 32px;}
  h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em;color:var(--ink);}
  .eyebrow{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:#86672A;} /* darker than --sand-deep: 4.8:1 on light backgrounds */

  /* ===== GATE ===== */
  #ageGate{position:fixed;inset:0;z-index:1000;background:var(--paper);display:flex;align-items:center;justify-content:center;padding:24px;}
  .gate-card{width:100%;max-width:480px;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:44px 40px 36px;text-align:center;}
  .gate-seal{margin:0 auto 22px;}
  .gate-card h1{font-size:22px;line-height:1.3;margin-bottom:12px;}
  .gate-card p{font-size:13.5px;color:var(--ink-soft);margin-bottom:22px;}
  .gate-check{display:flex;align-items:flex-start;gap:10px;text-align:left;background:var(--paper-alt);border-radius:12px;padding:14px 16px;margin-bottom:10px;}
  .gate-check input{margin-top:2px;flex-shrink:0;width:16px;height:16px;accent-color:var(--sage);}
  .gate-check span{font-size:12px;color:var(--ink-soft);line-height:1.5;}
  .gate-check a{color:var(--sage-dark);text-decoration:underline;}
  .gate-btns{display:flex;flex-direction:column;gap:10px;margin-top:16px;}
  .gate-btn{padding:15px 20px;font-size:14px;font-weight:600;border-radius:6px;transition:opacity .15s ease, transform .15s ease, background .15s ease;}
  .gate-btn:hover:not(:disabled){opacity:.9;}
  .gate-btn:active:not(:disabled){transform:scale(.98);}
  .gate-yes{background:var(--sage-dark);color:#fff;}
  .gate-yes:disabled{background:var(--line);color:var(--steel);cursor:not-allowed;}
  .gate-no{background:transparent;color:var(--ink-soft);border:1px solid var(--line);}
  .gate-fine{font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;color:var(--steel);margin-top:20px;text-transform:uppercase;}
  .gate-blocked{display:none;}
  .gate-blocked.show{display:block;}
  .gate-card.blocked-state .gate-btns,
  .gate-card.blocked-state .gate-check{display:none;}
  body.gate-open{overflow:hidden;}
  .rc-verified #ageGate{display:none;}
  .rc-verified body.gate-open{overflow:visible;}

  /* ===== ANNOUNCE ===== */
  .announce{background:var(--charcoal);color:#fff;text-align:center;padding:9px 16px;font-size:12px;font-weight:500;letter-spacing:.02em;}

  /* ===== NAV ===== */
  header{position:sticky;top:0;z-index:100;background:rgba(35,38,43,.95);backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.08);}
  nav{display:flex;align-items:center;justify-content:space-between;padding:20px 0;}
  .logo-block{display:flex;flex-direction:column;line-height:1.1;}
  .logo{font-family:var(--font-display);font-weight:700;font-size:19px;}
  .logo-sub{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);}
  .nav-links{display:flex;gap:28px;align-items:center;}
  .nav-links a{font-size:14px;font-weight:500;color:#C9CCD2;padding:4px 0;border-bottom:1px solid transparent;transition:border-color .15s ease, color .15s ease;}
  .nav-links a:hover{border-color:var(--sand);color:#fff;}
  .nav-right{display:flex;align-items:center;gap:14px;}
  .menu-toggle{display:none;color:#fff;padding:8px;border:1px solid rgba(255,255,255,.2);border-radius:6px;}
  .menu-toggle svg{display:block;}
  .mobile-nav{display:none;}
  .cart-btn{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;background:var(--sand);color:var(--charcoal-deep);padding:10px 18px;border-radius:100px;transition:background .15s ease;}
  .cart-btn:hover{background:var(--sand-deep);color:#fff;}
  .cart-count{background:var(--charcoal);color:#fff;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10.5px;font-weight:700;}

  /* ===== HERO ===== */
  .hero{position:relative;padding:140px 0 150px;overflow:hidden;background:var(--paper-alt);isolation:isolate;}
  .hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:1;z-index:0;}
  .hero::after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse 60% 70% at 50% 45%, rgba(255,255,255,.78) 0%, rgba(255,255,255,.5) 55%, rgba(255,255,255,.05) 100%);z-index:1;pointer-events:none;}
  .hero-inner{position:relative;z-index:2;max-width:620px;margin:0;}
  .hero-inner.hero-centered{max-width:760px;margin:0 auto;text-align:center;}
  .hero-centered .hero-ctas{justify-content:center;}
  .hero-centered .hero-sub{margin-left:auto;margin-right:auto;}
  .hero-centered .hero-disclaimer{margin-left:auto;margin-right:auto;}
  .hero-tagline{font-family:var(--font-mono);font-size:11.5px;letter-spacing:.34em;font-weight:600;margin-bottom:26px;}
  .hero-tagline .t-blue{color:var(--sage-dark);}
  .hero-tagline .t-grey{color:var(--steel);}
  .hero-tagline .t-pink{color:var(--sand-deep);}
  .hero-big{font-family:var(--font-display);font-size:clamp(52px,7.4vw,96px);line-height:.98;letter-spacing:.01em;margin-bottom:26px;font-weight:600;}
  .hero-big .grad{background:linear-gradient(100deg, var(--sand-deep) 0%, var(--sand) 55%, #E3C87F 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;}
  .hero h1{font-size:clamp(30px,4.6vw,48px);line-height:1.12;margin-bottom:18px;}
  .hero h1 em{font-style:normal;color:var(--sage-dark);}
  .hero-sub{font-size:16.5px;line-height:1.85;color:var(--ink-soft);margin-bottom:40px;max-width:520px;}
  .hero-ctas{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin-bottom:28px;}
  .btn-primary{background:var(--charcoal);color:#fff;padding:17px 38px;font-size:12px;font-weight:600;border-radius:2px;letter-spacing:.22em;text-transform:uppercase;transition:all .35s ease;border:1px solid var(--charcoal);}
  .btn-primary:hover{background:var(--sand);border-color:var(--sand);color:var(--charcoal-deep);}
  .btn-ghost{font-size:14px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:2px;}
  .hero-disclaimer{font-size:11.5px;color:var(--ink-soft);max-width:520px;margin:0;}

  /* ===== TRUST STRIP ===== */
  .trust{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper-alt);}
  .trust-inner{display:flex;justify-content:center;flex-wrap:wrap;gap:14px 28px;padding:16px 0;}
  .trust-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--ink-soft);font-weight:500;}
  .trust-item svg{flex-shrink:0;color:var(--sage-dark);}

  /* ===== SECTION HEAD ===== */
  .section{padding:72px 0;}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:28px;gap:24px;flex-wrap:wrap;}
  .section-head.centered{flex-direction:column;align-items:center;text-align:center;}
  .section-head h2{font-size:clamp(26px,3.2vw,34px);}
  .section-head p{color:var(--steel);max-width:460px;font-size:14.5px;}

  /* ===== SHOP CONTROLS ===== */
  .shop-controls{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:24px;}
  .cat-tabs{display:flex;gap:8px;flex-wrap:wrap;}
  .cat-tab{font-size:13px;font-weight:600;color:var(--ink-soft);background:var(--white);border:1px solid var(--line);padding:9px 16px;border-radius:100px;transition:background .15s ease, color .15s ease, border-color .15s ease;}
  .cat-tab:hover{border-color:var(--sage);}
  .cat-tab.active{background:var(--charcoal);color:var(--paper);border-color:var(--charcoal);}
  .search-bar{display:flex;align-items:center;gap:10px;background:var(--white);border:1px solid var(--line);border-radius:100px;padding:11px 18px;width:280px;}
  .search-bar svg{flex-shrink:0;color:var(--steel);}
  .search-bar input{border:none;outline:none;background:transparent;font-size:13.5px;color:var(--ink);width:100%;}
  .search-bar input::placeholder{color:var(--steel);}
  .no-results{display:none;padding:60px 0;text-align:center;color:var(--steel);font-size:14.5px;}
  .no-results.show{display:block;}
  .catalog-state{grid-column:1/-1;padding:60px 0;text-align:center;color:var(--steel);font-size:14.5px;}
  .result-count{font-size:12.5px;color:var(--steel);margin-bottom:20px;}

  /* ===== PRODUCT GRID ===== */
  .product-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
  .product-card{background:var(--white);border:1px solid var(--line);border-radius:6px;padding:22px;display:flex;flex-direction:column;position:relative;transition:border-color .4s ease, box-shadow .4s ease, transform .4s ease;}
  .product-card:hover{border-color:var(--sand);box-shadow:0 24px 50px rgba(11,58,110,.08);transform:translateY(-4px);}
  .sale-flag{position:absolute;top:12px;left:12px;background:var(--sand-deep);color:#fff;font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:5px 9px;border-radius:4px;z-index:2;}
  .blend-flag{position:absolute;top:12px;right:12px;background:var(--sage-light);color:var(--sage-dark);font-size:10.5px;font-weight:700;letter-spacing:.03em;padding:5px 9px;border-radius:4px;z-index:2;}
  .sold-out-flag{background:var(--charcoal);color:#fff;}
  .product-image{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:12px;margin-bottom:14px;background:var(--paper-alt);border:1px dashed var(--line);}
  .product-body{padding:0 4px;display:flex;flex-direction:column;flex-grow:1;}
  .product-cat-label{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--sage-dark);margin-bottom:6px;}
  .product-card h3{font-size:16.5px;margin-bottom:4px;}
  .product-tag{font-size:12px;color:var(--steel);margin-bottom:12px;}
  .size-select{width:100%;font-size:12.5px;color:var(--ink);background:var(--paper-alt);border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-bottom:12px;}
  .unit-price{font-family:var(--font-mono);font-size:11px;color:var(--steel);margin-bottom:12px;}
  .product-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:14px;border-top:1px solid var(--line);margin-top:auto;}
  .price-block{display:flex;align-items:baseline;gap:7px;}
  .price-from{font-size:10.5px;color:var(--steel);margin-right:2px;}
  .price{font-family:var(--font-mono);font-size:14.5px;font-weight:600;}
  .price-was{font-family:var(--font-mono);font-size:12px;color:var(--steel);text-decoration:line-through;}
  .add-btn{font-size:11px;font-weight:600;background:var(--charcoal);color:var(--paper);padding:11px 18px;border-radius:2px;letter-spacing:.16em;text-transform:uppercase;transition:all .3s ease;border:1px solid var(--charcoal);}
  .add-btn:hover{background:var(--sage-dark);}
  .sold-out-btn{background:var(--paper-alt) !important;color:var(--steel) !important;cursor:not-allowed;border:1px solid var(--line);}
  .sold-out-btn:hover{background:var(--paper-alt) !important;}
  .add-btn.added{background:var(--sand-deep);}

  /* ===== COMPARISON ===== */
  .compare{background:var(--white);border:1px solid var(--line);border-radius:20px;overflow:hidden;}
  .compare-row{display:grid;grid-template-columns:1.6fr 1fr 1fr;align-items:center;padding:16px 24px;border-bottom:1px solid var(--line);}
  .compare-row:last-child{border-bottom:none;}
  .compare-row.head{background:var(--paper-alt);font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--steel);}
  .compare-row.head .col-real{color:var(--sage-dark);font-weight:700;}
  .compare-label{font-size:13.5px;color:var(--ink-soft);}
  .compare-val{display:flex;align-items:center;gap:7px;font-size:13px;justify-content:center;text-align:center;}
  .compare-val.yes{color:var(--sage-dark);font-weight:600;}
  .compare-val.no{color:var(--steel);}
  .compare-val svg{flex-shrink:0;}

  /* ===== QUALITY ===== */
  .quality-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;}
  .stat-row{display:flex;gap:36px;margin-bottom:28px;flex-wrap:wrap;}
  .stat-block .num{font-family:var(--font-display);font-size:34px;font-weight:700;color:var(--sage-dark);}
  .stat-block .lbl{font-size:12.5px;color:var(--steel);margin-top:2px;}
  .check-list{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px;}
  .check-pill{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:var(--ink-soft);background:var(--paper-alt);padding:7px 13px;border-radius:100px;}
  .check-pill svg{color:var(--sage);}
  .quality-copy p{font-size:14.5px;color:var(--ink-soft);margin-bottom:14px;max-width:460px;}
  .quality-card{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:28px;}
  .quality-card img{border-radius:14px;margin-bottom:18px;aspect-ratio:1/1;object-fit:cover;}
  .quality-card h3{font-size:17px;margin-bottom:8px;}
  .quality-card p{font-size:13px;color:var(--steel);}

  /* ===== LAB RESULTS / PROCESS ===== */
  .section-alt{background:transparent;}
  .process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
  .process-step{border-top:2px solid var(--sage);padding-top:18px;}
  .process-num{font-family:var(--font-mono);font-size:11.5px;color:var(--sage);margin-bottom:14px;}
  .process-step h3{font-size:17px;margin-bottom:10px;}
  .process-step p{font-size:13.5px;color:var(--steel);}

  /* ===== STORY ===== */
  .story{display:grid;grid-template-columns:.85fr 1.15fr;gap:60px;align-items:center;}
  .story-visual{aspect-ratio:4/5;border-radius:24px;position:relative;overflow:hidden;background:var(--sage-light);}
  .story-visual img{width:100%;height:100%;object-fit:cover;}
  .story-visual .seal-mark{position:absolute;bottom:26px;left:26px;background:rgba(255,255,255,.9);border-radius:50%;padding:8px;}
  .story h2{font-size:clamp(26px,3vw,32px);margin-bottom:18px;}
  .story p{color:var(--ink-soft);font-size:15px;margin-bottom:16px;max-width:520px;}
  .story-sig{font-size:13px;color:var(--steel);margin-top:20px;font-weight:500;}

  /* ===== FAQ ===== */
  .faq-list{max-width:760px;margin:0 auto;}
  .faq-item{border-bottom:1px solid var(--line);padding:4px 0;}
  .faq-item:last-child{border-bottom:none;}
  .faq-item summary{padding:18px 0;font-size:15px;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;}
  .faq-item summary::-webkit-details-marker{display:none;}
  .faq-item summary::after{content:'+';font-size:20px;color:var(--sage);font-weight:400;}
  .faq-item[open] summary::after{content:'–';}
  .faq-item p{font-size:13.5px;color:var(--ink-soft);padding-bottom:20px;max-width:640px;}

  /* ===== NEWSLETTER ===== */
  .newsletter{background:var(--charcoal-deep);color:#fff;padding:96px 0;}
  .nl-grid{display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap;}
  .newsletter h2{font-family:var(--font-display);font-size:clamp(28px,3.4vw,38px);color:#fff;max-width:520px;font-weight:600;}
  .nl-form{display:flex;gap:10px;min-width:320px;flex:1;max-width:420px;}
  .nl-form input{flex:1;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.35);border-radius:0;padding:13px 4px;color:#fff;font-size:14px;}
  .nl-form input:focus{outline:none;border-bottom-color:var(--sand);}
  .nl-form input::placeholder{color:var(--steel);}
  .nl-form button{background:var(--sand);color:var(--charcoal-deep);padding:13px 30px;border-radius:2px;font-size:11.5px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;transition:background .3s ease;}
  .nl-form button:hover{background:#E3C87F;}

  /* ===== FOOTER ===== */
  footer{padding:90px 0 48px;background:var(--charcoal);color:#C9CCD2;margin-top:0;}
  .foot-top{display:flex;justify-content:space-between;flex-wrap:wrap;gap:36px;padding-bottom:32px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:22px;}
  .foot-cols{display:flex;gap:48px;flex-wrap:wrap;}
  .foot-col h2{font-family:inherit;font-size:12px;font-weight:600;color:#B4BAC4;margin-bottom:14px;letter-spacing:.04em;text-transform:uppercase;}
  .foot-col a{display:block;font-size:13.5px;margin-bottom:9px;color:#C9CCD2;transition:color .15s ease;}
  .foot-col a:hover{color:var(--sand);}
  .age-note{display:flex;gap:12px;align-items:flex-start;background:rgba(127,185,224,.1);border:1px solid rgba(127,185,224,.2);border-radius:14px;padding:16px 18px;max-width:560px;margin-bottom:20px;}
  .age-note .badge{font-family:var(--font-mono);font-weight:700;font-size:11px;color:#E6ECF4;border:1px solid #E6ECF4;padding:3px 8px;border-radius:6px;flex-shrink:0;}
  .age-note p{font-size:12.5px;color:#B4B8BF;}
  .legal-note{font-size:11px;color:#B4BAC4;max-width:820px;line-height:1.7;margin-bottom:20px;}
  .foot-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:11.5px;color:#B4BAC4;}

  /* ===== CART ===== */
  .cart-overlay{position:fixed;inset:0;background:rgba(38,42,34,.35);z-index:200;opacity:0;pointer-events:none;transition:opacity .2s ease;}
  .cart-overlay.open{opacity:1;pointer-events:auto;}
  .cart-drawer{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:400px;background:var(--paper);z-index:201;transform:translateX(100%);transition:transform .25s ease;display:flex;flex-direction:column;}
  .cart-drawer.open{transform:translateX(0);}
  .cart-head{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line);}
  .cart-head h3{font-size:16px;}
  .cart-close{font-size:22px;color:var(--steel);}
  .cart-items{flex:1;overflow-y:auto;padding:12px 24px;}
  .cart-line{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-bottom:1px solid var(--line);gap:12px;}
  .cart-line-name{font-size:14.5px;font-weight:600;}
  .cart-line-sub{font-family:var(--font-mono);font-size:11px;color:var(--steel);margin-top:4px;}
  .cart-line-price{font-family:var(--font-mono);font-size:13px;}
  .cart-remove{font-size:11.5px;color:var(--sale);margin-top:6px;text-decoration:underline;cursor:pointer;}
  .cart-empty{padding:60px 0;text-align:center;color:var(--steel);font-size:13.5px;}
  .cart-foot{padding:22px 24px;border-top:1px solid var(--line);}
  .cart-summary-rows{margin-bottom:6px;}
  .cart-row{display:flex;justify-content:space-between;font-size:12.5px;color:var(--ink-soft);margin-bottom:6px;}
  .cart-discount-row{color:var(--sand-deep);font-weight:600;}
  .cart-bundle-note{font-size:11px;color:var(--steel);margin:2px 0 8px;line-height:1.5;}
  .cart-total{display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:14px;margin-bottom:16px;padding-top:10px;border-top:1px solid var(--line);}
  .cart-checkout{width:100%;background:var(--charcoal);color:#fff;padding:15px;border-radius:4px;font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;}
  .cart-checkout:hover{background:var(--sage-dark);}

  /* ===== PROMO ===== */
  .promo-overlay{position:fixed;inset:0;background:rgba(38,42,34,.4);z-index:300;opacity:0;pointer-events:none;transition:opacity .25s ease;display:flex;align-items:center;justify-content:center;padding:20px;}
  .promo-overlay.open{opacity:1;pointer-events:auto;}
  .promo-card{background:var(--white);border:1px solid var(--line);border-radius:18px;max-width:420px;width:100%;padding:40px 36px;text-align:center;position:relative;}
  .promo-close{position:absolute;top:16px;right:18px;font-size:20px;color:var(--steel);}
  .promo-card .eyebrow{justify-content:center;margin-bottom:14px;}
  .promo-card h2{font-size:24px;margin-bottom:10px;}
  .promo-card p{font-size:13.5px;color:var(--ink-soft);margin-bottom:22px;}
  .promo-form{display:flex;flex-direction:column;gap:10px;}
  .promo-form input{border:1px solid var(--line);border-radius:100px;padding:13px 18px;font-size:14px;background:var(--paper-alt);}
  .promo-form button{background:var(--charcoal);color:#fff;padding:13px;border-radius:4px;font-size:12.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;}
  .promo-form button:hover{background:var(--sage-dark);}
  .promo-skip{font-size:12px;color:var(--steel);margin-top:14px;text-decoration:underline;}

  @media (max-width:1000px){.product-grid{grid-template-columns:repeat(3,1fr);} .quality-grid{grid-template-columns:1fr;}}
  @media (max-width:860px){
    .story{grid-template-columns:1fr;}
    .story-visual{aspect-ratio:16/9;}
    .product-grid{grid-template-columns:repeat(2,1fr);}
    .process-grid{grid-template-columns:repeat(2,1fr);}
    .nav-links{display:none;}
    nav{gap:10px;}
    .logo-block{min-width:0;}
    .menu-toggle{display:block;margin-left:auto;}
    .mobile-nav{display:none;position:absolute;left:0;right:0;top:100%;padding:10px 20px 18px;background:rgba(8,43,82,.98);border-top:1px solid rgba(255,255,255,.1);box-shadow:0 12px 24px rgba(8,43,82,.18);}
    .mobile-nav.open{display:flex;flex-direction:column;gap:4px;}
    .mobile-nav a{color:#fff;padding:12px 4px;font-size:13px;letter-spacing:.08em;text-transform:uppercase;border-bottom:1px solid rgba(255,255,255,.1);}
    .compare-row{grid-template-columns:1.4fr 1fr 1fr;padding:14px 16px;}
    .compare-label{font-size:12px;}
  }
  @media (max-width:560px){
    .wrap{padding:0 20px;}
    .nav-right{gap:8px;}
    .cart-btn{padding:10px 14px;}
    .product-grid{grid-template-columns:1fr;}
    .process-grid{grid-template-columns:1fr;}
    .search-bar{width:100%;}
    .shop-controls{flex-direction:column;align-items:stretch;}
    .stat-row{gap:22px;}
  }
/* ===== PRODUCT LINK WRAPPER ===== */
.product-link{display:block;color:inherit;}
.product-link:hover h3{color:var(--sage-dark);}
/* Same card height for single- and multi-size products: the size label matches the select's box. */
.product-card .product-tag{min-height:19px;}
@media (min-width:561px){.product-grid{grid-auto-rows:1fr;}}
.product-card .size-select,.product-card .unit-price{height:36px;box-sizing:border-box;}
.product-card .unit-price{display:flex;align-items:center;}
/* Closed dialogs stay out of the tab order and the accessibility tree; visibility flips after the fade/slide. */
.cart-drawer,.promo-overlay,.account-overlay,.altpay-overlay{visibility:hidden;}
.cart-drawer{transition:transform .25s ease,visibility 0s linear .25s;}
.promo-overlay{transition:opacity .25s ease,visibility 0s linear .25s;}
.account-overlay{transition:opacity .2s ease,visibility 0s linear .2s;}
.cart-drawer.open,.promo-overlay.open,.account-overlay.open,.altpay-overlay.open{visibility:visible;transition-delay:0s;}
.order-page .wrap{max-width:820px;}
.order-page h1{margin:6px 0 10px;}
.order-intro{color:var(--ink-soft);max-width:560px;}
.order-lookup{display:grid;grid-template-columns:1fr 1fr auto;grid-template-rows:auto auto;grid-auto-flow:column;column-gap:14px;row-gap:7px;align-items:end;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:22px;margin-top:24px;}
.order-lookup label{font-size:12px;font-weight:600;color:var(--ink-soft);}
.order-lookup input{border:1px solid var(--line);border-radius:8px;padding:12px;font:inherit;color:var(--ink);min-width:0;}
.order-lookup .btn-primary{grid-row:2;padding:13px 24px;}
.order-result{margin-top:20px;padding:22px;border-radius:16px;background:var(--paper-alt);color:var(--ink-soft);}
.order-result-success{background:var(--white);border:1px solid var(--line);color:var(--ink);}
.order-result-error{color:#9d2f2f;border:1px solid #e7b3b3;background:#fff7f7;}
.order-result-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;}
.order-result h2{margin:4px 0 0;font-size:22px;}
.order-number{font-family:var(--font-mono);font-size:12px;color:var(--steel);letter-spacing:.04em;}
.status-pill{background:var(--sage-light);color:var(--sage-dark);padding:6px 12px;border-radius:100px;font-size:12px;font-weight:600;white-space:nowrap;}
.order-section{border-top:1px solid var(--line);padding:16px 0;}
.order-section h3{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--steel);margin-bottom:10px;}
.order-pay .btn-primary{display:inline-block;margin-top:12px;text-decoration:none;}
.order-line,.order-total-row{display:flex;justify-content:space-between;gap:16px;font-size:14px;padding:4px 0;}
.order-line span:last-child,.order-total-row span:last-child{font-family:var(--font-mono);}
.order-total-row.grand{font-weight:700;border-top:1px solid var(--line);margin-top:6px;padding-top:10px;}
.order-meta{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.order-meta p{font-size:14px;line-height:1.6;}
.order-events{list-style:none;padding:0;margin:0;display:grid;gap:10px;}
.order-event{display:flex;justify-content:space-between;gap:16px;font-size:14px;}
.order-event span{color:var(--steel);}
@media (max-width:700px){.order-lookup{grid-template-columns:1fr;grid-auto-flow:row;grid-template-rows:none;}.order-lookup .btn-primary{grid-row:auto;width:100%;margin-top:8px;}.order-meta{grid-template-columns:1fr;}.order-event,.order-result-head{flex-direction:column;gap:4px;}}

/* ===== BREADCRUMB ===== */
.breadcrumb{font-size:12.5px;color:var(--steel);margin-bottom:24px;}
.breadcrumb a{color:var(--sage-dark);text-decoration:underline;}

/* ===== PRODUCT DETAIL ===== */
.detail-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:flex-start;}
.detail-image{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:20px;background:var(--paper-alt);border:1px dashed var(--line);}
.detail-cat{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--sage);margin-bottom:10px;}
.detail-title{font-size:clamp(26px,3.4vw,36px);margin-bottom:6px;}
.detail-tag{font-size:14.5px;color:var(--steel);margin-bottom:24px;}
.detail-desc{font-size:14.5px;color:var(--ink-soft);line-height:1.7;margin-bottom:20px;max-width:520px;}
.detail-compliance{font-size:12px;color:var(--steel);background:var(--paper-alt);border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin-bottom:28px;max-width:520px;}
.detail-purchase{background:var(--white);border:1px solid var(--line);border-radius:18px;padding:24px;max-width:420px;}
.detail-purchase .size-select{margin-bottom:16px;}
.detail-purchase .price{font-size:22px;}
.detail-purchase .unit-price{margin-bottom:16px;}
.detail-purchase .add-btn{width:100%;padding:14px;font-size:14px;}
.detail-coa-link{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600;color:var(--sage-dark);text-decoration:underline;margin-top:16px;}

/* ===== COA LIST ===== */
.coa-table{background:var(--white);border:1px solid var(--line);border-radius:18px;overflow:hidden;}
.coa-row{display:grid;grid-template-columns:1fr auto;align-items:center;gap:16px;padding:16px 22px;border-bottom:1px solid var(--line);}
.coa-row:last-child{border-bottom:none;}
.coa-row.head{background:var(--paper-alt);font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--steel);}
.coa-name{font-size:14.5px;font-weight:600;}
.coa-name a{color:inherit;}
.coa-name a:hover{color:var(--sage-dark);}
.coa-cat{font-size:12.5px;color:var(--steel);}
.coa-link-btn{font-size:12px;font-weight:600;background:var(--charcoal);color:var(--paper);padding:9px 16px;border-radius:4px;letter-spacing:.03em;text-transform:uppercase;transition:background .15s ease;white-space:nowrap;}
.coa-link-btn:hover{background:var(--sage-dark);}
@media (max-width:700px){
  .detail-grid{grid-template-columns:1fr;}
  .coa-row{grid-template-columns:1fr;gap:6px;}
  .coa-row.head{display:none;}
  .coa-link-btn{width:fit-content;}
}

/* ===== FEATURE STRIP (icon columns) ===== */
.features{padding:88px 0;border-bottom:1px solid var(--line);}
.features-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;}
.feature-col{text-align:center;padding:0 12px;position:relative;}
.feature-col:not(:last-child)::after{content:'';position:absolute;right:-16px;top:8px;bottom:8px;width:1px;background:var(--line);}
.feature-icon{width:44px;height:44px;margin:0 auto 16px;display:flex;align-items:center;justify-content:center;}
.feature-icon--gold{color:var(--sand);}
.feature-col h2{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:10px;}
.feature-col p{font-size:12.5px;color:var(--steel);line-height:1.6;max-width:210px;margin:0 auto;}

/* ===== LEGAL PAGES ===== */
.legal-wrap{max-width:820px;margin:0 auto;padding:56px 0 72px;}
.legal-wrap h1{font-size:clamp(28px,4vw,40px);margin-bottom:8px;}
.legal-updated{font-family:var(--font-mono);font-size:12px;color:var(--steel);margin-bottom:12px;}
.legal-disclaimer-box{background:var(--sage-light);border:1px solid rgba(90,152,196,.25);border-radius:10px;padding:16px 18px;font-size:12.5px;color:var(--ink-soft);margin-bottom:36px;line-height:1.6;}
.legal-lead{font-size:15px;color:var(--ink-soft);line-height:1.7;margin-bottom:28px;}
.legal-wrap h2{font-size:17px;margin:32px 0 12px;padding-top:8px;}
.legal-wrap p{font-size:13.5px;color:var(--ink-soft);line-height:1.75;margin-bottom:14px;}
.legal-wrap ul{margin:0 0 16px 20px;}
.legal-wrap li{font-size:13.5px;color:var(--ink-soft);line-height:1.7;margin-bottom:7px;}
.legal-wrap strong{color:var(--ink);}
@media (max-width:860px){
  .features-grid{grid-template-columns:repeat(2,1fr);gap:36px 20px;}
  .feature-col:not(:last-child)::after{display:none;}
}
@media (max-width:560px){
  .features-grid{grid-template-columns:1fr;}
}

/* ===== CATEGORY EXPLORE CARDS ===== */
.explore{padding:110px 0;}
.explore .wrap{background:var(--paper-alt);border:1px solid var(--line);border-radius:20px;padding:44px 36px;}
.explore-head{text-align:center;margin-bottom:40px;}
.explore-head .eyebrow{display:block;margin-bottom:10px;}
.explore-head h2{font-family:var(--font-display);font-size:clamp(32px,4vw,44px);font-weight:600;position:relative;padding-bottom:18px;}
.explore-head h2::after{content:'';position:absolute;left:50%;transform:translateX(-50%);bottom:0;width:56px;height:1px;background:var(--sand);}
.explore-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;}
.explore-card{background:var(--white);border:1px solid var(--line);border-radius:12px;padding:26px 18px;text-align:center;transition:border-color .15s ease, transform .15s ease, box-shadow .15s ease;cursor:pointer;display:block;box-shadow:0 1px 3px rgba(27,42,58,.05);}
.explore-card:hover{border-color:var(--sage);transform:translateY(-3px);box-shadow:0 12px 26px rgba(27,42,58,.1);}
.explore-icon{width:76px;height:76px;border-radius:50%;background:var(--sage-light);margin:0 auto 16px;display:flex;align-items:center;justify-content:center;}
.explore-card h3{font-size:13.5px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;margin-bottom:8px;}
.explore-card .accent-line{width:26px;height:2px;margin:0 auto 12px;border-radius:2px;}
.explore-card p{font-size:12px;color:var(--steel);line-height:1.5;}
.explore-cta{text-align:center;margin-top:34px;}

/* ===== QUALITY DARK BAND ===== */
.quality-band{background:var(--charcoal-deep);color:#fff;border-radius:14px;padding:44px 44px;margin:8px 0 0;position:relative;overflow:hidden;}
.quality-band-inner{display:grid;grid-template-columns:1.1fr 2fr;gap:40px;align-items:center;position:relative;z-index:2;}
.quality-band .eyebrow{color:#C8A24A;margin-bottom:12px;display:block;}
.quality-band h2{color:#fff;font-size:clamp(20px,2.6vw,26px);line-height:1.2;margin-bottom:14px;}
.quality-band p{color:#A9AEB6;font-size:13.5px;line-height:1.6;max-width:360px;}
.qb-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
.qb-metric{text-align:center;padding:0 8px;position:relative;}
.qb-metric:not(:last-child)::after{content:'';position:absolute;right:-10px;top:4px;bottom:4px;width:1px;background:rgba(255,255,255,.12);}
.qb-icon{height:38px;display:flex;align-items:center;justify-content:center;margin-bottom:12px;}
.qb-metric h3{font-family:inherit;font-size:12px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;line-height:1.3;color:#fff;}

/* ===== ABOUT / COMMITTED ===== */
.committed{padding:64px 0;}
.committed-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.committed .eyebrow{display:block;margin-bottom:12px;}
.committed h2{font-size:clamp(24px,3.2vw,32px);line-height:1.15;margin-bottom:18px;}
.committed p{font-size:14.5px;color:var(--ink-soft);line-height:1.7;margin-bottom:22px;max-width:440px;}
.committed-checks{list-style:none;margin-bottom:0;}
.committed-checks li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-soft);margin-bottom:14px;}
.committed-checks li svg{flex-shrink:0;color:var(--sage-dark);}
.committed-visual{position:relative;}
.committed-visual img{width:100%;opacity:.7;}
@media (max-width:960px){
  .explore-grid{grid-template-columns:repeat(3,1fr);}
  .quality-band-inner{grid-template-columns:1fr;gap:28px;}
  .committed-grid{grid-template-columns:1fr;gap:36px;}
}
@media (max-width:600px){
  .explore-grid{grid-template-columns:repeat(2,1fr);}
  .qb-metrics{grid-template-columns:repeat(2,1fr);gap:24px 12px;}
  .qb-metric:not(:last-child)::after{display:none;}
}

/* ===== NAV ICON BUTTONS ===== */
.icon-btn{color:#C9CCD2;padding:6px;display:flex;align-items:center;justify-content:center;transition:color .15s ease;}
.icon-btn:hover{color:#fff;}
.cart-btn{position:relative;}
.cart-btn .cart-count{position:static;margin-left:2px;}

/* ===== ACCOUNT PANEL ===== */
.account-overlay{position:fixed;inset:0;background:rgba(20,32,45,.45);z-index:300;opacity:0;pointer-events:none;transition:opacity .2s ease;display:flex;align-items:center;justify-content:center;padding:20px;}
.account-overlay.open{opacity:1;pointer-events:auto;}
.account-card{background:var(--white);border-radius:16px;max-width:400px;width:100%;padding:36px 34px;position:relative;}
.account-close{position:absolute;top:16px;right:18px;font-size:20px;color:var(--steel);cursor:pointer;}
.account-card .logo-mark{width:52px;margin:0 auto 18px;display:block;}
.account-card h2{font-size:22px;text-align:center;margin-bottom:6px;}
.account-intro{font-size:13.5px;color:var(--ink-soft);text-align:center;line-height:1.55;margin:4px 0 20px;}
.account-form{display:flex;flex-direction:column;gap:12px;}
.account-form label{font-size:12px;font-weight:600;color:var(--ink-soft);margin-bottom:-6px;}
.account-form input{border:1px solid var(--line);border-radius:8px;padding:12px 14px;font-size:14px;font-family:inherit;}
.account-form input:focus{outline:none;border-color:var(--sage);}
.account-form button{background:var(--charcoal);color:#fff;padding:13px;border-radius:8px;font-size:13px;font-weight:600;letter-spacing:.03em;text-transform:uppercase;margin-top:4px;}
.account-note{font-size:11.5px;color:var(--steel);text-align:center;line-height:1.6;margin-top:16px;background:var(--paper-alt);border-radius:8px;padding:12px 14px;}

/* ===== RESEARCH AREA FILTER ROW ===== */
.filter-block{margin-bottom:22px;}
.filter-label{font-family:var(--font-mono);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--steel);margin-bottom:10px;}
.research-tabs{display:flex;gap:8px;flex-wrap:wrap;}
.research-tab{font-size:12.5px;font-weight:600;color:var(--ink-soft);background:var(--white);border:1px solid var(--line);padding:8px 14px;border-radius:100px;transition:background .15s ease,color .15s ease,border-color .15s ease;}
.research-tab:hover{border-color:var(--sage);}
.research-tab.active{background:var(--sage-light);color:var(--sage-dark);border-color:var(--sage-dark);}
.product-research{font-size:10px;color:var(--steel);margin-top:6px;line-height:1.4;}

/* ===== MOLECULE CANVAS CONTAINERS ===== */
.mol-stage{position:relative;overflow:hidden;border-radius:16px;background:var(--paper-alt);isolation:isolate;}
/* animation layer sits at the very back */
.molecule-bg__canvas{position:absolute;inset:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none;}
.mol-stage__content{position:relative;z-index:2;}
/* product photo floats ON TOP of the molecules (cut-out PNGs, no blend mode) */
.detail-stage{position:relative;width:100%;aspect-ratio:1/1;}
.detail-stage canvas.molecule-bg__canvas{position:absolute;top:0;left:0;width:100%;height:100%;}
.detail-stage .detail-image{position:absolute;z-index:2;top:10%;left:10%;width:80%;height:80%;background:transparent;border:none;border-radius:0;object-fit:contain;object-position:center;margin:0;padding:0;filter:drop-shadow(0 14px 26px rgba(27,42,58,.18));}
.card-stage{position:relative;overflow:hidden;border-radius:12px;margin-bottom:14px;background:var(--paper-alt);width:100%;aspect-ratio:1/1;flex-shrink:0;isolation:isolate;}
.card-stage canvas.molecule-bg__canvas{position:absolute;top:0;left:0;width:100%;height:100%;}
.card-stage .product-image{position:absolute;z-index:2;top:9%;left:9%;width:82%;height:82%;background:transparent;border:none;object-fit:contain;object-position:center;margin:0;padding:0;filter:drop-shadow(0 8px 16px rgba(27,42,58,.16));}


/* ===== LUXURY MOTION ===== */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.6,.2,1), transform .9s cubic-bezier(.2,.6,.2,1);}
.reveal.in{opacity:1;transform:none;}
@media (prefers-reduced-motion: reduce){.reveal{opacity:1;transform:none;transition:none;}}

/* gold hairline separators between major sections */
.hairline{border:none;height:1px;background:linear-gradient(90deg, transparent, rgba(200,162,74,.45), transparent);margin:0 auto;max-width:1080px;}

/* nav: refined tracking on links */
.nav-links a{letter-spacing:.08em;font-size:13px;text-transform:uppercase;}
.faq-item p a{text-decoration:underline;text-underline-offset:2px;}
/* ===== CART QUANTITY + QUOTE WARNINGS (RC-004) ===== */
.cart-qty{display:flex;align-items:center;gap:10px;margin-top:8px;font-size:11px;color:var(--steel);}
.cart-qty-btn{width:26px;height:26px;border:1px solid var(--line);border-radius:6px;font-size:15px;line-height:1;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;}
.cart-qty-btn:hover{border-color:var(--sand);}
.cart-qty .cart-remove{margin:0 0 0 auto;}
.cart-warnings:empty{display:none;}
.cart-warnings{padding:10px 0 0;}
.cart-warning{font-size:12px;color:#8a4b00;background:#fff6e5;border:1px solid #f0d9a8;border-radius:6px;padding:8px 10px;margin-bottom:6px;}
/* ===== CHECKOUT (RC-005) ===== */
.checkout-page .wrap{max-width:1080px;}
.checkout-page h1{margin:6px 0 18px;}
.checkout-notice{background:var(--white);border:1px solid var(--line);border-radius:16px;padding:22px;color:var(--ink);}
.checkout-notice a{text-decoration:underline;}
.checkout-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:24px;align-items:start;}
.checkout-steps{display:grid;gap:16px;}
.checkout-step{border:1px solid var(--line);border-radius:16px;background:var(--white);padding:20px 22px;display:flex;flex-direction:column;gap:7px;min-width:0;}
.checkout-step legend,.checkout-summary h2{font-family:var(--font-display);font-weight:600;font-size:17px;color:var(--ink);display:flex;align-items:center;gap:10px;padding:0 4px;}
.checkout-summary h2{padding:0;margin-bottom:12px;}
.step-num{width:24px;height:24px;border-radius:50%;background:var(--charcoal);color:#fff;font-size:12px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;}
.checkout-step label{font-size:12px;font-weight:600;color:var(--ink-soft);margin-top:6px;}
.checkout-step .optional{font-weight:400;color:var(--steel);}
.checkout-step input:not([type=checkbox]):not([type=radio]),.checkout-step select{border:1px solid var(--line);border-radius:8px;padding:11px 12px;font:inherit;color:var(--ink);background:var(--white);width:100%;min-width:0;}
.checkout-step input[aria-invalid="true"],.checkout-step select[aria-invalid="true"]{border-color:#c0392b;}
.checkout-step label.check{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:13.5px;color:var(--ink);line-height:1.45;cursor:pointer;}
.checkout-step label.check input{margin-top:3px;flex-shrink:0;width:16px;height:16px;}
.checkout-step label.check a{color:var(--sage-dark);text-decoration:underline;text-underline-offset:2px;}
.checkout-step .hint,.checkout-summary .hint{font-size:12px;color:var(--steel);margin-top:4px;}
.field-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:10px;}
.field-row > div{display:flex;flex-direction:column;gap:7px;min-width:0;}
.code-row{display:flex;gap:10px;}
.code-row .btn-ghost{white-space:nowrap;}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;}
.checkout-summary{position:sticky;top:110px;border:1px solid var(--line);border-radius:16px;background:var(--white);padding:20px 22px;}
.summary-line,.summary-row{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:5px 0;}
.summary-line{border-bottom:1px solid var(--line);padding:9px 0;}
.summary-row.grand{font-weight:700;border-top:1px solid var(--line);margin-top:6px;padding-top:10px;font-size:16px;}
#coWarnings:not(:empty){margin-top:10px;}
#coTotals{margin-top:10px;}
.checkout-errors:not(:empty){margin-top:12px;color:#9d2f2f;background:#fff7f7;border:1px solid #e7b3b3;border-radius:8px;padding:10px 12px;font-size:13px;}
.checkout-errors ul{margin:6px 0 0 18px;}
.checkout-submit{width:100%;margin-top:14px;}
.checkout-submit:disabled{opacity:.5;cursor:not-allowed;}
@media (max-width:860px){.checkout-grid{grid-template-columns:1fr;}.checkout-summary{position:static;}}
@media (max-width:560px){.field-row{grid-template-columns:1fr 1fr;}.field-row > div:first-child{grid-column:1 / -1;}.checkout-step,.checkout-summary{padding:16px;}}
/* Order page notices after checkout */
.order-placed{background:#eef6ee;border:1px solid #b9dcb9;color:#1e4d1e;border-radius:12px;padding:14px 16px;margin-top:18px;font-size:14px;}
.order-account-offer a{color:inherit;font-weight:600;text-decoration:underline;}
.order-placed.warn{background:#fff6e5;border-color:#f0d9a8;color:#6b4300;}

/* Contact page (RC-014) */
.contact-form{margin-top:24px;}
.contact-form textarea{border:1px solid var(--line);border-radius:8px;padding:11px 12px;font:inherit;color:var(--ink);background:var(--white);width:100%;min-width:0;resize:vertical;}
.contact-form textarea[aria-invalid="true"]{border-color:#c0392b;}
.contact-form .btn-primary{margin-top:12px;align-self:flex-start;}

/* ===== RC-018 DESIGN-SYSTEM COMPONENTS ===== */
.field{display:flex;flex-direction:column;gap:7px;min-width:0;}
.field label{font-size:var(--type-sm);font-weight:600;color:var(--ink-soft);}
.field input,.field select,.field textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:var(--radius-md);padding:11px 12px;background:var(--white);color:var(--ink);font:inherit;}
.field input::placeholder,.field textarea::placeholder{color:var(--steel);}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--sage);box-shadow:var(--focus-ring);}
.field[data-state="error"] input,.field[data-state="error"] select,.field[data-state="error"] textarea{border-color:var(--color-error);}
.field-error{font-size:var(--type-xs);color:var(--color-error);}
.field-helper{font-size:var(--type-xs);color:var(--steel);}
.skeleton{position:relative;overflow:hidden;background:var(--paper-alt);border-radius:var(--radius-md);}
.skeleton::after{content:'';position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);animation:skeleton-shimmer 1.5s infinite;}
.skeleton-card{height:320px;border:1px solid var(--line);padding:var(--space-5);}
.skeleton-card .skeleton-image{height:170px;margin-bottom:var(--space-4);}
.skeleton-card .skeleton-line{height:12px;width:72%;margin-bottom:var(--space-2);}
.skeleton-card .skeleton-line.short{width:44%;}
.skeleton-detail{height:360px;}
@keyframes skeleton-shimmer{100%{transform:translateX(100%);}}
.toast{display:flex;align-items:flex-start;gap:var(--space-3);max-width:380px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white);box-shadow:var(--shadow-md);font-size:var(--type-sm);}
.toast strong{display:block;margin-bottom:2px;color:var(--ink);}
.toast p{color:var(--ink-soft);}
.toast-success{border-color:var(--color-success-border);}.toast-success::before{content:'✓';color:var(--color-success);font-weight:700;}
.toast-error{border-color:var(--color-error-border);}.toast-error::before{content:'!';color:var(--color-error);font-weight:700;}
.steps{display:flex;align-items:flex-start;gap:0;counter-reset:step;}
.step{display:flex;align-items:center;flex:1;color:var(--steel);font-size:var(--type-xs);font-weight:600;}
.step::before{counter-increment:step;content:counter(step);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--line);border-radius:50%;background:var(--white);font-family:var(--font-mono);flex:0 0 auto;}
.step::after{content:'';height:1px;background:var(--line);flex:1;margin:0 var(--space-2);}
.step:last-child::after{display:none;}
.step.active{color:var(--sage-dark);}.step.active::before{border-color:var(--sage-dark);background:var(--sage-dark);color:var(--white);}.step.complete::before{content:'✓';border-color:var(--color-success);background:var(--color-success-bg);color:var(--color-success);}
.status-pill{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:var(--radius-pill);font-size:var(--type-xs);font-weight:600;white-space:nowrap;background:var(--paper-alt);color:var(--steel);}
.status-pill::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor;}
.status-paid,.status-delivered,.status-success{background:var(--color-success-bg);color:var(--color-success);}
.status-processing,.status-pending{background:var(--color-blue-wash);color:var(--sage-dark);}
.status-failed,.status-cancelled,.status-error{background:var(--color-error-bg);color:var(--color-error);}
.state-block{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);min-height:180px;padding:var(--space-8);border:1px dashed var(--line);border-radius:var(--radius-xl);text-align:center;background:var(--paper-alt);}
.state-block h2{font-size:var(--type-lg);}.state-block p{max-width:440px;color:var(--steel);font-size:var(--type-sm);}.state-block.error{border-color:var(--color-error-border);background:var(--color-error-bg);}.state-block.loading{background:var(--white);}
.data-table{width:100%;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--white);border-spacing:0;border-collapse:separate;}
.data-table th,.data-table td{padding:12px 16px;text-align:left;border-bottom:1px solid var(--line);font-size:var(--type-sm);}
.data-table th{background:var(--paper-alt);color:var(--steel);font-family:var(--font-mono);font-size:var(--type-xs);letter-spacing:.06em;text-transform:uppercase;}
.data-table tr:last-child td{border-bottom:none;}.data-table th button{font:inherit;color:inherit;text-transform:inherit;letter-spacing:inherit;text-align:left;}.data-table th button:hover,.data-table th button:focus{color:var(--sage-dark);}
.table-pagination{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-top:var(--space-3);font-size:var(--type-xs);color:var(--steel);}
.copy-field{display:flex;align-items:center;gap:var(--space-2);padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--paper-alt);}
.copy-field code{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:var(--type-xs) var(--font-mono);color:var(--ink);}
.copy-field button{padding:5px 8px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--white);font-size:var(--type-xs);font-weight:600;color:var(--ink-soft);white-space:nowrap;}.copy-field button:hover,.copy-field button:focus{border-color:var(--sage);color:var(--sage-dark);}

@media (prefers-reduced-motion: reduce){.skeleton::after{animation:none;transform:none;opacity:.35;}}

/* ===== RC-018 STYLE GUIDE ===== */
.styleguide-page{background:var(--paper-alt);}
.styleguide-page main{padding:var(--space-12) 0 var(--space-16);}
.styleguide-hero{background:var(--charcoal-deep);color:var(--white);padding:var(--space-12) 0;}
.styleguide-hero h1{color:var(--white);font-size:clamp(32px,5vw,56px);margin-bottom:var(--space-3);}
.styleguide-hero p{max-width:700px;color:#C9CCD2;font-size:var(--type-body);}
.styleguide-section{margin-bottom:var(--space-12);}
.styleguide-section h2{font-size:var(--type-xl);margin-bottom:var(--space-3);}
.styleguide-section > p{max-width:760px;color:var(--ink-soft);font-size:var(--type-sm);margin-bottom:var(--space-5);}
.styleguide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-5);}
.styleguide-panel{padding:var(--space-5);border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--white);}
.styleguide-panel h3{font-size:var(--type-lg);margin-bottom:var(--space-4);}
.styleguide-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3);}
.styleguide-stack{display:grid;gap:var(--space-4);}
.token-swatch{display:flex;align-items:center;gap:var(--space-3);font-size:var(--type-sm);color:var(--ink-soft);}
.token-swatch::before{content:'';width:34px;height:34px;border:1px solid var(--line);border-radius:var(--radius-md);background:var(--swatch);}
.styleguide-hover:hover{background:var(--sand);border-color:var(--sand);color:var(--charcoal-deep);}
.styleguide-focus:focus{outline:none;box-shadow:var(--focus-ring);}
.styleguide-disabled:disabled{opacity:.5;cursor:not-allowed;}
.styleguide-modal{position:relative;max-width:390px;margin:0 auto;padding:var(--space-8);border:1px solid var(--line);border-radius:var(--radius-xl);background:var(--white);box-shadow:var(--shadow-md);}
.styleguide-modal::before{content:'Modal shell';display:block;margin-bottom:var(--space-4);font-family:var(--font-mono);font-size:var(--type-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--steel);}
.styleguide-drawer{max-width:390px;margin-left:auto;padding:var(--space-6);border-left:4px solid var(--sand);background:var(--paper);box-shadow:-8px 0 24px rgba(27,42,58,.1);}
.styleguide-drawer header{position:static;padding:0;background:none;border:0;color:var(--ink);backdrop-filter:none;}
.styleguide-drawer header h3{color:var(--ink);margin:0;}.styleguide-drawer .drawer-line{display:flex;justify-content:space-between;padding:var(--space-3) 0;border-bottom:1px solid var(--line);font-size:var(--type-sm);}
.blueprint-list{display:grid;gap:var(--space-4);}
.blueprint{display:grid;grid-template-columns:minmax(180px,.7fr) 1.3fr 1.3fr;gap:var(--space-4);align-items:start;padding:var(--space-4);border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--white);}
.blueprint h3{font-size:var(--type-body);}.blueprint p{font-size:var(--type-sm);color:var(--ink-soft);}.blueprint strong{display:block;margin-bottom:var(--space-1);font-size:var(--type-xs);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--sage-dark);}
.styleguide-note{padding:var(--space-4);border-left:3px solid var(--sand);background:var(--white);color:var(--ink-soft);font-size:var(--type-sm);}
@media (max-width:860px){.styleguide-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.blueprint{grid-template-columns:1fr 1fr;}.blueprint h3{grid-column:1/-1;}}
@media (max-width:560px){.styleguide-grid{grid-template-columns:1fr;}.blueprint{grid-template-columns:1fr;}.styleguide-page main{padding-top:var(--space-8);}.steps{overflow-x:auto;padding-bottom:var(--space-2);}.step{min-width:120px;}}
.contact-hp{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}
@media (max-width:700px){.contact-form .btn-primary{width:100%;}}

/* CoA page lots (RC-003) */
.coa-lots{display:flex;flex-direction:column;gap:8px;align-items:flex-end;}
.coa-lot{display:flex;align-items:center;gap:14px;}
.coa-lot-meta{font-size:12.5px;color:var(--ink-soft);text-align:right;}
.coa-pending{font-size:12.5px;color:var(--steel);}
@media (max-width:700px){.coa-lots{align-items:flex-start;}.coa-lot{flex-direction:column;align-items:flex-start;gap:6px;}.coa-lot-meta{text-align:left;}}
.detail-lot{margin-top:16px;display:flex;flex-direction:column;gap:6px;}
.detail-lot .detail-coa-link{margin-top:0;}
.detail-lot-row{font-size:12.5px;color:var(--ink-soft);}
.order-lot{font-size:12.5px;color:var(--steel);}
.detail-ssr{display:contents;}

/* Newsletter signup (RC-011): honeypot field and the result line under each form. */
.nl-form[hidden],.promo-form[hidden]{display:none;}
.hp-field{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden;}
.subscribe-status{font-size:13.5px;line-height:1.55;margin-top:12px;}
.subscribe-status:empty{display:none;}
.turnstile-holder{margin-top:12px;}
.subscribe-status strong{letter-spacing:.06em;white-space:nowrap;}
.newsletter .subscribe-status{color:#fff;max-width:420px;flex:1;min-width:280px;}
.newsletter .subscribe-status strong{color:var(--sand);}
.promo-card .subscribe-status{color:var(--ink);margin:0;}
.promo-card .subscribe-status strong{color:var(--sage-dark);}
.subscribe-status.error{color:#B42318;}
.newsletter .subscribe-status.error{color:#FDA29B;}

/* NOR-945: Alternate Payment Methods. The trigger is a quiet outline button so it never competes with Checkout. */
.cart-alt-pay,.checkout-alt-pay{width:100%;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:4px;background:transparent;color:var(--ink);font-size:12.5px;font-weight:600;letter-spacing:.03em;cursor:pointer;transition:border-color .15s ease,background .15s ease;}
.cart-alt-pay:hover,.checkout-alt-pay:hover{border-color:var(--ink);background:var(--paper-alt);}
.cart-alt-pay:focus-visible,.checkout-alt-pay:focus-visible,.altpay-btn:focus-visible,.altpay-close:focus-visible{outline:2px solid var(--charcoal);outline-offset:2px;}
.altpay-overlay{position:fixed;inset:0;background:rgba(20,32,45,.5);z-index:400;opacity:0;pointer-events:none;transition:opacity .2s ease,visibility 0s linear .2s;display:flex;align-items:center;justify-content:center;padding:16px;}
.altpay-overlay.open{opacity:1;pointer-events:auto;}
.altpay-card{background:var(--white);border-radius:12px;max-width:440px;width:100%;max-height:calc(100vh - 32px);overflow-y:auto;padding:30px 28px 24px;position:relative;box-shadow:0 24px 60px rgba(11,37,69,.25);}
.altpay-close{position:absolute;top:10px;right:10px;width:36px;height:36px;font-size:22px;line-height:1;color:var(--steel);background:none;border:0;border-radius:50%;cursor:pointer;}
.altpay-close:hover{background:var(--paper-alt);color:var(--ink);}
.altpay-card h2{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink);margin:0 36px 8px 0;}
.altpay-intro{font-size:14px;color:var(--steel);line-height:1.55;margin:0 0 18px;}
.altpay-methods{border:0;padding:0;margin:0 0 18px;display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.altpay-methods legend{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--steel);margin-bottom:10px;padding:0;}
.altpay-method{position:relative;cursor:pointer;}
.altpay-method input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer;}
.altpay-method-body{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px;font-size:14px;font-weight:600;color:var(--ink);transition:border-color .15s ease,box-shadow .15s ease;}
.altpay-logo{width:22px;height:22px;flex:none;}
.altpay-logo-wordmark{width:56px;height:16px;}
.altpay-method:hover .altpay-method-body{border-color:var(--steel);}
.altpay-method input:checked + .altpay-method-body{border-color:var(--charcoal);box-shadow:0 0 0 1px var(--charcoal);background:var(--sage-light);}
.altpay-method input:focus-visible + .altpay-method-body{outline:2px solid var(--charcoal);outline-offset:2px;}
.altpay-contact{display:flex;flex-direction:column;gap:10px;}
.altpay-btn{display:block;text-align:center;padding:13px;border:1px solid var(--charcoal);border-radius:6px;font-size:13px;font-weight:600;letter-spacing:.03em;color:var(--charcoal);text-decoration:none;}
.altpay-btn:hover{background:var(--sage-light);}
.altpay-btn[hidden]{display:none;}
.altpay-btn-primary{background:var(--charcoal);color:#fff;}
.altpay-btn-primary:hover{background:var(--charcoal-deep);}
.altpay-note{font-size:12px;color:var(--steel);line-height:1.5;margin:14px 0 0;}
@media (max-width:420px){.altpay-card{padding:26px 18px 20px;}.altpay-methods{grid-template-columns:1fr;}}
