/* ══════════════════════════════════════════════════════════
   RUO Storefront — theme CSS
   Palette: charcoal / champagne gold / ivory
   Type: Marcellus (display) · Jost (body + technical)
   Swap the three --accent values to reskin a brand.
   ══════════════════════════════════════════════════════════ */
:root{
  /* ACCENT — Source Labs gold. Matches the homepage plugin exactly; every
     variant is derived from --accent by rs_accent_vars() in functions.php, so
     changing the accent in one place keeps the whole set consistent.
     The roles matter. A true gold is far too light to carry white text
     (#BE9A3E on white is 2.66:1), so fills label themselves in --on-accent and
     gold used AS TEXT on white uses --accent-dp (large) / --accent-ink
     (small). Measured ratios in comments. */
  --accent:#BE9A3E;        /* fills, rules, borders, decorative            */
  --accent-d:#9C7E33;      /* hover fills — ink on it 4.69:1              */
  --accent-dp:#A38435;     /* large display text on white — 3.55:1 (AA-lg) */
  --accent-ink:#8D722E;    /* small text on white — 4.59:1 (AA)            */
  --accent-l:#D8BA72;      /* gold on the dark bands — 8.9:1 on --ink      */
  --on-accent:#15161A;     /* text/icons on a gold fill — 6.79:1           */
  --accent-t:rgba(190,154,62,.10);
  --accent-sh:rgba(190,154,62,.30);
  --accent-ring:rgba(190,154,62,.28);
  /* INK */
  --ink:#15161A;--ink2:#24262D;--ink3:#3A3D46;
  /* PAPER — white ground, not the cream the white-label base shipped */
  --paper:#FBF9F4;--paper2:#F4EFE3;--paper3:#FFFFFF;--card:#FFFFFF;
  /* NEUTRALS */
  --steel:#D8D2C6;--steel-d:#8F887B;--steel-l:#E7E1D5;
  --muted:#6F6A60;--muted2:#4F4B44;
  --divider:#EFE9DC;--divider2:#DED5C2;
  --ti:#FBF9F4;--ti2:#A9A296;
  --alert:#9E3B32;--ok:#4A7A57;
  --disp:'Marcellus',Georgia,serif;
  --sans:'Jost','Helvetica Neue',sans-serif;
  --tech:'Jost',sans-serif;
  --r:2px;--rs:2px;--rx:2px;--rp:999px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--paper);color:var(--ink);font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
h1,h2,h3,h4{font-family:var(--disp);font-weight:400;letter-spacing:.005em;line-height:1.12}
.rs-container{max-width:1220px;margin:0 auto;padding:0 32px}
.rs-main{padding:60px 0 96px}
.rs-sprite{position:absolute;width:0;height:0;overflow:hidden}

/* ── ANNOUNCE ── */
.rs-announce{text-align:center;padding:11px 20px;font-family:var(--tech);font-size:10.5px;font-weight:400;letter-spacing:.24em;text-transform:uppercase;overflow:hidden;position:relative}
.rs-announce strong{font-weight:700;color:#fff}
.rs-announce-in{color:inherit;text-decoration:none;display:inline-block}
a.rs-announce-in:hover{opacity:.85}
.rs-announce-scroll{padding:11px 0;white-space:nowrap}
.rs-announce-track{display:inline-flex;align-items:center;gap:22px;animation:rs-marquee 42s linear infinite;padding-left:100%}
.rs-announce-track:hover{animation-play-state:paused}
.rs-announce-item{display:inline-block}
.rs-announce-sep{color:var(--accent-l);opacity:.75}
@keyframes rs-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.rs-announce-track{animation:none;padding-left:0}}
@media(max-width:640px){.rs-announce{padding:9px 14px;font-size:9.5px;letter-spacing:.12em}.rs-announce-scroll{padding:9px 0}}

/* ── LOGO LOCKUP ── */
.rs-lockup{display:inline-flex;align-items:center;gap:11px}
/* 38px, matching the homepage lockup exactly — the nav must not change
   size between the homepage and the rest of the site. */
.rs-lockup .mk{height:38px;width:auto;flex-shrink:0}
.ruo-wordmark{display:block;width:auto}
/* The supplied iconmark is taller than it is wide, so it is sized by
   height and finds its own width; the vector fallback is square. */
.ruo-iconmark{width:auto;display:block}
.rs-gate-mk{display:flex;justify-content:center}
.rs-gate-mk .ruo-iconmark{height:46px}
/* The iconmark is portrait, so placeholder tiles size it by HEIGHT; the
   width rules beside them were written for the square vector mark and
   would squash it. */
.rs-ph-mk.ruo-iconmark{width:auto;max-width:none;height:46%}
.rs-img-wrap .rs-ph-mk.ruo-iconmark{height:34%}
.rs-ty-item-img .rs-ph-mk.ruo-iconmark{height:58%}
.ph-icon,.rs-ph-icon{opacity:.34;display:block}
.rs-lockup .bar{width:1px;height:30px;background:var(--divider2)}
.rs-lockup .wm{display:flex;flex-direction:column;line-height:1.02}
.rs-lockup .w1{font-family:var(--disp);font-weight:400;font-size:16.5px;letter-spacing:.17em;color:var(--ink)}
.rs-lockup .w2{font-family:var(--tech);font-weight:400;font-size:7.6px;letter-spacing:.34em;color:var(--steel-d);text-transform:uppercase}

/* ── NAV ── */
.rs-nav{position:sticky;top:0;z-index:210;background:rgba(255,255,255,.93);backdrop-filter:blur(14px);border-bottom:1px solid var(--divider);padding:0 40px}
.rs-nav-i{max-width:1220px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:86px;gap:24px;flex-wrap:nowrap}
.rs-logo{display:flex;align-items:center;text-decoration:none;flex-shrink:0}
.rs-nav-center{display:flex;align-items:center;gap:34px;flex-shrink:0}
.rs-nav-center a{font-family:var(--sans);font-size:14px;font-weight:400;color:var(--ink2);text-decoration:none;position:relative;padding:4px 0;transition:color .2s}
.rs-nav-center a:hover{color:var(--accent-ink)}
.rs-nav-center a.on{color:var(--ink)}
.rs-nav-center a.on::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1.5px;background:var(--accent)}
.rs-nav-right{display:flex;align-items:center;gap:20px;flex-shrink:0}
.rs-nav-cart,.rs-nav-acct{position:relative;display:flex;align-items:center;color:var(--ink);text-decoration:none;transition:color .2s;flex-shrink:0}
.rs-nav-cart:hover,.rs-nav-acct:hover{color:var(--accent-ink)}
.rs-nav-cart svg,.rs-nav-acct svg{display:block}
.rs-cart-count{position:absolute;top:-7px;right:-9px;background:var(--accent);color:var(--on-accent);font-family:var(--tech);font-size:10px;font-weight:600;min-width:17px;height:17px;border-radius:50%;display:flex;align-items:center;justify-content:center;padding:0 4px;line-height:1}

/* hamburger + drawer */
.rs-ham{display:none;width:40px;height:40px;padding:0;border:none;background:transparent;cursor:pointer;flex-shrink:0;flex-direction:column;align-items:center;justify-content:center;gap:5px;position:relative;z-index:210}
.rs-ham span{display:block;width:22px;height:1.5px;background:var(--ink);transition:transform .3s,opacity .2s}
.rs-ham[aria-expanded="true"] span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.rs-ham[aria-expanded="true"] span:nth-child(2){opacity:0}
.rs-ham[aria-expanded="true"] span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
.rs-drawer{position:fixed;top:0;right:-330px;width:300px;max-width:84vw;height:100dvh;background:var(--paper3);z-index:220;padding:24px 26px 32px;display:flex;flex-direction:column;gap:2px;transition:right .35s cubic-bezier(.16,1,.3,1);box-shadow:-16px 0 48px rgba(21,22,26,.14);overflow-y:auto}
.rs-drawer.open{right:0}
.rs-drawer a{font-size:15px;font-weight:400;color:var(--ink);text-decoration:none;padding:15px 0;border-bottom:1px solid var(--divider)}
.rs-drawer a:hover{color:var(--accent-ink)}
.rs-drawer a.rs-btn{border-bottom:none}
.rs-close{align-self:flex-end;width:38px;height:38px;border:none;background:transparent;cursor:pointer;font-size:28px;line-height:1;color:var(--ink);margin-bottom:8px;transition:background .2s}
.rs-close:hover{background:var(--paper2)}
.rs-overlay{position:fixed;inset:0;background:rgba(21,22,26,.45);z-index:190;opacity:0;pointer-events:none;transition:opacity .3s}
.rs-overlay.open{opacity:1;pointer-events:auto}
@media(max-width:960px){
  .rs-nav-center,.rs-nav-acct{display:none}
  .rs-ham{display:flex}
  .rs-nav{padding:0 18px}
  .rs-container{padding:0 18px}
  .rs-nav-i{gap:0;height:70px}
  .rs-logo .ruo-wordmark{height:58px!important}
  .rs-nav-right{margin-left:auto;gap:16px}
}

/* ── BUTTONS ── */
.rs-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans);font-weight:600;font-size:14px;letter-spacing:.01em;background:var(--accent);color:var(--on-accent);padding:14px 28px;border-radius:var(--rx);text-decoration:none;border:none;cursor:pointer;white-space:nowrap;transition:background .2s,box-shadow .3s,transform .3s cubic-bezier(.16,1,.3,1)}
.rs-btn:hover{background:var(--accent-d);color:var(--on-accent);transform:translateY(-1px);box-shadow:0 14px 30px var(--accent-sh)}
.rs-btn.ghost{background:#fff;color:var(--accent-ink);border:1.5px solid var(--accent);box-shadow:none}
.rs-btn.ghost:hover{background:var(--accent);color:var(--on-accent);box-shadow:none}
.rs-btn.dark{background:var(--ink)}
.rs-btn.dark:hover{background:#000;box-shadow:0 14px 30px rgba(21,22,26,.24)}
.rs-btn .arw{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.rs-btn:hover .arw{transform:translateX(3px)}
.rs-kicker{font-family:var(--tech);font-size:10.5px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--accent-ink);display:block;margin-bottom:14px}
.rs-rule{width:52px;height:3px;background:var(--accent);margin:18px 0 0}

/* ── PAGE HEADINGS (page.php / index.php / 404) ── */
.rs-main article h1{font-size:clamp(30px,4.2vw,46px);margin-bottom:28px;padding-bottom:26px;border-bottom:1px solid var(--divider)}
.rs-main .entry-content h2{font-family:var(--disp);font-size:23px;font-weight:400;margin:38px 0 12px}
.rs-main .entry-content h2:first-child{margin-top:0}
.rs-main .entry-content h3{font-family:var(--disp);font-size:19px;font-weight:400;margin:28px 0 10px}
.rs-main .entry-content p,.rs-main .entry-content li{font-size:15.5px;line-height:1.78;color:var(--muted2);margin-bottom:15px}
.rs-main .entry-content strong{color:var(--ink);font-weight:600}
.rs-main .entry-content a{color:var(--accent-ink);text-decoration:none;border-bottom:1px solid var(--accent-l)}
.rs-main .entry-content a:hover{color:var(--accent-d)}
.rs-main .entry-content ul,.rs-main .entry-content ol{padding-left:22px;margin-bottom:15px}
.rs-main .entry-content li{margin-bottom:6px}
.rs-main .entry-content blockquote{border-left:3px solid var(--accent);padding:4px 0 4px 20px;margin:24px 0;color:var(--muted2);font-style:italic}
.rs-narrow .rs-container{max-width:800px}

/* ── BREADCRUMB ── */
.rs-crumb{font-family:var(--tech);font-size:10.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:26px;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.rs-crumb a{color:var(--muted);text-decoration:none;transition:color .2s}
.rs-crumb a:hover{color:var(--accent-ink)}
.rs-crumb-sep{opacity:.5}

/* ══════════════════════════════════════════════════════════
   SHOP ARCHIVE — matches the homepage product grid
   ══════════════════════════════════════════════════════════ */
.rs-shop{padding:52px 0 96px}
.rs-shop-head{max-width:680px;margin-bottom:36px}
.rs-page-title{font-size:clamp(32px,4.4vw,52px);font-weight:400;letter-spacing:.004em;line-height:1.08;margin-bottom:6px}
.rs-page-title em{font-style:normal;color:var(--accent-dp)}
.rs-page-sub{font-size:16px;color:var(--muted);line-height:1.7;max-width:580px;margin-top:18px}
.rs-shop-count{font-family:var(--tech);font-size:10.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:18px;display:block}

/* Shop archive and COA Library share one grid so card widths always match */
.rs-pgrid,.rs-coa-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
.rs-pc{background:var(--card);border:1px solid var(--divider);border-radius:var(--r);overflow:hidden;text-decoration:none;color:var(--ink);display:flex;flex-direction:column;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s,border-color .3s}
.rs-pc:hover{transform:translateY(-6px);box-shadow:0 24px 50px rgba(21,22,26,.09);border-color:var(--steel-l)}
.rs-pc-img{aspect-ratio:1/.92;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--paper2);border-bottom:1px solid var(--divider)}
.rs-pc-img .rs-photo{position:relative;z-index:2;width:100%;height:100%;object-fit:cover}
/* ── EMPTY-STATE TILE ──
   Product photography ships with backgrounds baked in, so a real image fills
   the tile edge to edge (object-fit:cover, no padding, gradient or shadow).
   When no image exists yet the tile shows the brand mark instead — the hex
   motif decorates only this empty state, since a photo would cover it. */
.rs-ph{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--paper2);overflow:hidden}
.rs-ph-wm{position:absolute;width:62%;right:-12%;bottom:-14%;opacity:.08;color:var(--accent);pointer-events:none}
.rs-ph-mk{position:relative;z-index:2;height:auto;opacity:.5;max-width:150px}
.rs-pc-img .rs-ph-mk{width:42%}
.rs-pc-tag{position:absolute;top:11px;left:11px;z-index:3;font-family:var(--tech);font-size:9px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;padding:4px 9px;border-radius:var(--rx);background:var(--ink);color:#fff}
.rs-pc-tag.hot{background:var(--accent)}
.rs-pc-body{padding:18px 18px 20px;display:flex;flex-direction:column;flex:1}
/* ── PRODUCT NAME: ALWAYS TWO LINES ──
   Product names reserve exactly two lines wherever a product card appears, so
   a card holding "NAD+" is the same height as one holding a long blend name.
   Short names keep the empty second line; anything longer is cut with an
   ellipsis and can never reach a third. min-height is in em so it tracks the
   font size at every breakpoint without a matching override. */
.rs-pc-name,.rs-coa-name{
  display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;text-overflow:ellipsis;min-height:2.4em}
.rs-pc-name{font-family:var(--disp);font-size:21px;font-weight:400;letter-spacing:.004em;line-height:1.2;margin-bottom:11px}
/* The row is emitted even when a product has neither chip, and reserves its
   height here, so a product with no strength/purity sits in a card exactly
   as tall as one that has both. */
.rs-chips{display:flex;align-items:stretch;margin-bottom:11px;border-radius:var(--rx);overflow:hidden;width:fit-content;min-height:26px}
.rs-chips span{font-family:var(--tech);font-size:11px;font-weight:700;letter-spacing:.06em;padding:4px 10px;white-space:nowrap}
.rs-chips .mg{background:var(--accent);color:var(--on-accent)}
.rs-chips .pu{background:var(--steel);color:var(--ink)}
.rs-pc-ruo{font-family:var(--tech);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding-bottom:12px;border-bottom:1px solid var(--divider);margin-bottom:12px}
.rs-pc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}
/* "from" only appears on variable products. The block reserves that line's
   height regardless and bottom-aligns, so prices sit on one baseline across
   the row whatever mix of product types the shop holds. */
.rs-pc-price{font-family:var(--disp);font-size:19px;font-weight:400;color:var(--ink);letter-spacing:.004em;min-height:2.35em;display:flex;flex-direction:column;justify-content:flex-end}
.rs-pc-price .from{font-family:var(--tech);font-size:9.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:block;line-height:1.4}
.rs-pc-price del{color:var(--muted);opacity:.6;font-size:14px;margin-right:5px}
.rs-pc-price ins{text-decoration:none;color:var(--ink)}
.rs-pc-cta{font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--accent-ink);display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.rs-pc-cta .arw{transition:transform .3s cubic-bezier(.16,1,.3,1)}
.rs-pc:hover .rs-pc-cta .arw{transform:translateX(3px)}
.rs-pc-stock{font-family:var(--tech);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap}
.rs-stock-in{color:var(--ok)}
.rs-stock-low{color:var(--accent-d)}
.rs-stock-out{color:var(--muted)}
.rs-shop-empty{grid-column:1/-1;text-align:center;padding:80px 20px;color:var(--muted)}
/* Steps 4 -> 3 -> 2, matching the homepage product grid exactly. The base
   template went straight 4 -> 2 here, so at ~1024px the homepage showed
   three across and the shop showed two and the site changed shape between
   pages. Never 1: two-up is the floor on phones. */
@media(max-width:1100px){.rs-pgrid,.rs-coa-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){.rs-pgrid,.rs-coa-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:768px){
  .rs-shop{padding:34px 0 60px}
  .rs-pgrid,.rs-coa-grid{gap:12px}
  .rs-pc-body{padding:15px 14px 17px}
  .rs-pc-name{font-size:17.5px}
  .rs-chips span{font-size:10px;padding:4px 7px}
  .rs-pc-ruo{font-size:9.5px;letter-spacing:.1em}
  .rs-pc-foot{flex-direction:column;align-items:flex-start;gap:9px}
}

/* ══════════════════════════════════════════════════════════
   SINGLE PRODUCT (PDP)
   ══════════════════════════════════════════════════════════ */
.rs-pdp{padding:28px 0 72px}
.rs-pdp-grid{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:start}

/* Gallery */
.rs-gallery{position:sticky;top:94px}
.rs-img-wrap{background:var(--paper2);border:1px solid var(--divider);border-radius:var(--r);overflow:hidden;position:relative;aspect-ratio:1/1;width:100%;display:flex;align-items:center;justify-content:center}
.rs-img-wrap > img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;display:block;z-index:2}
.rs-img-wrap .rs-ph-mk{width:30%}
.rs-oos-pill{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:4;background:#fff;color:var(--ink);font-family:var(--tech);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:600;padding:11px 20px;border-radius:var(--rx);box-shadow:0 10px 28px rgba(21,22,26,.16)}

/* Summary panel */
.rs-bb{background:var(--card);border:1px solid var(--divider);border-radius:var(--r);padding:34px 32px}
.rs-topline{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.rs-eye{font-family:var(--tech);font-size:10.5px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--accent-ink)}
.rs-badge{font-family:var(--tech);font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;background:var(--ink);color:#fff;padding:4px 10px;border-radius:var(--rx)}
.rs-badge.hot{background:var(--accent)}
.rs-pdp-title{font-family:var(--disp);font-size:clamp(28px,3.8vw,42px);font-weight:400;line-height:1.08;letter-spacing:.004em;margin-bottom:12px}
.rs-pdp-sz{font-family:var(--tech);font-size:.36em;font-weight:500;letter-spacing:.2em;color:var(--steel-d);vertical-align:middle;text-transform:uppercase}
.rs-pdp-desc{font-size:14.5px;color:var(--muted2);line-height:1.7;margin-bottom:18px}
.rs-priceline{display:flex;align-items:baseline;gap:12px;margin-bottom:6px}
.rs-price-now{font-family:var(--disp);font-size:33px;font-weight:400;line-height:1;color:var(--ink);letter-spacing:.004em}
.rs-price-per{font-family:var(--tech);font-size:11px;color:var(--muted);font-weight:500;letter-spacing:.16em;text-transform:uppercase}
.rs-opt-label{font-family:var(--tech);font-size:10.5px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--muted);margin:22px 0 11px}

/* Dosage pills */
.rs-vars{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:9px}
.rs-vpill{border:1px solid var(--divider2);border-radius:var(--rx);padding:12px 14px;background:var(--card);cursor:pointer;font-family:inherit;text-align:center;transition:border-color .2s,box-shadow .2s}
.rs-vpill:hover:not(:disabled){border-color:var(--accent)}
.rs-vpill.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.rs-vpill.oos{opacity:.45;cursor:not-allowed}
.rs-vpill-dose{font-family:var(--tech);font-size:15px;font-weight:600;display:block;letter-spacing:.06em}
.rs-vpill small{font-size:11.5px;color:var(--muted);display:block;margin-top:3px}

/* Bundle tiers */
.rs-tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.rs-tier{border:1px solid var(--divider2);border-radius:var(--rx);padding:14px;background:var(--card);cursor:pointer;font-family:inherit;text-align:left;transition:border-color .2s,box-shadow .2s;position:relative}
.rs-tier:hover{border-color:var(--accent)}
.rs-tier.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.rs-tier-qty{font-family:var(--tech);font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;margin-bottom:6px;color:var(--muted2)}
.rs-tier-price{font-family:var(--disp);font-size:19px;font-weight:400;color:var(--ink);letter-spacing:.004em}
.rs-tier-ea{font-family:var(--tech);font-size:10px;color:var(--muted);margin-top:4px;letter-spacing:.12em;text-transform:uppercase;font-weight:500}
.rs-tier-flag{position:absolute;top:-9px;right:9px;font-family:var(--tech);font-size:8.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 9px;border-radius:var(--rx);background:var(--ink);color:#fff}
.rs-tier-flag.best{background:var(--accent)}

/* Cross-sells */

/* Total + ATC */
.rs-totalbar{display:flex;justify-content:space-between;align-items:baseline;border-top:1px dashed var(--divider2);padding:18px 0 14px;margin-top:22px}
.rs-total-lbl{font-family:var(--tech);font-size:10.5px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--muted)}
.rs-total-sum{font-family:var(--disp);font-size:29px;font-weight:400;color:var(--ink);letter-spacing:.004em}
.rs-atc{width:100%;padding:17px;border:none;border-radius:var(--rx);background:var(--accent);color:var(--on-accent);font-family:var(--sans);font-size:15px;font-weight:600;cursor:pointer;transition:background .2s,box-shadow .25s}
.rs-atc:hover{background:var(--accent-d);box-shadow:0 14px 30px var(--accent-sh)}
.rs-atc-oos{background:var(--paper2);color:var(--muted);cursor:not-allowed}
.rs-atc-oos:hover{background:var(--paper2);color:var(--muted);box-shadow:none}
.rs-coa-link{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:14px;margin-top:10px;border:1px solid var(--divider2);border-radius:var(--rx);background:var(--card);color:var(--ink);font-family:var(--sans);font-size:13.5px;font-weight:600;text-decoration:none;transition:border-color .2s,background .2s,color .2s}
.rs-coa-link:hover{border-color:var(--accent);background:#fff;color:var(--accent-ink)}

/* Assurance + lot grid */
.rs-assure{display:flex;gap:16px;flex-wrap:wrap;margin-top:20px;padding-bottom:20px;border-bottom:1px solid var(--divider)}
.rs-assure span{font-family:var(--tech);font-size:10.5px;color:var(--muted2);font-weight:500;letter-spacing:.16em;text-transform:uppercase;display:inline-flex;align-items:center;gap:7px}
.rs-assure i{width:6px;height:6px;background:var(--accent);transform:rotate(45deg);flex-shrink:0}
.rs-lot{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--divider);border-radius:var(--rx);overflow:hidden;margin:20px 0}
.rs-lot-row{background:var(--paper3);padding:14px 16px}
.rs-lot-k{font-family:var(--tech);font-size:9.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.rs-lot-v{font-family:var(--disp);font-size:16px;font-weight:400;color:var(--ink);letter-spacing:.004em}

/* Accordion */
.rs-accs{margin-top:6px}
.rs-acc{border-bottom:1px solid var(--divider)}
.rs-acc summary{display:flex;justify-content:space-between;align-items:center;padding:17px 0;font-family:var(--disp);font-size:17px;font-weight:400;cursor:pointer;list-style:none;color:var(--ink);transition:color .2s}
.rs-acc summary::-webkit-details-marker{display:none}
.rs-acc summary:hover{color:var(--accent-ink)}
.rs-pm{font-family:var(--sans);font-size:20px;color:var(--steel-d);line-height:1;transition:transform .3s,color .3s}
.rs-acc[open] .rs-pm{transform:rotate(45deg);color:var(--accent-ink)}
.rs-ac{padding:0 0 20px;font-size:14.5px;color:var(--muted2);line-height:1.72}
.rs-ac a{color:var(--accent-ink);text-decoration:none;font-weight:600}
.rs-ac a:hover{text-decoration:underline}
.rs-sr{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--divider);font-size:13.5px}
.rs-sr:last-child{border-bottom:none}
.rs-sr-k{font-family:var(--tech);font-size:10px;color:var(--muted);font-weight:500;letter-spacing:.2em;text-transform:uppercase;padding-top:3px}
.rs-sr-v{color:var(--ink);font-weight:400;text-align:right}

/* Related */
.rs-slim{margin-top:44px;padding:24px 26px;background:var(--paper2);border-radius:var(--rx);font-size:12.5px;color:var(--muted);text-align:center;line-height:1.75}
@media(max-width:768px){
  .rs-pdp{padding:14px 0 52px}
  .rs-pdp-grid{grid-template-columns:1fr;gap:18px}
  .rs-gallery{position:relative;top:auto}
  .rs-bb{padding:24px 20px}
  .rs-tiers{grid-template-columns:1fr}
  .rs-lot{grid-template-columns:1fr}
  .rs-assure{flex-direction:column;gap:9px}
  .rs-pdp-title{font-size:28px}
  .rs-crumb{margin-bottom:16px}
}

/* ══════════════════════════════════════════════════════════
   COA LIBRARY
   ══════════════════════════════════════════════════════════ */
.rs-coa{padding:48px 0 100px;min-height:70vh}
.rs-coa-hd{margin-bottom:34px}
.rs-coa-hd h1{font-size:clamp(32px,4.4vw,52px);font-weight:400;letter-spacing:.004em;margin-bottom:6px}
.rs-coa-hd h1 em{font-style:normal;color:var(--accent-dp)}
.rs-coa-hd p{font-size:16px;color:var(--muted);line-height:1.7;max-width:580px;margin-top:18px}
.rs-coa-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:30px 0}
.rs-coa-stat{background:var(--card);border:1px solid var(--divider);border-bottom:2px solid var(--accent);border-radius:var(--r);padding:26px 28px;display:flex;flex-direction:column;justify-content:space-between;min-height:140px}
.rs-coa-stat-v{font-family:var(--disp);font-size:clamp(34px,4vw,48px);font-weight:400;line-height:1;color:var(--ink);letter-spacing:.004em}
.rs-coa-stat-l{font-family:var(--tech);font-size:10.5px;font-weight:500;letter-spacing:.24em;text-transform:uppercase;color:var(--muted);margin-top:16px;line-height:1.6}
.rs-coa-search{position:relative;margin-bottom:30px}
.rs-coa-search input{width:100%;padding:16px 20px 16px 50px;font-family:var(--sans);font-size:15px;color:var(--ink);background:var(--card);border:1px solid var(--divider);border-radius:var(--rx);outline:none;transition:border-color .2s}
.rs-coa-search input::placeholder{color:var(--muted)}
.rs-coa-search input:focus{border-color:var(--accent)}
.rs-coa-search svg{position:absolute;left:18px;top:50%;transform:translateY(-50%);color:var(--muted)}
.rs-coa-card{background:var(--card);border:1px solid var(--divider);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;transition:transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s,border-color .3s}
.rs-coa-card:hover{transform:translateY(-4px);box-shadow:0 20px 46px rgba(21,22,26,.09);border-color:var(--steel-l)}
.rs-coa-card.hide{display:none}
.rs-coa-img{position:relative;aspect-ratio:1/.92;background:var(--paper2);overflow:hidden;display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--divider)}
.rs-coa-img img{width:100%;height:100%;object-fit:cover;position:relative;z-index:2}
.rs-coa-img .rs-ph-mk{width:42%}
.rs-coa-pur{position:absolute;top:12px;right:12px;z-index:3;background:rgba(255,255,255,.93);border:1px solid var(--divider);padding:7px 12px;border-radius:var(--rx);text-align:right}
.rs-coa-pur-val{font-family:var(--disp);font-size:21px;font-weight:400;color:var(--ink);line-height:1;letter-spacing:.004em}
.rs-coa-pur-lbl{font-family:var(--tech);font-size:8.5px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--accent-ink);margin-top:4px}
.rs-coa-body{padding:20px 22px 22px;display:flex;flex-direction:column;flex:1}
.rs-coa-eye{font-family:var(--tech);font-size:10px;font-weight:500;letter-spacing:.28em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:8px}
.rs-coa-name{font-family:var(--disp);font-size:22px;font-weight:400;line-height:1.2;letter-spacing:.004em;margin-bottom:16px}
.rs-coa-name a{color:inherit;text-decoration:none}
.rs-coa-name a:hover{color:var(--accent-ink)}
.rs-coa-meta{display:flex;gap:32px;padding:13px 0 14px;border-top:1px solid var(--divider);border-bottom:1px solid var(--divider);margin-bottom:15px}
.rs-coa-mk{font-family:var(--tech);font-size:9.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:5px}
.rs-coa-mv{font-family:var(--tech);font-size:13.5px;font-weight:500;color:var(--ink);letter-spacing:.04em}
.rs-coa-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
.rs-ttag{font-family:var(--tech);font-size:9.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;padding:6px 10px;border-radius:var(--rx);background:var(--paper2);color:var(--ink2);border:1px solid var(--divider);display:inline-flex;align-items:center;gap:5px}
.rs-ttag.check{background:#fff;color:var(--accent-ink);border-color:var(--accent)}
.rs-coa-btn{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px;font-family:var(--sans);font-size:13.5px;font-weight:600;text-decoration:none;color:#fff;background:var(--ink);border-radius:var(--rx);margin-top:auto;transition:background .22s}
.rs-coa-btn:hover{background:var(--accent)}
.rs-coa-btn svg{transition:transform .22s}
.rs-coa-btn:hover svg{transform:translate(2px,-2px)}
.rs-coa-empty{text-align:center;padding:80px 20px;color:var(--muted);font-size:16px;grid-column:1/-1}
@media(max-width:900px){.rs-coa-stats{grid-template-columns:1fr;gap:12px}.rs-coa-stat{min-height:auto;padding:22px}}
@media(max-width:768px){.rs-coa{padding:32px 0 64px}.rs-coa-body{padding:16px 14px 18px}.rs-coa-name{font-size:18px}.rs-coa-meta{gap:16px}.rs-ttag{font-size:8.5px;padding:5px 7px;letter-spacing:.1em}.rs-coa-pur{padding:5px 9px}.rs-coa-pur-val{font-size:17px}}
/* Phone widths: cards sit 2-up at the same width as the shop grid, so the
   denser COA content needs to stop wrapping mid-label. */
@media(max-width:560px){
  .rs-coa-eye{font-size:8.5px;letter-spacing:.1em;margin-bottom:6px}
  .rs-coa-name{font-size:16.5px;margin-bottom:12px}
  .rs-coa-meta{flex-direction:column;gap:10px;padding:11px 0 12px;margin-bottom:12px}
  .rs-coa-mk{font-size:8.5px;letter-spacing:.12em;margin-bottom:3px}
  .rs-coa-mv{font-size:12px;white-space:nowrap}
  .rs-coa-tags{gap:4px;margin-bottom:12px}
  .rs-ttag{font-size:8px;padding:4px 6px;letter-spacing:.08em}
  .rs-coa-btn{padding:11px;font-size:12px}
  .rs-coa-stat{padding:20px 18px}
}

/* ══════════════════════════════════════════════════════════
   ORDER RECEIVED / THANK YOU
   ══════════════════════════════════════════════════════════ */
.rs-ty{padding:56px 24px 96px;min-height:70vh}
.rs-ty-c{max-width:1180px;margin:0 auto}
.rs-ty-hero{display:flex;flex-direction:column;align-items:flex-start;gap:20px;margin-bottom:52px}
.rs-ty-pill{display:inline-flex;align-items:center;gap:11px;font-family:var(--tech);font-size:10.5px;font-weight:500;text-transform:uppercase;letter-spacing:.24em;color:var(--accent-ink);background:#fff;border:1px solid var(--divider);padding:9px 18px 9px 14px;border-radius:var(--rp)}
.rs-ty-dot{width:9px;height:9px;border-radius:50%;background:var(--accent);position:relative;flex-shrink:0}
.rs-ty-dot::before{content:'';position:absolute;inset:-6px;border:1.5px solid var(--accent);border-radius:50%;animation:rs-pulse 2s cubic-bezier(.16,1,.3,1) infinite}
@keyframes rs-pulse{0%{transform:scale(.6);opacity:1}100%{transform:scale(1.6);opacity:0}}
.rs-ty-h{font-family:var(--disp);font-size:clamp(40px,6.4vw,74px);font-weight:400;line-height:1.02;letter-spacing:.004em;margin:0}
.rs-ty-h em{font-style:normal;color:var(--accent-dp)}
.rs-ty-sub{font-size:16px;line-height:1.7;color:var(--muted2);max-width:600px;margin:0}
.rs-ty-sub strong{color:var(--ink);font-weight:600}
.rs-ty-no{font-family:var(--tech);font-size:11px;letter-spacing:.24em;color:var(--muted);text-transform:uppercase;font-weight:500}
.rs-ty-no strong{color:var(--ink);font-weight:600}
.rs-ty-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:52px;align-items:start}
.rs-ty-meta{display:grid;grid-template-columns:1fr 1fr;gap:26px;padding:26px 0;border-top:1px solid var(--divider);border-bottom:1px solid var(--divider);margin-bottom:32px}
.rs-ty-l{font-family:var(--tech);font-size:10px;text-transform:uppercase;letter-spacing:.24em;color:var(--muted);margin-bottom:9px;font-weight:500}
.rs-ty-v{font-family:var(--disp);font-size:23px;line-height:1.2;font-weight:400;letter-spacing:.004em}
.rs-ty-pay{margin-bottom:32px}
.rs-ty-pay-v{font-size:15px;font-weight:400;color:var(--ink)}
.rs-ty-addrs{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.rs-ty-addrs address{font-style:normal;font-size:14px;line-height:1.7;color:var(--muted2)}
.rs-ty-addrs address .name{color:var(--ink);font-weight:600;display:block;margin-bottom:2px;font-size:15px}
.rs-ty-contact{margin-top:16px;padding-top:16px;border-top:1px solid var(--divider);font-size:13px;color:var(--muted2);line-height:1.9}
.rs-ty-contact a{color:var(--muted2);text-decoration:none}
.rs-ty-contact a:hover{color:var(--accent-ink)}
.rs-ty-contact .ico{display:inline-block;width:14px;height:14px;margin-right:8px;vertical-align:middle;color:var(--accent-ink)}
.rs-ty-sum{background:#fff;border:1px solid var(--divider);border-radius:var(--r);padding:30px;position:sticky;top:24px}
.rs-ty-sum-h{font-family:var(--disp);font-size:23px;font-weight:400;letter-spacing:.004em;margin:0 0 22px}
.rs-ty-sum-h em{font-style:normal;color:var(--accent-dp)}
.rs-ty-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--divider)}
.rs-ty-item:first-of-type{padding-top:0}
.rs-ty-item-img{width:62px;height:62px;border-radius:var(--rx);background:var(--paper2);overflow:hidden;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1px solid var(--divider)}
.rs-ty-item-img img{width:100%;height:100%;object-fit:cover}
.rs-ty-item-img .rs-ph-mk{width:56%;opacity:.6}
.rs-ty-item-name{font-family:var(--disp);font-size:16px;font-weight:400;line-height:1.25;margin-bottom:5px;letter-spacing:.004em;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rs-ty-item-meta{font-family:var(--tech);font-size:10px;color:var(--muted);letter-spacing:.16em;text-transform:uppercase;line-height:1.5}
.rs-ty-item-price{font-size:13.5px;color:var(--muted2);margin-top:6px}
.rs-ty-totals{padding-top:16px}
.rs-ty-totals .row{display:flex;justify-content:space-between;align-items:baseline;padding:8px 0;font-size:14px;color:var(--muted2)}
.rs-ty-totals .row.total{padding-top:16px;margin-top:8px;border-top:1px solid var(--divider);font-family:var(--disp);font-size:20px;font-weight:400;color:var(--ink);letter-spacing:.004em}
.rs-ty-totals .v{color:var(--ink);font-weight:500}
.rs-ty-status{margin-top:40px;padding:26px;background:var(--ink);border-bottom:2px solid var(--accent);border-radius:var(--r)}
.rs-ty-status-h{font-family:var(--tech);font-size:10px;text-transform:uppercase;letter-spacing:.28em;color:var(--ti2);margin-bottom:22px;font-weight:500}
.rs-ty-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}
.rs-ty-step{display:flex;flex-direction:column;align-items:flex-start;gap:10px;position:relative;padding-right:14px}
.rs-ty-step::after{content:'';position:absolute;top:6px;left:14px;right:0;height:1.5px;background:rgba(250,248,245,.18)}
.rs-ty-step:last-child::after{display:none}
.rs-ty-step.done::after{background:var(--accent)}
.rs-ty-sdot{width:14px;height:14px;border-radius:50%;background:var(--ink);border:1.5px solid rgba(250,248,245,.28);position:relative;z-index:1;flex-shrink:0}
.rs-ty-step.done .rs-ty-sdot{background:var(--accent);border-color:var(--accent)}
.rs-ty-step.current .rs-ty-sdot{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring)}
.rs-ty-slabel{font-family:var(--tech);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--ti2);line-height:1.4;font-weight:500}
.rs-ty-step.done .rs-ty-slabel,.rs-ty-step.current .rs-ty-slabel{color:#fff}
.rs-ty-failed{padding:22px;background:#fff;border:1px solid var(--alert);border-left-width:3px;border-radius:var(--rx);color:var(--ink2);margin-bottom:28px;font-size:14.5px;line-height:1.65}
.rs-ty-failed strong{display:block;margin-bottom:6px;font-size:15.5px}
.rs-ty-retry{display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:600;background:var(--accent);color:var(--on-accent);padding:14px 26px;border-radius:var(--rx);text-decoration:none}
.rs-ty-retry:hover{background:var(--accent-d);color:var(--on-accent)}
@media(max-width:900px){
  .rs-ty{padding:40px 18px 68px}
  .rs-ty-grid{grid-template-columns:1fr;gap:32px}
  .rs-ty-sum{position:relative;top:0}
  .rs-ty-meta{gap:18px;padding:20px 0;margin-bottom:26px}
  .rs-ty-v{font-size:20px}
  .rs-ty-addrs{grid-template-columns:1fr;gap:22px}
  .rs-ty-status{padding:22px}
  .rs-ty-steps{grid-template-columns:1fr;gap:0}
  .rs-ty-step{flex-direction:row;align-items:center;gap:14px;padding:0 0 18px 0}
  .rs-ty-step::after{top:14px;left:6px;right:auto;bottom:-4px;width:1.5px;height:auto}
  .rs-ty-step:last-child{padding-bottom:0}
  .rs-ty-slabel{flex:1}
}
@media(max-width:480px){
  .rs-ty-h{font-size:40px}
  .rs-ty-sum{padding:22px 20px}
  .rs-ty-meta{grid-template-columns:1fr}
}

/* ══════════════════════════════════════════════════════════
   404
   ══════════════════════════════════════════════════════════ */
.rs-404{text-align:center;padding:110px 0}
.rs-404 h1{font-family:var(--disp);font-size:clamp(64px,10vw,112px);font-weight:400;letter-spacing:.02em;color:var(--ink);line-height:1}
.rs-404 .rs-rule{margin:22px auto 0}
.rs-404 p{color:var(--muted);margin-top:22px;font-size:16px}

/* ══════════════════════════════════════════════════════════
   FOOTER
   ══════════════════════════════════════════════════════════ */
.rs-footer{background:var(--ink);color:var(--ti2);padding:62px 0 34px;font-size:14px}
.rs-foot-top{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.3fr;gap:44px;padding-bottom:42px;border-bottom:1px solid rgba(250,248,245,.1)}
.rs-foot-brand{display:inline-block;text-decoration:none;margin-bottom:18px}
.rs-foot-brand .w1{color:var(--ti)}
.rs-foot-brand .w2{color:var(--ti2)}
.rs-foot-brand .bar{background:rgba(250,248,245,.22)}
.rs-foot-about{font-size:13.5px;color:var(--ti2);line-height:1.75;max-width:290px}
.rs-foot-soc{display:flex;gap:11px;margin-top:20px}
.rs-foot-soc a{width:33px;height:33px;border-radius:50%;border:1px solid rgba(250,248,245,.18);display:flex;align-items:center;justify-content:center;color:var(--ti2);transition:all .25s}
.rs-foot-soc a:hover{border-color:var(--accent);color:var(--accent-l);transform:translateY(-2px)}
.rs-fcol h4{font-family:var(--disp);font-size:16px;font-weight:400;color:#fff;margin-bottom:15px;letter-spacing:.01em}
.rs-fcol a{display:block;font-size:13.5px;color:var(--ti2);text-decoration:none;padding:6px 0;transition:color .2s}
.rs-fcol a:hover{color:var(--accent-l)}
.rs-fhelp .row{display:flex;gap:11px;align-items:flex-start;margin-bottom:14px}
.rs-fhelp .ico{color:var(--accent-l);flex-shrink:0;margin-top:3px}
.rs-fhelp .val{font-size:13.5px;color:var(--ti2);line-height:1.5}
.rs-fhelp a{color:inherit;text-decoration:none}
.rs-fhelp a:hover{color:var(--accent-l)}
.rs-foot-bot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;padding-top:24px;font-size:12.5px;color:var(--ti2)}
.rs-foot-links{display:flex;gap:22px;flex-wrap:wrap}
.rs-foot-links a{color:var(--ti2);text-decoration:none;transition:color .2s;font-size:12.5px}
.rs-foot-links a:hover{color:var(--accent-l)}
.rs-foot-legal{width:100%;margin-top:20px;font-size:11.5px;color:rgba(169,162,150,.72);line-height:1.7}
@media(max-width:1024px){.rs-foot-top{grid-template-columns:1fr 1fr 1fr;gap:34px}}
@media(max-width:768px){
  /* Explore + Information stay paired; Contact takes its own row with
     email/phone on the same column tracks and address spanning both. */
  .rs-foot-top{grid-template-columns:1fr 1fr;gap:30px 22px}
  .rs-fbrand-col{grid-column:1 / -1}
  .rs-fhelp{grid-column:1 / -1}
  .rs-fhelp .frows{display:grid;grid-template-columns:1fr 1fr;gap:16px 22px}
  .rs-fhelp .row{margin-bottom:0}
  .rs-fhelp .row.addr{grid-column:1 / -1}
  .rs-fhelp .val{overflow-wrap:anywhere}
  .rs-foot-bot{flex-direction:column;align-items:flex-start;gap:14px}
}
@media(max-width:520px){
  .rs-foot-top{gap:26px 16px}
  .rs-fhelp .frows{gap:14px 16px}
  .rs-fcol a{font-size:13px}
  .rs-fhelp .val{font-size:13px}
}

/* ══════════════════════════════════════════════════════════
   AGE + RESEARCH-USE GATE
   Blocks the whole site until the visitor attests to both.
   Markup stays in the DOM so crawlers still index the page.
   ══════════════════════════════════════════════════════════ */
.rs-gate{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  padding:24px;background:rgba(21,22,26,.90);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.rs-gate[hidden]{display:none}
.rs-gate-panel{background:var(--paper3);border:1px solid var(--divider);border-top:2px solid var(--accent);
  max-width:520px;width:100%;padding:40px 40px 32px;max-height:calc(100dvh - 48px);overflow-y:auto;
  box-shadow:0 40px 90px rgba(0,0,0,.45)}
.rs-gate-mk{display:flex;justify-content:center;margin-bottom:22px}
.rs-gate-mk svg{width:46px;height:46px}
.rs-gate-k{font-family:var(--tech);font-size:10px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;
  color:var(--accent-ink);text-align:center;display:block;margin-bottom:12px}
.rs-gate-h{font-family:var(--disp);font-size:clamp(25px,4.4vw,31px);font-weight:400;letter-spacing:.005em;
  line-height:1.16;text-align:center;margin-bottom:14px;color:var(--ink)}
.rs-gate-p{font-size:14.5px;line-height:1.7;color:var(--muted2);text-align:center;margin-bottom:26px}
.rs-gate-checks{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--divider);
  border-bottom:1px solid var(--divider);padding:6px 0;margin-bottom:24px}
.rs-gate-row{display:flex;gap:13px;align-items:flex-start;padding:15px 2px;cursor:pointer;
  font-size:14px;line-height:1.6;color:var(--ink2)}
.rs-gate-row + .rs-gate-row{border-top:1px solid var(--divider)}
.rs-gate-row input{position:absolute;opacity:0;width:0;height:0}
.rs-gate-box{width:21px;height:21px;border:1px solid var(--steel-d);border-radius:var(--rx);flex-shrink:0;
  margin-top:1px;display:flex;align-items:center;justify-content:center;color:transparent;font-size:12px;
  transition:background .18s,border-color .18s,color .18s}
.rs-gate-row:hover .rs-gate-box{border-color:var(--accent)}
.rs-gate-row input:checked ~ .rs-gate-box{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.rs-gate-row input:focus-visible ~ .rs-gate-box{outline:2px solid var(--accent);outline-offset:2px}
.rs-gate-enter{width:100%;padding:16px;border:none;border-radius:var(--rx);background:var(--accent);color:var(--on-accent);
  font-family:var(--sans);font-size:14.5px;font-weight:600;letter-spacing:.01em;cursor:pointer;
  transition:background .2s,box-shadow .25s}
.rs-gate-enter:hover:not(:disabled){background:var(--accent-d);box-shadow:0 14px 30px var(--accent-sh)}
.rs-gate-enter:disabled{background:var(--paper2);color:var(--steel-d);cursor:not-allowed;box-shadow:none}
.rs-gate-exit{display:block;width:100%;margin-top:14px;padding:6px;background:none;border:none;cursor:pointer;
  font-family:var(--tech);font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;
  color:var(--muted);transition:color .2s}
.rs-gate-exit:hover{color:var(--ink)}
.rs-gate-fine{margin-top:22px;padding-top:20px;border-top:1px solid var(--divider);font-size:11.5px;
  line-height:1.7;color:var(--muted);text-align:center}
.rs-gate-fine a{color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.rs-gate-fine a:hover{color:var(--accent-ink)}
/* Declined state */
.rs-gate-declined{text-align:center}
.rs-gate-declined .rs-gate-h{margin-bottom:14px}
.rs-gate-declined p{font-size:14.5px;line-height:1.7;color:var(--muted2);margin-bottom:24px}
.rs-gate-back{background:none;border:1px solid var(--divider2);border-radius:var(--rx);padding:13px 26px;
  font-family:var(--sans);font-size:13.5px;font-weight:600;color:var(--ink);cursor:pointer;transition:border-color .2s,color .2s}
.rs-gate-back:hover{border-color:var(--accent);color:var(--accent-ink)}
body.rs-gated{overflow:hidden}
@media(max-width:560px){
  .rs-gate{padding:14px}
  .rs-gate-panel{padding:30px 22px 24px}
  .rs-gate-p{font-size:13.5px;margin-bottom:22px}
  .rs-gate-row{font-size:13.5px;padding:14px 2px}
}

/* ══════════════════════════════════════════════════════════
   WOOCOMMERCE OVERRIDES (cart / checkout / account)
   ══════════════════════════════════════════════════════════ */
.woocommerce-notices-wrapper{max-width:1220px;margin:0 auto;padding:14px 32px 0}
body .woocommerce-error,body .woocommerce-message,body .woocommerce-info{background:var(--card);border:1px solid var(--divider);border-top:3px solid var(--accent);border-radius:var(--rx);padding:14px 18px;font-size:14.5px;color:var(--ink2)}
body .woocommerce-error{border-top-color:var(--alert)}
body .woocommerce-info::before,body .woocommerce-message::before{color:var(--accent-ink)}

/* Kill default blue links on WC pages */
body .woocommerce a,
body .woocommerce-page a,
body .woocommerce table.shop_table a,
body .woocommerce-cart .product-name a,
body .woocommerce-checkout .product-name a,
body .woocommerce ul.order_details a,
body .woocommerce-order-details a,
body .wc-block-cart a,
body .wc-block-checkout a,
body .wc-block-cart-items a,
body .wc-block-cart-item a,
body a.wc-block-components-product-name,
body .wc-block-components-product-name,
body .wp-block-woocommerce-cart-line-items-block a,
body .wp-block-woocommerce-cart a,
body .wp-block-woocommerce-checkout a{
  color:var(--ink) !important;text-decoration:none !important;font-weight:600 !important;transition:color .2s !important;
}
body .woocommerce a:hover,
body .woocommerce-page a:hover,
body .wc-block-cart a:hover,
body .wc-block-checkout a:hover,
body a.wc-block-components-product-name:hover,
body .wc-block-components-product-name:hover{color:var(--accent-ink) !important}

/* Cart product names use the display face.
   Clamped to two lines: these render in a row rather than a card, and a long
   compound name left to wrap freely pushes the quantity and subtotal columns
   out of alignment with every other row in the table. */
body .woocommerce-cart .product-name a,
body .wc-block-cart-item__product a,
body a.wc-block-components-product-name,
body .wc-block-components-product-name{
  font-family:var(--disp) !important;font-size:16px !important;font-weight:700 !important;letter-spacing:-.01em !important;
  display:-webkit-box !important;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;
}

/* Buttons keep white text */
body .woocommerce .button,
body .woocommerce a.button,
body .woocommerce button.button,
body .woocommerce input.button,
body .wc-block-components-button,
body .wc-block-components-checkout-place-order-button,
body .wc-block-cart__submit-button,
body a.wc-block-cart__submit-button,
body .wp-block-woocommerce-proceed-to-checkout-block a,
body .wc-proceed-to-checkout a,
body .wc-proceed-to-checkout .checkout-button,
body a.checkout-button,
body .wc-block-components-button__text,
body .woocommerce ul.products li.product a.button,
body .woocommerce a.button.add_to_cart_button,
body .wc-block-components-product-button__button{
  color:var(--on-accent) !important;text-decoration:none !important;
}
body .woocommerce .button,
body .woocommerce a.button,
body .woocommerce button.button,
body .woocommerce input.button,
body .wc-block-components-button,
body .wc-block-cart__submit-button,
body a.checkout-button,
body .wc-proceed-to-checkout .checkout-button{
  background:var(--accent) !important;border-radius:var(--rx) !important;font-family:var(--sans) !important;font-weight:600 !important;
}
body .woocommerce .button:hover,
body .woocommerce a.button:hover,
body .woocommerce button.button:hover,
body .wc-block-components-button:hover,
body .wc-block-cart__submit-button:hover,
body a.checkout-button:hover,
body .wc-proceed-to-checkout .checkout-button:hover{background:var(--accent-d) !important;color:var(--on-accent) !important}

/* Notice links stay red + underlined */
body .woocommerce .woocommerce-info a,
body .woocommerce .woocommerce-message a,
body .woocommerce .woocommerce-error a{color:var(--accent-ink) !important;text-decoration:underline !important}

/* Form fields */
body .woocommerce form .form-row input.input-text,
body .woocommerce form .form-row textarea,
body .woocommerce form .form-row select,
body .woocommerce-page input.input-text,
body .woocommerce-page select{
  border-radius:var(--rx) !important;border-color:var(--divider2) !important;font-family:var(--sans) !important;
}
body .woocommerce form .form-row input.input-text:focus,
body .woocommerce form .form-row textarea:focus,
body .woocommerce form .form-row select:focus{border-color:var(--accent) !important;outline:none !important}

/* Checkout / cart headings pick up the display face */
body .woocommerce-cart h1,body .woocommerce-checkout h1,body .woocommerce-account h1,
body .woocommerce-cart h2,body .woocommerce-checkout h2,body .woocommerce-account h2,
body .woocommerce-cart h3,body .woocommerce-checkout h3{font-family:var(--disp) !important;font-weight:700 !important;letter-spacing:-.02em !important}

/* ══════════════════════════════════════════════════════════
   MY ACCOUNT
   Sections in a sidebar on the left, the active one beside them.

   Every rule is written against both .rs-account (the wrapper the theme
   prints itself) and .woocommerce-account (WooCommerce's body class), so
   the page still holds together if either one is missing.

   Several rules below carry !important. That is not decoration: the
   WOOCOMMERCE OVERRIDES block above forces colour, weight and
   text-decoration on every link and button inside .woocommerce, which
   would otherwise flatten the whole of this section.
   ══════════════════════════════════════════════════════════ */

/* account-page.php already opens a .rs-container; templates that open their
   own inside it must not double the gutter. */
.rs-account-main .rs-container .rs-container{max-width:none;padding:0}
.rs-account-main .woocommerce-notices-wrapper,
.rs-login-page .woocommerce-notices-wrapper{max-width:none;margin:0;padding:0}

.rs-account-main{padding:52px 0 96px}
.rs-account-head{margin-bottom:34px}
.rs-account-kicker{font-family:var(--tech);font-size:10.5px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--accent-ink);display:block;margin-bottom:14px}
.rs-account-head h1{font-family:var(--disp);font-size:clamp(30px,4.2vw,46px);font-weight:400;letter-spacing:.004em;line-height:1.08;margin:0}
.rs-account-head .rs-rule{margin:20px 0 0}
.rs-account-head p{font-size:15.5px;line-height:1.7;color:var(--muted);max-width:580px;margin:20px 0 0}

.rs-account-grid{display:grid;grid-template-columns:248px minmax(0,1fr);gap:24px;align-items:start}

/* WooCommerce floats the navigation at 30% and the content at 68%. As grid
   items those percentages resolve against the track instead of the row,
   collapsing the sidebar to a sliver. */
.rs-account-grid > .woocommerce-MyAccount-navigation,
.rs-account-grid > .woocommerce-MyAccount-content,
.woocommerce-account .rs-account-grid > .woocommerce-MyAccount-navigation,
.woocommerce-account .rs-account-grid > .woocommerce-MyAccount-content{
  float:none !important;width:auto !important;max-width:none !important}

/* ── sidebar ── */
.rs-account .woocommerce-MyAccount-navigation,
.woocommerce-account .woocommerce-MyAccount-navigation{
  background:var(--card);border:1px solid var(--divider);border-top:2px solid var(--accent);
  border-radius:var(--r);padding:8px;position:sticky;top:94px}
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0}
.woocommerce-MyAccount-navigation li{margin:0}
body .woocommerce-MyAccount-navigation li a{
  display:block;padding:12px 14px;border-radius:var(--rx);font-family:var(--sans);font-size:13.5px;
  font-weight:500 !important;letter-spacing:.01em;color:var(--ink2) !important;text-decoration:none !important;
  white-space:nowrap;transition:background .18s,color .18s}
body .woocommerce-MyAccount-navigation li a:hover{background:var(--paper2);color:var(--ink) !important}
body .woocommerce-MyAccount-navigation li.is-active > a{background:var(--accent);color:var(--on-accent) !important;font-weight:600 !important}
.woocommerce-MyAccount-navigation li--customer-logout{margin-top:6px;padding-top:6px;border-top:1px solid var(--divider)}
body .woocommerce-MyAccount-navigation li--customer-logout a{color:var(--muted) !important}

/* ── content panel ── */
.rs-account-content{background:var(--card);border:1px solid var(--divider);border-radius:var(--r);padding:32px 34px;min-width:0}
.rs-account-content > h2,.rs-account-content > h3,
.rs-account-content legend{font-family:var(--disp);font-size:21px;font-weight:400;letter-spacing:.004em;line-height:1.2;margin:0 0 16px;padding:0;color:var(--ink)}
.rs-account-content > h2:not(:first-child),
.rs-account-content > h3:not(:first-child){margin-top:36px}
.rs-account-content p{font-size:14.5px;line-height:1.75;color:var(--muted2);margin-bottom:15px}
.rs-account-content p:last-child{margin-bottom:0}
.rs-account-content mark{background:var(--accent-t);color:var(--ink);padding:1px 5px;border-radius:var(--rx)}
.rs-account-content fieldset{border:1px solid var(--divider);border-radius:var(--r);padding:10px 24px 22px;margin:30px 0 24px}
/* a bare legend sits on top of the fieldset border */
.rs-account-content legend{padding:0 10px;margin-left:-10px;background:var(--card);font-size:17px}

/* Prose links inside the panel read as links again. The affiliate plugin
   styles its own subtree, so it is left alone. */
body .rs-account-content a:not(.button):not(.affp-copy):not(.rs-btn){
  color:var(--accent-d) !important;text-decoration:underline !important;text-underline-offset:2px;font-weight:500 !important}
body .rs-account-content a:not(.button):hover{color:var(--accent-ink) !important}
body .rs-account-content .affp-account a{color:inherit !important;font-weight:inherit !important}
/* Order numbers are links but read as data. */
body .rs-account-content .shop_table a:not(.button){text-decoration:none !important;font-weight:600 !important;color:var(--ink) !important}
body .rs-account-content .shop_table a:not(.button):hover{color:var(--accent-ink) !important}

/* ── tables ── */
.rs-account table.shop_table,
.rs-account table.woocommerce-orders-table,
.woocommerce-account table.shop_table{
  width:100%;border-collapse:collapse;font-size:14px;border:1px solid var(--divider);border-radius:var(--r);overflow:hidden;margin-bottom:8px}
.rs-account table.shop_table th,
.woocommerce-account table.shop_table th{
  text-align:left;padding:13px 15px;font-family:var(--tech);font-size:10px;font-weight:600;letter-spacing:.2em;
  text-transform:uppercase;color:var(--muted);background:var(--paper2);border-bottom:1px solid var(--divider)}
.rs-account table.shop_table td,
.woocommerce-account table.shop_table td{
  padding:15px;border-bottom:1px solid var(--divider);color:var(--ink2);vertical-align:middle}
.rs-account table.shop_table tr:last-child td,
.woocommerce-account table.shop_table tr:last-child td{border-bottom:none}
.rs-account table.shop_table tfoot th,
.woocommerce-account table.shop_table tfoot th{background:transparent;border-bottom:none}

/* ── addresses ── */
/* WooCommerce ships these as a float layout (.col2-set) with width:48% on
   each column plus a clearfix ::after. Inside a grid the widths shrink the
   cards to a sliver and the clearfix becomes a phantom third item. */
.rs-account .woocommerce-Addresses,
.woocommerce-account .woocommerce-Addresses{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:14px}
.rs-account .woocommerce-Addresses::before,
.rs-account .woocommerce-Addresses::after,
.woocommerce-account .woocommerce-Addresses::before,
.woocommerce-account .woocommerce-Addresses::after{display:none}
.rs-account .woocommerce-Addresses > .woocommerce-Address,
.rs-account .woocommerce-Addresses > .col-1,
.rs-account .woocommerce-Addresses > .col-2,
.woocommerce-account .woocommerce-Addresses > .woocommerce-Address,
.woocommerce-account .woocommerce-Addresses > .col-1,
.woocommerce-account .woocommerce-Addresses > .col-2{float:none;width:auto;max-width:none}
.rs-account .woocommerce-Address,
.woocommerce-account .woocommerce-Address{border:1px solid var(--divider);border-radius:var(--r);padding:22px 24px;background:var(--paper3)}
.rs-account .woocommerce-Address-title,
.woocommerce-account .woocommerce-Address-title{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:12px}
.rs-account .woocommerce-Address-title h2,
.rs-account .woocommerce-Address-title h3,
.woocommerce-account .woocommerce-Address-title h2,
.woocommerce-account .woocommerce-Address-title h3{
  flex:1;min-width:0;font-family:var(--disp);font-size:17px;font-weight:400;letter-spacing:.004em;margin:0;display:block}
.rs-account .woocommerce-Address address,
.woocommerce-account .woocommerce-Address address{font-style:normal;font-size:14px;line-height:1.75;color:var(--muted2)}
/* The overrides block forces #fff on every .button inside .woocommerce, which
   would make this outline chip invisible. */
body .rs-account .woocommerce-Address-title .edit,
body .woocommerce-account .woocommerce-Address-title .edit{
  flex-shrink:0;float:none;white-space:nowrap;background:transparent !important;color:var(--accent-d) !important;
  border:1px solid var(--accent) !important;padding:8px 15px !important;font-family:var(--tech) !important;
  font-size:10px !important;font-weight:600 !important;letter-spacing:.18em !important;text-transform:uppercase}
body .rs-account .woocommerce-Address-title .edit:hover,
body .woocommerce-account .woocommerce-Address-title .edit:hover{background:var(--accent) !important;color:var(--on-accent) !important}

/* ── forms ── */
.rs-account .woocommerce-form-row,.rs-account .form-row,
.woocommerce-account .woocommerce-form-row,.woocommerce-account .form-row,
.rs-login-page .form-row{display:flex;flex-direction:column;gap:8px;margin-bottom:17px}
.rs-account label,.woocommerce-account label,.rs-login-page label{
  font-family:var(--tech);font-size:10.5px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted)}
.rs-account .required,.woocommerce-account .required,.rs-login-page .required{color:var(--alert);text-decoration:none}
body .rs-account input[type=text],body .rs-account input[type=email],body .rs-account input[type=tel],
body .rs-account input[type=password],body .rs-account input[type=number],body .rs-account select,
body .rs-account textarea,
body .woocommerce-account input[type=text],body .woocommerce-account input[type=email],
body .woocommerce-account input[type=tel],body .woocommerce-account input[type=password],
body .woocommerce-account input[type=number],body .woocommerce-account select,body .woocommerce-account textarea,
body .rs-login-page input[type=text],body .rs-login-page input[type=email],body .rs-login-page input[type=password]{
  width:100%;font-family:var(--sans) !important;font-size:14.5px;color:var(--ink);background:var(--card);
  border:1px solid var(--divider2) !important;border-radius:var(--rx) !important;padding:13px 15px;
  transition:border-color .2s,box-shadow .2s}
body .rs-account input:focus,body .rs-account select:focus,body .rs-account textarea:focus,
body .woocommerce-account input:focus,body .woocommerce-account select:focus,body .woocommerce-account textarea:focus,
body .rs-login-page input:focus{
  outline:none;border-color:var(--accent) !important;box-shadow:0 0 0 3px var(--accent-t)}
.rs-account .woocommerce-form__label-for-checkbox,
.woocommerce-account .woocommerce-form__label-for-checkbox,
.rs-login-page .woocommerce-form__label-for-checkbox{
  flex-direction:row;align-items:center;gap:9px;font-family:var(--sans);font-size:13.5px;letter-spacing:0;
  text-transform:none;color:var(--muted2);cursor:pointer}
.rs-account .woocommerce-form__input-checkbox,
.rs-login-page .woocommerce-form__input-checkbox{width:auto;accent-color:var(--accent)}

/* The WOOCOMMERCE OVERRIDES block above styles form fields at a higher
   specificity than the rules just above this one, so anything it also
   declares would win there and not here. These selectors match its weight
   and sit later in the file, which keeps every field on the account and
   sign-in screens governed by this section alone. */
body .rs-account form .form-row input.input-text,
body .rs-account form .form-row textarea,
body .rs-account form .form-row select,
body .rs-login-page form .form-row input.input-text{
  font-family:var(--sans) !important;font-size:14.5px !important;color:var(--ink) !important;
  background:var(--card) !important;border:1px solid var(--divider2) !important;
  border-radius:var(--rx) !important;padding:13px 15px !important}
body .rs-account form .form-row input.input-text:focus,
body .rs-account form .form-row textarea:focus,
body .rs-account form .form-row select:focus,
body .rs-login-page form .form-row input.input-text:focus{
  border-color:var(--accent) !important;outline:none !important;box-shadow:0 0 0 3px var(--accent-t) !important}

/* submit buttons match the theme's .rs-btn */
body .rs-account .button,body .rs-account button.button,body .rs-account button[type=submit],
body .woocommerce-account .button,body .woocommerce-account button.button,
body .rs-login-page .button,body .rs-login-page button[type=submit]{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;font-family:var(--sans) !important;
  font-weight:600 !important;font-size:14px;letter-spacing:.01em;background:var(--accent) !important;color:var(--on-accent) !important;
  border:none;padding:14px 28px;border-radius:var(--rx) !important;cursor:pointer;text-decoration:none !important;
  transition:background .2s,box-shadow .3s}
body .rs-account .button:hover,body .rs-account button[type=submit]:hover,
body .woocommerce-account .button:hover,body .rs-login-page button[type=submit]:hover{
  background:var(--accent-d) !important;color:var(--on-accent) !important;box-shadow:0 12px 26px var(--accent-t)}

/* ── notices ── */
.rs-account .woocommerce-message,.rs-account .woocommerce-info,.rs-account .woocommerce-error,
.woocommerce-account .woocommerce-message,.woocommerce-account .woocommerce-info,.woocommerce-account .woocommerce-error,
.rs-login-page .woocommerce-message,.rs-login-page .woocommerce-info,.rs-login-page .woocommerce-error{
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;list-style:none;
  background:var(--paper3);border:1px solid var(--divider);border-left:3px solid var(--accent);
  border-top:1px solid var(--divider);border-radius:var(--rx);padding:15px 18px;font-size:14.5px;
  line-height:1.6;color:var(--ink2);margin:0 0 18px}
/* WooCommerce absolutely positions a glyph at left:1.5em; with the padding
   above it lands on top of the first word, and the coloured rule already
   does that job. */
.rs-account .woocommerce-message::before,.rs-account .woocommerce-info::before,.rs-account .woocommerce-error::before,
.woocommerce-account .woocommerce-message::before,.woocommerce-account .woocommerce-info::before,
.woocommerce-account .woocommerce-error::before,
.rs-login-page .woocommerce-message::before,.rs-login-page .woocommerce-info::before,
.rs-login-page .woocommerce-error::before{display:none !important}
.rs-account .woocommerce-error,.woocommerce-account .woocommerce-error,
.rs-login-page .woocommerce-error{border-left-color:var(--alert)}
/* The action inside a notice is a button, not a text link. */
body .rs-account .woocommerce-message .button,body .rs-account .woocommerce-info .button,
body .rs-account .woocommerce-error .button,body .rs-login-page .woocommerce-message .button,
body .rs-login-page .woocommerce-info .button,body .woocommerce-account .woocommerce-message .button,
body .woocommerce-account .woocommerce-info .button{
  float:none;flex-shrink:0;order:2;margin:0;padding:11px 20px;font-size:12.5px;
  background:var(--accent) !important;color:var(--on-accent) !important;border:0 !important;text-decoration:none !important}

/* ── downloads / pagination ── */
.rs-account .woocommerce-pagination ul{display:flex;gap:6px;list-style:none;padding:0;margin:20px 0 0;border:0}
body .rs-account .woocommerce-pagination ul li a,
body .rs-account .woocommerce-pagination ul li span{
  display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 10px;
  border:1px solid var(--divider2);border-radius:var(--rx);font-family:var(--tech);font-size:13px;
  color:var(--ink2) !important;text-decoration:none !important}
body .rs-account .woocommerce-pagination ul li span.current{background:var(--accent);border-color:var(--accent);color:var(--on-accent) !important}

@media(max-width:900px){
  .rs-account-main{padding:30px 0 64px}
  .rs-account-grid{grid-template-columns:1fr;gap:16px}
  .rs-account .woocommerce-MyAccount-navigation,
  .woocommerce-account .woocommerce-MyAccount-navigation{position:static;padding:6px}
  .woocommerce-MyAccount-navigation ul{display:flex;flex-wrap:wrap;gap:4px}
  body .woocommerce-MyAccount-navigation li a{padding:9px 13px;font-size:12.5px}
  .woocommerce-MyAccount-navigation li--customer-logout{margin-top:0;padding-top:0;border-top:0}
  .rs-account-content{padding:24px 20px}
  .rs-account .woocommerce-Addresses,
  .woocommerce-account .woocommerce-Addresses{grid-template-columns:1fr}
}
@media(max-width:700px){
  /* WooCommerce keeps first/last name at 47% each, too tight on a phone. */
  .rs-account form .form-row-first,.rs-account form .form-row-last,
  .woocommerce-account form .form-row-first,.woocommerce-account form .form-row-last{float:none;width:100%}
}
@media(max-width:600px){
  /* Order tables become label/value rows rather than scrolling sideways. */
  .rs-account table.shop_table thead,
  .woocommerce-account table.shop_table thead{display:none}
  .rs-account table.shop_table tr,
  .woocommerce-account table.shop_table tr{display:block;border-bottom:1px solid var(--divider);padding:10px 0}
  .rs-account table.shop_table tr:last-child,
  .woocommerce-account table.shop_table tr:last-child{border-bottom:none}
  .rs-account table.shop_table td,
  .woocommerce-account table.shop_table td{display:flex;justify-content:space-between;gap:16px;border:none;padding:7px 15px}
  .rs-account table.shop_table td::before,
  .woocommerce-account table.shop_table td::before{
    content:attr(data-title);font-family:var(--tech);font-size:9.5px;letter-spacing:.18em;
    text-transform:uppercase;color:var(--muted);font-weight:600}
}

/* ══════════════════════════════════════════════════════════
   SIGN IN / CREATE ACCOUNT
   ══════════════════════════════════════════════════════════ */
.rs-login-page{padding:8px 0 40px}
.rs-login-grid{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--divider);border-radius:var(--r);overflow:hidden;background:var(--card)}

.rs-login-aside{background:var(--ink);color:var(--ti);padding:48px 44px;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.rs-login-aside::after{content:'';position:absolute;top:-140px;right:-140px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,var(--accent-t),transparent 62%);pointer-events:none}
.rs-login-aside > *{position:relative;z-index:1}
.rs-login-mk{width:42px;height:42px;margin-bottom:22px}
.rs-login-aside .k{font-family:var(--tech);font-size:10px;font-weight:500;letter-spacing:.34em;text-transform:uppercase;color:var(--accent-l);display:block;margin-bottom:14px}
.rs-login-aside h2{font-family:var(--disp);font-size:clamp(25px,2.8vw,33px);font-weight:400;letter-spacing:.004em;line-height:1.16;margin-bottom:16px;color:var(--ti)}
.rs-login-aside p{font-size:14.5px;line-height:1.75;color:var(--ti2);max-width:350px;margin:0}
.rs-login-perks{list-style:none;margin:28px 0 0;padding:0;display:flex;flex-direction:column;gap:13px}
.rs-login-perks li{display:flex;align-items:flex-start;gap:12px;font-size:13.5px;color:var(--ti2);line-height:1.55}
.rs-login-perks .ck{width:19px;height:19px;border-radius:50%;border:1px solid var(--accent);color:var(--accent-l);display:flex;align-items:center;justify-content:center;font-size:10px;flex-shrink:0;margin-top:1px}

.rs-login-panes{padding:44px 44px 40px;min-width:0}
.rs-login-tabs{display:flex;gap:5px;background:var(--paper2);border-radius:var(--rx);padding:5px;margin-bottom:28px}
.rs-login-tab{flex:1;text-align:center;padding:12px 14px;border-radius:var(--rx);font-family:var(--tech);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted2);background:transparent;border:none;cursor:pointer;transition:background .2s,color .2s}
.rs-login-tab.is-active{background:var(--card);color:var(--ink);box-shadow:0 2px 8px rgba(21,22,26,.07)}
.rs-login-pane{display:none}
.rs-login-pane.is-active{display:block}
.rs-login-pane h3{font-family:var(--disp);font-size:22px;font-weight:400;letter-spacing:.004em;margin-bottom:7px;color:var(--ink)}
.rs-login-pane .sub{font-size:13.5px;color:var(--muted);margin-bottom:24px;line-height:1.7}
.rs-login-page .rs-login-row{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:4px 0 22px}
.rs-login-page .rs-login-row label{font-family:var(--sans);font-size:13.5px;letter-spacing:0;text-transform:none;color:var(--muted2);display:flex;align-items:center;gap:8px;cursor:pointer}
body .rs-login-page .lost{font-family:var(--sans);font-size:13.5px;color:var(--accent-d) !important;text-decoration:none !important;font-weight:500 !important}
body .rs-login-page .lost:hover{text-decoration:underline !important}
body .rs-login-page button[type=submit]{width:100%;margin-top:4px}
.rs-login-fine{font-size:11.5px;line-height:1.7;color:var(--muted);margin-top:18px}
body .rs-login-fine a{color:var(--accent-d) !important;text-decoration:underline !important;font-weight:500 !important}

@media(max-width:900px){
  .rs-login-grid{grid-template-columns:1fr}
  .rs-login-aside{padding:34px 26px}
  .rs-login-aside p{max-width:none}
  .rs-login-panes{padding:32px 24px 34px}
}
@media(max-width:560px){
  .rs-login-aside{padding:28px 20px}
  .rs-login-panes{padding:26px 18px 30px}
  .rs-login-tab{font-size:10px;letter-spacing:.12em;padding:11px 8px}
}
