/** Shopify CDN: Minification failed

Line 447:32 Unexpected "/"
Line 454:64 Unterminated string token
Line 464:23 Expected identifier but found "%"
Line 465:35 Expected identifier but found whitespace

**/
/* ============================================================
   ARTEVERK — theme.css · THE TOKEN LAYER (R2.1 foundation)
   ------------------------------------------------------------
   Single source of truth for the whole theme's design language.
   Ported VERBATIM from the approved "Direction C" homepage
   prototype (docs/dtc/rebuild/prototypes/direction-c.html):
   palette, type system, spacing, radii, easing, shadows.

   Every section/snippet references the tokens below — never
   hard-code a colour or font elsewhere. To re-skin the store,
   edit this file (or the operator-exposed settings that feed it).

   Fonts are SELF-HOSTED woff2 (see @font-face block) to remove
   the render-blocking Google Fonts <link> the council flagged as
   a Core Web Vitals problem. The display cuts used above the fold
   are <link rel="preload">-ed in layout/theme.liquid.
   ============================================================ */

/* ------------------------------------------------------------
   1 · SELF-HOSTED FONTS (woff2, font-display:swap)
   Only the LATIN subset of each face is shipped — that is all
   the storefront copy needs, and it keeps each file ~20-46 KB.
   Bodoni Moda 400 & 500 resolve to the same optical-size cut;
   Cormorant 300 & 400 likewise. Kept as distinct @font-face
   weights so CSS weight requests map cleanly.
   ------------------------------------------------------------ */
@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url('bodoni-moda-latin-400.woff2') format('woff2');
}
@font-face {
  font-family: 'Bodoni Moda';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url('bodoni-moda-latin-500.woff2') format('woff2');
}
@font-face {
  font-family: 'Bodoni Moda';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url('bodoni-moda-latin-italic-400.woff2') format('woff2');
}
/* Montserrat ships one latin cut covering 300-600 (variable font). */
@font-face {
  font-family: 'Montserrat';
  font-style: normal;
  font-weight: 300 600;
  font-display: swap;
  src: url('montserrat-latin.woff2') format('woff2');
}
/* EB Garamond — warm reading serif (replaces Cormorant in the elevated identity). */
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:400;font-display:swap;src:url('eb-garamond-latin-400.woff2') format('woff2')}
@font-face{font-family:'EB Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('eb-garamond-latin-500.woff2') format('woff2')}
@font-face{font-family:'EB Garamond';font-style:italic;font-weight:400;font-display:swap;src:url('eb-garamond-latin-italic-400.woff2') format('woff2')}

/* ------------------------------------------------------------
   2 · DESIGN TOKENS  (Direction C :root — ported verbatim)
   ------------------------------------------------------------ */
:root {
  /* Dark stage — hero + cinematic moments */
  --void:#0C0A08;
  --void-2:#131009;
  --void-3:#1A150D;
  --bone:#F3ECE0;
  --bone-soft:#A89C89;

  /* Warm editorial body */
  --paper:#EDE6D8;
  --paper-deep:#E3DACA;
  --ink:#211D18;
  --ink-soft:#5A5046;
  --line:#DDD3C5;

  /* Brass accent — bridges both worlds */
  --brass:var(--bronze);    /* alias -> bronze (one accent, one source of truth) */
  --brass-deep:var(--bronze-deep);
  --brass-lum:var(--bronze-lum); /* on dark */
  --brass-lum-2:#D9B681;

  /* ELEVATED identity (Phase-1, additive — see DESIGN.md). 'The gallery and the loom.' */
  --raw-wool:#EDE6D8; --raw-wool-deep:#E3DACA; --chalk:#F7F3EC;
  --espresso:#1A1510; --espresso-2:#241D15; --walnut-ground:#3A2C1C;
  --bronze:#8A6A3C; --bronze-deep:#6E552F; --bronze-lum:#C8A268;
  --ink-2:#5A5046; --bone-2:#CBBFA9;
  --font-serif-read:'EB Garamond', Georgia, 'Times New Roman', serif;

  /* ----------------------------------------------------------
     ELEVATE brand skin (LOCKED 2026-06-02, R2.2)
     The OFFICIAL Arteverk brand palette. The brass tones above
     remain the warm heritage-luxury *texture*; the blue below is
     the signature ACCENT — links, focus, active states, the
     financing chip, and the swoosh accents. Heading ink is pure
     black per the brand book.
     ---------------------------------------------------------- */
  --brand-blue:#8A6A3C;         /* UI accent -> bronze; the official blue lives only in the logo mark */
  --brand-blue-soft:#C8A268;    /* bronze-lum (on dark grounds) */
  --brand-border:#CCCCCC;       /* brand-book neutral border */
  --ink-head:var(--ink);        /* warm near-black, not pure #000 */

  /* Font stacks (token-level so a section never names a family directly) */
  --font-display:'Bodoni Moda', Georgia, 'Times New Roman', serif;
  --font-serif:'EB Garamond', Georgia, 'Times New Roman', serif;
  --font-ui:'Montserrat', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;

  /* Fluid type scale — clamp(min, fluid, max). Names map to use, not size. */
  --t-eyebrow:0.64rem;
  --t-body:1rem;
  --t-body-lg:clamp(1.02rem, 0.98rem + 0.3vw, 1.1rem);
  --t-card-name:clamp(1.4rem, 1.3rem + 0.6vw, 1.55rem);
  --t-h3:clamp(1.5rem, 1.3rem + 1vw, 1.95rem);
  --t-h2:clamp(2.4rem, 1.9rem + 2.6vw, 4.2rem);
  --t-h1:clamp(2.8rem, 2rem + 4vw, 5rem);
  --t-display:clamp(3.2rem, 2rem + 6vw, 7.5rem);

  /* Spacing scale */
  --space-1:0.4rem;
  --space-2:0.7rem;
  --space-3:1.1rem;
  --space-4:1.75rem;
  --space-5:2.5rem;
  --space-6:4rem;
  --space-section:8rem;            /* vertical rhythm of a full section */
  --wrap-max:1320px;
  --wrap-pad:2.5rem;

  /* Radii */
  --r-lg:2rem;
  --r-md:calc(2rem - 0.5rem);
  --r-pill:999px;

  /* Easing / timing — Direction C signatures */
  --ease:cubic-bezier(0.32,0.72,0,1);
  --ease-soft:cubic-bezier(0.22,0.61,0.36,1);
  --t-fast:0.4s;
  --t-mid:0.55s;
  --t-slow:0.9s;

  /* Shadows */
  --shadow-card:0 40px 80px -42px rgba(33,29,24,.5);
  --shadow-plate:0 40px 90px -50px rgba(33,29,24,.5);
  --shadow-inset:inset 0 1px 1px rgba(255,255,255,.6);
}

/* ------------------------------------------------------------
   3 · RESET + BASE
   ------------------------------------------------------------ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:var(--font-ui);
  font-weight:400;
  line-height:1.6;
  overflow-x:hidden;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
/* Focus ring uses the official brand blue (a11y: high-contrast, on-brand). */
:focus-visible{outline:2px solid var(--brand-blue);outline-offset:2px}
::selection{background:var(--brand-blue);color:#fff}

/* Skip link (a11y) — visually hidden until focused */
.skip-link{
  position:absolute;left:1rem;top:-3rem;z-index:100;
  background:var(--ink);color:var(--paper);
  font-family:var(--font-ui);font-weight:600;font-size:.8rem;letter-spacing:.04em;
  padding:.7rem 1.2rem;border-radius:var(--r-pill);
  transition:top var(--t-fast) var(--ease);
}
.skip-link:focus{top:1rem}

/* Visually-hidden utility (screen-reader only) */
.visually-hidden{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;
}

/* Film-grain texture — fixed, pointer-events:none (perf-safe, ported from C) */
body::after{
  content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.04;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ------------------------------------------------------------
   4 · TYPE SYSTEM  (Direction C utility classes — verbatim)
   ------------------------------------------------------------ */
.didone{font-family:var(--font-display)}
.display{font-family:var(--font-display);font-weight:400;line-height:1.0;letter-spacing:-.005em}
.serif{font-family:var(--font-serif)}
.editorial{font-family:var(--font-serif);font-weight:400;line-height:1.05;letter-spacing:-.01em}
.eyebrow{
  font-family:var(--font-ui);font-weight:500;font-size:var(--t-eyebrow);
  text-transform:uppercase;letter-spacing:.32em;color:var(--brass-deep);
}
.eyebrow-d{color:var(--brass-lum)}

/* ------------------------------------------------------------
   4b · ELEVATE BRAND ACCENTS
   The brand blue is the signature accent. Brass stays the warm
   heritage texture (badges, dividers, editorial italics); blue
   carries interaction + identity: inline links, the active nav
   underline, the financing chip, and the "swoosh" accent rule.
   Section files reference these classes so the accent is locked
   in ONE place.
   ------------------------------------------------------------ */
/* Inline editorial link inside body copy. */
.brand-link{color:var(--bronze-deep);border-bottom:1px solid color-mix(in srgb,var(--brand-blue) 35%,transparent);transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.brand-link:hover{border-color:var(--brand-blue)}
/* The signature swoosh accent rule (echoes the logo's stroke). */
.swoosh-accent{display:inline-block;width:2.4rem;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--brand-blue),var(--brand-blue-soft))}
/* Pay-over-time / financing chip — brand blue, used on the PDP price area. */
.pay-chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--brand-blue);color:#fff;
  font-family:var(--font-ui);font-weight:600;font-size:.56rem;letter-spacing:.04em;
  padding:.18rem .5rem;border-radius:.35rem}

/* ------------------------------------------------------------
   5 · LAYOUT PRIMITIVES
   ------------------------------------------------------------ */
.wrap{max-width:var(--wrap-max);margin:0 auto;padding:0 var(--wrap-pad);position:relative;z-index:1}
.section{padding:var(--space-section) 0;position:relative;z-index:1}
.stage{background:var(--void);color:var(--bone);position:relative;overflow:hidden}
.stage .eyebrow{color:var(--brass-lum)}
@media(max-width:768px){
  :root{--wrap-pad:1.25rem;--space-section:4.75rem}
}

/* ------------------------------------------------------------
   6 · SCROLL REVEAL  (paired with theme.js IntersectionObserver)
   Respects prefers-reduced-motion; <noscript> fallback in layout.
   ------------------------------------------------------------ */
.reveal{
  transition:opacity var(--t-slow) var(--ease-soft),
             transform var(--t-slow) var(--ease-soft),
             filter var(--t-slow) var(--ease-soft);
}
/* Hide ONLY when JS is confirmed (html.js set before paint, theme.liquid:23).
   No-JS, crawlers, and JS-failure all see content at full opacity — reveal is
   pure enhancement, never a visibility gate (DESIGN.md motion rule). */
html.js .reveal:not(.in){opacity:0;transform:translateY(2.5rem);filter:blur(8px)}
.reveal.in{opacity:1;transform:none;filter:blur(0)}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1;transform:none;filter:none;transition:none}
  html{scroll-behavior:auto}
  *{animation:none!important}
  *{transition:none !important}
}

/* ============================================================
   7 · SHARED COMPONENTS
   Components used by more than one section live here so the
   token layer stays the single styling source. Section-specific
   layout (hero, bento, etc.) lives in the section's own
   {% stylesheet %} block in R2.2.
   ============================================================ */

/* ---- Buttons ---- */
.btn-primary{
  display:inline-flex;align-items:center;gap:.85rem;
  background:var(--bone);color:var(--void);
  font-family:var(--font-ui);font-weight:600;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.8rem .8rem .8rem 1.7rem;border-radius:var(--r-pill);
  transition:transform var(--t-mid) var(--ease),background var(--t-mid) var(--ease);
}
.btn-primary .ring{width:34px;height:34px;border-radius:50%;background:rgba(12,10,8,.12);display:grid;place-items:center;transition:transform var(--t-mid) var(--ease)}
.btn-primary:hover{transform:scale(.98);background:var(--brass-lum-2)}
.btn-primary:active{transform:scale(.95)}
.btn-primary:hover .ring{transform:translateX(4px) translateY(-2px)}

.btn-solid{
  display:inline-flex;align-items:center;gap:.85rem;
  background:var(--ink);color:var(--paper);border:none;
  border-radius:var(--r-pill);padding:.8rem .8rem .8rem 1.7rem;
  font-family:var(--font-ui);font-weight:600;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  width:max-content;transition:transform var(--t-mid) var(--ease),background var(--t-mid) var(--ease);
}
.btn-solid .ring{width:36px;height:36px;border-radius:50%;background:rgba(246,241,233,.16);display:grid;place-items:center;transition:transform var(--t-mid) var(--ease)}
.btn-solid:hover{background:var(--brass-deep)}
.btn-solid:active{transform:scale(.98)}
.btn-solid:hover .ring{transform:translateX(4px) translateY(-2px)}

.btn-line{
  display:inline-flex;align-items:center;gap:.7rem;
  font-family:var(--font-ui);font-weight:500;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;
  color:var(--bone);border-bottom:1px solid rgba(243,236,224,.18);padding-bottom:.4rem;
  transition:border-color var(--t-fast) var(--ease);
}
.btn-line:hover{border-color:var(--brass-lum)}

.text-link{
  display:inline-flex;align-items:center;gap:.6rem;width:max-content;
  font-family:var(--font-ui);font-weight:500;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--brass-deep);transition:gap var(--t-fast) var(--ease);
}
.text-link::after{content:"→";transition:transform var(--t-fast) var(--ease)}
.text-link:hover::after{transform:translateX(5px)}

/* ---- Section heads (editorial) ---- */
.shead{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3.75rem;gap:2rem;flex-wrap:wrap}
.shead h2{font-family:var(--font-serif);font-weight:400;font-size:var(--t-h2);line-height:1.02;margin-top:1rem}
.shead h2 em{font-style:italic;color:var(--brass-deep)}
.shead p{color:var(--ink-soft);max-width:42ch}
.shead .right{flex-shrink:0;max-width:min(38ch,100%)}
.shead-center{text-align:center;max-width:640px;margin:0 auto 4rem}
.shead-center h2{font-family:var(--font-serif);font-weight:400;font-size:var(--t-h2);line-height:1.02;margin:1rem 0}
.shead-center h2 em{font-style:italic;color:var(--brass-deep)}
.shead-center p{color:var(--ink-soft);font-size:var(--t-body-lg)}

/* ============================================================
   8 · PRODUCT CARD  (the OOAK card — snippets/product-card.liquid)
   The single card system reused by collection grid, related
   products, and homepage rails. Markup is in the snippet; this
   is its full styling, ported from the prototype card + the
   collection-grid per-card favorite control.
   ============================================================ */
.card{
  position:relative; /* anchors the .card-fav heart, which is now a SIBLING of .card-core (a11y) */
  background:rgba(33,29,24,.035);border:1px solid var(--line);border-radius:var(--r-lg);padding:.6rem;
  transition:transform .7s var(--ease),box-shadow .7s var(--ease),border-color .6s var(--ease);
}
.card:hover{
  transform:translateY(-8px);border-color:rgba(154,123,79,.45);box-shadow:var(--shadow-card);
}
.card-core{
  display:block;background:var(--paper);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-inset);
}
.card-img{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--paper-deep)}
.card-img img{width:100%;height:100%;object-fit:cover;transition:opacity .6s var(--ease),transform 1.2s var(--ease-soft)}
.card-img img.alt{position:absolute;inset:0;opacity:0}
.card:hover .card-img img.base{opacity:0}
.card:hover .card-img img.alt{opacity:1;transform:scale(1.05)}

/* Badges — 1-of-1 (scarcity) + provenance (Antique / Vintage / Masterpiece).
   Frosted warm-dark chips with a hairline bronze edge: legible over any rug
   image, quiet and material. Scarcity + masterpiece carry a small bronze mark. */
.badge{
  position:absolute;top:1rem;z-index:2;display:inline-flex;align-items:center;gap:.42rem;line-height:1;
  font-family:var(--font-ui);font-weight:600;font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;
  padding:.5rem .82rem;border-radius:var(--r-pill);
  background:rgba(18,13,9,.5);backdrop-filter:blur(10px) saturate(1.05);-webkit-backdrop-filter:blur(10px) saturate(1.05);
  border:1px solid rgba(200,162,104,.32);color:var(--bone);box-shadow:0 10px 24px -16px rgba(0,0,0,.65);
}
.badge .mk{font-size:.5rem;color:var(--bronze-lum);transform:translateY(-.5px)}
.badge.ooak{left:1rem;color:var(--bronze-lum)}
.badge.antique,.badge.vintage,.badge.master{left:auto;right:1rem}
.badge.antique,.badge.vintage{color:var(--bone-2)}
.badge.master{color:var(--bronze-lum);border-color:rgba(200,162,104,.55)}

/* Sold-but-kept-visible (honest 1-of-1 storytelling). */
.sold-ribbon{position:absolute;inset:0;z-index:3;background:rgba(18,13,9,.5);backdrop-filter:saturate(.6) blur(1px);display:grid;place-items:center}
.sold-ribbon span{
  font-family:var(--font-serif-read);font-style:italic;font-size:1.5rem;color:var(--bone);
  border:1px solid rgba(200,162,104,.5);padding:.5rem 1.7rem;letter-spacing:.02em;background:rgba(18,13,9,.35);
}

/* Per-card favorite heart (appears on hover, always visible on touch).
   Now a SIBLING of .card-core, positioned against .card (position:relative).
   Offset = card padding (.6rem) + the image-inset it used to have (.9rem). */
.card-fav{
  position:absolute;top:1.5rem;right:1.5rem;z-index:5;width:36px;height:36px;border-radius:50%;
  display:grid;place-items:center;background:rgba(246,241,233,.82);backdrop-filter:blur(6px);
  border:1px solid rgba(33,29,24,.1);color:var(--ink);cursor:pointer;opacity:0;transform:translateY(-4px);
  transition:opacity .45s var(--ease),transform .45s var(--ease),background .35s var(--ease),color .35s var(--ease),border-color .35s var(--ease);
}
.card:hover .card-fav,.card-fav:focus-visible{opacity:1;transform:none}
.card-fav .ch{font-size:1.05rem;line-height:1;transition:transform .35s var(--ease)}
.card-fav:hover{background:var(--paper);color:var(--brass-deep);border-color:var(--brass)}
.card-fav:hover .ch{transform:scale(1.14)}
.card-fav:active{transform:scale(.92)}
.card-fav.saved{opacity:1;transform:none;background:var(--brass-deep);border-color:var(--brass-deep);color:var(--paper)}
.card-fav.saved .ch{font-size:0}
/* Touch target: ≥44px hit area on coarse pointers, visual heart unchanged. */
@media(pointer:coarse){.card-fav{width:44px;height:44px;top:1.1rem;right:1.1rem}}
.card-fav.saved .ch::before{content:"♥";font-size:1.05rem}
.card-fav.bump .ch{animation:favpop .5s var(--ease-soft)}
@media(hover:none){.card-fav{opacity:1;transform:none}}

/* Card body */
.card-body{padding:1.4rem 1.4rem 1.6rem}
.card-collection{font-family:var(--font-ui);font-weight:500;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-deep)}
.card-name{font-family:var(--font-display);font-size:var(--t-card-name);margin:.45rem 0 .3rem;line-height:1.05;letter-spacing:-.005em}
.card-descriptor,.card-meta{font-size:.78rem;color:var(--ink-soft);line-height:1.45}
.card-foot{display:flex;justify-content:space-between;align-items:baseline;margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--line)}
.card-price{font-family:var(--font-display);font-size:1.25rem}
.card-price.sold{color:var(--ink-soft)}

/* Rating stars — only rendered when real review data exists (never fake) */
.stars{font-size:.74rem;color:var(--brass);display:flex;align-items:center;gap:.4rem}
.stars b{color:var(--ink);font-weight:500}
.stars span{color:var(--ink-soft)}
.stars .star-empty{color:var(--line)}

.row-cta{text-align:center;margin-top:3.5rem}

/* favpop is shared by card-fav + the PDP favorite button (R2.2) */
@keyframes favpop{0%{transform:scale(.6)}55%{transform:scale(1.3)}100%{transform:scale(1)}}

/* ============================================================
   9 · PROVENANCE LINE  (snippets/provenance-line.liquid)
   The one honest claim per rug. Quiet, editorial styling so it
   reads as a fact, not marketing.
   ============================================================ */
.provenance-line{
  font-family:var(--font-serif);font-style:italic;font-weight:400;
  font-size:1.05rem;line-height:1.45;color:var(--ink-soft);
}
.provenance-line strong{color:var(--ink);font-weight:500;font-style:normal}

/* ============================================================
   Shopify Forms inline embed (<shopify-forms-embed>, shadow DOM)
   ------------------------------------------------------------
   The form's fields/fonts/button live inside a shadow root, so they
   can ONLY be styled from the Forms app (Colors + Fonts settings).
   Here we frame the embed's OUTER wrapper into an on-brand card so an
   inline form sits centered and contained within the page.
   ============================================================ */
.shopify-section:has([data-form-root]){padding:.5rem 1.5rem 3rem}
[data-form-root]{
  max-width:640px;margin:0 auto;
  background:rgba(33,29,24,.035);
  border:1px solid var(--line);
  border-radius:var(--r-lg);
  padding:2.6rem;
}
@media(max-width:560px){[data-form-root]{padding:1.6rem}}

/* ============================================================
   SECTION STYLES — merged in from the 47 per-section
   {% stylesheet %} blocks (2026-08-11).

   WHY: Shopify compiles every section {% stylesheet %} into
   /cdn/shop/t/*/compiled_assets/styles.css and injects it as a
   SECOND render-blocking <link>, discovered late via
   content_for_header. Lighthouse mobile attributed 1,932 ms to
   that one request, and the homepage LCP element (the hero H1)
   was text waiting on it — 2,460 ms of element render delay.

   This is NOT a bytes-for-latency trade. Shopify bundled every
   section's {% stylesheet %} globally, onto every page, whether
   or not that section rendered — so these ~157 KB were already
   shipping everywhere. Merging them here changes no bytes and no
   cascade; it removes one render-blocking HTTP request, and one
   late serial discovery, from every page load.

   Order is alphabetical by source file, which is how Shopify
   compiled them, so the cascade is unchanged. Each block keeps a
   /* ===== path ===== */ marker so it can be traced back.

   DO NOT reintroduce {% stylesheet %} in a section — it silently
   re-creates the blocking request. Add styles here instead.
   ============================================================ */

/* ===== sections/about-opener.liquid ===== */
.about-opener{position:relative;min-height:100dvh;display:flex;align-items:flex-end;overflow:hidden;background:var(--void);color:var(--bone)}
.about-opener .opener-img{position:absolute;inset:0;z-index:0}
.about-opener .opener-img img,.about-opener .opener-img .ri-placeholder{width:100%;height:100%;object-fit:cover;object-position:center 40%}
.about-opener .opener-photo{animation:about-ozoom 24s var(--ease-soft) forwards}
@keyframes about-ozoom{from{transform:scale(1.12)}to{transform:scale(1)}}
.about-opener .opener-scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(0deg,rgba(12,10,8,.92) 0%,rgba(12,10,8,.32) 46%,rgba(12,10,8,.55) 100%),
             linear-gradient(90deg,rgba(12,10,8,.6) 0%,transparent 60%)}
.about-opener .opener-content{position:relative;z-index:2;max-width:860px;padding-bottom:6.5rem}
.about-opener .eyebrow{color:var(--brass-lum)}
.about-opener h1{font-size:clamp(2.7rem,6.4vw,6rem);margin:1.6rem 0;color:var(--bone)}
.about-opener h1 em{font-style:italic;color:var(--brass-lum-2)}
.about-opener p{font-size:1.1rem;color:var(--bone-soft);max-width:50ch;font-weight:300;letter-spacing:.01em}
.about-opener .opener-meta{display:flex;gap:3.2rem;margin-top:2.8rem;flex-wrap:wrap}
.about-opener .opener-meta .m .n{font-family:var(--font-display);font-size:2.4rem;line-height:1;color:var(--bone)}
.about-opener .opener-meta .m .l{font-family:var(--font-ui);font-weight:500;font-size:.56rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-soft);margin-top:.45rem;max-width:16ch}
.about-opener .opener-fold{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;
  font-family:var(--font-ui);font-weight:500;font-size:.56rem;letter-spacing:.34em;text-transform:uppercase;color:rgba(243,236,224,.55);
  display:flex;flex-direction:column;align-items:center;gap:.6rem}
.about-opener .opener-fold::after{content:"";width:1px;height:42px;background:linear-gradient(rgba(243,236,224,.6),transparent);animation:about-fold 2.4s var(--ease-soft) infinite}
@keyframes about-fold{0%,100%{opacity:.3;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}
@media(prefers-reduced-motion:reduce){.about-opener .opener-photo{animation:none}.about-opener .opener-fold::after{animation:none}}
@media(max-width:768px){.about-opener .opener-fold{display:none}.about-opener .opener-content{padding-bottom:4rem}.about-opener .opener-meta{gap:2rem}}

/* ===== sections/about-story.liquid ===== */
.about-story{background:var(--paper);color:var(--ink);padding:clamp(3.5rem, 2rem + 7vw, 8rem) 0}
.about-story .as-wrap{max-width:880px}
.about-story .as-eyebrow{color:var(--bronze);margin-bottom:1.1rem}
.about-story .as-lede{font-family:var(--font-display);font-weight:400;font-size:clamp(2rem, 1.3rem + 3vw, 3.6rem);line-height:1.12;letter-spacing:-.015em;color:var(--ink-head);margin:0 0 1.4rem;max-width:18ch}
.about-story .as-lede em{font-style:italic;color:var(--bronze)}
.about-story .as-intro{font-family:var(--font-serif-read);font-size:clamp(1.06rem, 1rem + .4vw, 1.28rem);line-height:1.66;color:var(--ink-soft);max-width:60ch}
.about-story .as-intro em{font-style:italic;color:var(--bronze-deep)}

/* The thread */
.about-story .as-thread{position:relative;margin:clamp(3rem, 2rem + 4vw, 5rem) 0 0}
.about-story .as-rail{position:absolute;top:.6rem;bottom:2.4rem;left:118px;width:1px;background:linear-gradient(var(--bronze),var(--paper-deep))}
.about-story .as-stop{position:relative;display:flex;gap:2rem;margin-bottom:clamp(2.4rem, 1.6rem + 2vw, 3.4rem)}
.about-story .as-year{flex:none;width:100px;text-align:right;font-family:var(--font-display);font-weight:400;font-size:clamp(1.7rem, 1.2rem + 1.6vw, 2.5rem);line-height:1;color:var(--ink-head);padding-top:.05em}
.about-story .as-dot{position:absolute;left:114px;top:.55rem;width:9px;height:9px;border-radius:50%;background:var(--bronze);box-shadow:0 0 0 5px var(--paper)}
.about-story .as-stop.is-accent .as-dot{background:var(--bronze-lum);box-shadow:0 0 0 5px var(--paper),0 0 0 8px rgba(200,162,104,.28)}
.about-story .as-stop.is-accent .as-year{color:var(--bronze)}
.about-story .as-body{flex:1;min-width:0;padding-left:2rem}
.about-story .as-place{font-family:var(--font-ui);font-weight:600;font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze);margin-bottom:.5rem}
.about-story .as-text{font-family:var(--font-serif-read);font-size:clamp(1rem, .96rem + .3vw, 1.12rem);line-height:1.64;color:var(--ink-soft);overflow-wrap:anywhere}
.about-story .as-text a{color:var(--bronze-deep);text-decoration:underline;text-underline-offset:2px}
.about-story .as-photo{margin-top:1.1rem;max-width:560px}
.about-story .as-photo .as-img{width:100%;height:auto;border-radius:5px;display:block;filter:saturate(.96)}

/* Closing family portrait */
.about-story .as-portrait{margin:clamp(3rem, 2rem + 4vw, 5rem) auto 0;max-width:880px}
.about-story .as-portrait-img{width:100%;height:auto;border-radius:8px;display:block;filter:saturate(.97)}
.about-story .as-portrait-cap{font-family:var(--font-serif-read);font-style:italic;font-size:1rem;color:var(--bronze-deep);text-align:center;margin-top:1rem}

/* The name reveal */
.about-story .as-name{margin:clamp(3rem, 2rem + 4vw, 5rem) auto 0;background:var(--void);border-radius:10px;padding:clamp(2.4rem, 1.6rem + 4vw, 4rem) 1.5rem;text-align:center;color:var(--bone)}
.about-story .as-name-eq{font-family:var(--font-display);font-weight:400;font-size:clamp(1.9rem, 1.2rem + 3vw, 3.2rem);letter-spacing:.01em;line-height:1.1;display:flex;align-items:center;justify-content:center;gap:.5em;flex-wrap:wrap}
.about-story .as-name-eq .plus{color:var(--bronze-lum);opacity:.7;font-style:normal}
.about-story .as-name-eq .brand{color:var(--bronze-lum)}
.about-story .as-name-body{font-family:var(--font-serif-read);font-size:clamp(1rem, .96rem + .4vw, 1.16rem);line-height:1.66;color:var(--bone-2);max-width:48ch;margin:1.4rem auto 0}
.about-story .as-name-body strong{color:var(--bronze-lum);font-weight:400}

/* Footer + sign-off */
.about-story .as-foot{margin-top:clamp(2.4rem, 1.6rem + 2vw, 3.4rem);max-width:60ch}
.about-story .as-foot .rte{font-family:var(--font-serif-read);font-size:1.06rem;line-height:1.66;color:var(--ink-soft)}
.about-story .as-sign{font-family:var(--font-serif-read);font-style:italic;color:var(--bronze);margin-top:1.2rem;font-size:1.1rem}

@media (max-width:760px){
  .about-story .as-rail{left:64px}
  .about-story .as-stop{gap:1rem}
  .about-story .as-year{width:54px;font-size:1.45rem}
  .about-story .as-dot{left:60px;top:.4rem}
  .about-story .as-body{padding-left:1.4rem}
}

/* ===== sections/book-viewing.liquid ===== */
.bv-sec{background:var(--paper-deep)}
.bv-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:4rem;align-items:start}
@media(max-width:920px){.bv-grid{grid-template-columns:1fr;gap:2.5rem}}
.bv-intro .editorial{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h3);line-height:1.05;margin:.5rem 0 1.1rem}
.bv-intro .editorial em{font-style:italic;color:var(--brass-deep)}
.bv-lede{color:var(--ink-soft);font-size:1.05rem;line-height:1.6;margin-bottom:1.4rem}
.bv-modes{list-style:none;display:flex;flex-direction:column;gap:.9rem;margin:0 0 1.5rem;padding:0}
.bv-modes li{position:relative;padding-left:1.4rem;color:var(--ink-soft);font-size:.95rem;line-height:1.5}
.bv-modes li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--brass)}
.bv-modes strong{color:var(--ink);font-weight:600}
.bv-addr{color:var(--ink-soft);font-size:.9rem;border-top:1px solid var(--line);padding-top:1.2rem}
.bv-addr p{margin:0;line-height:1.6}
.bv-formwrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:2.2rem;box-shadow:var(--shadow-inset)}
/* Deep links to #request-viewing land under the sticky header without this —
   measured at -40px, i.e. the top of the panel was already off-screen. */
.bv-formwrap{scroll-margin-top:7rem}
/* design audit F-002: every "Book a viewing" link lands on #book; clear the sticky header */
#book{scroll-margin-top:6.5rem}
@media(max-width:560px){.bv-formwrap{padding:1.5rem}}
.bv-form{display:flex;flex-direction:column;gap:1.1rem}
.bv-modefield{border:none;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
@media(max-width:560px){.bv-modefield{grid-template-columns:1fr}}
.bv-modefield legend{font-family:var(--font-ui);font-weight:600;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);margin-bottom:.7rem;padding:0;grid-column:1 / -1}
.bv-radio{position:relative;display:flex;align-items:center;gap:.6rem;border:1px solid var(--line);border-radius:var(--r-md);padding:.9rem 1rem;cursor:pointer;transition:border-color var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}
.bv-radio input{accent-color:var(--brass-deep);width:1rem;height:1rem;flex:0 0 auto}
.bv-radio span{font-family:var(--font-ui);font-weight:600;font-size:.82rem;color:var(--ink)}
.bv-radio span em{font-style:normal;font-weight:400;color:var(--ink-soft)}
.bv-radio:has(input:checked){border-color:var(--brass);background:rgba(154,123,79,.06)}
.bv-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:560px){.bv-row{grid-template-columns:1fr}}
/* City / State / ZIP read as ONE address, not three unrelated questions — and the two short ones do
   not deserve a full row each. Collapses with .bv-row on narrow screens via the rule below it. */
/* ── Enquiry forms: one column when there is no aside to justify two ───────────────
   Measured across all seven pages using the section: none had a bullet or an address,
   so the two-column grid produced a heading, one sentence, and a column of dead space.
   A form is also easier to fill at 620px than at 1150px — the single column is the
   better shape, not merely the tidier one. */
.enq-single{max-width:680px;margin:0 auto}
.enq-head{margin-bottom:1.6rem}
.enq-head .editorial{margin-top:.4rem}
/* The lede is prose, so it keeps a reading measure even though the column is narrow. */
.enq-head .bv-lede{max-width:52ch;margin-bottom:0}

/* Fields sat on --paper-deep inside a --paper panel: two neighbouring beiges, so the
   inputs read as faint smudges rather than things you can type into. A slightly firmer
   edge is all that is needed — the fill still carries the warmth. */
.bv-formwrap .bv-field input,
.bv-formwrap .bv-field textarea{border-color:var(--line-strong,#d9cfc0)}
.bv-formwrap .bv-field input:hover,
.bv-formwrap .bv-field textarea:hover{border-color:var(--brass)}

/* ── The file input was raw browser chrome ─────────────────────────────────────────
   "Choose Files · no files selected" in the OS default face, mid-panel, is the single
   loudest thing on the page and belongs to no design system at all. Styling
   ::file-selector-button keeps the native control (and its keyboard + screen-reader
   behaviour) while giving the button the same language as everything around it. */
.bv-field input[type=file]{
  background:var(--paper-deep);border:1px dashed var(--line-strong,#d9cfc0);
  border-radius:var(--r-md);padding:.55rem .6rem;font-family:var(--font-ui);
  font-size:.85rem;color:var(--ink-soft);cursor:pointer;width:100%}
.bv-field input[type=file]:hover{border-color:var(--brass)}
.bv-field input[type=file]::file-selector-button{
  font-family:var(--font-ui);font-weight:600;font-size:.68rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--paper);background:var(--ink);
  border:0;border-radius:999px;padding:.5rem .95rem;margin-right:.75rem;cursor:pointer;
  transition:background var(--t-fast) var(--ease)}
.bv-field input[type=file]:hover::file-selector-button{background:var(--brass-deep)}

/* A group label that introduces several fields is not a field label — it needs the
   space to read as a heading rather than as body text that happened to wrap. */
/* A row holding ONE field left half of itself empty — the phone input sat beside a gap
   on every service form, because those forms have no second question to put there. A
   lone child spans the row instead. */
.bv-row > .bv-field:only-child{grid-column:1 / -1}
.bv-grouplab{margin:.5rem 0 -.2rem}
.bv-grouplab em{font-style:normal;font-weight:400;text-transform:none;letter-spacing:0;
  color:var(--ink-soft)}

/* A lone checkbox is not a choice between things — it should not wear the pill that the
   in-person/video pair wears, or it reads as half of a missing pair. */
.bv-sms-optin{border:0;padding:.2rem 0;background:none}
.bv-sms-optin span em{font-style:normal;color:var(--ink-soft)}

/* Consent is TWO INDEPENDENT choices. Side by side in a 2-up grid they read as an
   either/or, like the in-person/video pair above them. Stacked, they read as what they
   are: two boxes you may tick, neither, or both. */
.bv-consent{grid-template-columns:1fr!important;gap:.55rem}
.bv-consent .bv-radio{padding:.7rem .9rem}

.bv-row-3{grid-template-columns:2fr 1fr 1fr}
@media(max-width:560px){.bv-row-3{grid-template-columns:1fr}}
.bv-field{display:flex;flex-direction:column;gap:.4rem}
.bv-lab{font-family:var(--font-ui);font-weight:600;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.bv-lab em{font-style:normal;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-soft)}
.bv-field input,.bv-field textarea{font-family:var(--font-ui);font-size:.92rem;color:var(--ink);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--r-md);padding:.8rem .9rem;width:100%;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.bv-field input::placeholder,.bv-field textarea::placeholder{color:var(--ink-soft);opacity:.7}
.bv-field input:focus,.bv-field textarea:focus{outline:none;border-color:var(--brand-blue);box-shadow:0 0 0 2px rgba(0,46,188,.2)}
.bv-submit{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;align-self:flex-start;background:var(--ink);color:var(--paper);border:none;border-radius:var(--r-pill);padding:.95rem 1.05rem .95rem 1.8rem;font-family:var(--font-ui);font-weight:600;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background var(--t-mid) var(--ease)}
.bv-submit:hover{background:var(--brass-deep)}
.bv-submit .ring{width:34px;height:34px;border-radius:50%;background:rgba(246,241,233,.16);display:grid;place-items:center}
.bv-fineprint{font-family:var(--font-ui);font-size:.74rem;color:var(--ink-soft);margin:0}
.bv-callnote{font-family:var(--font-ui);font-size:.8rem;line-height:1.55;color:var(--ink-soft);margin:.9rem 0 0;padding-top:.9rem;border-top:1px solid var(--line)}
.bv-callnote a{color:var(--ink);font-weight:600;text-decoration:underline;text-underline-offset:3px}
.bv-errors{background:rgba(154,30,30,.08);border:1px solid rgba(154,30,30,.25);border-radius:var(--r-md);padding:.8rem 1rem;font-size:.85rem;color:#7a1d1d}
.bv-promise{display:flex;align-items:baseline;gap:.5rem;margin:0 0 1rem;font-size:.95rem;
  color:var(--ink-soft);line-height:1.5}
/* The tick hangs to the left of the sentence; the sentence is ONE flex item
   (.bv-promise-text) so it wraps as prose instead of being split per text node.
   Scoped to the tick specifically — a bare `.bv-promise span` selector would also
   gild the wrapper span and turn the whole sentence gold + bold. */
/* Matched by POSITION as well as class, so it styles the tick correctly in both
   the new markup and any still-cached copy of the old markup (where the tick was
   a bare <span>). Shopify's page cache serves stale HTML for a while after a
   theme push, and a class-only selector would leave the tick ungilded until it
   expired. `:first-child` is the tick in both versions; .bv-promise-text never is. */
.bv-promise-tick,
.bv-promise > span:first-child{color:var(--gold,#B08423);font-weight:700;flex:none}
.bv-promise-text{min-width:0}
.bv-promise strong{color:var(--ink);font-weight:600}
.bv-thanks{text-align:center;padding:1.5rem .5rem}
.bv-tick{width:54px;height:54px;border-radius:50%;background:var(--brass);color:var(--paper);display:grid;place-items:center;font-size:1.5rem;margin:0 auto 1.1rem}
.bv-thanks h3{font-family:var(--font-serif);font-weight:400;font-size:1.7rem;color:var(--ink);margin-bottom:.6rem}
.bv-thanks p{color:var(--ink-soft);font-size:.98rem;max-width:42ch;margin:0 auto;line-height:1.6}

/* ===== sections/charity-band.liquid ===== */
.charity-sec{background:var(--paper-deep)}
.charity-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:4.5rem;align-items:center}
.charity-text h2{font-family:var(--font-serif);font-weight:300;font-size:clamp(2.2rem,4.4vw,3.6rem);line-height:1.04;margin:1.4rem 0 1.5rem}
.charity-text h2 em{font-style:italic;color:var(--brass-deep)}
.charity-text .rte p{color:var(--ink-soft);max-width:50ch;margin-bottom:1.1rem;font-size:var(--t-body-lg)}
.charity-text .rte strong{color:var(--ink);font-weight:500}
.charity-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin:2.2rem 0 0}
.charity-pillars .pillar{border-top:1px solid var(--brass);padding-top:1rem}
.charity-pillars .pillar .h{font-family:var(--font-serif);font-weight:500;font-size:1.15rem;color:var(--ink)}
.charity-pillars .pillar .d{font-family:var(--font-ui);font-weight:400;font-size:.74rem;color:var(--ink-soft);margin-top:.35rem;line-height:1.5}
.charity-fig{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-plate);aspect-ratio:4/5;position:relative}
.charity-fig img,.charity-fig .ri-placeholder{width:100%;height:100%;object-fit:cover}
.charity-fig .tag{position:absolute;left:1.4rem;bottom:1.4rem;font-family:var(--font-ui);font-weight:500;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;background:rgba(33,29,24,.6);backdrop-filter:blur(6px);border:1px solid rgba(243,236,224,.2);padding:.5rem .9rem;border-radius:var(--r-pill);color:var(--brass-lum-2)}
@media(max-width:920px){.charity-grid{grid-template-columns:1fr;gap:2.5rem}.charity-fig{aspect-ratio:4/3;order:-1}.charity-pillars{gap:.9rem}}
@media(max-width:560px){.charity-pillars{grid-template-columns:1fr;gap:1.1rem}}

/* ===== sections/collection-bento.liquid ===== */
.bento-sec .bento{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:200px;gap:1.25rem}
.bento-sec .tile{position:relative;border-radius:var(--r-lg);overflow:hidden;background:var(--paper-deep);border:1px solid var(--line);display:block}
.bento-sec .tile img,.bento-sec .tile .ri-placeholder{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-soft)}
.bento-sec .tile:hover img{transform:scale(1.07)}
.bento-sec .tile .sc{position:absolute;inset:0;background:linear-gradient(180deg,transparent 42%,rgba(33,29,24,.74) 100%)}
.bento-sec .tile .lab{position:absolute;left:1.6rem;bottom:1.4rem;z-index:2}
.bento-sec .tile .lab .nm{font-family:var(--font-serif);font-weight:400;font-size:1.95rem;line-height:1;color:var(--paper)}
.bento-sec .tile .lab .ct{font-family:var(--font-ui);font-weight:500;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-lum-2);margin-top:.35rem}
.bento-sec .tile .arrow{position:absolute;top:1.3rem;right:1.3rem;z-index:2;width:36px;height:36px;border-radius:50%;
  border:1px solid rgba(246,241,233,.45);display:grid;place-items:center;color:var(--paper);background:rgba(33,29,24,.28);backdrop-filter:blur(4px);
  opacity:0;transform:translateY(8px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.bento-sec .tile:hover .arrow{opacity:1;transform:none}
.bento-sec .tile.t-a{grid-column:span 2;grid-row:span 2}
.bento-sec .tile.t-b{grid-column:span 2;grid-row:span 1}
.bento-sec .tile.t-c{grid-column:span 1;grid-row:span 1}
.bento-sec .tile.t-d{grid-column:span 2;grid-row:span 1}
@media(max-width:920px){.bento-sec .bento{grid-template-columns:repeat(2,1fr);grid-auto-rows:180px}
  .bento-sec .tile.t-a,.bento-sec .tile.t-b,.bento-sec .tile.t-c,.bento-sec .tile.t-d{grid-column:span 1;grid-row:span 1}.bento-sec .tile.t-a{grid-column:span 2;grid-row:span 2}}
@media(max-width:560px){.bento-sec .bento{grid-template-columns:1fr;grid-auto-rows:220px}.bento-sec .tile.t-a{grid-column:span 1;grid-row:span 1}}

/* ===== sections/collection-spotlight.liquid ===== */
.cspot{background:var(--paper)}
.cspot--tint{background:var(--paper-deep)}
.cspot-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2rem,5vw,5rem);align-items:center}
.cspot--right .cspot-media{order:2}
.cspot-media .frame{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-plate);aspect-ratio:11/13;background:var(--paper-deep)}
.cspot-media .frame img,.cspot-media .frame .ri-placeholder{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease-soft)}
.cspot-media .frame:hover img{transform:scale(1.04)}
.cspot-quad{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.cspot-tile{display:block;border-radius:var(--r-md);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-soft);aspect-ratio:4/3;background:var(--paper-deep);transition:transform var(--t-mid) var(--ease),box-shadow var(--t-mid) var(--ease)}
.cspot-tile img{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.2s var(--ease-soft)}
.cspot-tile:hover{transform:translateY(-3px);box-shadow:var(--shadow-plate)}
.cspot-tile:hover img{transform:scale(1.05)}
.cspot-body{max-width:46ch}
.cspot-body h2{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h2);line-height:1.04;margin:1.1rem 0 1.3rem}
.cspot-body h2 em{font-style:italic;color:var(--brass-deep)}
.cspot-body p{color:var(--ink-soft);font-size:1.04rem;line-height:1.75;max-width:42ch}
.cspot-stat{font-family:var(--font-display);font-size:1.5rem;color:var(--brass-deep);margin-top:1.6rem;line-height:1}
.cspot-cta{display:inline-flex;align-items:center;gap:.85rem;margin-top:1.9rem;background:var(--ink);color:var(--paper);
  border-radius:var(--r-pill);padding:.85rem .85rem .85rem 1.7rem;font-family:var(--font-ui);font-weight:600;font-size:.72rem;
  letter-spacing:.09em;text-transform:uppercase;transition:background var(--t-mid) var(--ease)}
.cspot-cta .ring{width:34px;height:34px;border-radius:50%;background:rgba(246,241,233,.16);display:grid;place-items:center;transition:transform var(--t-mid) var(--ease)}
.cspot-cta:hover{background:var(--brass-deep)}
.cspot-cta:hover .ring{transform:translateX(3px)}
@media(max-width:860px){
  .cspot-grid{grid-template-columns:1fr;gap:2.2rem;max-width:520px;margin:0 auto}
  .cspot--right .cspot-media{order:0}
  .cspot-body{max-width:none}
}

/* ===== sections/concierge.liquid ===== */
.concierge{background:var(--espresso);padding-top:var(--space-section);padding-bottom:var(--space-section)}
.conc-head{max-width:54ch;margin-bottom:3rem}
.conc-h{font-family:var(--font-serif);font-weight:400;font-size:var(--t-h2);line-height:1.06;color:var(--bone)}
.conc-h em{font-style:italic;color:var(--bronze-lum)}
.conc-sub{font-family:var(--font-serif-read);font-size:1.18rem;line-height:1.6;color:var(--bone-2);margin-top:1rem}
.conc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.2rem}
.conc-card{display:flex;flex-direction:column;padding:1.9rem 1.6rem;border:1px solid rgba(243,236,224,.14);border-radius:var(--r-md);
  background:rgba(243,236,224,.03);transition:border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),background var(--t-fast) var(--ease)}
.conc-card:hover{border-color:rgba(200,162,104,.5);transform:translateY(-4px);background:rgba(243,236,224,.05)}
.conc-ic{display:inline-flex;margin-bottom:1.3rem}
.conc-ic svg{width:30px;height:30px;color:var(--bronze-lum)}
.conc-t{font-family:var(--font-serif);font-weight:500;font-size:1.4rem;line-height:1.1;color:var(--bone);margin-bottom:.6rem}
.conc-d{font-family:var(--font-serif-read);font-size:1.02rem;line-height:1.55;color:var(--bone-2);margin-bottom:1.4rem;flex:1}
.conc-cta{font-family:var(--font-ui);font-weight:600;font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-lum)}
@media(max-width:900px){.conc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.conc-grid{grid-template-columns:1fr}}

/* ===== sections/craft-process.liquid ===== */
.craft-sec{background:var(--paper-deep)}
.craft-hero{max-width:60rem;margin:2.6rem auto 0}
.craft-hero .frame{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-plate);aspect-ratio:12/5}
.craft-hero .frame img,.craft-hero .frame .ri-placeholder{width:100%;height:100%;object-fit:cover;display:block}
.craft-stats{display:flex;gap:3rem;justify-content:center;flex-wrap:wrap;margin-top:2rem}
.craft-stats .pair{display:flex;flex-direction:column;align-items:center;text-align:center}
.craft-stats .pair .v{font-family:var(--font-display);font-size:1.95rem;line-height:1;color:var(--ink)}
.craft-stats .pair .k{font-family:var(--font-ui);font-weight:500;font-size:.54rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft);margin-top:.55rem;max-width:17ch}
.cjourney{list-style:none;margin:4.2rem 0 0;padding:0;display:flex;flex-direction:column;gap:3.6rem}
.cstep{display:grid;grid-template-columns:1fr 1fr;gap:3.2rem;align-items:center}
.cstep:nth-child(even) .cstep-media{order:2}
.cstep-media .frame{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-plate);aspect-ratio:4/3}
.cstep-media .frame img,.cstep-media .frame .ri-placeholder{width:100%;height:100%;object-fit:cover;display:block;transition:transform 1.1s var(--ease)}
.cstep-media .frame:hover img{transform:scale(1.04)}
.cstep-body{max-width:46ch}
.cstep-num{font-family:var(--font-display);font-size:1.4rem;color:var(--brass-deep);line-height:1;margin-bottom:.5rem}
.cstep-name{font-family:var(--font-serif);font-weight:400;font-size:2rem;line-height:1.05;color:var(--ink)}
.cstep-name em{font-style:italic;color:var(--brass-deep)}
.cstep-text{color:var(--ink-soft);font-size:.98rem;margin-top:.7rem}
.cstep-text p{margin:0}
.cstep-text em{font-style:italic;color:var(--brass-deep)}
.cstep.keystone .cstep-body{background:rgba(154,123,79,.07);border-radius:var(--r-md);padding:1.8rem 1.9rem;border-left:2px solid var(--brass);box-shadow:inset 0 1px 1px rgba(255,255,255,.5)}
.cstep .tag{display:inline-block;font-family:var(--font-ui);font-weight:600;font-size:.5rem;letter-spacing:.2em;text-transform:uppercase;color:var(--paper);background:linear-gradient(135deg,var(--brass),var(--brass-deep));padding:.32rem .72rem;border-radius:var(--r-pill);margin-top:.9rem}
.cstep--noimg{grid-template-columns:1fr;max-width:60rem;margin:0 auto;text-align:center}
.cstep--noimg .cstep-body{max-width:none}
@media(max-width:780px){
  .cjourney{gap:2.6rem}
  .cstep{grid-template-columns:1fr;gap:1.3rem}
  .cstep:nth-child(even) .cstep-media{order:0}
  .cstep-body{max-width:none}
  .craft-hero .frame{aspect-ratio:3/2}
}

/* ===== sections/editorial-feature.liquid ===== */
.feature{position:relative;min-height:82vh;display:flex;align-items:flex-end;overflow:hidden;background:var(--void)}
.feature img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.feature .sc{position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,10,8,.92) 0%,rgba(12,10,8,.2) 58%,rgba(12,10,8,.52) 100%)}
.feature-content{position:relative;z-index:2;padding:0 0 6rem;max-width:640px;color:var(--bone)}
.feature-content .eyebrow{color:var(--brass-lum)}
.feature-content h2{font-family:var(--font-display);font-weight:400;font-size:var(--t-h1);line-height:1;margin:1.2rem 0 1.4rem}
.feature-content h2 em{font-style:italic;color:var(--brass-lum-2)}
.feature-content p{color:var(--bone-soft);max-width:44ch;margin-bottom:2rem;font-weight:300}

/* ===== sections/faq-band.liquid ===== */
.faqband{padding:4.5rem 0}
@media(max-width:768px){.faqband{padding:3.5rem 0}}
.faqband .eyebrow{font-family:var(--font-ui);font-weight:600;font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-deep)}
.faqband-h{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h2);line-height:1.08;color:var(--ink);margin:.7rem 0 1.8rem;max-width:22ch}
.faqband-h em{font-style:italic;color:var(--brass-deep)}
.faqband-list{max-width:820px;border-top:1px solid var(--line)}
.faqband-item{border-bottom:1px solid var(--line)}
.faqband-item summary{cursor:pointer;list-style:none;padding:1.4rem .1rem;font-family:var(--font-serif);font-weight:500;font-size:1.35rem;color:var(--ink);display:flex;justify-content:space-between;gap:1.2rem;align-items:center;transition:color .3s var(--ease)}
.faqband-item summary:hover{color:var(--brass-deep)}
.faqband-item summary::-webkit-details-marker{display:none}
.faqband-item summary::after{content:"+";font-family:var(--font-ui);color:var(--brass-deep);font-size:1.6rem;font-weight:300;line-height:1;flex:0 0 auto}
.faqband-item[open] summary::after{content:"\2212"}
.faqband-a{padding:0 .1rem 1.5rem;color:var(--ink-soft);max-width:70ch;line-height:1.75;font-size:1.02rem}
.faqband-a p{margin:0 0 .8rem}.faqband-a p:last-child{margin:0}
.faqband-a a{color:var(--brass-deep);text-decoration:underline;text-underline-offset:2px}

/* ===== sections/featured-collection.liquid ===== */
.ooak-tint{background:var(--paper-deep)}
.rail-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem}
@media(max-width:920px){.rail-cards{grid-template-columns:1fr;max-width:440px;margin:0 auto}}
.rail-empty{text-align:center;color:var(--ink-soft);border:1px dashed var(--line);border-radius:var(--r-lg);padding:4rem 1rem}
.rail-empty .serif{font-size:1.3rem;font-style:italic}

/* ===== sections/film-band.liquid ===== */
.film-band{position:relative;min-height:88vh;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--void);color:var(--bone)}
.film-band .film-poster{position:absolute;inset:0;z-index:0}
.film-band .film-poster img,.film-band .film-poster .ri-placeholder{width:100%;height:100%;object-fit:cover;opacity:.6;transition:transform 1.6s var(--ease-soft),opacity .8s var(--ease)}
.film-band:hover .film-poster img{transform:scale(1.04);opacity:.72}
.film-band .film-scrim{position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 50% 46%,rgba(12,10,8,.3) 0%,rgba(12,10,8,.82) 72%)}
.film-band .film-content{position:relative;z-index:2;text-align:center;padding:0 1.5rem}
.film-band .film-content .eyebrow{color:var(--brass-lum)}
.film-band .film-content h2{font-family:var(--font-display);font-weight:400;font-size:clamp(2.4rem,5.2vw,4.6rem);line-height:1.02;margin:1.4rem auto 1.2rem;max-width:18ch}
.film-band .film-content h2 em{font-style:italic;color:var(--brass-lum-2)}
.film-band .film-content p{color:var(--bone-soft);max-width:42ch;margin:0 auto 2.4rem;font-weight:300}
.film-band .play{position:relative;width:84px;height:84px;border-radius:50%;margin:0 auto;display:grid;place-items:center;cursor:pointer;
  border:1px solid rgba(243,236,224,.5);background:rgba(243,236,224,.06);backdrop-filter:blur(6px);
  transition:transform var(--t-mid) var(--ease),background var(--t-mid) var(--ease),border-color var(--t-mid) var(--ease)}
.film-band .play::before{content:"";width:0;height:0;border-style:solid;border-width:11px 0 11px 19px;border-color:transparent transparent transparent var(--bone);margin-left:5px;transition:border-left-color .5s var(--ease)}
.film-band .play::after{content:"";position:absolute;width:84px;height:84px;border-radius:50%;border:1px solid rgba(195,154,94,.5);animation:film-ring 2.8s var(--ease-soft) infinite}
.film-band .play.disabled{cursor:default}
@keyframes film-ring{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.5);opacity:0}}
.film-band .play:not(.disabled):hover{transform:scale(1.06);background:rgba(243,236,224,.12);border-color:var(--brass-lum)}
.film-band .film-status{margin-top:1.8rem;font-family:var(--font-ui);font-weight:500;font-size:.58rem;letter-spacing:.28em;text-transform:uppercase;color:rgba(243,236,224,.5)}
@media(prefers-reduced-motion:reduce){.film-band .play::after{animation:none}}
@media(max-width:768px){.film-band{min-height:70vh}.film-band .play{width:68px;height:68px}.film-band .play::after{width:68px;height:68px}}

/* ===== sections/footer.liquid ===== */
footer[role="contentinfo"]{background:var(--void);color:var(--bone);padding:5.5rem 0 2.5rem;position:relative;z-index:1}
footer .foot-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.5rem;padding-bottom:3.5rem;border-bottom:1px solid rgba(243,236,224,.1)}
footer .foot-brand .mk{display:block;line-height:0;margin-bottom:.2rem}
footer .foot-brand .mk img{height:60px;width:auto}
footer .foot-brand p{color:var(--bone-soft);max-width:34ch;margin-top:1rem;font-size:.9rem;font-weight:300}
footer .foot-social{display:flex;gap:1.1rem;list-style:none;margin:1.6rem 0 0;padding:0}
footer .foot-social a{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;color:var(--bone);opacity:.78;transition:opacity .35s var(--ease),color .35s var(--ease)}
footer .foot-social a:hover{opacity:1;color:var(--brass-lum-2)}
footer .foot-social svg{width:21px;height:21px}
footer .foot-col h2{font-family:var(--font-ui);font-weight:600;font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-soft);margin-bottom:1.2rem}
footer .foot-col a{display:block;color:var(--bone);font-size:.88rem;margin-bottom:.7rem;opacity:.8;transition:opacity .4s var(--ease),color .4s var(--ease)}
footer .foot-col a:hover{opacity:1;color:var(--brass-lum-2)}
footer .foot-col a,footer .foot-col p{overflow-wrap:anywhere}
footer .foot-nap{display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;padding:2rem 0 0;font-family:var(--font-ui);font-size:.8rem;color:var(--bone-soft);letter-spacing:.02em}
footer .foot-nap-name{color:var(--bone);font-weight:500}
footer .foot-nap-contact{display:flex;gap:.4rem 1.4rem;flex-wrap:wrap}
footer .foot-nap-contact a{color:var(--bone-soft);text-decoration:none;transition:color .3s var(--ease)}
footer .foot-nap-contact a:hover{color:var(--brass-lum-2)}
footer .foot-nap-season a{color:var(--bone-soft);text-decoration:underline;text-decoration-color:var(--brass-lum);text-underline-offset:.25em;transition:color .3s var(--ease)}
footer .foot-nap-season a:hover{color:var(--brass-lum-2)}
footer .foot-legal{display:flex;flex-wrap:wrap;gap:.55rem 1.3rem;padding:1.6rem 0 .2rem;margin-top:1.6rem;border-top:1px solid rgba(243,236,224,.08)}
footer .foot-legal a{font-family:var(--font-ui);font-size:.72rem;letter-spacing:.03em;color:var(--bone-soft);opacity:.78;transition:opacity .3s var(--ease),color .3s var(--ease)}
footer .foot-legal a:hover{opacity:1;color:var(--brass-lum-2)}
footer .foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:1.4rem;font-family:var(--font-ui);font-weight:400;font-size:.7rem;letter-spacing:.04em;color:var(--bone-soft)}
footer .foot-lang{display:inline-flex;align-items:center}
footer .foot-lang select{appearance:none;-webkit-appearance:none;background:transparent;border:1px solid rgba(243,236,224,.22);border-radius:999px;color:var(--bone);font-family:var(--font-ui);font-size:.7rem;letter-spacing:.04em;padding:.38rem 1.9rem .38rem .9rem;cursor:pointer;transition:border-color .3s var(--ease),color .3s var(--ease);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23E8DCC8' stroke-width='1.3' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .85rem center}
footer .foot-lang select:hover,footer .foot-lang select:focus-visible{border-color:var(--brass-lum-2);color:#fff;outline:none}
footer .foot-lang option{color:#211D18}
@media(max-width:920px){footer .foot-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem}footer .foot-bottom{flex-direction:column;gap:1rem;text-align:center}}
@media(max-width:560px){footer .foot-grid{grid-template-columns:1fr}}

/* ===== sections/guide-index.liquid ===== */
.guidex{ background:var(--bone,#F3ECE0); padding:clamp(2.5rem,6vw,5rem) 0; }
.guidex-wrap{ max-width:1200px; margin:0 auto; padding:0 clamp(1rem,4vw,2.5rem); }
.guidex-head{ text-align:center; max-width:46rem; margin:0 auto clamp(1.8rem,4vw,3rem); }
.guidex-eyebrow{ font-family:var(--font-ui,sans-serif); text-transform:uppercase; letter-spacing:.22em; font-size:.72rem; color:var(--brass,#9a7b4f); margin:0 0 .7rem; }
.guidex-title{ font-family:var(--font-display,Georgia,serif); font-weight:500; font-size:clamp(1.8rem,4vw,2.7rem); line-height:1.1; color:var(--ink,#211D18); margin:0; }
.guidex-intro{ font-family:var(--font-serif,Georgia,serif); font-size:1.05rem; line-height:1.6; color:var(--ink-soft,#5A5046); margin:.9rem 0 0; }
.guidex-count{ font-family:var(--font-ui,sans-serif); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color:var(--bone-soft,#A89C89); margin:.8rem 0 0; }
.guidex-grid{ list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:clamp(1.2rem,2.5vw,2rem); }
.guidex-card{ position:relative; display:flex; flex-direction:column; background:#fff; border:1px solid var(--line,#DDD3C5); border-radius:2px; overflow:hidden; transition:transform .25s ease, box-shadow .25s ease; }
.guidex-card:hover{ transform:translateY(-3px); box-shadow:0 14px 34px rgba(33,29,24,.10); }
.guidex-media{ display:block; aspect-ratio:1.4 / 1; background:var(--paper,#EDE6D8); overflow:hidden; }
.guidex-media img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
.guidex-card:hover .guidex-media img{ transform:scale(1.04); }
.guidex-noimg{ display:block; width:100%; height:100%; background:linear-gradient(135deg,var(--paper,#EDE6D8),var(--paper-deep,#E3DACA)); }
.guidex-body{ padding:1.1rem 1.2rem 1.3rem; display:flex; flex-direction:column; gap:.5rem; flex:1; }
.guidex-cardtitle{ font-family:var(--font-display,Georgia,serif); font-weight:500; font-size:1.08rem; line-height:1.25; margin:0; color:var(--ink,#211D18); }
.guidex-cardtitle a{ color:inherit; text-decoration:none; }
.guidex-cardtitle a::after{ content:''; position:absolute; inset:0; }
.guidex-cardtitle a:hover{ color:var(--brass,#9a7b4f); }
.guidex-excerpt{ font-family:var(--font-serif,Georgia,serif); font-size:.93rem; line-height:1.5; color:var(--ink-soft,#5A5046); margin:0; flex:1; }
.guidex-more{ font-family:var(--font-ui,sans-serif); font-size:.74rem; letter-spacing:.12em; text-transform:uppercase; color:var(--brass,#9a7b4f); margin-top:.3rem; }
.guidex-empty{ text-align:center; font-family:var(--font-serif,Georgia,serif); color:var(--ink-soft,#5A5046); }
@media(max-width:600px){
  .guidex-grid{ grid-template-columns:1fr 1fr; gap:.9rem; }
  .guidex-body{ padding:.8rem .85rem 1rem; gap:.35rem; }
  .guidex-cardtitle{ font-size:.95rem; }
  .guidex-excerpt{ display:none; }
}

/* ===== sections/header.liquid ===== */
/* Full-width bar (Direction A): links left · logo centered · actions right.
   Transparent over the hero; parchment + hairline once lit (content pages) or scrolled. */
header#site-header{position:fixed;top:0;left:0;right:0;z-index:40;border-bottom:1px solid transparent;
  transition:background .6s var(--ease),border-color .6s var(--ease),box-shadow .6s var(--ease)}
#site-header .nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:1.5rem;
  max-width:1340px;margin:0 auto;padding:1.45rem 2.4rem;transition:padding .5s var(--ease)}
#site-header .mk{grid-column:1;justify-self:start}
#site-header .nav-links{grid-column:2;justify-self:center;align-self:stretch}
#site-header .nav-actions{grid-column:3;justify-self:end}
/* Invisible by default (blends with the hero and content pages); subtle parchment only on scroll. */
#site-header.scrolled{background:rgba(247,243,236,.92);backdrop-filter:blur(12px) saturate(1.05);border-bottom-color:var(--line)}
#site-header.scrolled .nav{padding:.95rem 2.4rem}
/* Push content clear of the fixed bar on every page except the full-bleed homepage hero. */
body:not(.template-index) #main-content{padding-top:5.4rem}
#site-header .mk{display:flex;align-items:center;line-height:0;position:relative}
#site-header .mk img,#site-header .mk .mk-text{height:38px;width:auto;display:block;transition:opacity .5s var(--ease)}
#site-header .mk .mk-text{font-size:1.3rem;line-height:30px;color:var(--bone)}
#site-header.lit .mk .mk-text.dark{color:var(--ink)}
#site-header .mk .lite{position:absolute;inset:0;opacity:0}
#site-header.lit .mk .dark{opacity:0}
#site-header.lit .mk .lite{opacity:1}
#site-header .nav-links{display:flex;gap:1.7rem;font-family:var(--font-ui);font-weight:600;font-size:.76rem;letter-spacing:.03em}
#site-header .nav-links a{color:var(--bone);transition:color .4s var(--ease);position:relative}
#site-header.lit .nav-links a{color:var(--ink)}
#site-header .nav-links a:hover{color:var(--bone)}
#site-header.lit .nav-links a:hover{color:var(--ink)}
/* Active link: brand-blue underline accent (ELEVATE), tinted for the dark hero. */
#site-header .nav-links a.active{color:var(--bone)}
#site-header.lit .nav-links a.active{color:var(--ink)}
#site-header .nav-links a.active::after{content:"";position:absolute;left:0;right:0;bottom:-.5rem;height:1.5px;border-radius:2px;background:var(--brand-blue-soft)}
#site-header.lit .nav-links a.active::after{background:var(--brand-blue)}
#site-header .nav-actions{display:flex;align-items:center;gap:.8rem}
/* Favorites + account + cart in the island */
#site-header .nav-fav,#site-header .nav-account,#site-header .nav-cart{position:relative;display:inline-flex;align-items:center;justify-content:center;
  width:38px;height:38px;border-radius:50%;color:var(--bone);transition:color .4s var(--ease),background .4s var(--ease)}
@media(pointer:coarse){#site-header .nav-fav,#site-header .nav-account,#site-header .nav-cart{width:44px;height:44px}}
#site-header.lit .nav-fav,#site-header.lit .nav-account,#site-header.lit .nav-cart{color:var(--ink)}
/* Inline search field (transparent over hero; hairline when lit). */
#site-header .nav-search{display:flex;align-items:center;gap:.25rem;width:190px;padding:.4rem .4rem .4rem .95rem;
  border:1px solid rgba(243,236,224,.35);border-radius:999px;transition:border-color .4s var(--ease)}
#site-header.lit .nav-search{border-color:rgba(33,29,24,.22)}
#site-header .nav-search:focus-within{border-color:var(--brass-lum)}
#site-header.lit .nav-search:focus-within{border-color:var(--brand-blue)}
#site-header .nav-search input{flex:1;min-width:0;background:none;border:none;outline:none;
  font-family:var(--font-ui);font-weight:500;font-size:.74rem;letter-spacing:.02em;color:var(--bone)}
#site-header.lit .nav-search input{color:var(--ink)}
#site-header .nav-search input::placeholder{color:rgba(243,236,224,.55)}
#site-header.lit .nav-search input::placeholder{color:var(--ink-soft)}
#site-header .nav-search-go{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;flex:0 0 auto;
  border-radius:50%;border:none;background:none;cursor:pointer;color:var(--bone);transition:color .3s var(--ease)}
#site-header.lit .nav-search-go{color:var(--ink)}
#site-header .nav-search-go:hover{color:var(--brass-lum)}
#site-header.lit .nav-search-go:hover{color:var(--brand-blue)}
@media(max-width:1080px){#site-header .nav-search{display:none}}
/* ---- Predictive search dropdown ---- */
#site-header .nav-search{position:relative}
.predict-panel{position:absolute;top:calc(100% + 10px);right:0;width:min(540px,92vw);
  background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:0 30px 60px -28px rgba(20,14,8,.45);padding:1rem;z-index:1200;
  opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .2s var(--ease),transform .2s var(--ease),visibility .2s;}
.predict-panel.open{opacity:1;visibility:visible;transform:none}
.predict-cols{display:grid;grid-template-columns:150px 1fr;gap:1rem}
.predict-rail-h{font-family:var(--font-ui);font-size:.58rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-deep);margin:.2rem 0 .55rem}
.predict-rail-h + .predict-rail-h{margin-top:1rem}
.predict-sug,.predict-chip{display:block;font-family:var(--font-ui);font-size:.82rem;color:var(--ink-soft);padding:.32rem 0;text-decoration:none}
.predict-sug.is-active,.predict-sug:hover,.predict-chip.is-active,.predict-chip:hover{color:var(--brand-blue)}
.predict-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.predict-chip{padding:.35rem .7rem;border:1px solid var(--line);border-radius:999px;font-size:.74rem}
.predict-empty .predict-rail-h{margin-top:0}
.predict-grid{display:flex;flex-direction:column;gap:.1rem}
.predict-prod{display:flex;align-items:center;gap:.7rem;padding:.45rem;border-radius:var(--r-sm);text-decoration:none}
.predict-prod.is-active,.predict-prod:hover{background:var(--chalk)}
.predict-prod-img{flex:0 0 46px;width:46px;height:46px;border-radius:var(--r-sm);overflow:hidden;background:var(--chalk)}
.predict-prod-img img{width:100%;height:100%;object-fit:cover}
.predict-prod-meta{display:flex;flex-direction:column;min-width:0}
.predict-prod-name{font-family:var(--font-display);font-size:.92rem;color:var(--ink);line-height:1.15;white-space:normal}
.predict-prod-sub{font-family:var(--font-ui);font-size:.68rem;color:var(--ink-soft);margin-top:.1rem}
.predict-prod-price{font-family:var(--font-ui);font-size:.74rem;color:var(--ink);margin-top:.15rem}
.predict-all,.predict-none{display:block;margin-top:.7rem;padding-top:.7rem;border-top:1px solid var(--line);font-family:var(--font-ui);font-size:.78rem;color:var(--ink-soft);text-decoration:none}
.predict-all.is-active,.predict-all:hover{color:var(--brand-blue)}
.predict-none a{color:var(--brass-deep);font-weight:600}
#site-header .nav-fav-heart{font-size:1.25rem;line-height:1;transition:transform .4s var(--ease)}
#site-header .nav-fav:hover .nav-fav-heart{transform:scale(1.12)}
#site-header .nav-fav.has .nav-fav-heart{font-size:0}
#site-header .nav-fav.has .nav-fav-heart::before{content:"♥";font-size:1.25rem;color:var(--brass-lum)}
#site-header.lit .nav-fav.has .nav-fav-heart::before{color:var(--brass-deep)}
#site-header .nav-fav-count,#site-header .nav-cart-count{position:absolute;top:-2px;right:-3px;min-width:17px;height:17px;padding:0 .28rem;
  border-radius:999px;background:var(--brass-deep);color:var(--paper);font-family:var(--font-ui);font-weight:600;font-size:.56rem;
  display:grid;place-items:center;line-height:1;box-shadow:0 0 0 2px var(--void)}
#site-header.lit .nav-fav-count,#site-header.lit .nav-cart-count{box-shadow:0 0 0 2px var(--paper)}
#site-header .nav-fav.bump .nav-fav-heart{animation:favpop .5s var(--ease-soft)}
#site-header .nav-cart-ic{font-size:1.1rem;line-height:1}
#site-header .nav-cta{display:inline-flex;align-items:center;gap:.6rem;background:var(--bone);color:var(--void);
  font-family:var(--font-ui);font-weight:600;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.55rem .55rem .55rem 1.2rem;border-radius:999px;transition:transform .5s var(--ease),background .5s var(--ease)}
#site-header.lit .nav-cta{background:var(--ink);color:var(--paper)}
#site-header .nav-cta .ring{width:26px;height:26px;border-radius:50%;background:rgba(12,10,8,.12);display:grid;place-items:center;font-size:.8rem;transition:transform .5s var(--ease)}
#site-header.lit .nav-cta .ring{background:rgba(246,241,233,.16)}
#site-header .nav-cta:hover{transform:scale(.98);background:var(--brass-lum-2)}
#site-header.lit .nav-cta:hover{background:var(--brass-deep)}
#site-header .nav-cta:hover .ring{transform:translateX(3px) translateY(-1px)}
#site-header .burger{display:none;flex-direction:column;gap:5px;width:24px;background:none;border:none;cursor:pointer}
#site-header .burger span{height:1.5px;width:100%;background:var(--bone);transition:transform .5s var(--ease),opacity .4s var(--ease),background .5s var(--ease)}
#site-header.lit .burger span{background:var(--ink)}
@media(max-width:920px){#site-header .nav-links{display:none}#site-header .burger{display:flex}#site-header .nav{gap:1rem}#site-header .nav-cta{display:none}}
/* Touch target: ≥44px hit area on coarse pointers, bars unchanged.
   The other three header controls already got this (see .nav-fav/.nav-account/
   .nav-cart below); the burger and the mobile search button were missed. The
   burger's painted height is only ~14.5px (3 × 1.5px bars + 2 × 5px gaps), which
   is under even the WCAG 2.2 24×24 floor, and it is the first control a phone
   visitor touches. Grow the BUTTON, not the bars: the spans are width:100%, so
   they are pinned back to 24px and centred, leaving the mark identical. The
   .burger.active X-transform depends on the 5px gap, which does not change. */
@media(pointer:coarse){
  #site-header .burger{width:44px;height:44px;justify-content:center;align-items:center}
  #site-header .burger span{width:24px}
}
/* Below the 390px design floor, five 44px targets plus the logo stop fitting:
   at 320px they need 348px (5×44 + 4×12.8 gap + 2×38.4 padding) against a 320px
   viewport. Measured: the header fits at 390 with 48px to spare, so this is
   scoped strictly BELOW 390 and cannot touch the tested 390/768/1280 sizes.
   It buys back ~67px for 360-375px phones by tightening only gap and padding,
   never the targets themselves. (320px already overflowed before any of this:
   the page scrollWidth was 348 with these rules absent entirely. Separate bug.) */
@media(max-width:389px){
  /* `#site-header.scrolled .nav` (1,2,0) sets `padding` as a SHORTHAND and
     outranks a bare `#site-header .nav` (1,1,0), so listing it here is required:
     without it the compact padding silently reverts the moment the header
     gains .scrolled (scrollY > 40) and the fix evaporates exactly when a
     visitor starts scrolling. Both selectors, declared after the originals. */
  #site-header .nav,
  #site-header.scrolled .nav{padding-left:1.1rem;padding-right:1.1rem}
  #site-header .nav-actions{gap:.4rem}
}
/* Mobile overlay */
.menu-overlay{position:fixed;inset:0;z-index:39;background:rgba(12,10,8,.94);backdrop-filter:blur(28px);
  opacity:0;pointer-events:none;transition:opacity .5s var(--ease);overflow-y:auto;-webkit-overflow-scrolling:touch}
.menu-overlay.open{opacity:1;pointer-events:auto}
.mov-scroll{max-width:560px;margin:0 auto;padding:6.5rem 1.6rem 3rem;display:flex;flex-direction:column}
.menu-overlay .mov-top,.menu-overlay summary{font-family:var(--font-serif);font-weight:400;font-size:2rem;line-height:1.1;color:var(--bone);
  padding:.7rem 0;border-bottom:1px solid rgba(243,236,224,.1);text-decoration:none;display:flex;justify-content:space-between;align-items:center;gap:1rem;cursor:pointer;list-style:none}
.menu-overlay summary::-webkit-details-marker{display:none}
.menu-overlay summary::after{content:"+";font-family:var(--font-ui);font-weight:300;color:var(--bronze-lum);font-size:1.5rem;line-height:1}
.menu-overlay details[open]>summary::after{content:"\2212"}
.mov-sub{padding:.2rem 0 .9rem .2rem}
.mov-sub>a,.mov-acc2>summary{display:block;font-size:1.35rem;color:var(--bone-2);padding:.5rem 0;border-bottom:1px solid rgba(243,236,224,.06)}
.mov-acc2>summary{color:var(--bone)}.mov-acc2>summary::after{font-size:1.2rem}
.mov-sub2{padding:.3rem 0 .8rem .8rem}
.mov-sub2 a{display:block;font-size:1.05rem;color:var(--bone-2);padding:.4rem 0;border:none}
.mov-cta{color:var(--bronze-lum)}
.burger.active span{background:var(--bone)}
.burger.active span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.burger.active span:nth-child(2){opacity:0}
.burger.active span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}
@media(prefers-reduced-motion:reduce){.menu-overlay{transition:none}}
/* ---- Mobile search icon + overlay ---- */
#site-header .nav-msearch{display:none;align-items:center;justify-content:center;width:32px;height:32px;background:none;border:none;color:var(--bone);cursor:pointer}
/* Touch target: ≥44px hit area on coarse pointers. Sizing only — the display
   toggle below still decides whether it shows at all, so this is inert on
   viewports where the button is hidden. */
@media(pointer:coarse){#site-header .nav-msearch{width:44px;height:44px}}
/* Trade Brief link — rendered only for customers tagged 'Trade' (header.liquid).
   Previously inline-styled, which no stylesheet rule could override. It is the
   sixth control in .nav-actions for that segment, so it gets the same ≥44px
   touch treatment and gives back width first when space is tight. */
#site-header .nav-trade{display:inline-flex;align-items:center;height:38px;padding:0 .7rem;
  font-family:var(--font-ui);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:inherit;text-decoration:none;white-space:nowrap}
@media(pointer:coarse){#site-header .nav-trade{height:44px}}
/* Hidden exactly where the burger appears (≤920px), because it is the sixth
   control in the row: measured 423px of controls against a 390px viewport,
   which clips the burger itself. Trade customers reach the same page from
   .mov-trade in the menu overlay, which is rendered under the identical tag
   gate — so nothing is lost, it moves. */
@media(max-width:920px){#site-header .nav-trade{display:none}}
#site-header.lit .nav-msearch{color:var(--ink)}
@media(max-width:1080px){#site-header .nav-msearch{display:inline-flex}}
/* The inner .predict-panel--mobile forces visibility:visible, which would otherwise
   override the closed overlay's visibility:hidden and keep this full-viewport fixed
   layer (z-index:1400) in hit-testing — silently eating clicks on the desktop dropdown
   below it. pointer-events:none on the closed overlay is INHERITED by the panel (it sets
   no pointer-events of its own), so the closed overlay never intercepts; .open restores it. */
.msearch-overlay{position:fixed;inset:0;z-index:1400;background:var(--paper);pointer-events:none;
  display:flex;flex-direction:column;opacity:0;visibility:hidden;transform:translateY(-8px);
  transition:opacity .25s var(--ease),transform .25s var(--ease),visibility .25s;}
.msearch-overlay.open{opacity:1;visibility:visible;transform:none;pointer-events:auto}
.msearch-bar{display:flex;align-items:center;gap:.6rem;padding:1rem 1.1rem;border-bottom:1px solid var(--line)}
.msearch-form{display:flex;align-items:center;gap:.6rem;width:100%}
.msearch-ic{color:var(--ink-soft);display:inline-flex}
.msearch-form input[type=search]{flex:1;min-width:0;background:none;border:none;outline:none;font-family:var(--font-ui);font-size:1.05rem;color:var(--ink)}
.msearch-close{background:none;border:none;font-size:1.7rem;line-height:1;color:var(--ink-soft);cursor:pointer;padding:0 .2rem}
.predict-panel--mobile{position:static;width:auto;box-shadow:none;border:none;border-radius:0;
  opacity:1;visibility:visible;transform:none;flex:1;overflow-y:auto;padding:1.1rem}
.predict-panel--mobile .predict-cols{grid-template-columns:1fr;gap:1.2rem}
/* ---- Mega-menu dropdowns (Revival-style) ---- */
#site-header .nav-item{position:relative;display:flex;align-items:center}
#site-header .nav-top{display:inline-flex;align-items:center;gap:.32rem}
#site-header .nav-caret{font-size:.5rem;opacity:.65;transition:transform .3s var(--ease)}
#site-header .nav-item.has-drop:hover .nav-caret,#site-header .nav-item.has-drop:focus-within .nav-caret{transform:rotate(180deg)}
#site-header .drop{position:absolute;top:100%;left:50%;padding-top:1.1rem;transform:translateX(-50%) translateY(.5rem);
  opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s var(--ease),transform .3s var(--ease);z-index:50}
/* Mega panel is viewport-centered (fixed) so it always fits the screen,
   regardless of where the centered nav sits. Padding-top clears the bar. */
#site-header .drop-mega{position:fixed;left:50%;top:0;padding-top:5.3rem;transform:translateX(-50%) translateY(.4rem)}
#site-header .nav-item.has-drop:hover .drop,#site-header .nav-item.has-drop:focus-within .drop{opacity:1;visibility:visible;pointer-events:auto;transform:translateX(-50%) translateY(0)}
#site-header .nav-item.has-mega:hover .drop,#site-header .nav-item.has-mega:focus-within .drop{transform:translateX(-50%) translateY(0)}
/* Escape-to-close (keyboard): force the panel hidden even while the trigger keeps focus. */
#site-header .nav-item.kb-collapsed .drop{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
/* FIX (menu bug): the open MEGA panel is a wide fixed element whose transparent
   area sat over the rest of the nav bar and swallowed clicks on the other items.
   Make only the visible inner panel interactive; the transparent bridge passes
   pointer events through to the nav links behind it. */
#site-header .nav-item.has-mega:hover .drop-mega,
#site-header .nav-item.has-mega:focus-within .drop-mega{pointer-events:none}
#site-header .drop-mega .drop-inner{pointer-events:auto}
/* Brief close-delay so moving from the trigger down into the panel (across the
   now click-through bridge) doesn't drop the hover and flicker the menu shut. */
#site-header .drop{transition:opacity .3s var(--ease),visibility .3s var(--ease),transform .3s var(--ease);transition-delay:.16s}
#site-header .nav-item.has-drop:hover .drop,
#site-header .nav-item.has-drop:focus-within .drop{transition-delay:0s}
#site-header .drop-inner{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:0 40px 90px -45px rgba(0,0,0,.45);padding:1.5rem 1.8rem}
/* ---- Mega panel: one composed editorial layout (link columns + featured rail) ---- */
#site-header .drop-mega .drop-inner{display:flex;align-items:stretch;gap:2.6rem;padding:2.3rem 2.5rem;max-width:calc(100vw - 2rem)}
#site-header .mega-cols{display:grid;grid-template-columns:repeat(5,max-content);gap:1.6rem 2.4rem;flex:0 0 auto;align-content:start}
#site-header .mcol{display:flex;flex-direction:column}
#site-header .mcol ul li a{white-space:nowrap}
/* Featured rail — separated from the link columns by generous whitespace + a hairline. */
#site-header .mega-promos{display:flex;gap:1.5rem;padding-left:2.6rem;border-left:1px solid var(--line);flex:0 0 auto}
#site-header .mpromo{display:flex;flex-direction:column;width:204px}
#site-header .mpromo-img{display:block;border-radius:var(--r-md);overflow:hidden;aspect-ratio:4/5;background:var(--paper-deep);position:relative}
#site-header .mpromo-img::after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(33,29,24,.05);pointer-events:none}
#site-header .mpromo-img img{width:100%;height:100%;object-fit:cover;transition:transform .7s var(--ease-soft)}
#site-header .mpromo:hover .mpromo-img img{transform:scale(1.045)}
#site-header .mpromo-cap{margin-top:1.05rem;white-space:normal;font-family:var(--font-display);font-weight:400;font-size:1.06rem;line-height:1.22;color:var(--ink);transition:color .3s var(--ease)}
#site-header .mpromo-ey{display:block;font-family:var(--font-ui);font-weight:600;font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:.55rem}
#site-header .mpromo:hover .mpromo-cap{color:var(--bronze-deep)}
/* Finder tile — the concierge invitation, as a PHOTOGRAPHIC image tile so it reads
   as an equal "featured" card beside the collection promos. A styled room with a real
   Arteverk medallion rug sits behind; a soft top-and-bottom scrim keeps the rug visible
   through the middle while making white text legible at both ends. The compass + "Guided"
   eyebrow ride the top; the serif title / one-liner / CTA pill anchor the foot —
   justify-content:space-between distributes them across the FULL height (no dead band). */
#site-header .mpromo--finder{display:block;position:relative;overflow:hidden;aspect-ratio:720/1133;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--paper-deep);
  transition:border-color .45s var(--ease),box-shadow .45s var(--ease),transform .45s var(--ease)}
#site-header .mpromo-finder-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 64%;
  transition:transform 1.1s var(--ease-soft)}
#site-header .mpromo--finder:hover .mpromo-finder-bg{transform:scale(1.045)}
/* Top + bottom scrim — dark at both ends for legible white text, light through the
   middle so the medallion shows. ::before is the scrim; sits above the image, below text. */
#site-header .mpromo--finder::before{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  background:linear-gradient(to bottom,rgba(26,19,12,.58) 0%,rgba(26,19,12,.16) 34%,rgba(26,19,12,.30) 62%,rgba(26,19,12,.86) 100%)}
#site-header .mpromo--finder:hover{border-color:var(--brass);box-shadow:0 22px 44px -26px rgba(110,85,47,.5);transform:translateY(-2px)}
/* Content layer — a flex column spanning the full height; a plain <span>, so the global
   '#site-header .drop a' display/white-space rules (which target the <a>) never touch it. */
#site-header .mpromo-finder-body{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
  justify-content:space-between;padding:1.4rem 1.4rem 1.45rem}
#site-header .mpromo-finder-top{display:flex;align-items:center;gap:.6rem}
#site-header .mpromo-finder-mark{display:inline-grid;place-items:center;width:40px;height:40px;flex:0 0 40px;
  border-radius:50%;background:rgba(255,252,247,.14);color:var(--bone);backdrop-filter:blur(2px);
  box-shadow:inset 0 0 0 1px rgba(255,250,242,.5);transition:transform .55s var(--ease-soft),background .45s var(--ease)}
#site-header .mpromo--finder:hover .mpromo-finder-mark{transform:rotate(28deg);background:rgba(200,162,104,.34)}
#site-header .mpromo--finder .mpromo-finder-top .mpromo-ey{margin-bottom:0;color:var(--bone);opacity:.95;text-shadow:0 1px 6px rgba(20,14,8,.5)}
#site-header .mpromo-finder-foot{display:flex;flex-direction:column}
#site-header .mpromo-finder-h{display:block;font-family:var(--font-display);font-weight:400;font-size:1.62rem;line-height:1.1;letter-spacing:.005em;color:var(--bone);margin-bottom:.5rem;text-shadow:0 2px 14px rgba(20,14,8,.55)}
/* The one-liner MUST wrap fully — override the global '.drop a {white-space:nowrap}'
   that would otherwise clip it. (This was the cause of the "a curate…" truncation.) */
#site-header .mpromo-finder-sub{display:block;white-space:normal;font-family:var(--font-ui);font-weight:500;font-size:.745rem;line-height:1.5;color:rgba(255,251,245,.9);text-shadow:0 1px 8px rgba(20,14,8,.6);margin-bottom:1rem}
/* Primary CTA pill — anchored at the foot, reads as a clear affordance. */
#site-header .mpromo-finder-go{display:inline-flex;align-items:center;gap:.45rem;align-self:flex-start;
  padding:.5rem .95rem;border-radius:999px;background:var(--bone);color:var(--ink);white-space:nowrap;
  font-family:var(--font-ui);font-weight:600;font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;
  box-shadow:0 6px 18px -8px rgba(15,10,5,.6);transition:background .45s var(--ease),color .45s var(--ease)}
#site-header .mpromo--finder:hover .mpromo-finder-go{background:var(--brass-deep);color:var(--bone)}
#site-header .mpromo-finder-arr{display:inline-block;transition:transform .45s var(--ease)}
#site-header .mpromo--finder:hover .mpromo-finder-arr{transform:translateX(3px)}
/* Image promos collapse first on narrower viewports; the Finder tile (child 1)
   always stays. Persian=2, Vintage=3, Serenity=4 after the Finder leads. */
@media(max-width:1460px){#site-header .mega-promos .mpromo:nth-child(4){display:none}}
@media(max-width:1300px){#site-header .mega-promos .mpromo:nth-child(3){display:none}}
@media(max-width:1180px){#site-header .mega-promos{display:none}}
/* ---- Column headings: brass micro-eyebrows ---- */
#site-header .mcol-h{display:block;font-family:var(--font-ui);font-weight:600;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:.95rem;padding-bottom:.55rem;border-bottom:1px solid var(--line)}
#site-header .drop ul,#site-header .dcol{list-style:none;margin:0;padding:0}
#site-header .drop:not(.drop-mega) .drop-inner{min-width:190px}
/* ---- Links: calm, with an underline-grow hover that matches the site's link language ---- */
#site-header .drop a{display:block;font-family:var(--font-ui);font-weight:500;font-size:.82rem;color:var(--ink-soft);padding:.34rem 0;white-space:nowrap;transition:color .25s var(--ease)}
#site-header .mcol ul li a{position:relative;width:fit-content}
#site-header .mcol ul li a::after{content:"";position:absolute;left:0;bottom:.08rem;width:100%;height:1px;background:var(--brass);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}
#site-header .mcol ul li a:hover{color:var(--ink)}
#site-header .mcol ul li a:hover::after{transform:scaleX(1)}
#site-header .drop a:hover{color:var(--bronze-deep)}
/* ---- Colour swatches: crisp, aligned, consistent ---- */
#site-header .mcol-color ul li a{display:inline-flex;align-items:center;gap:.6rem}
#site-header .mcol-color ul li a::after{left:calc(13px + .6rem);width:calc(100% - 13px - .6rem)}
#site-header .msw{width:13px;height:13px;border-radius:50%;flex:0 0 13px;box-shadow:inset 0 0 0 1px rgba(33,29,24,.18),0 1px 2px rgba(33,29,24,.08)}
@media(prefers-reduced-motion:reduce){#site-header .drop{transition:none}}

/* ===== sections/hero.liquid ===== */
.hero{position:relative;min-height:100svh;display:flex;align-items:center;overflow:hidden;background:var(--void)}
.hero-img{position:absolute;inset:0;z-index:0}
.hero-img img,.hero-fallback{width:100%;height:100%;object-fit:cover}
.hero-img img{animation:hzoom 22s var(--ease-soft) forwards}
.hero-fallback{background:radial-gradient(circle at 30% 40%,var(--void-3),var(--void))}
@keyframes hzoom{from{transform:scale(1.1)}to{transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.hero-img img{animation:none}}
.hero-scrim{position:absolute;inset:0;z-index:1;
  background:linear-gradient(90deg,rgba(12,10,8,.88) 0%,rgba(12,10,8,.5) 46%,rgba(12,10,8,.18) 100%),
             linear-gradient(0deg,rgba(12,10,8,.72) 0%,transparent 42%)}
.hero-content{position:relative;z-index:2;max-width:780px}
.hero h1{font-size:var(--t-display);margin:1.6rem 0 1.8rem;color:var(--bone)}
.hero h1 em{font-style:italic;color:var(--bronze-lum)}
.hero p{font-family:var(--font-serif-read);font-size:1.28rem;line-height:1.62;color:var(--bone-2);max-width:46ch;font-weight:400;letter-spacing:0}
.hero-actions{display:flex;align-items:center;gap:1.6rem;margin-top:2.8rem;flex-wrap:wrap}
.hero-stat{position:absolute;right:2.5rem;bottom:3rem;z-index:2;text-align:right}
.hero-stat .n{font-size:2.6rem;line-height:1;color:var(--bone)}
.hero-stat .l{font-family:var(--font-ui);font-weight:500;font-size:.58rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bone-soft);margin-top:.35rem;max-width:14ch;margin-left:auto}
.hero-fold{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;
  font-family:var(--font-ui);font-weight:500;font-size:.56rem;letter-spacing:.34em;text-transform:uppercase;color:rgba(243,236,224,.55);
  display:flex;flex-direction:column;align-items:center;gap:.6rem}
.hero-fold::after{content:"";width:1px;height:42px;background:linear-gradient(rgba(243,236,224,.6),transparent);animation:fold 2.4s var(--ease-soft) infinite}
@keyframes fold{0%,100%{opacity:.3;transform:scaleY(.7)}50%{opacity:1;transform:scaleY(1)}}
@media(max-width:768px){.hero-stat{display:none}.hero-fold{display:none}}
.hero .eyebrow-d{color:var(--bronze-lum);opacity:.92}
/* let the rug glow: lighter, more balanced scrim than the old hard left-dark */
.hero-scrim{background:linear-gradient(94deg,rgba(16,12,8,.84) 0%,rgba(16,12,8,.46) 42%,rgba(16,12,8,.12) 100%),linear-gradient(0deg,rgba(16,12,8,.66) 0%,transparent 46%)}
.hero h1{letter-spacing:-.018em}
.hero-fold,.hero-fold::after{color:rgba(243,236,224,.5)}

/* ===== sections/library-cards.liquid ===== */
.library{background:var(--raw-wool);padding-top:var(--space-section);padding-bottom:var(--space-section)}
.library-head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-bottom:3rem;flex-wrap:wrap}
.library-h{font-family:var(--font-serif);font-weight:500;font-size:var(--t-h2);line-height:1.05;color:var(--ink)}
.library-h em{font-style:italic;color:var(--bronze-deep)}
.library-sub{font-family:var(--font-serif-read);font-size:1.15rem;line-height:1.6;color:var(--ink-soft);margin-top:.8rem;max-width:50ch}
.library-all{flex:0 0 auto;font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-deep);border-bottom:1px solid var(--bronze);padding-bottom:3px}
.library-all:hover{color:var(--ink)}
.library-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.lib-card a{display:flex;flex-direction:column;height:100%}
.lib-img{display:block;aspect-ratio:3/2;overflow:hidden;border-radius:var(--r-md);background:var(--raw-wool-deep)}
.lib-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--t-slow) var(--ease)}
.lib-card a:hover .lib-img img{transform:scale(1.04)}
.lib-body{padding:1.4rem .2rem 0;display:flex;flex-direction:column;flex:1}
.lib-meta{font-family:var(--font-ui);font-weight:600;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bronze-deep)}
.lib-title{font-family:var(--font-serif);font-weight:500;font-size:1.5rem;line-height:1.15;color:var(--ink);margin:.7rem 0 .6rem}
.lib-ex{font-family:var(--font-serif-read);font-size:1.02rem;line-height:1.6;color:var(--ink-soft);margin-bottom:1rem}
.lib-read{margin-top:auto;font-family:var(--font-ui);font-weight:600;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink);transition:color var(--t-fast) var(--ease)}
.lib-card a:hover .lib-read{color:var(--bronze-deep)}
@media(max-width:760px){.library-grid{grid-template-columns:1fr;gap:2.4rem;max-width:440px}}

/* ===== sections/main-article.liquid ===== */
.article-sec{padding-top:8.5rem}
@media(max-width:768px){.article-sec{padding-top:6.75rem}}
.article-head{max-width:760px;text-align:center;margin-bottom:2.4rem}
.article-head .crumbs{font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:1.4rem;display:flex;gap:.55rem;align-items:center;justify-content:center;flex-wrap:wrap}
.article-head .crumbs a:hover{color:var(--brand-blue)}.article-head .crumbs .sep{color:var(--line)}
.article-head h1{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1.04;letter-spacing:-.01em;margin:.6rem 0 1rem}
.article-head h1 em{font-style:italic;color:var(--brass-deep)}
.article-meta{font-family:var(--font-ui);font-weight:500;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-deep);display:flex;gap:.5rem;align-items:center;justify-content:center;flex-wrap:wrap}
.article-meta .dot{color:var(--line)}.article-meta .by{color:var(--ink-soft)}
.article-hero{max-width:1040px;margin:0 auto 3rem}
.article-hero img,.article-hero .ri-placeholder{width:100%;border-radius:var(--r-lg);overflow:hidden}
.article-body{max-width:720px}
.article-body .rte{font-size:1.05rem}
.article-share{display:flex;gap:1.2rem;align-items:center;margin-top:3rem;padding-top:1.8rem;border-top:1px solid var(--line)}
.article-share .share-label{font-family:var(--font-ui);font-weight:600;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}
.article-share a{font-family:var(--font-ui);font-weight:500;font-size:.78rem;color:var(--bronze-deep);border-bottom:1px solid color-mix(in srgb,var(--brand-blue) 30%,transparent);transition:border-color var(--t-fast) var(--ease)}
.article-share a:hover{border-color:var(--brand-blue)}
.article-share .share-copy{font-family:var(--font-ui);font-weight:500;font-size:.78rem;color:var(--bronze-deep);background:none;border:none;padding:0;cursor:pointer;border-bottom:1px solid color-mix(in srgb,var(--brand-blue) 30%,transparent);transition:border-color var(--t-fast) var(--ease)}
.article-share .share-copy:hover{border-color:var(--brand-blue)}
@media(max-width:560px){.article-share{flex-wrap:wrap;gap:1rem}}
.article-faq{max-width:760px;margin:4rem auto 0}
.article-faq h2{font-size:var(--t-h3);margin-bottom:1.6rem}
.faq-list{display:flex;flex-direction:column}
.faq-item{border-top:1px solid var(--line)}.faq-item:last-child{border-bottom:1px solid var(--line)}
.faq-item summary{cursor:pointer;list-style:none;padding:1.3rem .2rem;font-family:var(--font-serif);font-weight:500;font-size:1.25rem;color:var(--ink);display:flex;justify-content:space-between;gap:1rem;align-items:center}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font-family:var(--font-display);color:var(--brass-deep);transition:transform var(--t-fast) var(--ease)}
.faq-item[open] summary::after{content:"–"}
.faq-answer{padding:0 .2rem 1.3rem}
.article-related{padding:5rem 0 6rem;margin-top:4rem;border-top:1px solid var(--line)}
@media(max-width:768px){.article-related{padding:3.5rem 0 4.5rem}}

/* ===== sections/main-blog.liquid ===== */
.blog-head{padding-top:8.5rem;padding-bottom:2.5rem;text-align:center}
@media(max-width:768px){.blog-head{padding-top:6.75rem}}
@media(max-width:768px){.blog-head{padding-top:8rem;padding-bottom:1.5rem}}
.blog-head .crumbs{font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:1.4rem;display:flex;gap:.55rem;align-items:center;justify-content:center}
.blog-head .crumbs a:hover{color:var(--brand-blue)}.blog-head .crumbs .sep{color:var(--line)}
.blog-head h1{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1;letter-spacing:-.01em;margin:.5rem 0}
.blog-head h1 em{font-style:italic;color:var(--brass-deep)}
.blog-intro{color:var(--ink-soft);max-width:54ch;margin:1rem auto 0;font-size:var(--t-body-lg)}
.blog-tags{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:2rem}
.blog-tag{font-family:var(--font-ui);font-weight:500;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);border:1px solid var(--line);border-radius:var(--r-pill);padding:.42rem 1rem;transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.blog-tag:hover,.blog-tag.active{border-color:var(--brand-blue);color:var(--brand-blue)}

.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2.2rem 1.8rem;padding:2rem 0 5rem}
@media(max-width:980px){.blog-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.blog-grid{grid-template-columns:1fr}}
.post-card{display:flex;flex-direction:column}
.post-media{display:block;border-radius:var(--r-md);overflow:hidden;background:var(--paper-deep);margin-bottom:1.2rem}
.post-media img,.post-media .ri-placeholder{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-soft)}
.post-card:hover .post-media img{transform:scale(1.04)}
.post-meta{font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--brass-deep);display:flex;gap:.5rem;align-items:center;margin-bottom:.6rem}
.post-meta .dot{color:var(--line)}
.post-title{font-family:var(--font-serif);font-weight:400;font-size:1.55rem;line-height:1.12;margin-bottom:.6rem}
.post-title a{transition:color var(--t-fast) var(--ease)}.post-title a:hover{color:var(--brass-deep)}
.post-excerpt{color:var(--ink-soft);font-size:.94rem;line-height:1.65;margin-bottom:1rem}
.post-more{margin-top:auto}

/* Lead card spans the full row on wide screens */
.post-lead{grid-column:1/-1;display:grid;grid-template-columns:1.3fr 1fr;gap:2.5rem;align-items:center}
.post-lead .post-media{margin-bottom:0;aspect-ratio:16/10}
.post-lead .post-title{font-size:clamp(1.9rem,3vw,2.6rem)}
.post-lead .post-excerpt{font-size:1.02rem}
@media(max-width:980px){.post-lead{grid-template-columns:1fr;gap:1.2rem}}

.blog-loadmore{display:flex;flex-direction:column;align-items:center;gap:1.3rem;margin:0 0 5.5rem}
.blog-progress{font-family:var(--font-ui);font-weight:500;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin:0}
.blog-loadmore .btn-outline[aria-busy="true"]{opacity:.6;pointer-events:none}
.pager{margin:0 0 5rem;font-family:var(--font-ui);font-size:.82rem;color:var(--ink-soft);display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}
.pager a,.pager span{padding:.3rem .6rem;border-radius:.4rem}
.pager a:hover{color:var(--brand-blue)}
.blog-empty{text-align:center;padding:3rem 1rem 6rem}
.blog-empty h2{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-bottom:1rem}
.blog-empty p{color:var(--ink-soft);max-width:44ch;margin:0 auto 1.8rem}
.blog-empty .btn-solid{margin:0 auto}

/* ===== sections/main-cart.liquid ===== */
.cart-sec{padding-top:9.5rem;padding-bottom:6rem}
@media(max-width:768px){.cart-sec{padding-top:8rem}}

/* ---- Empty state ---- */
.cart-empty{max-width:620px;margin:2rem auto 4rem;text-align:center}
.cart-empty h1{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1.02;margin:.7rem 0 1rem}
.cart-empty h1 em{font-style:italic;color:var(--brass-deep)}
.cart-empty-body{color:var(--ink-soft);font-size:var(--t-body-lg);margin-bottom:2rem;max-width:46ch;margin-left:auto;margin-right:auto}
.cart-empty-actions{margin-bottom:1.2rem;display:flex;justify-content:center}
.cart-empty-actions .btn-solid{margin:0 auto}
.cart-empty-finder{margin:0 0 2.4rem;font-family:var(--font-ui);font-size:.8rem;letter-spacing:.02em;color:var(--ink-soft)}
.cart-empty-finder a{font-weight:600;color:var(--brass-deep);border-bottom:1px solid transparent;transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.cart-empty-finder a:hover{color:var(--brand-blue);border-color:var(--brand-blue)}
.cart-empty-search{display:flex;max-width:460px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);padding:.4rem .4rem .4rem 1.5rem;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.cart-empty-search:focus-within{border-color:var(--brand-blue);box-shadow:0 0 0 2px rgba(0,46,188,.25)}
.cart-empty-search input[type=search]{flex:1;background:none;border:none;color:var(--ink);font-family:var(--font-ui);font-size:.95rem;outline:none}
.cart-empty-search input::placeholder{color:var(--ink-soft)}
.cart-empty-search button{display:inline-flex;align-items:center;gap:.5rem;background:var(--ink);color:var(--paper);border:none;border-radius:var(--r-pill);padding:.55rem .65rem .55rem 1.2rem;font-family:var(--font-ui);font-weight:600;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;transition:background var(--t-mid) var(--ease)}
.cart-empty-search button:hover{background:var(--brass-deep)}
.cart-empty-search .ring{width:28px;height:28px;border-radius:50%;background:rgba(246,241,233,.16);display:grid;place-items:center}

/* ---- Populated head ---- */
.cart-head{margin-bottom:2.6rem}
.cart-head h1{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1.02;letter-spacing:-.01em;margin:.6rem 0 .6rem}
.cart-head h1 em{font-style:italic;color:var(--brass-deep)}
.cart-count{font-family:var(--font-ui);font-weight:500;font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}

/* ---- Layout ---- */
.cart-grid{display:grid;grid-template-columns:1fr 360px;gap:3rem;align-items:start}
@media(max-width:980px){.cart-grid{grid-template-columns:1fr;gap:2.4rem}}

/* ---- Lines ---- */
.cart-legend{display:grid;grid-template-columns:1fr 150px 120px;gap:1.5rem;padding:0 .2rem 1rem;border-bottom:1px solid var(--line);font-family:var(--font-ui);font-weight:600;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-soft)}
.cart-legend .ta-r{text-align:right}
@media(max-width:680px){.cart-legend{display:none}}

.cart-line{display:grid;grid-template-columns:1fr 150px 120px;gap:1.5rem;align-items:start;padding:1.8rem .2rem;border-bottom:1px solid var(--line)}
@media(max-width:680px){.cart-line{grid-template-columns:1fr;gap:1rem}}

.cl-piece{display:flex;gap:1.2rem;align-items:flex-start;min-width:0}
.cl-thumb{flex:0 0 auto;width:80px;border-radius:var(--r-md);overflow:hidden;background:var(--paper-deep);box-shadow:var(--shadow-inset)}
.cl-thumb img{width:100%;height:auto;display:block}
.cl-info{min-width:0}
.cl-name{font-family:var(--font-display);font-size:1.2rem;line-height:1.1;color:var(--ink);transition:color var(--t-fast) var(--ease)}
.cl-name:hover{color:var(--brass-deep)}
.cl-sub{font-family:var(--font-ui);font-size:.78rem;color:var(--ink-soft);margin-top:.25rem;line-height:1.4}
.cl-unique{display:flex;align-items:center;gap:.5rem;margin-top:.55rem;font-family:var(--font-ui);font-weight:500;font-size:.68rem;letter-spacing:.04em;color:var(--brass-deep)}
.cl-unique .badge{position:static;top:auto;left:auto}
.cl-discounts{list-style:none;margin:.5rem 0 0;padding:0;font-family:var(--font-ui);font-size:.72rem;color:var(--brand-blue)}
.cl-discounts li{margin-top:.2rem}
.cl-unit{font-family:var(--font-ui);font-size:.74rem;color:var(--ink-soft);margin-top:.5rem}

.cl-qty{display:flex;flex-direction:column;align-items:flex-start;gap:.7rem}
@media(max-width:680px){.cl-qty{flex-direction:row;align-items:center;justify-content:space-between}}

.qty-stepper{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--paper);overflow:hidden}
.qty-btn{width:38px;height:38px;display:grid;place-items:center;background:none;border:none;color:var(--ink);font-size:1.1rem;line-height:1;transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
/* Touch target: ≥44px hit area on coarse pointers. */
@media(pointer:coarse){.qty-btn{width:44px;height:44px}}
.qty-btn:hover{background:rgba(0,46,188,.06);color:var(--brand-blue)}
.qty-input{width:46px;height:38px;text-align:center;border:none;border-left:1px solid var(--line);border-right:1px solid var(--line);background:none;font-family:var(--font-ui);font-weight:500;font-size:.92rem;color:var(--ink);-moz-appearance:textfield}
.qty-input::-webkit-outer-spin-button,.qty-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.qty-input:focus-visible{box-shadow:0 0 0 2px rgba(0,46,188,.4);outline:none;background:rgba(0,46,188,.04)}
.qty-input:focus:not(:focus-visible){outline:none;background:rgba(0,46,188,.04)}

.cl-qty-fixed{display:flex;flex-direction:column;font-family:var(--font-ui);line-height:1.3}
.cl-qty-fixed .qf-n{font-family:var(--font-display);font-size:1.3rem;color:var(--ink)}
.cl-qty-fixed .qf-t{font-size:.66rem;letter-spacing:.06em;color:var(--ink-soft);text-transform:uppercase}

.cl-remove{display:inline-block;background:none;border:none;padding:0;font-family:var(--font-ui);font-weight:500;font-size:.64rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);border-bottom:1px solid transparent;transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease);width:max-content}
.cl-remove:hover{color:var(--brand-blue);border-color:var(--brand-blue)}

.cl-total{font-family:var(--font-display);font-size:1.15rem;color:var(--ink);text-align:right}
@media(max-width:680px){.cl-total{text-align:left}.cl-total::before{content:"Total: ";font-family:var(--font-ui);font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}}
.cl-total-was{display:block;font-family:var(--font-ui);font-size:.8rem;color:var(--ink-soft);text-decoration:line-through}
.cl-total-now{display:block}

.cart-update-row{padding:1.6rem .2rem 0}
.cart-update{font-size:.66rem}
/* When JS keeps the cart live, the manual update button is redundant. */
.js .cart-update-row{display:none}

/* ---- Summary ---- */
.cart-summary{position:sticky;top:6.5rem;background:rgba(33,29,24,.035);border:1px solid var(--line);border-radius:var(--r-lg);padding:2.2rem}
.cs-head{font-family:var(--font-serif);font-weight:400;font-size:1.5rem;color:var(--ink);margin-bottom:1.4rem}
.cs-discounts{list-style:none;margin:0 0 1rem;padding:0;font-family:var(--font-ui);font-size:.82rem;color:var(--brand-blue)}
.cs-discounts li{display:flex;justify-content:space-between;margin-bottom:.4rem}
.cs-row{display:flex;justify-content:space-between;align-items:baseline}
.cs-subtotal{padding-top:1.2rem;border-top:1px solid var(--line)}
.cs-subtotal span:first-child{font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.cs-amount{font-family:var(--font-display);font-size:1.5rem;color:var(--ink)}
.cs-note{font-family:var(--font-ui);font-size:.8rem;color:var(--ink-soft);margin:.8rem 0 0;line-height:1.5}
.cs-affirm{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;font-family:var(--font-ui);font-size:.78rem;color:var(--ink-soft);margin-top:.9rem}
.cs-note-field{margin-top:1.6rem;display:grid;gap:.45rem}
.cs-note-field label{font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);line-height:1.4}
.cs-note-field textarea{font-family:var(--font-ui);font-size:.92rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:.7rem .85rem;width:100%;resize:vertical}
.cs-note-field textarea:focus-visible{box-shadow:0 0 0 2px rgba(0,46,188,.4);outline:none;border-color:var(--brand-blue)}
.cs-note-field textarea:focus:not(:focus-visible){outline:none;border-color:var(--brand-blue)}
.cs-checkout{width:100%;justify-content:center;margin-top:1.8rem;padding-left:1.7rem}
.cs-continue{margin:1.4rem auto 0}
.cs-secure{font-family:var(--font-ui);font-size:.72rem;color:var(--ink-soft);margin-top:1.4rem;line-height:1.5;display:flex;gap:.4rem;align-items:flex-start}
.cs-lock{flex:0 0 auto;margin-top:.12rem;color:var(--brass-deep)}

/* ===== sections/main-collection.liquid ===== */
/* GEO buy-guide — quick answer, educational note, FAQ. */
.geo-intro{max-width:760px;margin:0 0 2.4rem}
.geo-answer{background:var(--paper-2,#f6f1e9);border-left:3px solid var(--brand-blue,#002EBC);border-radius:var(--r-sm,6px);padding:1.1rem 1.4rem;margin-bottom:1.6rem}
.geo-answer-label{display:block;font-family:var(--font-ui);font-weight:600;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brand-blue,#002EBC);margin-bottom:.45rem}
.geo-answer p{margin:0;font-size:1.02rem;line-height:1.55;color:var(--ink)}
.geo-about h2{font-family:var(--font-serif);font-weight:300;font-size:1.35rem;letter-spacing:-.01em;margin:0 0 .55rem}
.geo-about p{margin:0 0 .7rem;color:var(--ink-soft);line-height:1.6}
/* --brand-blue is bronze #8A6A3C: 4.01:1 on the --paper #EDE6D8 ground (axe,
   serious), short of the 4.5:1 needed at this 13px size. --bronze-deep #6E552F
   is the same accent one step darker at 5.63:1. This link only ever renders on
   the light collection ground, so it needs no dark-context counterpart. */
.geo-guide-link{font-family:var(--font-ui);font-weight:500;font-size:.82rem;color:var(--bronze-deep,#6E552F);border-bottom:1px solid color-mix(in srgb,var(--brand-blue,#002EBC) 30%,transparent)}
.geo-guide-link:hover{border-color:var(--brand-blue,#002EBC)}
.geo-faq{max-width:820px;margin:4rem auto 1rem;padding:0 var(--gutter,1.2rem)}
.geo-faq h2{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h3,1.6rem);margin-bottom:1.4rem}
.geo-faq .faq-list{display:flex;flex-direction:column}
.geo-faq .faq-item{border-top:1px solid var(--line)}
.geo-faq .faq-item:last-child{border-bottom:1px solid var(--line)}
.geo-faq .faq-item summary{cursor:pointer;list-style:none;padding:1.15rem .2rem;font-family:var(--font-serif);font-weight:500;font-size:1.12rem;color:var(--ink);display:flex;justify-content:space-between;gap:1rem;align-items:center}
.geo-faq .faq-item summary::-webkit-details-marker{display:none}
.geo-faq .faq-item summary::after{content:"+";font-family:var(--font-display,inherit);color:var(--brass-deep,#9A7B4F);transition:transform .2s ease}
.geo-faq .faq-item[open] summary::after{content:"\2013"}
.geo-faq .faq-answer{padding:0 .2rem 1.15rem;color:var(--ink-soft);line-height:1.6}

/* Editorial collection hero — shown only when the collection has an image. */
.chero{position:relative;height:clamp(300px,40vh,500px);display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}
/* Bias the crop downward so the RUG (lower in the frame) stays in view in the short hero band. */
.chero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 72%}
.chero-scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,10,8,.62) 0%,rgba(12,10,8,.18) 38%,transparent 70%),linear-gradient(90deg,rgba(12,10,8,.42) 0%,transparent 52%)}
.chero-inner{position:relative;z-index:2;width:100%;padding-bottom:2.6rem}
.chero-inner .crumbs{font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-soft);margin-bottom:1rem;display:flex;gap:.55rem;align-items:center}
.chero-inner .crumbs a{color:var(--bone-soft);transition:color var(--t-fast) var(--ease)}
.chero-inner .crumbs a:hover{color:var(--bone)}
.chero-inner .crumbs .sep{color:rgba(246,241,233,.35)}
.chero-inner h1{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1;letter-spacing:-.01em;color:var(--bone);text-wrap:balance;margin:0;text-shadow:0 2px 18px rgba(12,10,8,.55)}
.chero-inner .crumbs{text-shadow:0 1px 10px rgba(12,10,8,.5)}
.chero-inner h1 em{font-style:italic;color:var(--brass-lum-2)}
/* Banner trimmed 2026-10-07 (audit F-005) so the first row of rugs starts above the fold. */
@media(max-width:768px){.chero{height:clamp(220px,30vh,340px)}.chero-inner{padding-bottom:1.8rem}}
/* When the hero is present the text header drops its big top padding (the hero already cleared the fixed nav) and just carries the description + toolbar. */
.chead--has-hero{padding-top:2.4rem}
@media(max-width:768px){.chead--has-hero{padding-top:1.8rem}}

/* Header + toolbar */
.chead{padding-top:8.5rem;padding-bottom:2.5rem}
@media(max-width:768px){.chead{padding-top:6.75rem;padding-bottom:1.5rem}}
/* ⛔ The has-hero rules above lost to this block on SOURCE ORDER (same specificity, later wins), so
   every collection with a banner carried the full header clearance BELOW the banner: ~150px of empty
   wool between the photo and the grid. Restated here with higher specificity so they win. */
.chead.chead--has-hero{padding-top:2.4rem}
@media(max-width:768px){.chead.chead--has-hero{padding-top:1.8rem}}
.chead .crumbs{padding-top:0}
.chead .crumbs{font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:1.4rem;display:flex;gap:.55rem;align-items:center}
.chead .crumbs a{transition:color var(--t-fast) var(--ease)}.chead .crumbs a:hover{color:var(--brand-blue)}
.chead .crumbs .sep{color:var(--line)}
.chead h1{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1;letter-spacing:-.01em;margin-bottom:1.3rem}
.chead h1 em{font-style:italic;color:var(--brass-deep)}
.chead-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:2.5rem;flex-wrap:wrap}
.chead-intro p,.chead-intro .rte{flex:1 1 32ch;min-width:0;color:var(--ink-soft);max-width:58ch;font-size:1.02rem;line-height:1.7}
.chead-intro strong{color:var(--ink);font-weight:500}
/* Collapsible collection description — keeps SEO text in the DOM but off the scroll. */
.chead-details{display:block}
.chead-details > summary{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;list-style:none;width:max-content;
  font-family:var(--font-ui);font-weight:500;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);
  padding:.2rem 0;transition:color var(--t-fast) var(--ease)}
.chead-details > summary::-webkit-details-marker{display:none}
.chead-details > summary:hover{color:var(--brand-blue)}
.chead-details > summary .ci-ic{font-size:.7rem;transition:transform var(--t-fast) var(--ease)}
.chead-details[open] > summary .ci-ic{transform:rotate(180deg)}
.chead-details > .rte{margin-top:1rem;max-width:72ch}
.toolbar{display:flex;justify-content:space-between;align-items:center;gap:1.5rem;margin-top:2.8rem;padding-top:1.6rem;border-top:1px solid var(--line);flex-wrap:wrap}
.result-count{font-family:var(--font-serif);font-weight:400;font-size:1.3rem;color:var(--ink)}
.result-count b{font-family:var(--font-display);font-weight:500;color:var(--brass-deep)}
.toolbar-right{display:flex;align-items:center;gap:1rem}
.filter-trigger{display:none;align-items:center;gap:.6rem;background:var(--ink);color:var(--paper);font-family:var(--font-ui);font-weight:600;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;border:none;border-radius:var(--r-pill);padding:.7rem 1.3rem;transition:background var(--t-fast) var(--ease)}
.filter-trigger:hover{background:var(--brass-deep)}
@media(max-width:880px){.filter-trigger{display:inline-flex}}
.filter-trigger .dotcount{background:var(--brand-blue);color:#fff;border-radius:var(--r-pill);min-width:18px;height:18px;display:grid;place-items:center;font-size:.6rem;padding:0 .3rem}
.sort{position:relative;display:flex;align-items:center}
.sort label{font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-right:.7rem}
.sort select{appearance:none;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);padding:.65rem 2.6rem .65rem 1.3rem;font-family:var(--font-ui);font-weight:500;font-size:.74rem;color:var(--ink);letter-spacing:.02em;cursor:pointer;transition:border-color var(--t-fast) var(--ease)}
.sort select:hover,.sort select:focus{border-color:var(--brand-blue);outline:none}
.sort .chev{position:absolute;right:1.1rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--brass-deep);font-size:.7rem}

/* Guided-discovery one-liner (browsing state) — subtle, secondary to the grid. */
.collection-finder{margin-top:1.2rem;font-family:var(--font-ui);font-size:.78rem;letter-spacing:.02em;color:var(--ink-soft)}
.collection-finder a{font-weight:600;color:var(--brass-deep);border-bottom:1px solid transparent;transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.collection-finder a span{transition:transform var(--t-fast) var(--ease);display:inline-block}
.collection-finder a:hover{color:var(--brand-blue);border-color:var(--brand-blue)}
.collection-finder a:hover span{transform:translateX(3px)}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.6rem;align-items:center}
.chips:empty{display:none}
.chip{display:inline-flex;align-items:center;gap:.5rem;background:rgba(0,46,188,.06);border:1px solid rgba(0,46,188,.25);color:var(--brand-blue);font-family:var(--font-ui);font-weight:500;font-size:.66rem;letter-spacing:.06em;padding:.42rem .55rem .42rem .9rem;border-radius:var(--r-pill);transition:background var(--t-fast) var(--ease)}
.chip:hover{background:rgba(0,46,188,.12)}
.chip .x{width:16px;height:16px;border-radius:50%;background:rgba(0,46,188,.16);display:grid;place-items:center;font-size:.7rem;line-height:1;color:var(--brand-blue);transition:background var(--t-fast) var(--ease)}
.chip:hover .x{background:var(--brand-blue);color:#fff}
.chip-clear{font-family:var(--font-ui);font-weight:500;font-size:.64rem;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);background:none;padding:.4rem .2rem;border-bottom:1px solid transparent;transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}
.chip-clear:hover{color:var(--brand-blue);border-color:var(--brand-blue)}

/* Layout */
.shop{display:grid;grid-template-columns:268px 1fr;gap:3rem;padding:1rem 0 6rem;align-items:start}
@media(max-width:1024px){.shop{grid-template-columns:236px 1fr;gap:2rem}}
@media(max-width:880px){.shop{grid-template-columns:1fr;gap:0}}

/* Filters */
.filters{position:sticky;top:6.5rem}
@media(max-width:880px){
  /* The global .wrap utility puts position:relative;z-index:1 on the collection
     header wrapper. That creates a stacking context that TRAPS this fixed drawer
     below the scrim — so taps inside the open drawer land on the scrim and close
     it, making mobile filtering unusable. Cancelling the wrapper's z-index here
     (it stays position:relative) frees the drawer to stack at the top level. The
     drawer (1001) sits above the scrim (1000), which sits above the page. */
  .chead.wrap{z-index:auto}
  .filters{position:fixed;top:0;right:0;bottom:0;width:min(86vw,360px);z-index:1001;background:var(--paper);padding:1.5rem 1.5rem 2.5rem;overflow-y:auto;transform:translateX(100%);transition:transform var(--t-mid) var(--ease);box-shadow:-30px 0 80px -40px rgba(33,29,24,.5);border-left:1px solid var(--line)}
  .filters.open{transform:none}
}
.filter-scrim{display:none;position:fixed;inset:0;z-index:1000;background:rgba(12,10,8,.5);backdrop-filter:blur(4px);opacity:0;pointer-events:none;transition:opacity var(--t-mid) var(--ease)}
.filter-scrim.open{opacity:1;pointer-events:auto}
@media(max-width:880px){.filter-scrim{display:block}}
.filters-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:.4rem}
.filters-close{display:none;width:34px;height:34px;border-radius:50%;border:1px solid var(--line);background:none;color:var(--ink);font-size:1rem;place-items:center}
@media(max-width:880px){.filters-close{display:grid}}
/* Touch target: ≥44px hit area on coarse pointers. */
@media(pointer:coarse){.filters-close{width:44px;height:44px}}
.facet{border-bottom:1px solid var(--line)}
.facet:first-of-type{border-top:1px solid var(--line);margin-top:1.4rem}
.facet-head{width:100%;display:flex;justify-content:space-between;align-items:center;background:none;border:none;padding:1.15rem .2rem;text-align:left;color:var(--ink)}
.facet-head .t{font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}
.facet-head .ic{color:var(--brass-deep);font-size:.8rem;transition:transform var(--t-fast) var(--ease)}
.facet.collapsed .ic{transform:rotate(-90deg)}
.facet-body{display:grid;gap:.15rem;padding-bottom:1.1rem;overflow:hidden;transition:max-height .45s var(--ease),opacity .35s var(--ease),padding .35s var(--ease)}
.facet.collapsed .facet-body{max-height:0!important;opacity:0;padding-bottom:0}
.opt{display:flex;align-items:center;gap:.7rem;padding:.4rem .2rem;cursor:pointer;color:var(--ink-soft);transition:color var(--t-fast) var(--ease)}
.opt:hover{color:var(--ink)}
.opt input{position:absolute;opacity:0;width:0;height:0}
.opt .box{width:17px;height:17px;border:1px solid var(--brand-blue);border-radius:5px;flex-shrink:0;display:grid;place-items:center;background:var(--paper);transition:background .25s var(--ease),border-color .25s var(--ease)}
.opt .box::after{content:"✓";font-size:.66rem;color:#fff;opacity:0;transform:scale(.5);transition:opacity .2s var(--ease),transform .2s var(--ease)}
.opt input:checked + .box{background:var(--brand-blue);border-color:var(--brand-blue)}
.opt input:checked + .box::after{opacity:1;transform:none}
.opt input:focus-visible + .box{outline:2px solid var(--brand-blue);outline-offset:2px}
.opt input:disabled ~ .lab{opacity:.4}
.opt .lab{font-family:var(--font-ui);font-weight:400;font-size:.82rem;letter-spacing:.01em;flex:1}
.opt .ct{font-family:var(--font-ui);font-weight:400;font-size:.68rem;color:var(--ink-soft)}
.opt input:checked ~ .lab{color:var(--ink);font-weight:500}
.swatches{display:flex;flex-wrap:wrap;align-items:flex-start;gap:1rem .7rem;padding:.4rem .2rem .8rem}
.sw{display:inline-flex;flex-direction:column;align-items:center;gap:.45rem;cursor:pointer;width:56px}
.sw input{position:absolute;opacity:0;width:0;height:0}
.sw .dot{width:30px;height:30px;border-radius:50%;border:1px solid rgba(33,29,24,.12);display:block;box-shadow:inset 0 1px 2px rgba(255,255,255,.4);transition:transform .3s var(--ease)}
.sw .dot-multi{background:conic-gradient(from 90deg,#c0392b,#e67e22,#f1c40f,#27ae60,#2980b9,#8e44ad,#c0392b)}
.sw:hover .dot{transform:scale(1.08)}
.sw input:checked + .dot{outline:2px solid var(--brand-blue);outline-offset:2px;transform:scale(1.08)}
.sw .nm{font-family:var(--font-ui);font-size:.58rem;letter-spacing:.03em;color:var(--ink-soft);text-align:center;line-height:1.25;white-space:normal;word-break:break-word}
.sw input:checked ~ .nm{color:var(--ink);font-weight:500}
.price-facet{padding:.5rem .2rem .2rem}
.price-vals{display:flex;justify-content:space-between;font-family:var(--font-display);font-size:1rem;color:var(--ink);margin-bottom:.9rem}
.range-track{position:relative;height:30px}
.range-track input[type=range]{position:absolute;left:0;top:0;width:100%;height:30px;margin:0;background:none;-webkit-appearance:none;appearance:none;pointer-events:none}
.range-track input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:18px;height:18px;border-radius:50%;background:var(--brand-blue);border:2px solid var(--paper);box-shadow:0 2px 6px rgba(33,29,24,.3);cursor:pointer;pointer-events:auto}
.range-track input[type=range]::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--brand-blue);border:2px solid var(--paper);cursor:pointer;pointer-events:auto}
.range-rail{position:absolute;left:9px;right:9px;top:14px;height:3px;border-radius:3px;background:var(--line)}
.range-fill{position:absolute;top:14px;height:3px;border-radius:3px;background:var(--brand-blue)}
.facet-empty{color:var(--ink-soft);font-size:.85rem;padding:1.4rem .2rem}
.facet-apply{display:none}
@media(max-width:880px){.facet-apply{display:flex;gap:.8rem;margin-top:1.6rem;position:sticky;bottom:0;background:var(--paper);padding-top:1rem}.facet-apply .btn-solid{flex:1;justify-content:center}.facet-apply .btn-ghost{flex:0 0 auto}}
.filter-submit-nojs{margin-top:1rem;width:100%;justify-content:center}

/* Grid */
.grid-wrap{min-width:0}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media(max-width:1180px){.cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:880px){.cards{grid-template-columns:repeat(2,1fr);gap:1rem}}
@media(max-width:520px){.cards{grid-template-columns:1fr;max-width:420px;margin:0 auto}}

/* Empty state */
.empty{display:none;text-align:center;padding:5rem 1rem;border:1px dashed var(--line);border-radius:var(--r-lg);background:rgba(33,29,24,.02)}
.empty.show{display:block}
.empty .editorial{font-size:clamp(1.8rem,3.4vw,2.6rem);margin:.6rem 0 1rem}
.empty .editorial em{font-style:italic;color:var(--brass-deep)}
.empty p{color:var(--ink-soft);max-width:38ch;margin:0 auto 1.6rem}

/* Interstitial */
.interstitial{grid-column:1 / -1;position:relative;border-radius:var(--r-lg);overflow:hidden;min-height:340px;display:flex;align-items:flex-end;margin:.2rem 0}
.interstitial img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.interstitial .sc{position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,10,8,.86) 0%,rgba(12,10,8,.45) 55%,rgba(12,10,8,.15) 100%),linear-gradient(0deg,rgba(12,10,8,.6),transparent 50%)}
.interstitial .ib{position:relative;z-index:2;padding:2.6rem;max-width:540px;color:var(--bone)}
.interstitial .eyebrow{color:var(--brass-lum)}
.interstitial h2{font-family:var(--font-serif);font-weight:300;font-size:clamp(1.8rem,3.4vw,2.8rem);line-height:1.05;margin:.9rem 0;color:var(--bone)}
.interstitial h2 em{font-style:italic;color:var(--brass-lum-2)}
.interstitial p{color:var(--bone-soft);font-size:.95rem;font-weight:300;max-width:44ch;margin-bottom:1.4rem}
.interstitial .text-link{color:var(--brass-lum-2)}
@media(max-width:520px){.interstitial .ib{padding:1.8rem}}

/* Load more / pagination */
.loadmore{text-align:center;margin-top:3.2rem;display:flex;flex-direction:column;align-items:center;gap:1.4rem}
.loadmore .progress{font-family:var(--font-ui);font-weight:500;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.loadmore .bar{width:180px;height:2px;background:var(--line);border-radius:2px;overflow:hidden}
.loadmore .bar i{display:block;height:100%;background:var(--brand-blue)}
.btn-outline{display:inline-flex;align-items:center;gap:.85rem;background:none;color:var(--ink);border:1px solid var(--ink);border-radius:var(--r-pill);padding:.8rem .8rem .8rem 1.7rem;font-family:var(--font-ui);font-weight:600;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;transition:transform var(--t-mid) var(--ease),background var(--t-mid) var(--ease),color var(--t-mid) var(--ease),border-color var(--t-mid) var(--ease)}
.btn-outline .ring{width:34px;height:34px;border-radius:50%;background:rgba(33,29,24,.08);display:grid;place-items:center;transition:transform var(--t-mid) var(--ease),background var(--t-mid) var(--ease)}
.btn-outline:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-outline:hover .ring{background:rgba(246,241,233,.16);transform:translateY(3px)}
.btn-ghost{display:inline-flex;align-items:center;background:none;color:var(--ink-soft);border:1px solid var(--line);border-radius:var(--r-pill);padding:.8rem 1.4rem;font-family:var(--font-ui);font-weight:500;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.btn-ghost:hover{border-color:var(--brand-blue);color:var(--ink)}
.pager{margin-top:.4rem;font-family:var(--font-ui);font-size:.78rem;color:var(--ink-soft);display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}
.pager a,.pager span{padding:.3rem .55rem;border-radius:.4rem}
.pager a:hover{color:var(--brand-blue)}
/* When JS handles Load more, the numbered pager can hide; with no JS it stays. */
.js .pager{display:none}

/* ===== sections/main-identify.liquid ===== */
.idy-lede{max-width:720px;font-family:var(--font-serif);font-weight:300;font-size:1.5rem;line-height:1.5;color:var(--ink-soft);margin:0 auto 1rem}
.idy-lede strong{color:var(--ink);font-weight:500}
.idy-steps{max-width:1000px;margin:1rem auto 0;display:flex;flex-direction:column;gap:3.4rem}
.idy-step-num{font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:.5rem}
.idy-step h2{font-size:var(--t-h3);margin:0 0 .7rem}
.idy-step .rte{font-size:1.02rem}
.idy-step--media{display:grid;grid-template-columns:1fr 1fr;gap:2.6rem;align-items:center}
.idy-step--media:nth-of-type(even) .idy-step-fig{order:-1}
.idy-step-fig{margin:0}
.idy-step-fig img{width:100%;height:auto;border-radius:var(--r-lg);display:block}
@media(max-width:768px){.idy-step--media{grid-template-columns:1fr;gap:1.4rem}.idy-step--media:nth-of-type(even) .idy-step-fig{order:0}}
.idy-cta-wrap{max-width:1000px;margin:4.5rem auto 0}
.idy-cta{background:var(--ink);color:var(--paper,#F6F1E9);border-radius:var(--r-lg);padding:3.2rem 2.4rem;text-align:center}
.idy-cta .idy-cta-eyebrow{color:var(--brass);opacity:.9}
.idy-cta h2{color:#fff;font-size:var(--t-h2);margin:.3rem auto .8rem;max-width:18ch}
.idy-cta-text{font-family:var(--font-serif);font-style:italic;font-size:1.2rem;line-height:1.55;color:color-mix(in srgb,#fff 78%,transparent);max-width:54ch;margin:0 auto 1.8rem}
.idy-cta-btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.idy-cta .btn{display:inline-block;padding:.95rem 1.7rem;font-family:var(--font-ui);font-weight:600;font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;border-radius:6px;transition:background var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.idy-cta .btn-primary{background:var(--paper,#F6F1E9);color:var(--ink);border:1px solid var(--paper,#F6F1E9)}
.idy-cta .btn-primary:hover{background:var(--brass);border-color:var(--brass);color:#fff}
.idy-cta .btn-ghost{background:transparent;color:#fff;border:1px solid color-mix(in srgb,#fff 40%,transparent)}
.idy-cta .btn-ghost:hover{border-color:#fff;background:color-mix(in srgb,#fff 10%,transparent)}
@media(max-width:560px){.idy-cta{padding:2.4rem 1.4rem}}
.idy-explore{max-width:760px;margin:3.4rem auto 0;padding-top:1.8rem;border-top:1px solid var(--line)}
.idy-explore .idy-explore-links{font-size:.95rem;color:var(--ink-soft)}
.idy-explore .idy-explore-links a{color:var(--brand-blue)}

/* ===== sections/main-list-collections.liquid ===== */
.lc-sec{padding-top:9.5rem;padding-bottom:6rem}
.lc-group{font-family:var(--font-ui);font-weight:600;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:3rem 0 1.1rem}
.lc-group:first-of-type{margin-top:0}
@media(max-width:768px){.lc-sec{padding-top:8rem}}

/* ---- Head ---- */
.lc-head{max-width:680px;margin-bottom:3.4rem}
.lc-head h1{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1.02;letter-spacing:-.01em;margin:.6rem 0 1rem}
.lc-head h1 em{font-style:italic;color:var(--brass-deep)}
.lc-intro{color:var(--ink-soft);font-size:var(--t-body-lg);line-height:1.7;max-width:58ch}

/* ---- Grid ---- */
.lc-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media(max-width:1180px){.lc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.lc-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}}
.lc-item{min-width:0}

/* ---- Card (double-bezel, echoing product-card) ---- */
.lc-card{
  display:block;position:relative;
  background:rgba(33,29,24,.035);border:1px solid var(--line);border-radius:var(--r-lg);padding:.6rem;
  transition:transform .7s var(--ease),box-shadow .7s var(--ease),border-color .6s var(--ease);
}
.lc-card:hover{transform:translateY(-8px);border-color:rgba(154,123,79,.45);box-shadow:var(--shadow-card)}
.lc-core{display:block;background:var(--paper);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-inset)}
.lc-img{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--paper-deep)}
.lc-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-soft)}
.lc-card:hover .lc-img img{transform:scale(1.05)}
.lc-sc{position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,10,8,.5) 0%,rgba(12,10,8,.08) 38%,transparent 60%)}
.lc-arrow{position:absolute;top:1rem;right:1rem;z-index:2;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:rgba(246,241,233,.82);backdrop-filter:blur(6px);border:1px solid rgba(33,29,24,.1);color:var(--ink);font-size:.95rem;opacity:0;transform:translateY(-4px);transition:opacity .45s var(--ease),transform .45s var(--ease),background .35s var(--ease),color .35s var(--ease)}
.lc-card:hover .lc-arrow{opacity:1;transform:none;background:var(--paper);color:var(--brass-deep)}
@media(hover:none){.lc-arrow{opacity:1;transform:none}}

.lc-body{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:1.3rem 1.4rem 1.5rem}
.lc-name{font-family:var(--font-serif);font-weight:400;font-size:var(--t-card-name);line-height:1.1;color:var(--ink)}
.lc-count{flex:0 0 auto;font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--brass-deep)}

/* ---- Empty ---- */
.lc-empty{text-align:center;padding:4rem 1rem 6rem;border:1px dashed var(--line);border-radius:var(--r-lg);background:rgba(33,29,24,.02)}
.lc-empty h2{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-bottom:1rem}
.lc-empty h2 em{font-style:italic;color:var(--brass-deep)}
.lc-empty p{color:var(--ink-soft);max-width:42ch;margin:0 auto 1.8rem}
.lc-empty .btn-solid{margin:0 auto}

/* ===== sections/main-page.liquid ===== */
.page-sec{padding-top:8.5rem}
@media(max-width:768px){.page-sec{padding-top:6.75rem}}
/* TOP-OF-PAGE SPACING (design audit F-005, 2026-10-07). #main-content already pads 5.4rem to clear
   the fixed header; each page-type section then adds its own 8.5rem / 6.75rem (mobile) breathing room,
   the same numbers the product page uses, so every page starts its breadcrumb ~120px below the header.
   ⛔ The PDP's `.crumbs{padding-top:8.5rem}` (sections/main-product block below) became GLOBAL when the
   section stylesheets were merged into this file (68738c6d, 2026-08-11), so content, blog and article
   pages were clearing the header THREE times (~275px of empty wool above the title). The breadcrumbs
   that sit inside a section that already has its own top padding opt out here; the PDP and the
   collection header still rely on it and are untouched. */
.page-head .crumbs,.blog-head .crumbs,.article-head .crumbs{padding-top:0}
/* Shopify serves /policies/* from its OWN built-in template (.shopify-policy__container) and ignores
   templates/policy.liquid, so those pages had no clearance at all (title under the header) and an
   unstyled title. Same spacing and title as a content page; the body already uses .rte. */
body .shopify-policy__container{max-width:760px;margin:0 auto;padding:8.5rem 1.5rem 7rem}
@media(max-width:768px){body .shopify-policy__container{padding-top:6.75rem}}
.shopify-policy__title{text-align:center;margin-bottom:3rem}
.shopify-policy__title h1{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1.02;letter-spacing:-.01em;color:var(--ink)}
/* With a hero the banner clears the fixed nav, so the section drops its top pad. */
.page-sec--hero{padding-top:0}
.page-hero{position:relative;height:clamp(340px,52vh,580px);display:flex;align-items:flex-end;overflow:hidden;background:var(--ink);margin-bottom:3.4rem}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 68%}
.page-hero-scrim{position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,10,8,.72) 0%,rgba(12,10,8,.3) 44%,rgba(12,10,8,.08) 100%)}
.page-hero-inner h1,.page-hero-inner .page-intro{text-shadow:0 2px 18px rgba(12,10,8,.5)}
.page-hero-inner{position:relative;z-index:2;width:100%;max-width:820px;margin:0 auto;padding-bottom:2.8rem;text-align:center}
.page-hero-inner .crumbs{justify-content:center;color:var(--bone-soft);margin-bottom:1.1rem}
.page-hero-inner .crumbs a{color:var(--bone-soft)}
.page-hero-inner .crumbs a:hover{color:var(--bone)}
.page-hero-inner .crumbs .sep{color:rgba(246,241,233,.35)}
.page-hero-inner .eyebrow{color:var(--brass-lum)}
.page-hero-inner h1{color:var(--bone);text-wrap:balance}
.page-hero-inner h1 em{color:var(--brass-lum-2)}
.page-hero-inner .page-intro,.page-hero-inner .page-intro .rte{color:var(--bone-soft)}
@media(max-width:768px){.page-hero{height:clamp(280px,44vh,440px);margin-bottom:2.4rem}.page-hero-inner{padding-bottom:2rem}}
.page-head{max-width:760px;margin:0 auto 3rem;text-align:center}
.page-head .crumbs{font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:1.4rem;display:flex;gap:.55rem;align-items:center;justify-content:center}
.page-head .crumbs a{transition:color var(--t-fast) var(--ease)}.page-head .crumbs a:hover{color:var(--brand-blue)}
.page-head .crumbs .sep{color:var(--line)}
.page-head h1{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1.02;letter-spacing:-.01em;margin:.6rem 0}
.page-head h1 em{font-style:italic;color:var(--brass-deep)}
.page-intro{color:var(--ink-soft);font-size:var(--t-body-lg);margin-top:1rem}
.page-grid{max-width:760px;margin:0 auto}
.page-grid.has-form{max-width:1080px;display:grid;grid-template-columns:1.2fr .8fr;gap:4rem;align-items:start}
@media(max-width:880px){.page-grid.has-form{grid-template-columns:1fr;gap:2.5rem}}
.page-body{color:var(--ink)}

/* ---- Shared rich-text (.rte) — base prose styling, used across content
       pages, articles, charity/philosophy bodies, etc. ---- */
.rte{font-family:var(--font-ui);font-weight:400;line-height:1.75;color:var(--ink-soft)}
.rte > *:first-child{margin-top:0}
.rte > *:last-child{margin-bottom:0}
.rte p{margin:0 0 1.2rem;max-width:68ch}
.rte h2{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h3);line-height:1.1;color:var(--ink);margin:2.6rem 0 1rem}
.rte h2 em{font-style:italic;color:var(--brass-deep)}
.rte h3{font-family:var(--font-serif);font-weight:500;font-size:1.4rem;color:var(--ink);margin:2rem 0 .8rem}
.rte h4{font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-deep);margin:1.8rem 0 .6rem}
/* Body-size link TEXT uses --bronze-deep, not --brand-blue (#8A6A3C).
   Measured against the REAL token values (--paper #EDE6D8, --paper-deep #E3DACA):
     bronze      4.02 / 3.60  FAIL   (axe confirmed on the collection page and
                                      /pages/visit-us: 4.01, serious)
     bronze-deep 5.63 / 5.04  PASS
   The underline stays --brand-blue; a border is not text and has no 4.5:1 duty.
   ⚠ On DARK grounds the direction inverts: on --void #0C0A08, bronze-deep is
   2.83 — WORSE than the bronze it replaced (3.96) — and only --bronze-lum
   (8.30) passes. The two dark .rte contexts are overridden just below. Any new
   dark .rte surface must be added there or its links will fail. */
.rte a{color:var(--bronze-deep);border-bottom:1px solid color-mix(in srgb,var(--brand-blue) 35%,transparent);transition:border-color var(--t-fast) var(--ease)}
/* Dark-ground .rte surfaces: .as-name is background:var(--void); .page-hero-inner
   sits on a dark image + scrim. Light accent required here, not the dark one. */
.about-story .as-name .rte a,
.about-story .as-name-body a,
.page-hero-inner .rte a,
.page-hero-inner .page-intro a{color:var(--bronze-lum)}
.rte a:hover{border-color:var(--brand-blue)}
.rte strong{color:var(--ink);font-weight:600}
.rte em{font-style:italic}
.rte ul,.rte ol{margin:0 0 1.2rem;padding-left:1.3rem;max-width:66ch}
.rte li{margin-bottom:.5rem}
.rte blockquote{font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:1.5rem;line-height:1.4;color:var(--ink);margin:1.8rem 0;padding-left:1.4rem;border-left:1px solid var(--brass)}
.rte img{border-radius:var(--r-md);margin:1.6rem 0}
.rte hr{border:none;border-top:1px solid var(--line);margin:2.4rem 0}
.rte table{width:100%;border-collapse:collapse;margin:1.6rem 0;font-size:.92rem}
.rte th,.rte td{text-align:left;padding:.7rem .9rem;border-bottom:1px solid var(--line)}
.rte th{font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}

/* ---- Contact aside ---- */
.page-form{background:rgba(33,29,24,.035);border:1px solid var(--line);border-radius:var(--r-lg);padding:2.2rem}
.page-form .form-heading{font-family:var(--font-serif);font-weight:400;font-size:1.6rem;color:var(--ink);margin-bottom:1.4rem}
.contact-form{display:grid;gap:1rem}
.contact-form .field{display:grid;gap:.4rem}
.contact-form .field > span{font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.contact-form input,.contact-form textarea{font-family:var(--font-ui);font-size:.95rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:.75rem .9rem;width:100%}
.contact-form input:focus-visible,.contact-form textarea:focus-visible{box-shadow:0 0 0 2px rgba(0,46,188,.4);outline:none;border-color:var(--brand-blue)}
.contact-form input:focus:not(:focus-visible),.contact-form textarea:focus:not(:focus-visible){outline:none;border-color:var(--brand-blue)}
.contact-form textarea{resize:vertical}
.contact-form .btn-solid{margin-top:.4rem}
.form-ok{font-family:var(--font-serif);font-style:italic;font-size:1.1rem;color:var(--brass-deep);grid-column:1/-1}
.form-note{color:var(--ink-soft);font-size:.88rem}
.globo-form-slot{min-height:120px}
/* App-block forms (Shopify Forms) — full-width card below the page content. */
.page-form-app{max-width:680px;margin:3.2rem auto 0;background:rgba(33,29,24,.035);border:1px solid var(--line);border-radius:var(--r-lg);padding:2.4rem}
@media(max-width:560px){.page-form-app{padding:1.6rem}}
.page-nap{margin-top:1.8rem;padding-top:1.6rem;border-top:1px solid var(--line);font-size:.92rem;line-height:1.7;color:var(--ink-soft)}
.page-nap .nap-line strong{color:var(--ink)}
.page-nap .nap-hours{margin-top:.4rem;font-size:.82rem}

/* ===== sections/main-product.liquid ===== */
  /* ---- Breadcrumb ---- */
  .crumbs{padding-top:8.5rem}
  .crumbs .wrap{display:flex;align-items:center;gap:.7rem;font-family:var(--font-ui);font-weight:500;
    font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
  .crumbs a{transition:color var(--t-fast) var(--ease)}
  .crumbs a:hover{color:var(--brand-blue)}
  .crumbs .sep{color:var(--line);font-size:.7rem}
  .crumbs .here{color:var(--brass-deep)}
  @media(max-width:768px){.crumbs{padding-top:6.75rem}.crumbs .wrap{font-size:.56rem;gap:.5rem}}

  /* ---- PDP top ---- */
  .pdp{padding:2.5rem 0 7rem}
  .pdp-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:4rem;align-items:flex-start}
  @media(max-width:1040px){.pdp-grid{grid-template-columns:1fr;gap:2.75rem}}

  /* Gallery */
  .gallery{position:sticky;top:6.5rem;display:grid;grid-template-columns:84px 1fr;gap:1.1rem}
  @media(max-width:1040px){.gallery{position:static}}
  @media(max-width:560px){.gallery{grid-template-columns:1fr;gap:.9rem}}
  .thumbs{display:flex;flex-direction:column;gap:.8rem}
  @media(max-width:560px){.thumbs{flex-direction:row;order:2;overflow-x:auto;padding-bottom:.4rem}}
  .thumb{position:relative;border:1px solid var(--line);border-radius:.9rem;overflow:hidden;background:var(--paper-deep);
    aspect-ratio:1;flex:0 0 auto;width:84px;cursor:pointer;padding:0;transition:border-color var(--t-mid) var(--ease),transform var(--t-mid) var(--ease)}
  .thumb img{width:100%;height:100%;object-fit:cover;transition:transform .8s var(--ease-soft)}
  .thumb:hover{transform:translateY(-2px)}
  .thumb:hover img{transform:scale(1.08)}
  .thumb.active{border-color:var(--brass)}
  .thumb.active::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 2px var(--brass);border-radius:.9rem;pointer-events:none}
  .stage-shell{background:rgba(33,29,24,.035);border:1px solid var(--line);border-radius:var(--r-lg);padding:.6rem;box-shadow:var(--shadow-plate)}
  .stage-core{position:relative;border-radius:var(--r-md);overflow:hidden;background:var(--paper-deep);box-shadow:var(--shadow-inset);aspect-ratio:4/5;cursor:zoom-in}
  .stage-img{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .6s var(--ease),transform .9s var(--ease-soft);transform:scale(1.02)}
  .stage-img img{width:100%;height:100%;object-fit:cover;display:block}
  .stage-img.shown{opacity:1;transform:scale(1)}
  .zoom-hint{position:absolute;bottom:1.1rem;right:1.1rem;z-index:3;display:none;align-items:center;gap:.5rem;
    font-family:var(--font-ui);font-weight:500;font-size:.54rem;letter-spacing:.16em;text-transform:uppercase;color:var(--paper);
    background:rgba(33,29,24,.5);backdrop-filter:blur(6px);border:1px solid rgba(243,236,224,.2);padding:.45rem .8rem;border-radius:var(--r-pill);transition:opacity var(--t-fast) var(--ease)}
  /* Show the "click to zoom" hint once pdp-photoswipe.js confirms the viewer is wired. */
  .zoom-ready .zoom-hint{display:flex}
  .stage-core:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
  @media(max-width:560px){.stage-core{cursor:default}}

  /* ---- PhotoSwipe full-screen viewer — restyled to the Arteverk palette ---- */
  .pswp{--pswp-bg:#211d18;--pswp-icon-color:#f3ece0;--pswp-icon-color-secondary:#211d18;--pswp-error-text-color:#f3ece0}
  .pswp__bg{background:#211d18}
  .pswp__top-bar{padding-top:.4rem}
  .pswp__button{transition:opacity var(--t-fast) var(--ease)}
  .pswp__counter{font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.18em;opacity:.85;margin-left:1rem}
  .pswp__icn{fill:currentColor}
  /* Custom Zoom In / Out / Reset buttons — our SVGs use currentColor, so force the
     light icon colour + a shadow so they read on both the dark backdrop and pale rugs. */
  .pswp__button--av-zoom-in,.pswp__button--av-zoom-out,.pswp__button--av-zoom-reset{color:var(--pswp-icon-color,#f3ece0);opacity:.9}
  .pswp__button--av-zoom-in:hover,.pswp__button--av-zoom-out:hover,.pswp__button--av-zoom-reset:hover{opacity:1}
  .pswp__button--av-zoom-in svg,.pswp__button--av-zoom-out svg,.pswp__button--av-zoom-reset svg{filter:drop-shadow(0 1px 3px rgba(0,0,0,.55))}
  /* Bottom thumbnail strip */
  .pswp__av-thumbs{position:absolute;left:0;right:0;bottom:.7rem;z-index:20;display:flex;gap:.5rem;justify-content:center;
    align-items:center;padding:.5rem 1rem;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .pswp__av-thumbs::-webkit-scrollbar{display:none}
  .pswp__av-thumb{flex:0 0 auto;width:56px;height:56px;padding:0;border:1px solid rgba(243,236,224,.28);border-radius:.5rem;
    overflow:hidden;background:none;cursor:pointer;opacity:.55;transition:opacity var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}
  .pswp__av-thumb img{width:100%;height:100%;object-fit:cover;display:block}
  .pswp__av-thumb:hover{opacity:.85}
  .pswp__av-thumb.is-active{opacity:1;border-color:var(--brass)}
  @media(max-width:560px){.pswp__av-thumb{width:46px;height:46px}}

  /* Buy column */
  .buy{display:flex;flex-direction:column}
  .buy .collection{font-family:var(--font-ui);font-weight:500;font-size:.6rem;letter-spacing:.22em;text-transform:uppercase;color:var(--brass-deep)}
  .buy .collection a{color:inherit;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s ease,color .2s ease}
  .buy .collection a:hover,.buy .collection a:focus-visible{color:var(--brand-blue);border-bottom-color:currentColor}
  .buy h1.rug-name{font-family:var(--font-display);font-weight:400;font-size:clamp(2.6rem,4.6vw,3.9rem);line-height:1;letter-spacing:-.01em;margin:.7rem 0 .55rem}
  .rug-descriptor{font-family:var(--font-ui);font-weight:400;font-size:.82rem;letter-spacing:.02em;color:var(--ink-soft);margin-bottom:1.1rem;line-height:1.5}
  .rug-prov{font-family:var(--font-serif);font-style:italic;font-size:1.02rem;color:var(--ink-soft);margin-bottom:1.3rem}
  .rug-prov strong{color:var(--ink);font-weight:500;font-style:normal}
  .buy-rating{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;margin-bottom:1.5rem}
  .buy-rating .stars{color:var(--brass);font-size:.92rem;letter-spacing:.08em}
  .buy-rating .rnum{font-family:var(--font-display);font-size:1.05rem;color:var(--ink)}
  .buy-rating .rlink{font-family:var(--font-ui);font-weight:500;font-size:.7rem;color:var(--ink-soft);border-bottom:1px solid var(--line);padding-bottom:1px;transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}
  .buy-rating .rlink:hover{color:var(--brand-blue);border-color:var(--brand-blue)}
  .buy-rating .pip{width:4px;height:4px;border-radius:50%;background:var(--line)}
  .price-row{display:flex;align-items:baseline;gap:1rem;flex-wrap:wrap}
  .price{font-family:var(--font-display);font-size:2.4rem;line-height:1;color:var(--ink)}
  .price-compare{font-family:var(--font-display);font-size:1.4rem;color:var(--ink-soft)}
  /* Accelerated checkout — matched to the pill language of .btn-add rather than
     left at Shopify's default square button, which reads as a bolted-on widget.
     The custom properties are Shopify's own supported hooks; the inner Shop Pay
     button is a web component we can size but not restyle. */
  /*
     ⛔ MEASURED IN A REAL BROWSER 2026-09-05: the gap between .add-row and .buy-express was
     MINUS 2px — the Shop Pay button was overlapping the ADD TO CART row it sits under.

     The -.1rem was presumably tuned against spacing a Shopify web component used to supply.
     It does not any more, and the two are SIBLINGS INSIDE THE FORM, so .buy-cta's own 14.4px
     row-gap never reaches them: it applies between product-form and btn-book, one level up.
     Nothing was left to separate them.

     Now spaced on the same rhythm as the rest of the buy box, so the express button reads as
     the alternative to Add to cart rather than as part of the same control. */
  .buy-express{margin-top:.9rem}
  .buy-express shopify-accelerated-checkout,
  .buy-express shopify-accelerated-checkout-cart{
    --shopify-accelerated-checkout-button-border-radius:999px;
    --shopify-accelerated-checkout-button-block-size:54px;
    --shopify-accelerated-checkout-inline-alignment:stretch;
    display:block}
  .buy-express .shopify-payment-button__button{border-radius:var(--r-pill);min-height:54px;
    font-family:var(--font-ui);font-weight:600;font-size:.76rem;letter-spacing:.1em;text-transform:uppercase}
  .buy-express .shopify-payment-button__more-options{font-family:var(--font-ui);font-weight:500;font-size:.7rem;
    letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;
    margin-top:.6rem;background:none;border:none}
  .buy-express .shopify-payment-button__more-options:hover{color:var(--brass-deep)}
  .financing{font-family:var(--font-ui);font-weight:400;font-size:.78rem;color:var(--ink-soft);margin-top:.7rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}
  .financing .affirm-as-low-as b{color:var(--ink);font-weight:600}
  .rule{height:1px;background:var(--line);margin:1.9rem 0}
  .opt-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.9rem}
  .opt-head .lab{font-family:var(--font-ui);font-weight:600;font-size:.62rem;letter-spacing:.18em;text-transform:uppercase;color:var(--ink)}
  .size-select{width:100%;appearance:none;background:var(--paper);border:1px solid var(--brass);border-radius:var(--r-md);padding:1rem 1.2rem;font-family:var(--font-ui);font-size:.9rem;color:var(--ink);cursor:pointer}
  .size-pill{width:100%;text-align:left;display:flex;justify-content:space-between;align-items:center;
    border:1px solid var(--brass);background:rgba(154,123,79,.06);border-radius:var(--r-md);padding:1rem 1.2rem;box-shadow:var(--shadow-inset)}
  .size-pill .sz{font-family:var(--font-display);font-size:1.15rem;color:var(--ink)}
  .size-pill .note{font-family:var(--font-ui);font-weight:500;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-deep)}
  .size-sub{font-family:var(--font-ui);font-weight:400;font-size:.74rem;color:var(--ink-soft);margin-top:.7rem}
  .scarcity{display:flex;align-items:flex-start;gap:.8rem;margin:1.7rem 0 1.6rem;font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:1.18rem;line-height:1.4;color:var(--ink)}
  .scarcity .dot{flex:0 0 auto;width:7px;height:7px;border-radius:50%;background:var(--brass);margin-top:.55rem;box-shadow:0 0 0 4px rgba(154,123,79,.16)}
  .buy-cta{display:flex;flex-direction:column;gap:.9rem}
  .add-row{display:flex;gap:.9rem;align-items:stretch}
  .btn-add{flex:1;display:inline-flex;align-items:center;justify-content:space-between;gap:.85rem;background:var(--ink);color:var(--paper);
    border:none;border-radius:var(--r-pill);padding:1.05rem 1.05rem 1.05rem 1.8rem;font-family:var(--font-ui);font-weight:600;
    font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;transition:transform var(--t-mid) var(--ease),background var(--t-mid) var(--ease)}
  .btn-add .ring{width:38px;height:38px;border-radius:50%;background:rgba(246,241,233,.16);display:grid;place-items:center;font-size:.95rem;transition:transform var(--t-mid) var(--ease)}
  .btn-add:hover{background:var(--brass-deep)}.btn-add:active{transform:scale(.98)}
  .btn-add:hover .ring{transform:translateX(4px) translateY(-2px)}
  .btn-add[disabled]{opacity:.55;cursor:not-allowed}
  .btn-fav{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;background:transparent;color:var(--ink);
    border:1px solid var(--line);border-radius:var(--r-pill);padding:0 1.4rem;font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
    transition:border-color var(--t-mid) var(--ease),color var(--t-mid) var(--ease),background var(--t-mid) var(--ease)}
  .btn-fav .fav-heart{font-size:1.15rem;line-height:1;color:var(--brass-deep);transition:transform var(--t-fast) var(--ease)}
  .btn-fav:hover{border-color:var(--brass);color:var(--brass-deep)}
  .btn-fav:hover .fav-heart{transform:scale(1.12)}
  .btn-fav.saved{background:rgba(154,123,79,.1);border-color:var(--brass);color:var(--brass-deep)}
  .btn-fav.saved .fav-heart{font-size:0}
  .btn-fav.saved .fav-heart::before{content:"♥";font-size:1.15rem}
  .btn-fav.bump .fav-heart::before,.btn-fav.bump .fav-heart{animation:favpop .5s var(--ease-soft)}
  @media(max-width:560px){.add-row{flex-direction:column}.btn-fav{padding:.85rem 1.4rem}}
  .btn-book{display:inline-flex;align-items:center;justify-content:space-between;gap:.85rem;background:transparent;color:var(--ink);
    border:1px solid var(--ink);border-radius:var(--r-pill);padding:1rem 1.05rem 1rem 1.8rem;font-family:var(--font-ui);font-weight:600;
    font-size:.76rem;letter-spacing:.1em;text-transform:uppercase;transition:transform var(--t-mid) var(--ease),background var(--t-mid) var(--ease),color var(--t-mid) var(--ease),border-color var(--t-mid) var(--ease)}
  .btn-book .ring{width:38px;height:38px;border-radius:50%;background:rgba(33,29,24,.06);display:grid;place-items:center;font-size:.95rem;transition:transform var(--t-mid) var(--ease),background var(--t-mid) var(--ease)}
  .btn-book:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
  .btn-book:hover .ring{background:rgba(246,241,233,.16);transform:translateX(4px) translateY(-2px)}
  .assure{display:grid;grid-template-columns:repeat(3,1fr);gap:1.1rem;margin-top:1.8rem}
  .assure>div{display:flex;flex-direction:column;gap:.3rem}
  .assure .ic{font-size:1.2rem;color:var(--brass-deep)}
  .assure .t{font-family:var(--font-ui);font-weight:600;font-size:.58rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink)}
  .assure .d{font-family:var(--font-ui);font-weight:400;font-size:.68rem;color:var(--ink-soft);line-height:1.4}
  @media(max-width:560px){.assure{grid-template-columns:1fr;gap:.9rem}}

  /* Provenance + spec */
  .prov{background:var(--paper-deep)}
  .prov-grid{display:grid;grid-template-columns:1fr 1fr;gap:4.5rem;align-items:start}
  @media(max-width:920px){.prov-grid{grid-template-columns:1fr;gap:2.5rem}}
  .prov-text h2{font-family:var(--font-serif);font-weight:400;font-size:var(--t-h3);line-height:1.04;margin:1.2rem 0 1.5rem}
  .prov-text h2 em{font-style:italic;color:var(--brass-deep)}
  .prov-body p{margin:0 0 1.1rem}
  .prov-link{display:inline-block;margin-top:.4rem;font-family:var(--font-ui);font-weight:600;font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--bronze-deep);border-bottom:1px solid var(--bronze);padding-bottom:3px}
  .prov-link:hover{color:var(--ink)}
  .prov-body{color:var(--ink-soft);font-size:1.04rem;max-width:50ch}
  .prov-body p{margin-bottom:1.2rem}
  .prov-body strong{color:var(--ink);font-weight:500}
  .prov-body em{color:var(--brass-deep)}
  .prov-note{margin-top:1.8rem;background:rgba(33,29,24,.035);border:1px solid var(--line);border-radius:var(--r-md);padding:1.5rem 1.7rem;box-shadow:var(--shadow-inset)}
  .prov-note .nh{font-family:var(--font-ui);font-weight:600;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:.6rem}
  .prov-note p{font-family:var(--font-serif);font-style:italic;font-size:1.08rem;line-height:1.5;color:var(--ink);margin:0}
  .prov-guide{margin-top:1.8rem;background:var(--paper-deep,rgba(33,29,24,.04));border:1px solid var(--line);border-radius:var(--r-md);padding:1.6rem 1.7rem}
  .prov-guide .pg-eyebrow{font-family:var(--font-ui);font-weight:600;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-deep);margin-bottom:.7rem}
  .prov-guide .pg-lede{font-family:var(--font-serif);font-size:1.18rem;line-height:1.42;color:var(--ink);margin:0 0 1.2rem;max-width:46ch}
  .prov-guide .pg-links{display:flex;align-items:center;gap:1.3rem;flex-wrap:wrap}
  .prov-guide .pg-btn{display:inline-flex;align-items:center;background:var(--ink);color:var(--paper);border-radius:999px;padding:.78rem 1.5rem;font-family:var(--font-ui);font-weight:600;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;transition:background var(--t-fast,.25s) var(--ease,ease)}
  .prov-guide .pg-btn:hover{background:var(--brass-deep)}
  .prov-guide .pg-all{font-family:var(--font-ui);font-weight:600;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);text-decoration:underline;text-underline-offset:3px;transition:color var(--t-fast,.25s) var(--ease,ease)}
  .prov-guide .pg-all:hover{color:var(--brass-deep)}
  /* Touch target ≥44px on phones/tablets. */
  @media(pointer:coarse){.prov-guide .pg-btn{min-height:44px}.prov-guide .pg-all{padding:.4rem 0;min-height:44px;display:inline-flex;align-items:center}}
  .spec-shell{background:rgba(33,29,24,.035);border:1px solid var(--line);border-radius:var(--r-lg);padding:.6rem;box-shadow:0 40px 90px -54px rgba(33,29,24,.45)}
  .spec-core{background:var(--paper);border-radius:var(--r-md);overflow:hidden;box-shadow:var(--shadow-inset)}
  .spec-core .sc-head{padding:1.4rem 1.7rem 1.1rem;border-bottom:1px solid var(--line)}
  .spec-core .sc-head .eyebrow{display:block}
  .spec-core .sc-head h3{font-weight:400;font-size:1.45rem;margin-top:.5rem}
  .spec-row{display:grid;grid-template-columns:9.5rem 1fr;gap:1rem;padding:.85rem 1.7rem;border-bottom:1px solid var(--line)}
  .spec-row:last-child{border-bottom:none}
  .spec-row dt{font-family:var(--font-ui);font-weight:600;font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);align-self:center}
  .spec-row dd{font-family:var(--font-serif);font-size:1.15rem;color:var(--ink);line-height:1.3}
  @media(max-width:560px){.spec-row{grid-template-columns:1fr;gap:.2rem}.spec-row dd{font-size:1.05rem}}

  /* Sticky mobile buy bar */
  /* Sticky buy bar — shown on ALL viewports once the main Add-to-Cart scrolls off
     (theme.js toggles .show). A centered inner rail (.mbuy-in) keeps it aligned to the
     content width on desktop; full-bleed on mobile. Thumb · name · price · Add to Cart. */
  .mbuy{position:fixed;left:0;right:0;bottom:0;z-index:38;display:flex;justify-content:center;
    padding:.7rem 1.25rem calc(.7rem + env(safe-area-inset-bottom,0));
    background:rgba(246,241,233,.86);backdrop-filter:blur(16px) saturate(1.2);border-top:1px solid var(--line);
    transform:translateY(110%);visibility:hidden;
    transition:transform var(--t-mid) var(--ease),visibility 0s linear var(--t-mid)}
  /* `transform` alone only moves the bar off-screen: it stays in the tab order,
     so a keyboard user could focus an invisible ADD TO CART while theme.js had
     already marked the bar aria-hidden="true" (axe: aria-hidden-focus, serious).
     `visibility:hidden` removes it from the tab order too, and is CSS-only so it
     holds even if theme.js never runs. The 0s visibility transition is DELAYED by
     the slide duration on the way out (so the bar stays visible while it animates
     away) and fires immediately on the way in. */
  .mbuy.show{transform:none;visibility:visible;
    transition:transform var(--t-mid) var(--ease),visibility 0s}
  .mbuy-in{width:100%;max-width:1340px;display:flex;align-items:center;gap:1rem}
  .mbuy .mthumb{flex:0 0 46px;width:46px;height:46px;border-radius:var(--r-sm);object-fit:cover;background:var(--chalk)}
  .mbuy .mp{display:flex;flex-direction:column;line-height:1.15;min-width:0;flex:1}
  .mbuy .mp .mname{font-family:var(--font-display);font-size:1.1rem;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mbuy .mp .mn{font-family:var(--font-ui);font-size:.85rem;color:var(--ink-soft)}
  .mbuy .mp .mtag{color:var(--brass-deep);letter-spacing:.04em}
  .mbuy button{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:.6rem;background:var(--ink);color:var(--paper);
    border:none;border-radius:var(--r-pill);padding:.85rem 1.4rem;font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;cursor:pointer}
  .mbuy button[disabled]{opacity:.55}

  /* ---- Concierge + tear-sheet aux links ---- */
  .buy-aux-lab{font-family:var(--font-ui);font-weight:600;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin:1.6rem 0 0;padding-top:1.4rem;border-top:1px solid var(--line)}
  .buy-aux{display:flex;flex-wrap:wrap;gap:1.4rem;margin-top:.9rem}
  .aux-link{display:inline-flex;align-items:baseline;gap:.35rem;background:none;border:none;padding:0;cursor:pointer;font-family:var(--font-ui);font-weight:600;font-size:.72rem;letter-spacing:.06em;color:var(--ink);border-bottom:1px solid var(--brass);transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease)}
  .aux-link span{font-weight:400;color:var(--ink-soft)}
  .aux-link:hover{color:var(--brass-deep);border-color:var(--brass-deep)}
  .ts-btn[aria-busy="true"]{opacity:.55;cursor:wait}

/* ===== sections/main-reviews.liquid ===== */
.reviews-page{background:var(--paper);padding:8rem 0 6rem}
@media(max-width:768px){.reviews-page{padding:7rem 0 4rem}}
.reviews-page .rp-head{text-align:center;max-width:62ch;margin:0 auto 3.5rem}
.reviews-page .rp-title{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1.02;margin:.6rem 0 1.2rem}
.reviews-page .rp-title em{font-style:italic;color:var(--brass-deep)}
.reviews-page .rp-intro{color:var(--ink-soft);font-size:1.08rem;line-height:1.6;max-width:52ch;margin:0 auto}
.reviews-page .rp-widget{margin-top:1rem}

/* ===== sections/main-search.liquid ===== */
.search-head{padding-top:9.5rem;padding-bottom:1rem;text-align:center}
@media(max-width:768px){.search-head{padding-top:8rem;padding-bottom:1rem}}
.search-head h1{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h1);line-height:1.02;margin:.5rem 0 1.6rem}
.search-head h1 em{font-style:italic;color:var(--brass-deep)}
.search-form{display:flex;max-width:560px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);padding:.4rem .4rem .4rem 1.6rem;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.search-form:focus-within{border-color:var(--brand-blue);box-shadow:0 0 0 2px rgba(0,46,188,.25)}
.search-form input{flex:1;min-width:0;background:none;border:none;color:var(--ink);font-family:var(--font-ui);font-size:.98rem;outline:none;padding-right:.9rem}
/* Give the native type=search clear (×) room so it isn't jammed against the Search button. */
.search-form input::-webkit-search-cancel-button{margin-right:.5rem}
.search-form input::placeholder{color:var(--ink-soft)}
.search-form button{display:inline-flex;align-items:center;gap:.6rem;background:var(--ink);color:var(--paper);border:none;border-radius:var(--r-pill);padding:.6rem .7rem .6rem 1.4rem;font-family:var(--font-ui);font-weight:600;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;transition:background var(--t-mid) var(--ease)}
.search-form button:hover{background:var(--brass-deep)}
.search-form .ring{width:30px;height:30px;border-radius:50%;background:rgba(246,241,233,.16);display:grid;place-items:center}
.search-count{font-family:var(--font-ui);font-weight:500;font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);margin-top:1.4rem}
.search-group{font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-deep);margin:3rem 0 1.6rem;border-top:1px solid var(--line);padding-top:1.6rem}
/* Results-page layout: .shop/.toolbar/.chips/.filters/.facet are global (main-collection.liquid);
   only .shop-main is new here — let it shrink inside the CSS grid so the 3-up card grid doesn't overflow. */
.shop-main{min-width:0}
/* Safe-empty: until filters are enabled in Search & Discovery, no .filters sidebar renders,
   so .shop-main is the FIRST child. The global .shop grid is `268px 1fr`, which would squash a
   lone child into the 268px track — span it across BOTH columns so results use the full width. */
.shop > .shop-main:first-child{grid-column:1 / -1}
.search-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem}
@media(max-width:1180px){.search-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.search-cards{grid-template-columns:1fr;max-width:420px;margin:0 auto}}
.search-rows{display:flex;flex-direction:column;padding-bottom:2rem}
.search-row{display:grid;grid-template-columns:auto 1fr auto;gap:1.6rem;align-items:center;padding:1.5rem .2rem;border-bottom:1px solid var(--line);transition:background var(--t-fast) var(--ease)}
.search-row:hover{background:rgba(33,29,24,.025)}
.sr-kind{font-family:var(--font-ui);font-weight:600;font-size:.56rem;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-deep);min-width:5ch}
.sr-title{font-family:var(--font-serif);font-weight:400;font-size:1.35rem;color:var(--ink)}
.sr-meta{font-family:var(--font-ui);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-top:.2rem}
.sr-excerpt{color:var(--ink-soft);font-size:.9rem;margin-top:.4rem;max-width:64ch}
.sr-arrow{color:var(--brass-deep);font-size:1.1rem;transition:transform var(--t-fast) var(--ease)}
.search-row:hover .sr-arrow{transform:translateX(4px)}
.search-empty{text-align:center;padding:3rem 1rem 6rem}
.search-empty h2{font-size:clamp(1.8rem,3.4vw,2.6rem);margin-bottom:1rem}
.search-empty h2 em{font-style:italic;color:var(--brass-deep)}
.search-empty p{color:var(--ink-soft);max-width:46ch;margin:0 auto 1.8rem}
.search-empty .btn-solid{margin:0 auto}
/* Zero-result rescue: the ask is the primary action on a dead end, so it gets a
   panel of its own rather than sitting in the run of consolation links below. */
.se-lede{max-width:52ch}
.se-ask{max-width:44rem;margin:2.4rem auto 0;padding:2.2rem 1.8rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-inset)}
@media(max-width:560px){.se-ask{padding:1.6rem 1.2rem}}
.se-ask-t{font-family:var(--font-serif);font-weight:300;font-size:clamp(1.25rem,2.4vw,1.6rem);line-height:1.15;color:var(--ink);margin:0 auto .7rem;max-width:none}
.se-ask-b{font-size:.95rem;line-height:1.6;margin-bottom:1.6rem}
.se-ask .btn-solid{display:inline-flex}
.se-es{margin:1.2rem auto 0;font-size:.85rem;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:1.1rem}
/* The consolation links must not crowd the panel's lower border. */
.search-empty .se-ask + .search-finder{margin-top:2.2rem}
.search-finder{margin-top:1.4rem;font-family:var(--font-ui);font-size:.8rem;letter-spacing:.02em;color:var(--ink-soft)}
/* Inline variant — sits centered beneath real search results (the common case). */
.search-finder--inline{text-align:center;margin-top:2.6rem;padding-top:1.8rem;border-top:1px solid var(--line)}
.search-finder a{font-weight:600;color:var(--brass-deep);border-bottom:1px solid transparent;transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.search-finder a:hover{color:var(--brand-blue);border-color:var(--brand-blue)}
.pager{margin:3rem 0 5rem;font-family:var(--font-ui);font-size:.82rem;color:var(--ink-soft);display:flex;gap:.6rem;justify-content:center;flex-wrap:wrap}
.pager a:hover{color:var(--brand-blue)}
@media(max-width:560px){.search-row{grid-template-columns:1fr;gap:.4rem}.sr-arrow{display:none}}

/* ===== sections/maker-band.liquid ===== */
.maker-band .maker{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:4.5rem;align-items:center}
.maker-band .maker-stack{position:relative;min-height:560px}
.maker-band .plate{position:absolute;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);box-shadow:var(--shadow-plate)}
.maker-band .plate img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease-soft)}
.maker-band .plate.p1{width:64%;height:80%;top:0;left:0;z-index:2;transform:rotate(-3deg)}
.maker-band .plate.p2{width:52%;height:60%;bottom:0;right:0;z-index:3;transform:rotate(3deg)}
.maker-band .maker-stack:hover .plate img{transform:scale(1.05)}
.maker-band .plate-cap{position:absolute;z-index:4;right:2%;top:4%;background:rgba(33,29,24,.82);backdrop-filter:blur(10px);
  border:1px solid rgba(243,236,224,.16);border-radius:1rem;padding:1rem 1.3rem;max-width:210px}
.maker-band .plate-cap .nm{font-size:1.1rem;color:var(--bone)}
.maker-band .plate-cap .rl{font-family:var(--font-ui);font-weight:500;font-size:.54rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-lum-2);margin-top:.25rem}
.maker-band .maker-text h2{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h2);line-height:1.02;margin:1.4rem 0 1.6rem}
.maker-band .maker-text h2 em{font-style:italic;color:var(--brass-deep)}
.maker-band .maker-body p{color:var(--ink-soft);max-width:46ch;margin-bottom:1.1rem;font-size:var(--t-body-lg)}
.maker-band .maker-body p strong{color:var(--ink);font-weight:500}
.maker-band .maker-body p em{color:var(--brass-deep);font-style:italic}
.maker-band .pullquote{font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:1.6rem;line-height:1.4;margin:1.9rem 0;
  padding-left:1.4rem;border-left:1px solid var(--brass);color:var(--ink)}
.maker-band .pullquote cite{display:block;font-family:var(--font-ui);font-style:normal;font-weight:500;font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);margin-top:.9rem}
@media(max-width:920px){
  .maker-band .maker{grid-template-columns:1fr;gap:3rem}
  .maker-band .maker-stack{min-height:0;display:flex;flex-direction:column;gap:1rem}
  .maker-band .plate{position:static;width:100%!important;height:auto!important;transform:none!important;aspect-ratio:4/3;box-shadow:0 24px 50px -34px rgba(33,29,24,.45)}
  .maker-band .plate-cap{position:static;max-width:none;margin-top:-3.5rem;align-self:flex-end;z-index:5}
}

/* ===== sections/melt-divider.liquid ===== */
.melt{height:9rem;position:relative;z-index:1;
  background:linear-gradient(180deg,var(--void) 0%,var(--void-2) 22%,#5a4a38 64%,var(--paper-deep) 90%,var(--paper) 100%)}
.melt-label{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  font-style:italic;font-weight:300;font-size:1.5rem;color:rgba(246,241,233,.85);text-align:center;letter-spacing:.02em}
@media(max-width:768px){.melt{height:7rem}.melt-label{font-size:1.15rem;padding:0 1.5rem}}

/* ===== sections/newsletter.liquid ===== */
.news{text-align:center;border-top:1px solid var(--line)}
.news h2{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h3);margin:1rem 0 .8rem}
.news h2 em{font-style:italic;color:var(--brass-deep)}
.news p{color:var(--ink-soft);margin-bottom:2.2rem}
.news-form{display:flex;max-width:460px;margin:0 auto;background:var(--paper);border:1px solid var(--line);border-radius:var(--r-pill);padding:.4rem .4rem .4rem 1.6rem;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.news-form:focus-within{border-color:var(--brand-blue);box-shadow:0 0 0 2px rgba(0,46,188,.25)}
.news-form input{flex:1;background:none;border:none;color:var(--ink);font-family:var(--font-ui);font-size:.92rem;outline:none}
.news-form input::placeholder{color:var(--ink-soft)}
.news-form button{background:var(--ink);color:var(--paper);border:none;border-radius:var(--r-pill);padding:.7rem 1.6rem;
  font-family:var(--font-ui);font-weight:600;font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background var(--t-mid) var(--ease)}
.news-form button:hover{background:var(--brass-deep)}
.news-ok{flex:0 0 100%;margin-top:.8rem;color:var(--brass-deep);font-family:var(--font-serif);font-style:italic;font-size:1.05rem}
.news-klaviyo{max-width:460px;margin:0 auto}

/* ===== sections/philosophy-manifesto.liquid ===== */
.philosophy-sec{text-align:center}
.philosophy-sec .lead{font-family:var(--font-serif);font-weight:300;font-size:clamp(1.9rem,3.4vw,2.9rem);line-height:1.28;max-width:24ch;margin:1.4rem auto 0;color:var(--ink)}
.philosophy-sec .lead em{font-style:italic;color:var(--brass-deep)}
.philosophy-sec .rule{width:1px;height:64px;background:linear-gradient(var(--brass),transparent);margin:2.6rem auto}
.philosophy-sec .sub{color:var(--ink-soft);max-width:56ch;margin:0 auto;font-size:var(--t-body-lg)}
.philosophy-sec .sub strong{color:var(--ink);font-weight:500}

/* ===== sections/product-faq.liquid ===== */
.pfaq-sec{background:var(--paper)}
.pfaq-sec .pfaq-head{text-align:center;max-width:56ch;margin:0 auto 3rem}
.pfaq-sec .pfaq-head h2{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h3);line-height:1.05;margin-top:.6rem}
.pfaq-sec .pfaq-head h2 em{font-style:italic;color:var(--brass-deep)}
.pfaq-list{max-width:760px;margin:0 auto;border-top:1px solid var(--line)}
.pfaq-item{border-bottom:1px solid var(--line)}
.pfaq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:1.5rem;
  padding:1.5rem .2rem;font-family:var(--font-serif);font-size:1.22rem;color:var(--ink);transition:color var(--t-fast) var(--ease)}
.pfaq-item summary::-webkit-details-marker{display:none}
.pfaq-item summary:hover{color:var(--brass-deep)}
.pfaq-ic{position:relative;flex:0 0 auto;width:16px;height:16px}
.pfaq-ic::before,.pfaq-ic::after{content:"";position:absolute;background:var(--brass-deep);transition:transform var(--t-mid) var(--ease),opacity var(--t-mid) var(--ease)}
.pfaq-ic::before{top:7px;left:0;width:16px;height:2px}
.pfaq-ic::after{top:0;left:7px;width:2px;height:16px}
.pfaq-item[open] .pfaq-ic::after{transform:scaleY(0);opacity:0}
.pfaq-a{padding:0 .2rem 1.7rem;max-width:62ch}
.pfaq-a p{color:var(--ink-soft);font-size:1rem;line-height:1.65;margin:0 0 .8rem}
.pfaq-a p:last-child{margin-bottom:0}
.pfaq-a a{color:var(--brass-deep);border-bottom:1px solid var(--line)}
.pfaq-a a:hover{border-color:var(--brass-deep)}
.pfaq-item[open] summary{color:var(--brass-deep)}
@media(prefers-reduced-motion:reduce){.pfaq-ic::before,.pfaq-ic::after{transition:none}}

/* ===== sections/product-logistics.liquid ===== */
.logi-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem}
@media(max-width:920px){.logi-grid{grid-template-columns:1fr}}
.logi{background:rgba(33,29,24,.035);border:1px solid var(--line);border-radius:var(--r-lg);padding:.6rem;
  transition:transform .7s var(--ease),box-shadow .7s var(--ease),border-color .6s var(--ease)}
.logi:hover{transform:translateY(-6px);border-color:rgba(154,123,79,.4);box-shadow:0 40px 80px -46px rgba(33,29,24,.5)}
.logi-core{background:var(--paper);border-radius:var(--r-md);padding:2rem 1.9rem;height:100%;box-shadow:var(--shadow-inset)}
.logi-core .n{font-size:1.1rem;color:var(--brass-deep)}
.logi-core h3{font-family:var(--font-serif);font-weight:400;font-size:1.7rem;margin:.5rem 0 .9rem}
.logi-body p{color:var(--ink-soft);font-size:.92rem;line-height:1.6}
.logi-body p + p{margin-top:.7rem}

/* ===== sections/product-maker.liquid ===== */
.maker-dark .maker-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:4.5rem;align-items:center}
@media(max-width:920px){.maker-dark .maker-grid{grid-template-columns:1fr;gap:2.75rem}}
.maker-dark .maker-plate{position:relative;border-radius:var(--r-lg);overflow:hidden;border:1px solid rgba(243,236,224,.12);box-shadow:0 50px 110px -50px rgba(0,0,0,.7);aspect-ratio:4/5}
.maker-dark .maker-plate img,.maker-dark .maker-plate .ri-placeholder{width:100%;height:100%;object-fit:cover;transition:transform 1.6s var(--ease-soft)}
.maker-dark .maker-grid:hover .maker-plate img{transform:scale(1.05)}
.maker-dark .maker-cap{position:absolute;left:1.3rem;bottom:1.3rem;background:rgba(12,10,8,.6);backdrop-filter:blur(10px);border:1px solid rgba(243,236,224,.16);border-radius:1rem;padding:.9rem 1.2rem}
.maker-dark .maker-cap .nm{font-size:1.1rem;color:var(--bone)}
.maker-dark .maker-cap .rl{font-family:var(--font-ui);font-weight:500;font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-lum-2);margin-top:.25rem}
.maker-dark .maker-text .eyebrow{color:var(--brass-lum)}
.maker-dark .maker-text h2{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h3);line-height:1.03;margin:1.3rem 0 1.5rem;color:var(--bone)}
.maker-dark .maker-text h2 em{font-style:italic;color:var(--brass-lum-2)}
.maker-dark .maker-body p{color:var(--bone-soft);font-size:var(--t-body-lg);font-weight:300;margin-bottom:1.1rem;max-width:48ch}
.maker-dark .maker-body p strong{color:var(--bone);font-weight:500}
.maker-dark .maker-quote{font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:1.55rem;line-height:1.42;margin:1.9rem 0;padding-left:1.4rem;border-left:1px solid var(--brass-lum);color:var(--bone)}
.maker-dark .maker-quote cite{display:block;font-family:var(--font-ui);font-style:normal;font-weight:500;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;color:var(--bone-soft);margin-top:.9rem}

/* ===== sections/product-making.liquid ===== */
.making-dark{background:var(--ink, #14110d)}
.making-dark .making-head{max-width:54ch}
.making-dark .making-head .eyebrow{color:var(--brass-lum)}
.making-dark .making-head h2{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h3);line-height:1.04;margin:1.2rem 0 1rem;color:var(--bone)}
.making-dark .making-head h2 em{font-style:italic;color:var(--brass-lum-2)}
.making-dark .making-intro{color:var(--bone-soft);font-size:var(--t-body-lg);font-weight:300;max-width:52ch}
.making-stage{margin-top:2.8rem}
.making-track{position:relative;overflow:hidden;border-radius:var(--r-lg);border:1px solid rgba(243,236,224,.12);box-shadow:0 50px 110px -50px rgba(0,0,0,.7)}
.making-slide{display:none;grid-template-columns:1.25fr .75fr;align-items:stretch}
.making-slide.is-active{display:grid;animation:making-fade .7s var(--ease-soft, ease)}
@keyframes making-fade{from{opacity:0}to{opacity:1}}
.making-plate{position:relative;overflow:hidden;aspect-ratio:13/10}
.making-plate img{width:100%;height:100%;object-fit:cover}
.making-num{position:absolute;left:1.4rem;top:1.1rem;font-size:2.4rem;color:var(--bone);opacity:.85;text-shadow:0 2px 30px rgba(0,0,0,.6)}
.making-copy{display:flex;flex-direction:column;justify-content:center;gap:1rem;padding:3rem 3rem 3rem 2.6rem;background:rgba(243,236,224,.035);border-left:1px solid rgba(243,236,224,.1)}
.making-label{font-family:var(--font-serif);font-weight:300;font-size:1.9rem;line-height:1.06;color:var(--bone)}
.making-caption{color:var(--bone-soft);font-size:var(--t-body, 1rem);font-weight:300;line-height:1.6;max-width:40ch}
.making-controls{display:flex;align-items:center;justify-content:center;gap:1.4rem;margin-top:1.6rem}
.making-arrow{width:2.6rem;height:2.6rem;border-radius:50%;border:1px solid rgba(243,236,224,.25);background:transparent;color:var(--bone);font-size:1rem;cursor:pointer;transition:all .3s var(--ease-soft, ease)}
.making-arrow:hover{background:var(--brass-lum);border-color:var(--brass-lum);color:var(--ink, #14110d)}
.making-dots{display:flex;gap:.6rem}
.making-dot{width:.5rem;height:.5rem;border-radius:50%;border:0;background:rgba(243,236,224,.28);cursor:pointer;padding:0;transition:all .3s var(--ease-soft, ease)}
.making-dot.is-active{background:var(--brass-lum);transform:scale(1.35)}
.making-spec{display:flex;flex-wrap:wrap;align-items:center;gap:1.4rem 2.4rem;margin-top:2.6rem;padding-top:2rem;border-top:1px solid rgba(243,236,224,.1)}
.making-spec-lead{font-family:var(--font-serif);font-style:italic;font-weight:300;font-size:1.15rem;color:var(--brass-lum-2)}
.making-spec-list{display:flex;flex-wrap:wrap;gap:1rem 2.2rem;list-style:none;margin:0;padding:0}
.making-spec-list li{display:flex;flex-direction:column;gap:.2rem}
.making-spec-list .ms-k{font-family:var(--font-ui);font-weight:500;font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;color:var(--brass-lum)}
.making-spec-list .ms-v{font-size:.98rem;color:var(--bone)}
.making-guide{margin-left:auto;font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bone);border-bottom:1px solid var(--brass-lum);padding-bottom:.25rem}
@media(max-width:900px){
  .making-slide.is-active{grid-template-columns:1fr}
  .making-copy{padding:1.8rem;border-left:0;border-top:1px solid rgba(243,236,224,.1)}
  .making-spec-lead{flex-basis:100%}
  .making-guide{margin-left:0;flex-basis:100%}
}

/* ===== sections/product-related.liquid ===== */
.related-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1.75rem}
@media(max-width:920px){.related-cards{grid-template-columns:1fr;max-width:440px;margin:0 auto}}
.related-sec .text-link{margin:0 auto}

/* ===== sections/product-reviews.liquid ===== */
.rev-sec{background:var(--paper-deep)}
/* Store-review wall inlined on the PDP. Collapses when the Judge.me
   cards_carousel block is absent or renders nothing, so the lede + CTA
   stay a complete block on their own. */
.rev-sec .rev-store-wall{margin:2.2rem 0 .4rem}
.rev-sec .rev-store-wall:empty{display:none}
.rev-sec .rev-store-wall .jdgm-cards-wrapper{margin:0 auto}
.rev-sec .reviews-app-slot{margin-top:2.5rem}
.rev-sec .reviews-app-slot:empty{display:none}
.rev-ooak{text-align:center;max-width:56ch;margin:1.2rem auto 0}
.rev-ooak-lede{font-family:var(--font-serif-read);font-style:italic;font-size:1.35rem;line-height:1.6;color:var(--ink-soft)}
.rev-ooak-cta{display:flex;align-items:center;justify-content:center;gap:1.6rem;margin-top:1.9rem;flex-wrap:wrap}
.rev-ooak-btn{display:inline-flex;align-items:center;border:1px solid var(--ink);border-radius:var(--r-pill);padding:.85rem 1.7rem;
  font-family:var(--font-ui);font-weight:600;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink);
  transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease)}
.rev-ooak-btn:hover{background:var(--ink);color:var(--chalk)}
.rev-ooak-link{font-family:var(--font-ui);font-weight:600;font-size:.68rem;letter-spacing:.13em;text-transform:uppercase;color:var(--bronze-deep);border-bottom:1px solid var(--bronze);padding-bottom:3px}
.rev-ooak-link:hover{color:var(--ink)}

/* ===== sections/project-brief.liquid ===== */
.pb-sec{background:var(--paper)}
.pb-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:4rem;align-items:start}
@media(max-width:920px){.pb-grid{grid-template-columns:1fr;gap:2.5rem}}
.pb-intro .editorial{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h3);line-height:1.05;margin:.5rem 0 1.1rem}
.pb-intro .editorial em{font-style:italic;color:var(--brass-deep)}
.pb-lede{color:var(--ink-soft);font-size:1.05rem;line-height:1.6;margin-bottom:1.4rem}
.pb-points{list-style:none;display:flex;flex-direction:column;gap:.9rem;margin:0;padding:0}
.pb-points li{position:relative;padding-left:1.4rem;color:var(--ink-soft);font-size:.95rem;line-height:1.5}
.pb-points li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--brass)}
.pb-points strong{color:var(--ink);font-weight:600}
.pb-cta{display:inline-flex;align-items:center;gap:.45rem;margin-top:1.5rem;font-family:var(--font-ui);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--brass-deep,#8A6A3C);text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:2px;transition:opacity .25s ease}
.pb-cta:hover{opacity:.7}
.pb-formwrap{background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--r-lg);padding:2.2rem;box-shadow:var(--shadow-inset)}
@media(max-width:560px){.pb-formwrap{padding:1.5rem}}
.pb-form{display:flex;flex-direction:column;gap:1.1rem}
.pb-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:560px){.pb-row{grid-template-columns:1fr}}
.pb-field{display:flex;flex-direction:column;gap:.4rem}
.pb-lab{font-family:var(--font-ui);font-weight:600;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.pb-lab em{font-style:normal;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-soft)}
.pb-field input,.pb-field textarea,.pb-select{font-family:var(--font-ui);font-size:.92rem;color:var(--ink);background:var(--paper);border:1px solid var(--line);border-radius:var(--r-md);padding:.8rem .9rem;width:100%;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.pb-select{appearance:none;cursor:pointer}
.pb-field input::placeholder,.pb-field textarea::placeholder{color:var(--ink-soft);opacity:.7}
.pb-field input:focus,.pb-field textarea:focus,.pb-select:focus{outline:none;border-color:var(--brand-blue);box-shadow:0 0 0 2px rgba(0,46,188,.2)}
.pb-submit{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;align-self:flex-start;background:var(--ink);color:var(--paper);border:none;border-radius:var(--r-pill);padding:.95rem 1.05rem .95rem 1.8rem;font-family:var(--font-ui);font-weight:600;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background var(--t-mid) var(--ease)}
.pb-submit:hover{background:var(--brass-deep)}
.pb-submit .ring{width:34px;height:34px;border-radius:50%;background:rgba(246,241,233,.16);display:grid;place-items:center}
.pb-fineprint{font-family:var(--font-ui);font-size:.74rem;color:var(--ink-soft);margin:0}
.pb-errors{background:rgba(154,30,30,.08);border:1px solid rgba(154,30,30,.25);border-radius:var(--r-md);padding:.8rem 1rem;font-size:.85rem;color:#7a1d1d}
.pb-thanks{text-align:center;padding:1.5rem .5rem}
.pb-tick{width:54px;height:54px;border-radius:50%;background:var(--brass);color:var(--paper);display:grid;place-items:center;font-size:1.5rem;margin:0 auto 1.1rem}
.pb-thanks h3{font-family:var(--font-serif);font-weight:400;font-size:1.7rem;color:var(--ink);margin-bottom:.6rem}
.pb-thanks p{color:var(--ink-soft);font-size:.98rem;max-width:44ch;margin:0 auto;line-height:1.6}

/* ===== sections/rug-finder.liquid ===== */
.rf{ background:var(--paper); padding:clamp(.5rem,2vw,1.5rem) 0 clamp(3rem,7vw,6rem); }
/* Generous premium quiz width by default (operator preference); the island widens
   the inline max-width to 1320px only for results. width:100% + side padding keeps
   it fluid so it never overflows on narrow screens. */
.rf-wrap{ width:100%; max-width:1080px; margin:0 auto; padding:0 clamp(1rem,4vw,2rem); }

/* ── Page header — site editorial standard, centered, generous ───── */
.rf-head{ text-align:center; margin-bottom:clamp(1.8rem,4vw,2.6rem); }
/* --brass resolves to bronze #8A6A3C: 3.60:1 on the --paper-deep #E3DACA ground
   this sits on (axe, serious). At 11px it needs 4.5:1, so --bronze-deep (5.04).
   Same accent, one step darker; uppercase tracked labels are exactly the case
   where a "decorative" accent is still body-size text with a contrast duty. */
.rf-eyebrow{ font-family:var(--font-ui); text-transform:uppercase; letter-spacing:.22em; font-size:.7rem; color:var(--bronze-deep); margin:0 0 .7rem; }
.rf-title{ font-family:var(--font-display); font-weight:500; font-size:clamp(1.9rem,4.4vw,2.8rem); color:var(--ink); margin:0; line-height:1.05; }
.rf-sub{ font-family:var(--font-serif); color:var(--ink-soft); font-size:1.02rem; line-height:1.6; max-width:48ch; margin:.95rem auto 0; }

/* ── The quiz card — soft rounded panel on paper-deep, the .tcb-panel bar ── */
.rf-step{ background:var(--paper-deep); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(1.8rem,4vw,2.8rem); box-shadow:var(--shadow-inset); }

/* Question head: a brass micro-eyebrow + a refined display heading that flow
   cleanly inside the card's top padding (was a <legend> straddling the border). */
.rf-qhead{ margin-bottom:1.5rem; }
.rf-keyebrow{ margin:0 0 .5rem; }
.rf-q{ font-family:var(--font-display); font-weight:500; font-size:clamp(1.35rem,2.8vw,1.75rem); color:var(--ink); margin:0; padding:0; line-height:1.12; }

/* Sub-label inside a step (Material / Where it lives / Condition) */
.rf-fieldgroup{ margin-bottom:1.2rem; }
.rf-fieldgroup:last-of-type{ margin-bottom:0; }
.rf-rl{ display:block; font-family:var(--font-ui); font-weight:600; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); margin-bottom:.55rem; }
.rf-rl em{ font-style:normal; font-weight:400; text-transform:none; letter-spacing:0; color:var(--ink-soft); }

/* ── Chips (text pills) ──────────────────────────────────────────── */
.rf-chips{ display:flex; flex-wrap:wrap; gap:.55rem; }
.rf-chip{ display:inline-flex; align-items:center; border:1px solid var(--line); background:#fff; border-radius:var(--r-pill); padding:.55rem 1.05rem; font-family:var(--font-ui); font-size:.8rem; color:var(--ink); cursor:pointer; transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease); }
.rf-chip:hover{ border-color:var(--ink); }
.rf-chip[aria-pressed="true"]{ background:var(--ink); color:var(--paper); border-color:var(--ink); box-shadow:0 0 0 1px var(--ink) inset; }

/* Size chips: even numeric ladder; word chips keep their natural width. */
.rf-sizes .rf-chip{ min-width:3.4rem; justify-content:center; font-variant-numeric:tabular-nums; }
.rf-sizes .rf-chip[data-size="runner"],.rf-sizes .rf-chip[data-size="round"],.rf-sizes .rf-chip[data-size="oversize"]{ min-width:0; }

/* ── Exact ft+in size range (mirrors the Trade brief .tcb-range) ──── */
.rf-range{ margin-top:1.1rem; }
.rf-range .rf-rl{ margin-bottom:.5rem; }
.rf-rangefields{ display:flex; align-items:center; gap:.34rem .4rem; flex-wrap:wrap; font-family:var(--font-ui); font-size:.74rem; color:var(--ink-soft); }
/* Wider so values + "min/in"/"max/in" placeholders breathe and never crowd. */
.rf-range input[type=number]{ width:4.7rem; padding:.55rem .55rem; text-align:center; border:1px solid var(--line); border-radius:var(--r-pill); background:var(--paper); font-family:var(--font-ui); font-size:.85rem; color:var(--ink); transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease); }
.rf-range input[type=number]::placeholder{ color:var(--ink-soft); opacity:.7; }
.rf-range input[type=number]:focus{ outline:none; border-color:var(--brand-blue); box-shadow:0 0 0 2px rgba(0,46,188,.2); }
.rf-range .rf-ft{ font-size:.82rem; color:var(--ink-soft); margin:0 .12rem 0 .18rem; }
.rf-range .rf-unit{ font-size:.66rem; letter-spacing:.04em; color:var(--ink-soft); margin-left:.08rem; }
.rf-range .rf-dash{ margin:0 .65rem; color:var(--ink-soft); }

/* ── Color swatches ──────────────────────────────────────────────── */
.rf-swatches{ display:flex; flex-wrap:wrap; gap:.55rem; }
.rf-sw{ display:inline-flex; align-items:center; gap:.4rem; border:1px solid var(--line); background:#fff; border-radius:var(--r-pill); padding:.42rem .9rem .42rem .42rem; font-family:var(--font-ui); font-size:.78rem; cursor:pointer; color:var(--ink); transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease); }
.rf-sw:hover{ border-color:var(--ink); }
.rf-sw[aria-pressed="true"]{ border-color:var(--ink); box-shadow:0 0 0 1px var(--ink) inset; }
.rf-sw-dot{ width:15px; height:15px; border-radius:50%; background:var(--sw); border:1px solid rgba(0,0,0,.15); }
.rf-sw-multi{ background:conic-gradient(#9b2d2d,#b08d40,#5a6e54,#3a5675,#c98f9a,#9b2d2d); }

/* ── Hints, helpers, the designer-branch link ────────────────────── */
.rf-hint{ display:block; font-family:var(--font-ui); font-size:.7rem; color:var(--ink-soft); margin:.7rem 0 0; }
.rf-help,.rf-branch{ font-family:var(--font-ui); font-size:.76rem; }
.rf-help{ display:inline-block; margin-top:.85rem; color:var(--ink-soft); text-decoration:none; border-bottom:1px solid transparent; padding-bottom:1px; transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease); }
.rf-help:hover{ color:var(--ink); border-bottom-color:currentColor; }
.rf-branch{ display:inline-flex; align-items:center; gap:.4rem; margin-top:1rem; background:none; border:none; border-bottom:1px solid transparent; color:var(--brass-deep); font-weight:600; letter-spacing:.04em; cursor:pointer; padding:0 0 2px; transition:border-color var(--t-fast) var(--ease); }
.rf-branch:hover{ border-bottom-color:currentColor; }

/* ── Budget input — pill, paper fill, focus glow ─────────────────── */
.rf-field{ display:flex; flex-direction:column; }
.rf-budget input{ width:100%; max-width:16rem; border:1px solid var(--line); border-radius:var(--r-pill); padding:.8rem 1.1rem; background:var(--paper); font-family:var(--font-ui); font-size:.9rem; color:var(--ink); transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease); }
.rf-budget input::placeholder{ color:var(--ink-soft); opacity:.7; }
.rf-budget input:focus{ outline:none; border-color:var(--brand-blue); box-shadow:0 0 0 2px rgba(0,46,188,.2); }

/* ── One-of-a-kind toggle switch (mirrors .tcb-switch) ───────────── */
.rf-switch{ display:flex; align-items:center; gap:.7rem; cursor:pointer; margin-top:.4rem; }
.rf-switch input{ position:absolute; opacity:0; width:1px; height:1px; }
.rf-switch-track{ flex:0 0 auto; width:40px; height:23px; border-radius:var(--r-pill); background:var(--line); border:1px solid var(--line); position:relative; transition:background var(--t-mid) var(--ease); }
.rf-switch-knob{ position:absolute; top:2px; left:2px; width:17px; height:17px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(33,29,24,.25); transition:transform var(--t-mid) var(--ease); }
.rf-switch input:checked + .rf-switch-track{ background:var(--ink); border-color:var(--ink); }
.rf-switch input:checked + .rf-switch-track .rf-switch-knob{ transform:translateX(17px); }
.rf-switch input:focus-visible + .rf-switch-track{ box-shadow:0 0 0 2px rgba(0,46,188,.35); }
.rf-switch-lbl{ font-family:var(--font-ui); font-size:.82rem; color:var(--ink); }
.rf-switch-lbl em{ font-style:normal; color:var(--ink-soft); }

/* ── Nav — a deliberate footer row, part of the card unit ─────────── */
.rf-nav{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:clamp(1.6rem,3.5vw,2.1rem); padding-top:clamp(1.3rem,3vw,1.7rem); border-top:1px solid var(--line); }
.rf-back{ display:inline-flex; align-items:center; gap:.4rem; background:none; border:none; color:var(--ink-soft); font-family:var(--font-ui); font-weight:600; font-size:.72rem; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; padding:0; transition:color var(--t-fast) var(--ease); }
.rf-back:hover{ color:var(--ink); }
.rf-progress{ font-family:var(--font-ui); font-size:.62rem; font-weight:600; letter-spacing:.16em; color:var(--brass-deep); text-transform:uppercase; }
/* The Next pill + circular arrow ring (mirrors .tcb-btn / .tcb-ring). */
.tcb-btn,.rf-btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; background:var(--ink); color:var(--paper); border:none; padding:.95rem 1.8rem; font-family:var(--font-ui); font-weight:600; letter-spacing:.1em; text-transform:uppercase; font-size:.74rem; cursor:pointer; border-radius:var(--r-pill); text-decoration:none; transition:background var(--t-mid) var(--ease); }
.tcb-btn:hover,.rf-btn:hover{ background:var(--brass-deep); }
.rf-btn{ gap:.8rem; padding:.95rem 1.05rem .95rem 1.8rem; }
.tcb-ring,.rf-ring{ width:34px; height:34px; border-radius:50%; background:rgba(246,241,233,.16); display:grid; place-items:center; font-size:1rem; }

/* ── Loading moment — calm, centered interim while the match resolves ── */
.rf-loading{ text-align:center; padding:clamp(2.5rem,7vw,5rem) 1rem; }
.rf-loading .rf-eyebrow{ margin:0 0 .7rem; }
.rf-loading .rf-title{ margin:0; }
.rf-loading .rf-narrative{ font-family:var(--font-serif); color:var(--ink-soft); font-size:1.02rem; margin:.9rem auto 0; max-width:46ch; }

/* Skip (optional steps) — a quiet text link sitting before the Next pill. */
.rf-skip{ background:none; border:none; cursor:pointer; font-family:var(--font-ui); font-weight:600; font-size:.7rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-soft); border-bottom:1px solid transparent; padding:0 0 1px; transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease); }
.rf-skip:hover{ color:var(--ink); border-bottom-color:currentColor; }
.rf-optional{ font-style:normal; font-weight:400; letter-spacing:0; text-transform:none; color:var(--ink-soft); }

/* ── Results (curated edit) ──────────────────────────────────────── */
.rf-results{ max-width:1320px; }
/* Auto-relax note — a subtle line above the grid when we opened the brief up. */
.rf-relax-note{ font-family:var(--font-serif); font-style:italic; font-size:.92rem; color:var(--ink-soft); line-height:1.5; margin:0 0 1.4rem; max-width:54ch; }
/* "Why this fits" — small, muted, italic curated touch (mirrors .tcb-pick-why feel). */
.rf-results .card-why{ font-family:var(--font-ui); font-style:italic; font-size:.68rem; line-height:1.4; color:var(--ink-soft); margin-top:.4rem; }
.rf-results .rf-eyebrow{ text-align:left; margin:0; }
/* Top row of the results: "Your edit" eyebrow + an "← Edit my answers" link that
   returns to the quiz with selections preserved. Wraps cleanly on phone. */
.rf-results-top{ display:flex; align-items:center; justify-content:space-between; gap:.8rem 1.2rem; flex-wrap:wrap; margin-bottom:.2rem; }
.rf-editlink{ text-transform:uppercase; }
.rf-editlink span{ font-size:1em; }
.rf-narrative{ font-family:var(--font-serif); font-size:1.05rem; color:var(--ink-soft); line-height:1.6; margin:.4rem 0 1.6rem; max-width:54ch; }
.rf-link{ display:inline-flex; align-items:center; gap:.4rem; background:none; border:none; border-bottom:1px solid transparent; color:var(--brass-deep); font-family:var(--font-ui); font-weight:600; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; cursor:pointer; padding:0 0 2px; text-decoration:none; transition:border-color var(--t-fast) var(--ease); }
.rf-link:hover{ border-bottom-color:currentColor; }
.rf-more{ margin:1.5rem 0; }
.rf-empty{ font-family:var(--font-serif); font-size:.95rem; font-style:italic; color:var(--ink-soft); line-height:1.6; }
.rf-restart{ background:none; border:none; cursor:pointer; margin-top:2rem; font-family:var(--font-ui); font-size:.72rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-soft); border-bottom:1px solid transparent; padding-bottom:1px; transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease); }
.rf-restart:hover{ color:var(--ink); border-bottom-color:currentColor; }

/* ── Refine + soft capture ───────────────────────────────────────── */
.rf-refine{ display:flex; align-items:center; gap:.55rem; flex-wrap:wrap; margin:2rem 0 1.2rem; }
.rf-refine-l{ font-family:var(--font-ui); font-size:.62rem; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:var(--ink-soft); }
.rf-mini{ padding:.42rem .9rem; font-size:.74rem; }
.rf-soft{ display:flex; align-items:center; gap:1.2rem; flex-wrap:wrap; padding:1.4rem 0; border-top:1px solid var(--line); }
.rf-email{ display:flex; gap:.5rem; flex-wrap:wrap; }
.rf-email input{ border:1px solid var(--line); border-radius:var(--r-pill); padding:.8rem 1.1rem; font-family:var(--font-ui); font-size:.9rem; color:var(--ink); min-width:16rem; background:var(--paper); transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease); }
.rf-email input::placeholder{ color:var(--ink-soft); opacity:.7; }
.rf-email input:focus{ outline:none; border-color:var(--brand-blue); box-shadow:0 0 0 2px rgba(0,46,188,.2); }
.rf-sent{ font-family:var(--font-serif); font-size:.95rem; color:var(--brass-deep); }

/* ════════════════════════════════════════════════════════════════════
   RESPONSIVE — phone ≤480 · tablet 481–820 · laptop 821–1200 · desktop >1200.
   Goal: zero horizontal overflow at 360px, comfortable touch targets, and the
   ft/in ranges that stack gracefully instead of getting crushed. Chips/swatches
   already wrap (flex-wrap); the rules below just guarantee tap size + flow.
   ════════════════════════════════════════════════════════════════════ */

/* Touch devices: comfortable ≥40–44px tap targets on every interactive pill. */
@media(pointer:coarse){
  .rf-chip{ min-height:42px; }
  .rf-sw{ min-height:42px; }
  .rf-range input[type=number]{ min-height:42px; }
  .rf-budget input{ min-height:44px; }
}

/* Tablet / small-laptop: nothing structural breaks at 1080px, but give the range
   gutters and chip gaps a touch more room to wrap on mid widths. */
@media(max-width:820px){
  .rf-chips{ gap:.5rem; }
  .rf-swatches{ gap:.5rem; }
}

/* Phone ≤600: tighten the card, stack the nav, and let the ranges breathe. */
@media(max-width:600px){
  .rf-step{ padding:clamp(1.3rem,5vw,1.7rem); }
  .rf-q{ font-size:clamp(1.2rem,5.5vw,1.5rem); }
  /* The range row wraps cleanly: each input keeps a sensible min, the dash gets a
     tighter gutter so a min/max pair can sit per line without crowding. */
  .rf-range input[type=number]{ width:4.2rem; }
  .rf-range .rf-dash{ margin:0 .4rem; }
  .rf-nav{ flex-wrap:wrap; gap:.9rem 1rem; }
  .rf-nav .rf-btn{ order:4; width:100%; }
  .rf-progress{ order:2; margin-left:auto; }
  .rf-back{ order:1; }
  /* Skip sits on the top row after progress, above the full-width Next pill. */
  .rf-skip{ order:3; }
  .rf-email{ width:100%; }
  .rf-email input{ min-width:0; flex:1 1 12rem; }
  .rf-soft{ gap:1rem; }
}

/* Phone ≤480: the ft/in min–max pair must not get crushed or overflow at 360px.
   The fields keep flowing as a wrapping row; the dash forces a line break so the
   MIN group sits on the first line and the MAX group drops to the next — each pair
   stays intact and tappable instead of all four inputs cramming one line. */
@media(max-width:480px){
  .rf-rangefields{ gap:.4rem .3rem; }
  .rf-range input[type=number]{ width:3.7rem; }
  /* Force the max group onto its own line: the dash becomes a full-width divider. */
  .rf-range .rf-dash{ flex:1 0 100%; margin:.15rem 0; text-align:left; }
  /* Size quick-picks: relax the numeric ladder min so the ladder fits narrow rows. */
  .rf-sizes .rf-chip{ min-width:2.9rem; }
  /* Budget input spans the card; designer-branch + helper links wrap, never clip. */
  .rf-budget input{ max-width:none; }
  .rf-soft{ flex-direction:column; align-items:flex-start; gap:.9rem; }
}

/* ===== sections/shop-by.liquid ===== */
.shopby{background:var(--raw-wool);padding-top:var(--space-section);padding-bottom:var(--space-section)}
.shopby-head{max-width:46ch;margin-bottom:3rem}
.shopby-h{font-family:var(--font-serif);font-weight:500;font-size:var(--t-h2);line-height:1.06;color:var(--ink)}
.shopby-h em{font-style:italic;color:var(--bronze-deep)}
.shopby-sub{font-family:var(--font-serif-read);font-size:1.15rem;line-height:1.6;color:var(--ink-soft);margin-top:1rem}
.shopby-axis{margin-bottom:2.8rem}
.shopby-label{display:block;font-family:var(--font-ui);font-weight:600;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--bronze-deep);margin-bottom:1.2rem}
.shopby-colors,.shopby-sizes{list-style:none;display:grid;gap:1rem}
.shopby-colors{grid-template-columns:repeat(9,1fr)}
.shopby-sizes{grid-template-columns:repeat(8,1fr)}
.shopby-colors a,.shopby-sizes a{display:flex;flex-direction:column;align-items:center;gap:.7rem;text-align:center;padding:1.1rem .5rem;border:1px solid var(--line);border-radius:var(--r-md);background:var(--chalk);transition:border-color var(--t-fast) var(--ease),transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.shopby-colors a:hover,.shopby-sizes a:hover{border-color:var(--bronze);transform:translateY(-3px);box-shadow:0 18px 36px -26px rgba(33,29,24,.5)}
.shopby-colors .sw{width:38px;height:38px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(33,29,24,.12)}
.shopby-colors .sw-multi{background:conic-gradient(from 90deg, #8A3A2E, #CBB996, #5E6B52, #3E5E5C, #3C4A5C, #6B5238, #8A3A2E)}
.shopby .cn{font-family:var(--font-serif);font-size:1.08rem;color:var(--ink);line-height:1}
.shopby .cd{font-family:var(--font-ui);font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft)}
.shopby-sizes .sg{width:46px;height:34px}
.shopby-sizes .sg rect,.shopby-sizes .sg circle{fill:none;stroke:var(--bronze);stroke-width:1.4}
.shopby-cta{display:flex;align-items:center;flex-wrap:wrap;gap:1.3rem 1.6rem;margin-top:.6rem}
.shopby-finder{display:inline-flex;align-items:center;gap:.55rem;background:var(--ink);color:var(--chalk);font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;padding:.85rem 1.6rem;border-radius:var(--r-pill);transition:background var(--t-mid) var(--ease),transform var(--t-fast) var(--ease)}
.shopby-finder span{color:var(--bronze-lum);transition:transform var(--t-fast) var(--ease)}
.shopby-finder:hover{background:var(--bronze-deep);color:var(--chalk)}
.shopby-finder:hover span{transform:translateX(3px);color:var(--chalk)}
.shopby-more{display:inline-block;font-family:var(--font-ui);font-weight:600;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--bronze-deep);border-bottom:1px solid var(--bronze);padding-bottom:3px}
.shopby-more:hover{color:var(--ink)}
.shopby-styles{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem}
.shopby-styles a{display:block;position:relative;border-radius:var(--r-md);overflow:hidden;background:var(--raw-wool-deep);transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.shopby-styles a:hover{transform:translateY(-3px);box-shadow:0 22px 44px -28px rgba(33,29,24,.55)}
.shopby-styles .st-img{display:block;aspect-ratio:4/3;overflow:hidden}
.shopby-styles .st-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--t-slow) var(--ease)}
.shopby-styles a:hover .st-img img{transform:scale(1.05)}
.shopby-styles .st-name{position:absolute;left:0;right:0;bottom:0;padding:1.5rem 1.1rem .95rem;font-family:var(--font-serif);font-size:1.3rem;color:#fff;background:linear-gradient(0deg,rgba(14,11,7,.78),rgba(14,11,7,.15) 70%,transparent)}
@media(max-width:900px){
  .shopby-styles{grid-template-columns:repeat(2,1fr)}
  .shopby-colors{grid-template-columns:repeat(4,1fr)}
  .shopby-sizes{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:480px){
  .shopby-colors{grid-template-columns:repeat(4,1fr);gap:.7rem}
  .shopby-sizes{grid-template-columns:repeat(2,1fr);gap:.7rem}
  .shopby-colors .sw{width:32px;height:32px}
}

/* ===== sections/showroom-restoration.liquid ===== */
.showroom-sec .panel{display:grid;grid-template-columns:1.1fr .9fr;gap:0;background:rgba(33,29,24,.035);
  border:1px solid var(--line);border-radius:var(--r-lg);padding:.6rem;overflow:hidden}
.showroom-sec .panel.panel-gap{margin-top:1.75rem}
.showroom-sec .panel.img-right{grid-template-columns:.9fr 1.1fr}
.showroom-sec .panel.img-right .showroom-img{order:2}
.showroom-sec .panel.img-right .showroom-body{order:1}
.showroom-sec .showroom-img{border-radius:var(--r-md);overflow:hidden;min-height:460px;position:relative}
.showroom-sec .showroom-img img,.showroom-sec .showroom-img .ri-placeholder{width:100%;height:100%;object-fit:cover}
.showroom-sec .showroom-img .tag{position:absolute;left:1.4rem;bottom:1.4rem;font-family:var(--font-ui);font-weight:500;font-size:.58rem;letter-spacing:.18em;text-transform:uppercase;
  background:rgba(33,29,24,.6);backdrop-filter:blur(6px);border:1px solid rgba(243,236,224,.2);padding:.5rem .9rem;border-radius:var(--r-pill);color:var(--brass-lum-2)}
.showroom-sec .showroom-body{padding:3.5rem;display:flex;flex-direction:column;justify-content:center}
.showroom-sec .showroom-body h2{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h3);line-height:1.04;margin:1.1rem 0 1.3rem}
.showroom-sec .showroom-body h2 em{font-style:italic;color:var(--brass-deep)}
.showroom-sec .showroom-body p{color:var(--ink-soft);max-width:42ch;margin-bottom:1.4rem}
.showroom-sec .showroom-addr{font-size:.9rem;line-height:1.85;color:var(--ink);margin-bottom:2rem}
@media(max-width:920px){
  .showroom-sec .panel,.showroom-sec .panel.img-right{grid-template-columns:1fr}
  .showroom-sec .panel.img-right .showroom-img{order:0}
  .showroom-sec .panel.img-right .showroom-body{order:0}
  .showroom-sec .showroom-img{min-height:300px}
  .showroom-sec .showroom-body{padding:2.5rem 1.5rem}
}

/* ===== sections/trade-apply.liquid ===== */
.ta-sec{background:var(--paper-deep)}
.ta-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:4rem;align-items:start}
@media(max-width:920px){.ta-grid{grid-template-columns:1fr;gap:2.5rem}}
.ta-intro .editorial{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h3);line-height:1.05;margin:.5rem 0 1.1rem}
.ta-intro .editorial em{font-style:italic;color:var(--brass-deep)}
.ta-lede{color:var(--ink-soft);font-size:1.05rem;line-height:1.6;margin-bottom:1.4rem}
.ta-perks{list-style:none;display:flex;flex-direction:column;gap:.9rem;margin:0;padding:0}
.ta-perks li{position:relative;padding-left:1.4rem;color:var(--ink-soft);font-size:.95rem;line-height:1.5}
.ta-perks li::before{content:"";position:absolute;left:0;top:.55em;width:7px;height:7px;border-radius:50%;background:var(--brass)}
.ta-perks strong{color:var(--ink);font-weight:600}
.ta-formwrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);padding:2.2rem;box-shadow:var(--shadow-inset)}
@media(max-width:560px){.ta-formwrap{padding:1.5rem}}
.ta-form{display:flex;flex-direction:column;gap:1.1rem}
.ta-row{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem}
@media(max-width:560px){.ta-row{grid-template-columns:1fr}}
.ta-field{display:flex;flex-direction:column;gap:.4rem}
.ta-lab{font-family:var(--font-ui);font-weight:600;font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.ta-lab em{font-style:normal;font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink-soft)}
.ta-field input,.ta-field textarea,.ta-select{font-family:var(--font-ui);font-size:.92rem;color:var(--ink);background:var(--paper-deep);border:1px solid var(--line);border-radius:var(--r-md);padding:.8rem .9rem;width:100%;transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
.ta-field input::placeholder,.ta-field textarea::placeholder{color:var(--ink-soft);opacity:.7}
.ta-field input:focus,.ta-field textarea:focus,.ta-select:focus{outline:none;border-color:var(--brand-blue);box-shadow:0 0 0 2px rgba(0,46,188,.2)}
.ta-submit{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;align-self:flex-start;background:var(--ink);color:var(--paper);border:none;border-radius:var(--r-pill);padding:.95rem 1.05rem .95rem 1.8rem;font-family:var(--font-ui);font-weight:600;font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background var(--t-mid) var(--ease)}
.ta-submit:hover{background:var(--brass-deep)}
.ta-submit .ring{width:34px;height:34px;border-radius:50%;background:rgba(246,241,233,.16);display:grid;place-items:center}
.ta-fineprint{font-family:var(--font-ui);font-size:.74rem;color:var(--ink-soft);margin:0}
.ta-errors{background:rgba(154,30,30,.08);border:1px solid rgba(154,30,30,.25);border-radius:var(--r-md);padding:.8rem 1rem;font-size:.85rem;color:#7a1d1d}
.ta-thanks{text-align:center;padding:1.5rem .5rem}
.ta-tick{width:54px;height:54px;border-radius:50%;background:var(--brass);color:var(--paper);display:grid;place-items:center;font-size:1.5rem;margin:0 auto 1.1rem}
.ta-thanks h3{font-family:var(--font-serif);font-weight:400;font-size:1.7rem;color:var(--ink);margin-bottom:.6rem}
.ta-thanks p{color:var(--ink-soft);font-size:.98rem;max-width:42ch;margin:0 auto;line-height:1.6}

/* ===== sections/trade-concierge-brief.liquid ===== */
.tcb{ background:var(--paper); padding:clamp(1rem,3vw,2rem) 0 clamp(3rem,7vw,5.5rem); border-top:1px solid var(--line); }
/* Generous premium brief width (matches the Finder's wider look the operator prefers),
   while staying a focused form column. width:100% + side padding keeps it fluid so it
   never overflows on narrow screens. The sign-in/apply CTA stays narrower (.tcb-cta). */
.tcb-wrap{ width:100%; max-width:1040px; margin:0 auto; padding:0 clamp(1rem,4vw,2rem); }

/* ── Panel: soft rounded card on paper-deep ──────────────────────── */
.tcb-panel{ background:var(--paper-deep); border:1px solid var(--line); border-radius:var(--r-lg); padding:clamp(1.8rem,4vw,2.8rem); box-shadow:var(--shadow-inset); margin-top:clamp(-2rem,-4vw,-3rem); }
.tcb-cta{ text-align:center; max-width:540px; margin-left:auto; margin-right:auto; }
.tcb-eyebrow{ font-family:var(--font-ui); text-transform:uppercase; letter-spacing:.22em; font-size:.7rem; color:var(--brass); margin:0 0 .7rem; }
.tcb-h{ font-family:var(--font-display); font-weight:500; font-size:clamp(1.4rem,3vw,1.9rem); color:var(--ink); margin:0; line-height:1.15; }
.tcb-sub{ font-family:var(--font-serif); color:var(--ink-soft); line-height:1.6; margin:.8rem auto 0; max-width:34rem; }
.tcb-cta-actions{ display:flex; gap:.8rem; justify-content:center; flex-wrap:wrap; margin-top:1.6rem; }
.tcb-panel-head{ margin-bottom:1.8rem; }
.tcb-form{ display:flex; flex-direction:column; gap:1.3rem; }

/* ── Project name field (single-line pill) ───────────────────────── */
.tcb-input{ width:100%; padding:.8rem 1.1rem; border:1px solid var(--line); background:var(--paper); font-family:var(--font-ui); font-size:.92rem; border-radius:var(--r-pill); color:var(--ink); transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease); }
.tcb-input::placeholder{ color:var(--ink-soft); opacity:.7; }
.tcb-input:focus{ outline:none; border-color:var(--brand-blue); box-shadow:0 0 0 2px rgba(0,46,188,.2); }

/* ── Slot: soft rounded card, generous breathing room ────────────── */
.tcb-slot{ position:relative; border:1px solid var(--line); background:#fff; padding:clamp(1.3rem,3vw,1.7rem); display:grid; grid-template-columns:1fr 1fr; gap:1.25rem 1.1rem; border-radius:var(--r-lg); }
/* Slot label: a tidy brass eyebrow that flows as the first line INSIDE the card's
   padding (was a <legend> straddling the border). Spans the grid so it reads as a
   section heading, with room kept clear of the absolute-positioned remove control. */
.tcb-slot-label{ grid-column:1 / -1; display:block; margin:0; padding-right:2rem; font-size:.64rem; letter-spacing:.18em; color:var(--brass-deep); }

/* shared micro-label + field stacking (the pb-lab style) */
.tcb-rl{ display:block; font-family:var(--font-ui); font-weight:600; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); margin-bottom:.45rem; }
.tcb-rl em{ font-style:normal; font-weight:400; text-transform:none; letter-spacing:0; color:var(--ink-soft); }
.tcb-field{ display:flex; flex-direction:column; }

/* selects + budget input — rounded, paper-fill, focus glow */
.tcb-select, .tcb-slot input[type=number], .tcb-field input{ width:100%; padding:.8rem 1.1rem; border:1px solid var(--line); background:var(--paper); font-family:var(--font-ui); font-size:.9rem; border-radius:var(--r-pill); color:var(--ink); transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease); }
.tcb-select{ appearance:none; cursor:pointer; padding-right:2.2rem;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235A5046' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1.1rem center; }
.tcb-field input::placeholder{ color:var(--ink-soft); opacity:.7; }
.tcb-select:focus, .tcb-slot input:focus, .tcb-field input:focus{ outline:none; border-color:var(--brand-blue); box-shadow:0 0 0 2px rgba(0,46,188,.2); }

/* remove control — subtle circular */
.tcb-remove{ position:absolute; top:.9rem; right:.9rem; width:26px; height:26px; display:grid; place-items:center; border:1px solid var(--line); background:var(--paper); border-radius:50%; font-size:1.05rem; line-height:1; color:var(--ink-soft); cursor:pointer; transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease); }
.tcb-remove:hover{ border-color:var(--ink); color:var(--ink); }
/* duplicate control — a quiet pill that sits just left of the remove ×, copying this
   rug's selections into a fresh slot (a designer briefing similar rooms shouldn't
   re-enter everything). */
.tcb-dup{ position:absolute; top:.9rem; right:2.9rem; height:26px; display:inline-flex; align-items:center; padding:0 .75rem; border:1px solid var(--line); background:var(--paper); border-radius:var(--r-pill); font-family:var(--font-ui); font-weight:600; font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); cursor:pointer; transition:border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease); }
.tcb-dup:hover{ border-color:var(--ink); color:var(--ink); }

/* ── Actions row + submit pill with arrow ring ───────────────────── */
.tcb-actions{ display:flex; justify-content:space-between; align-items:center; gap:1rem; flex-wrap:wrap; margin-top:.5rem; }
.tcb-btn{ display:inline-flex; align-items:center; justify-content:center; gap:.5rem; background:var(--ink); color:var(--paper); border:none; padding:.95rem 1.8rem; font-family:var(--font-ui); font-weight:600; letter-spacing:.1em; text-transform:uppercase; font-size:.74rem; cursor:pointer; border-radius:var(--r-pill); text-decoration:none; transition:background var(--t-mid) var(--ease); }
.tcb-btn:hover{ background:var(--brass-deep); }
.tcb-btn[disabled]{ opacity:.5; cursor:wait; }
.tcb-btn-ghost{ background:transparent; color:var(--ink); border:1px solid var(--ink); }
.tcb-btn-ghost:hover{ background:var(--ink); color:var(--paper); }
.tcb-submit{ gap:.8rem; padding:.95rem 1.05rem .95rem 1.8rem; }
.tcb-ring{ width:34px; height:34px; border-radius:50%; background:rgba(246,241,233,.16); display:grid; place-items:center; font-size:1rem; }
.tcb-link{ display:inline-flex; align-items:center; gap:.4rem; background:none; border:none; color:var(--brass-deep); font-family:var(--font-ui); font-size:.78rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; text-decoration:none; border-bottom:1px solid transparent; padding-bottom:2px; transition:border-color var(--t-fast) var(--ease),opacity var(--t-fast) var(--ease); }
.tcb-link:hover{ border-bottom-color:currentColor; }
.tcb-link span{ font-size:1em; }

/* ── Style chips (text pills) + color swatches harmonised ───────── */
.tcb-chipwrap, .tcb-swatchwrap{ grid-column:1 / -1; }
.tcb-chips, .tcb-swatches{ display:flex; flex-wrap:wrap; gap:.5rem; }
.tcb-chip{ display:inline-flex; align-items:center; border:1px solid var(--line); background:#fff; border-radius:var(--r-pill); padding:.42rem .9rem; font-family:var(--font-ui); font-size:.74rem; cursor:pointer; color:var(--ink); transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease); }
.tcb-chip:hover{ border-color:var(--ink); }
.tcb-chip[aria-pressed="true"]{ border-color:var(--ink); box-shadow:0 0 0 1px var(--ink) inset; background:var(--ink); color:var(--paper); }
.tcb-sw{ display:inline-flex; align-items:center; gap:.4rem; border:1px solid var(--line); background:#fff; border-radius:var(--r-pill); padding:.42rem .9rem .42rem .42rem; font-family:var(--font-ui); font-size:.74rem; cursor:pointer; color:var(--ink); transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease),background var(--t-fast) var(--ease),color var(--t-fast) var(--ease); }
.tcb-sw:hover{ border-color:var(--ink); }
.tcb-sw[aria-pressed="true"]{ border-color:var(--ink); box-shadow:0 0 0 1px var(--ink) inset; }
.tcb-sw-dot{ width:14px; height:14px; border-radius:50%; background:var(--sw); border:1px solid rgba(0,0,0,.15); }
.tcb-sw-multi{ background:conic-gradient(#9b2d2d,#b08d40,#5a6e54,#3a5675,#c98f9a,#9b2d2d); }
.tcb-hint{ display:block; font-family:var(--font-ui); font-size:.66rem; color:var(--ink-soft); margin-top:.55rem; }

/* ── Quick-size chips ─────────────────────────────────────────────── */
.tcb-sizes{ display:flex; flex-wrap:wrap; gap:.5rem; }
/* Numeric chips share a min-width for an even ladder; word chips (Runner / Round /
   Oversize) keep their natural width so they never look stretched or cramped. */
.tcb-sizes .tcb-chip{ min-width:3.4rem; justify-content:center; font-variant-numeric:tabular-nums; }
.tcb-sizes .tcb-chip[data-size="runner"], .tcb-sizes .tcb-chip[data-size="round"], .tcb-sizes .tcb-chip[data-size="oversize"]{ min-width:0; }

/* ── Refine further (collapsible) ─────────────────────────────────── */
.tcb-more{ border-top:1px solid var(--line); margin-top:.3rem; padding-top:.2rem; }
.tcb-more summary{ list-style:none; cursor:pointer; display:flex; align-items:center; gap:.6rem; padding:.85rem .1rem .25rem; font-family:var(--font-ui); user-select:none; -webkit-tap-highlight-color:transparent; }
.tcb-more summary::-webkit-details-marker{ display:none; }
.tcb-more summary:focus-visible{ outline:2px solid var(--brand-blue); outline-offset:3px; border-radius:var(--r-sm,6px); }
.tcb-more-lbl{ font-weight:600; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-deep); }
.tcb-more-meta{ font-size:.7rem; color:var(--ink-soft); letter-spacing:.01em; }
.tcb-more-ic{ margin-left:auto; width:22px; height:22px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; font-size:.95rem; line-height:1; color:var(--ink-soft); transition:transform var(--t-mid) var(--ease),border-color var(--t-fast) var(--ease),color var(--t-fast) var(--ease); }
.tcb-more[open] .tcb-more-ic{ transform:rotate(45deg); border-color:var(--ink); color:var(--ink); }
.tcb-more-body{ display:flex; flex-direction:column; gap:1.25rem; padding:1rem 0 .3rem; }
.tcb-more-row{ display:grid; grid-template-columns:1fr 1fr; gap:1.1rem; align-items:start; }
/* Construction · Tone · Condition share one tidy 3-up row, collapsing gracefully. */
.tcb-more-row-3{ grid-template-columns:repeat(3,1fr); }
@media(max-width:680px){ .tcb-more-row-3{ grid-template-columns:1fr 1fr; } }
@media(max-width:560px){ .tcb-more-row, .tcb-more-row-3{ grid-template-columns:1fr; } }

/* ── One-of-a-kind toggle switch ──────────────────────────────────── */
.tcb-switch{ display:flex; align-items:center; gap:.7rem; cursor:pointer; }
.tcb-switch input{ position:absolute; opacity:0; width:1px; height:1px; }
.tcb-switch-track{ flex:0 0 auto; width:40px; height:23px; border-radius:var(--r-pill); background:var(--line); border:1px solid var(--line); position:relative; transition:background var(--t-mid) var(--ease); }
.tcb-switch-knob{ position:absolute; top:2px; left:2px; width:17px; height:17px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(33,29,24,.25); transition:transform var(--t-mid) var(--ease); }
.tcb-switch input:checked + .tcb-switch-track{ background:var(--ink); border-color:var(--ink); }
.tcb-switch input:checked + .tcb-switch-track .tcb-switch-knob{ transform:translateX(17px); }
.tcb-switch input:focus-visible + .tcb-switch-track{ box-shadow:0 0 0 2px rgba(0,46,188,.35); }
.tcb-switch-lbl{ font-family:var(--font-ui); font-size:.8rem; color:var(--ink); }
.tcb-switch-lbl em{ font-style:normal; color:var(--ink-soft); }

/* ── Actions row helpers ──────────────────────────────────────────── */
.tcb-actions-left{ display:inline-flex; align-items:center; gap:1.2rem; flex-wrap:wrap; }
.tcb-link-quiet{ color:var(--ink-soft); }
.tcb-link-quiet:hover{ color:var(--ink); }

/* ── Size ranges — tidy, intentional alignment ───────────────────── */
.tcb-range{ grid-column:1 / -1; }
.tcb-rangefields{ display:flex; align-items:center; gap:.34rem .4rem; flex-wrap:wrap; font-family:var(--font-ui); font-size:.74rem; color:var(--ink-soft); }
/* Wider so values + "min/in"/"max/in" placeholders breathe and never crowd. */
.tcb-range input[type=number]{ width:4.7rem; padding:.55rem .55rem; text-align:center; border-radius:var(--r-pill); }
.tcb-range .tcb-ft{ font-size:.82rem; color:var(--ink-soft); margin:0 .12rem 0 .18rem; }
.tcb-range .tcb-unit{ font-size:.66rem; letter-spacing:.04em; color:var(--ink-soft); margin-left:.08rem; }
.tcb-range .tcb-dash{ margin:0 .65rem; color:var(--ink-soft); }
.tcb-wide{ grid-column:1 / -1; }

/* ════════════════════════════════════════════════════════════════════
   RESULTS — rendered by the island as the REAL site product card
   (.card / .card-core / .card-img / .card-body / .card-* / .card-fav)
   inside the REAL collection grid container (.cards). The global theme.css
   card system styles them verbatim; we only add what the trade tool needs:
     · the trade page rhythm + .wrap-width results column
     · the per-rug editorial slot head
     · an always-visible save heart (the global one reveals on hover only)
     · the "trade" price tag
     · the shortlist board panel + the sort / saved-count tools
     · premium empty / no-result states
   The .cards grid + its 3→2→1 breakpoints are NOT redefined here — they live
   in main-collection.liquid's stylesheet and apply globally, so the trade edit
   matches the collection grid exactly.
   ════════════════════════════════════════════════════════════════════ */
/* The form stays focused at 880px; the EDIT uses the global .wrap so its .cards
   render at the full site grid width and read exactly like a collection page. */
.tcb-results{ margin-top:clamp(2.6rem,6vw,4rem); }

/* Results header: editorial title + running saved-count + sort control. */
.tcb-results-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:1.2rem; flex-wrap:wrap; padding-bottom:1.4rem; margin-bottom:.6rem; border-bottom:1px solid var(--line); }
.tcb-results-head .tcb-eyebrow{ margin:0 0 .4rem; }
.tcb-results-title{ font-size:clamp(1.7rem,3.4vw,2.4rem); color:var(--ink); margin:0; line-height:1; }
.tcb-results-tools{ display:inline-flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.tcb-savedcount{ display:inline-flex; align-items:center; gap:.45rem; font-family:var(--font-ui); font-size:.7rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); background:var(--paper-deep); border:1px solid var(--line); border-radius:var(--r-pill); padding:.46rem .9rem; transition:background var(--t-fast) var(--ease),color var(--t-fast) var(--ease); }
.tcb-savedcount .tcb-heart{ color:var(--brass-deep); font-size:.95rem; line-height:1; }
.tcb-savedcount b{ font-weight:700; }
.tcb-savedcount[data-count="0"]{ color:var(--ink-soft); }
/* Running project budget total — same badge language as the saved count, with the
   amount in brass so it reads as the live trade-priced sum across every room. */
.tcb-projecttotal{ display:inline-flex; align-items:center; gap:.4rem; font-family:var(--font-ui); font-size:.7rem; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--ink); background:var(--paper-deep); border:1px solid var(--line); border-radius:var(--r-pill); padding:.46rem .9rem; }
.tcb-projecttotal[hidden]{ display:none; }
.tcb-projecttotal b{ font-weight:700; color:var(--brass-deep); font-variant-numeric:tabular-nums; }
.tcb-sort{ display:inline-flex; align-items:center; gap:.6rem; font-family:var(--font-ui); font-size:.62rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-soft); }
.tcb-sort select{ appearance:none; cursor:pointer; font-family:var(--font-ui); font-size:.78rem; letter-spacing:.02em; text-transform:none; color:var(--ink); background:var(--paper); border:1px solid var(--line); border-radius:var(--r-pill); padding:.55rem 2.4rem .55rem 1.1rem;
  background-image:url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235A5046' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 1rem center; transition:border-color var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease); }
.tcb-sort select:hover{ border-color:var(--brand-blue); }
.tcb-sort select:focus{ outline:none; border-color:var(--brand-blue); box-shadow:0 0 0 2px rgba(0,46,188,.2); }

/* Per-rug editorial section. */
.tcb-slot-result{ margin-top:clamp(2.4rem,5vw,3.4rem); }
.tcb-slot-head{ margin-bottom:1.4rem; }
.tcb-slot-head .eyebrow{ color:var(--brass-deep); }
.tcb-slot-title{ font-size:clamp(1.3rem,2.6vw,1.7rem); color:var(--ink); margin:.4rem 0 0; line-height:1.1; }

/* "Show me 12 fresh options" / all-shown line — generous, centred, never cramped. */
.tcb-more-actions{ display:flex; justify-content:center; margin-top:2rem; }
.tcb-fresh{ display:inline-flex; align-items:center; gap:.55rem; }
.tcb-fresh span{ transition:transform var(--t-fast) var(--ease); }
.tcb-fresh:hover span{ transform:translateX(3px); }
.tcb-allshown{ font-family:var(--font-serif); font-size:.9rem; color:var(--ink-soft); font-style:italic; text-align:center; margin:0; }
.tcb-empty{ font-family:var(--font-serif); font-size:.88rem; color:var(--ink-soft); font-style:italic; margin:.2rem 0 0; }

/* Image-less fallback inside a card (feed should always carry image_url; this is a graceful guard). */
.tcb-card .card-img .tcb-noimg{ position:absolute; inset:0; background:
  radial-gradient(120% 90% at 50% 0%, rgba(0,0,0,.04), transparent 70%), var(--paper-deep); }

/* Always-visible save heart (the global .card-fav reveals on hover; trade buyers
   need it permanently obvious as a toggle). Filled state uses the theme's .saved. */
.tcb-card .card-fav{ opacity:1; transform:none; }

/* "trade" tag beside the trade price so it reads as the trade rate, not retail. */
.tcb-trade-tag{ font-family:var(--font-ui); font-weight:600; font-size:.56rem; letter-spacing:.16em; text-transform:uppercase; color:var(--brass-deep); vertical-align:.18em; margin-left:.15rem; }
.tcb-card .card-price s{ font-family:var(--font-display); font-size:.92rem; color:var(--ink-soft); opacity:.7; margin-right:.25rem; }

/* No-result panel for a single rug — premium, on-brand, never a bare line. */
.tcb-noresult{ grid-column:1 / -1; text-align:center; padding:clamp(2.4rem,6vw,3.6rem) 1rem; border:1px dashed var(--line); border-radius:var(--r-lg); background:rgba(33,29,24,.02); }
.tcb-noresult-h{ font-size:clamp(1.3rem,2.8vw,1.9rem); color:var(--ink); margin:0 0 .6rem; }
.tcb-noresult-h em{ font-style:italic; color:var(--brass-deep); }
.tcb-noresult p{ color:var(--ink-soft); max-width:42ch; margin:0 auto; font-size:.95rem; line-height:1.6; }

/* ── Shortlist board — a deliberate panel directly under each rug's edit ──── */
.tcb-board{ margin:1.6rem 0 0; padding:clamp(1.3rem,3vw,1.7rem); background:var(--paper-deep); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-inset); }
.tcb-board-head{ display:flex; align-items:baseline; justify-content:space-between; gap:1rem; flex-wrap:wrap; margin-bottom:1rem; }
.tcb-board h3{ font-family:var(--font-display); font-weight:500; font-size:1.05rem; color:var(--ink); margin:0; letter-spacing:.005em; }
.tcb-board-room{ color:var(--brass-deep); font-size:.85rem; }
.tcb-board-n{ color:var(--ink-soft); font-size:.85rem; }
.tcb-clear{ background:none; border:none; cursor:pointer; font-family:var(--font-ui); font-size:.62rem; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-soft); border-bottom:1px solid transparent; padding-bottom:1px; transition:color var(--t-fast) var(--ease),border-color var(--t-fast) var(--ease); }
.tcb-clear:hover{ color:#8a1f1f; border-bottom-color:currentColor; }
.tcb-boardrow{ display:flex; gap:.8rem; flex-wrap:wrap; }
.tcb-bchip{ position:relative; display:block; }
.tcb-bchip a{ display:block; }
.tcb-bchip img{ width:74px; height:74px; object-fit:cover; border:1px solid var(--line); border-radius:var(--r-md); display:block; transition:border-color var(--t-fast) var(--ease); }
.tcb-bchip:hover img{ border-color:var(--brass); }
.tcb-bx{ position:absolute; top:-8px; right:-8px; width:22px; height:22px; border-radius:50%; border:2px solid var(--paper-deep); background:var(--ink); color:var(--paper); font-size:.75rem; line-height:1; cursor:pointer; display:grid; place-items:center; box-shadow:0 1px 4px rgba(33,29,24,.22); transition:background var(--t-fast) var(--ease); }
.tcb-bx:hover{ background:var(--brass-deep); }
@media(pointer:coarse){ .tcb-bx{ width:26px; height:26px; } }

/* ════════════════════════════════════════════════════════════════════
   RESPONSIVE — phone ≤480 · tablet 481–820 · laptop 821–1200 · desktop >1200.
   Trade KEEPS its multi-rug all-at-once layout (no step wizard). These rules just
   guarantee no overflow at 360px, ≥40–44px touch targets, and ft/in ranges that
   stack gracefully. The .cards results grid + the Refine-further drawer collapse
   rules (above) handle the 3→2→1 / drawer flow.
   ════════════════════════════════════════════════════════════════════ */

/* Touch devices: comfortable tap targets on every interactive control. */
@media(pointer:coarse){
  .tcb-chip{ min-height:42px; }
  .tcb-sw{ min-height:42px; }
  .tcb-range input[type=number]{ min-height:42px; }
  .tcb-select,.tcb-field input,.tcb-input{ min-height:44px; }
}

/* Tablet: the two-up slot grid is comfortable down to ~700px; below that the fields
   read better stacked, so collapse a touch earlier than the hard phone breakpoint. */
@media(max-width:760px){
  .tcb-slot{ grid-template-columns:1fr; }
}

@media(max-width:600px){
  .tcb-panel{ margin-top:0; }
  .tcb-h{ font-size:clamp(1.25rem,5.5vw,1.7rem); }
  .tcb-actions{ flex-direction:column-reverse; align-items:stretch; }
  .tcb-actions-left{ justify-content:space-between; }
  .tcb-submit{ width:100%; }
  .tcb-results-head{ align-items:flex-start; }
  .tcb-results-tools{ width:100%; justify-content:space-between; }
  /* The always-visible heart can crowd a 1-col card image — keep it tappable. */
  .tcb-card .card-fav{ top:1rem; right:1rem; }
  /* Refine-further summary: meta line wraps under the label instead of overflowing. */
  .tcb-more summary{ flex-wrap:wrap; }
  .tcb-more-meta{ flex:1 1 100%; order:3; }
  .tcb-more-ic{ order:2; }
}

/* Phone ≤480: the ft/in min–max pair stays intact — the dash forces a line break so
   the MIN group sits on line one and the MAX group drops below; neither is crushed
   and nothing overflows at 360px. Quick-size ladder relaxes its min to fit. */
@media(max-width:480px){
  .tcb-rangefields{ gap:.4rem .3rem; }
  .tcb-range input[type=number]{ width:3.7rem; }
  .tcb-range .tcb-dash{ flex:1 0 100%; margin:.15rem 0; text-align:left; }
  .tcb-sizes .tcb-chip{ min-width:2.9rem; }
  /* Shortlist board chips: smaller thumbs so a row of saves never overflows. */
  .tcb-bchip img{ width:64px; height:64px; }
  .tcb-board-head{ gap:.4rem .8rem; }
}

/* ===== sections/trust-strip.liquid ===== */
.trust{background:var(--espresso);border-top:1px solid rgba(243,236,224,.09);border-bottom:1px solid rgba(243,236,224,.09)}
.trust .wrap{display:flex;flex-wrap:nowrap;justify-content:space-between;align-items:center;gap:1.1rem;padding-top:1.45rem;padding-bottom:1.45rem}
.trust-item{display:flex;align-items:center;gap:.7rem;font-family:var(--font-ui);font-weight:500;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:var(--bone-2);white-space:nowrap}
.trust-item .ti-ic{display:inline-flex;flex:0 0 21px}
.trust-item .ti-ic svg{width:21px;height:21px;color:var(--bronze-lum)}
.trust-item .ti-t{padding-top:1px}
@media(max-width:1080px){
  .trust .wrap{flex-wrap:wrap;justify-content:center;gap:1rem 2rem}
  .trust-item{white-space:normal}
}
@media(max-width:600px){
  .trust .wrap{display:grid;grid-template-columns:1fr 1fr;gap:1.1rem 1.2rem;justify-items:start}
  .trust-item{font-size:.6rem;gap:.55rem;align-items:flex-start}
  .trust-item .ti-ic{flex-basis:18px}.trust-item .ti-ic svg{width:18px;height:18px}
}

/* ===== sections/video-feature.liquid ===== */
.videofeat-sec .wrap{max-width:1100px}
.videofeat-sec .vf-head{text-align:center;max-width:640px;margin:0 auto 2.6rem}
.videofeat-sec .vf-head .eyebrow{justify-content:center}
.videofeat-sec .vf-head h2{font-family:var(--font-serif);font-weight:300;font-size:var(--t-h2);line-height:1.05;margin:1rem 0 1.1rem}
.videofeat-sec .vf-head h2 em{font-style:italic;color:var(--brass-deep)}
.videofeat-sec .vf-intro{color:var(--ink-soft);max-width:54ch;margin:0 auto}
.videofeat-sec .vf-frame{position:relative;aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;
  background:var(--void);border:1px solid var(--line);box-shadow:0 30px 70px -40px rgba(33,29,24,.5)}
.videofeat-sec .vf-video{width:100%;height:100%;object-fit:cover;display:block;background:var(--void)}
.videofeat-sec .vf-frame .ri-placeholder,.videofeat-sec .vf-frame img{width:100%;height:100%;object-fit:cover}
.videofeat-sec .vf-caption{text-align:center;font-family:var(--font-ui);font-weight:500;font-size:.62rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--ink-soft);margin-top:1.4rem}
@media(max-width:768px){.videofeat-sec .vf-head{margin-bottom:1.8rem}}

/* ===== snippets/reviews-block.liquid ===== */
.reviews-block .rev-top{display:grid;grid-template-columns:.7fr 1.3fr;gap:4rem;align-items:center;margin-bottom:2.5rem}
@media(max-width:920px){.reviews-block .rev-top{grid-template-columns:1fr;gap:2rem}}
.reviews-block .rev-agg .n{font-size:5.5rem;line-height:.9}
.reviews-block .rev-agg .st{color:var(--brass);letter-spacing:.2em;font-size:1.1rem;margin:.6rem 0}
.reviews-block .rev-agg .l{font-family:var(--font-ui);font-weight:500;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}
.reviews-block .rev-note{font-style:italic;color:var(--ink-soft);font-size:1.15rem;max-width:34ch}
.reviews-block .rev-empty{text-align:center;max-width:48ch;margin:0 auto;border:1px dashed var(--line);border-radius:var(--r-lg);padding:3rem 1.6rem;background:rgba(33,29,24,.02)}
.reviews-block .rev-empty .serif{font-size:1.5rem;font-style:italic;color:var(--ink);margin-bottom:.8rem}
.reviews-block .rev-empty-sub{color:var(--ink-soft);font-size:.95rem}
.reviews-block .reviews-app-slot:empty{display:none}
.reviews-block .reviews-app-slot{margin-top:2.5rem}

/* ===== snippets/rug-finder-cta.liquid ===== */
.rfcta{ background:var(--paper-deep,#EDE6D8); border-radius:var(--r-lg,16px); padding:clamp(2rem,5vw,3.5rem); text-align:center; }
.rfcta-eyebrow{ font-family:var(--font-ui,sans-serif); text-transform:uppercase; letter-spacing:.2em; font-size:.7rem; color:var(--brass,#8A6A3C); margin:0 0 .6rem; }
.rfcta-h{ font-family:var(--font-display,Georgia,serif); font-weight:500; font-size:clamp(1.4rem,3vw,2rem); color:var(--ink,#211D18); margin:0; }
.rfcta-sub{ font-family:var(--font-serif,Georgia,serif); color:var(--ink-soft,#5A5046); max-width:46ch; margin:.8rem auto 1.4rem; }
.rfcta-btn{ display:inline-block; background:var(--ink,#211D18); color:var(--paper,#F3ECE0); border-radius:999px; padding:.9rem 1.9rem; font-family:var(--font-ui,sans-serif); text-transform:uppercase; letter-spacing:.12em; font-size:.74rem; text-decoration:none; }

/* =====================================================================
   UX PREVIEW 2026-10-27: fixes from the phone + desktop storefront audit
   (scratchpad storefront-ux-audit/AUDIT.md). One layer, appended LAST so each
   rule wins on source order at equal specificity. Each block names its finding.
   ===================================================================== */

/* F1 · LOGO. Was 10px wide on every phone page: the header grid is 1fr auto 1fr and the
   action icons filled column 3, so column 1 (logo) shrank to ~10px. Brand book ch 3: at
   least 96px wide on screen. The PNG is 1074x449 (2.39:1), so 41px tall = 98px wide. */
#site-header .mk{flex:none;min-width:98px}
#site-header .mk img,#site-header .mk .mk-text{height:41px;flex:none}
@media(max-width:920px){
  /* Logo column sized to the logo, actions to their icons; the empty middle takes the rest. */
  #site-header .nav,#site-header.scrolled .nav{grid-template-columns:auto 1fr auto;gap:.75rem;padding-left:1rem;padding-right:1rem}
  #site-header .nav-actions{gap:.5rem}
  /* Account lives in the menu sheet on phones (sections/header.liquid, .mov-account). */
  #site-header .nav-account{display:none}
}
@media(max-width:359px){
  #site-header .nav,#site-header.scrolled .nav{gap:.5rem;padding-left:.75rem;padding-right:.75rem}
  #site-header .nav-actions{gap:.25rem}
}

/* F2 · CHAT BUBBLE. Shopify Inbox reads --shopify-chat-activator-offset (its distance from
   the bottom) inside its shadow DOM. theme.js publishes --ui-bottom-clear = the height of
   whichever bottom bar is on screen, so the bubble floats ABOVE the sticky Add to Cart bar
   and the Rug Finder step bar instead of covering them. Declared on body so it out-inherits
   the app's own :root value. While a full-screen sheet is open it steps aside entirely. */
body{--shopify-chat-activator-offset:calc(20px + var(--ui-bottom-clear,0px))}
body:has(.filters.open,.menu-overlay.open,.msearch-overlay.open) shopify-chat{display:none!important}

/* F4 · NO ZOOM WHILE TYPING. iOS zooms any field under 16px (trade form 14.7px, sort
   11.8px, price 13.3px, search 13.3-15.7px, footer language 11.2px). !important because
   several fields are set through ID selectors (#site-header ...). */
@media(pointer:coarse){
  input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=hidden]):not([type=submit]):not([type=button]),
  select,textarea{font-size:16px!important}
}

/* F5 · PDP BUY BAR. Shown from load on phones (theme.js); 48px button; the footer keeps
   clear of the bar so the last links are never underneath it. */
.mbuy button{min-height:48px}
.price,.card-price,.mbuy .mn{font-variant-numeric:lining-nums tabular-nums}
@media(max-width:920px){
  /* Room for the chat bubble at the foot of every page, plus the buy bar on product pages. */
  footer[role="contentinfo"]{padding-bottom:calc(2.5rem + 72px + env(safe-area-inset-bottom,0px))}
  body:has([data-mbuy]) footer[role="contentinfo"]{padding-bottom:calc(2.5rem + 150px + env(safe-area-inset-bottom,0px))}
}

/* F6a · ONE GAP BELOW THE HEADER. #main-content already pads 5.4rem to clear the fixed
   header; these sections then added another 6.75-9.5rem (80px of dead space on phones,
   ~130px on desktop). They now add a single small step. */
.crumbs,.search-head,.cart-sec,.lc-sec,.article-sec,.blog-head,.page-sec:not(.page-sec--hero){padding-top:2.25rem}
body .shopify-policy__container{padding-top:2.25rem}
.reviews-page{padding-top:2.25rem}
@media(max-width:768px){
  .crumbs,.search-head,.cart-sec,.lc-sec,.article-sec,.blog-head,.page-sec:not(.page-sec--hero){padding-top:1.25rem}
  body .shopify-policy__container,.reviews-page{padding-top:1.25rem}
}
.page-head .crumbs,.blog-head .crumbs,.article-head .crumbs{padding-top:0}
/* Inside the collection hero the crumbs sit on the photo's foot; no top pad needed. */
.chero-inner .crumbs{padding-top:0}
/* 11px floor for tracked labels that were 9-10px (Apple's 11pt minimum). */
.crumbs .wrap{font-size:11px}
.card-collection{font-size:11px}

/* F6b · "1 OF 1" AND ZOOM CHIPS: solid, not glass. No blur over product photography
   (rulebook §2, brand book ch 4). Chalk tab, bronze-deep text (6.5:1), 11px. */
.badge{background:var(--chalk);backdrop-filter:none;-webkit-backdrop-filter:none;border:1px solid rgba(110,85,47,.25);
  color:var(--bronze-deep);font-size:11px;letter-spacing:.14em;padding:.42rem .7rem;box-shadow:0 1px 2px rgba(33,29,24,.14)}
.badge .mk{color:var(--bronze);font-size:9px}
.badge.ooak,.badge.master{color:var(--bronze-deep)}
.badge.antique,.badge.vintage{color:var(--ink)}
.zoom-hint{background:var(--chalk);backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--ink);border-color:rgba(33,29,24,.14);font-size:11px}
.zoom-hint .zh-coarse{display:none}
@media(pointer:coarse){.zoom-hint .zh-fine{display:none}.zoom-hint .zh-coarse{display:inline}}

/* F6c · TWO RUGS PER ROW ON PHONES (collection, search, related, favourites). The 1-up card
   was ~690px tall: one rug per screen across 2,806 pieces. One surface (no card-in-card),
   image, name and price; the long SEO title stays on the product page. Home rails keep
   their own 1-up layout. */
@media(max-width:520px){
  .cards:not(.rail-cards){grid-template-columns:repeat(2,minmax(0,1fr));gap:1.1rem .75rem;max-width:none}
  .cards:not(.rail-cards) .card{padding:0;border:none;background:none;border-radius:var(--r-md)}
  .cards:not(.rail-cards) .card:hover{transform:none;box-shadow:none}
  .cards:not(.rail-cards) .card-body{padding:.7rem .65rem .8rem}
  .cards:not(.rail-cards) .card-collection{letter-spacing:.12em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .cards:not(.rail-cards) .card-name{font-size:1.08rem;margin:.3rem 0 0}
  .cards:not(.rail-cards) .card-descriptor{display:none}
  .cards:not(.rail-cards) .card-foot{margin-top:.55rem;padding-top:.55rem}
  .cards:not(.rail-cards) .card-price{font-size:1rem}
  .cards:not(.rail-cards) .card-fav{top:.4rem;right:.4rem}
  .cards:not(.rail-cards) .badge{top:.5rem;left:.5rem}
  .cards:not(.rail-cards) .badge.antique,.cards:not(.rail-cards) .badge.vintage,.cards:not(.rail-cards) .badge.master{top:auto;bottom:.5rem;right:auto}
  .cards:not(.rail-cards) .sold-ribbon span{font-size:1.05rem;padding:.4rem .9rem}
}

/* F6d · CLOSED MENU IS GONE FOR KEYBOARDS AND SCREEN READERS. It was opacity:0 only, so its
   links still took Tab focus. visibility flips after the fade out, immediately on the way in. */
.menu-overlay{visibility:hidden;transition:opacity .5s var(--ease),visibility 0s linear .5s}
.menu-overlay.open{visibility:visible;transition:opacity .5s var(--ease),visibility 0s}

/* F6e · FOCUS RING THAT SHOWS ON DARK GROUNDS. Bronze alone is ~2:1 on the dark hero and
   header; a bone ring with a bronze halo passes on both grounds. */
#site-header:not(.lit) :focus-visible,.hero :focus-visible,.chero :focus-visible,
footer[role="contentinfo"] :focus-visible,.menu-overlay :focus-visible{
  outline:2px solid var(--bone);outline-offset:2px;box-shadow:0 0 0 5px var(--bronze-deep)}
/* Never remove a ring without a replacement; and no brand blue outside the logo (ch 3). */
.sort select:focus-visible{outline:2px solid var(--bronze-deep);outline-offset:2px}
.qty-input:focus-visible{box-shadow:0 0 0 2px rgba(138,106,60,.5);background:rgba(138,106,60,.06)}
.qty-input:focus:not(:focus-visible){background:rgba(138,106,60,.06)}

/* Reduced motion: the scroll cue kept pulsing (audit, home P3). */
@media(prefers-reduced-motion:reduce){.hero-fold,.hero-fold::after,.hero-fold *{animation:none!important}}

/* Filter drawer: the closed drawer's shadow bled a dark strip down the right edge of every
   collection and search page; the Apply bar now clears the home indicator. */
@media(max-width:880px){
  .filters:not(.open){box-shadow:none}
  .facet-apply{padding-bottom:calc(1rem + env(safe-area-inset-bottom,0px))}
}

/* Rug Finder on phones: Back / Next stay in reach at the foot of each step, above the home
   indicator; the chat bubble rises above this bar (F2). Back becomes a 44px target. */
@media(max-width:560px){
  .rf-step .rf-nav{position:sticky;bottom:0;z-index:5;background:var(--paper-deep);
    padding-bottom:calc(.8rem + env(safe-area-inset-bottom,0px))}
  .rf-back{min-height:44px}
}

/* Welcome popup close: 34px -> 44px target. */
html .wp-close{min-width:44px;min-height:44px}

/* Favourites count: theme.js sets [hidden] at zero, but display:grid above beat the UA's
   [hidden]{display:none}, so a "0" bubble sat on the heart for every new visitor. */
#site-header .nav-fav-count[hidden],#site-header .nav-cart-count[hidden]{display:none}

/* Sort at 16px is wider than at 11.8px: on a 390px phone it pushed the toolbar 5px past
   the edge (page scrollWidth 400). Let the toolbar row share the width and the select shrink. */
@media(max-width:600px){
  .toolbar-right{flex:1 1 100%;min-width:0;gap:.6rem}
  .toolbar-right .sort{flex:1 1 auto;min-width:0}
  .toolbar-right .sort select{width:100%;min-width:0;text-overflow:ellipsis}
  .sort label{white-space:nowrap}
}
/* The in-grid Rug Finder card (card 9) spans the full row in the 2-up phone grid; at one
   column wide its button forced the page 10px past the screen. */
@media(max-width:520px){
  .cards:not(.rail-cards) .capture-card{grid-column:1/-1;min-width:0}
  .cards:not(.rail-cards) .card{min-width:0}
}
/* Empty cart: the Rug Finder link was 16px tall; a 44px target. */
.cart-empty-finder a{display:inline-flex;align-items:center;min-height:44px}
