/* ==========================================================================
   Doina Vin · kit/tokens.css
   Direction A+ "Răzeni Daylight with house fields" (research note 15, sections 2.2-2.9).
   Single source for colour, type, space, radius, shadow, layer and motion tokens.
   Light only by design (the owner rejected a dark shop); `color-scheme: light` keeps
   native controls light as well.

   Naming
   - Colour roles are unprefixed role names (--ground, --ink, --action ...). Three names also
     exist in the frozen theme tokens.css: --ink (on non-cover pages the A+ ink intentionally
     shadows it) and --ease-emph / --ease-out (identical values). Every other kit token uses a
     name the frozen file does not define (see kit/WOO-MAP.md, "Token collisions").
   - House colour pairs: --house-deep / --house-tint, rebound per house by [data-house="<slug>"]
     (the product_cat slug), and by the WooCommerce classes .product_cat-<slug> and .term-<slug>.
   ========================================================================== */

/* Fonts (mockups): Literata with opsz + wght + ital axes, Onest variable. Production self-hosts
   per-language subsets instead of this request (blueprint 2.4). */
@import url("https://fonts.googleapis.com/css2?family=Literata:ital,opsz,wght@0,7..72,200..900;1,7..72,200..900&family=Onest:wght@100..900&display=swap");

:root {
  color-scheme: light;

  /* ---- 1. Colour roles (contrast measured in note 15, 2.2) ------------------------------ */
  --ground: #F4F4EF;        /* page ground, limewash; ink 16.10:1 */
  --surface: #FFFFFF;       /* cards, buy panel, drawer, checkout; ink 17.76:1 */
  --band: #E9E9E3;          /* alternating band, spec band, tables; ink 14.57:1, muted 6.11:1 */
  --ink: #1A171B;           /* all text and headings (logo Black) */
  --muted: #57545A;         /* meta lines, captions; 6.75:1 ground, 7.44:1 white */
  --line: #D7D2CB;          /* hairlines only, decorative (logo Bone) */
  --control: #7F877F;       /* input and outline-control borders; 3.70:1 on white */
  --action: #22372B;        /* the ONE filled action per view (logo Dark Green); white 12.73:1 */
  --action-hover: #2F4A3A;  /* hover / pressed; white 9.72:1 */
  --on-action: #FFFFFF;     /* text on --action */
  --link: #3A6E20;          /* text links (underlined), active filter text; 5.55:1 ground */
  --focus: #4C8C2B;         /* focus ring on light grounds (logo Light Green); 3.74:1 ground */
  --success: #2D6A4F;       /* added to cart, confirmed; 5.79:1 ground */
  --error: #A1281E;         /* form errors only; 6.71:1 ground */

  /* supporting roles */
  --leaf: #4C8C2B;          /* graphics only: focus ring, map pin, monogram rings, selected day */
  --well: #F4F4EF;          /* the one neutral bottle well in mixed-house grids */
  --deep: #22372B;          /* the one deep surface: footer, booking summary, one cellar band */
  --on-deep: #ECE8E1;       /* text on --deep (bone); 10.43:1 */
  --on-deep-muted: #B8C2BA; /* meta on --deep; 6.95:1 */
  --focus-on-deep: #ECE8E1; /* ring on --deep and on every --house-deep field (leaf fails there) */
  --line-on-deep: rgb(236 232 225 / .24);
  --scrim: rgb(26 23 27 / .48);

  /* house pair defaults (neutral), rebound per house below */
  --house-deep: #22372B;
  --house-tint: #F4F4EF;
  --on-house: #FFFFFF;      /* white on every deep value is 7.26:1 or more */

  /* ---- 2. Type ----------------------------------------------------------------------------- */
  --font-display: "Literata", Georgia, "Times New Roman", serif;
  --font-text: "Onest", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;

  /* fluid sizes: phone 390 px -> desktop 1440 px (note 15, 2.4) */
  --fs-display: clamp(2.75rem, 2.1rem + 2.667vw, 4.5rem);      /* 44 -> 72 */
  --fs-h1: clamp(2.25rem, 1.879rem + 1.524vw, 3.25rem);        /* 36 -> 52 */
  --fs-h1-wine: clamp(1.875rem, 1.643rem + 0.952vw, 2.5rem);   /* 30 -> 40 */
  --fs-h2: clamp(1.75rem, 1.564rem + 0.762vw, 2.25rem);        /* 28 -> 36 */
  --fs-h3: clamp(1.3125rem, 1.243rem + 0.286vw, 1.5rem);       /* 21 -> 24 */
  --fs-card: clamp(1.0625rem, 1.016rem + 0.19vw, 1.1875rem);   /* 17 -> 19 */
  --fs-quote: clamp(1.5rem, 1.314rem + 0.762vw, 2rem);         /* 24 -> 32 */
  --fs-numeral: clamp(2.5rem, 2.129rem + 1.524vw, 3.5rem);     /* 40 -> 56 */
  --fs-kicker: clamp(1rem, 0.954rem + 0.19vw, 1.125rem);       /* 16 -> 18 */
  --fs-lead: clamp(1.125rem, 1.079rem + 0.19vw, 1.25rem);      /* 18 -> 20 */
  --fs-body: clamp(1rem, 0.977rem + 0.095vw, 1.0625rem);       /* 16 -> 17 */
  --fs-ui: 0.9375rem;                                          /* 15 */
  --fs-btn: 1rem;                                              /* 16 */
  --fs-meta: 0.875rem;                                         /* 14 */
  --fs-eyebrow: 0.75rem;                                       /* 12, the floor: nothing smaller */
  --fs-price-lg: clamp(1.5rem, 1.407rem + 0.381vw, 1.75rem);   /* 24 -> 28 */
  --fs-price: clamp(1rem, 0.954rem + 0.19vw, 1.125rem);        /* 16 -> 18 */

  --lh-display: 1.06;
  --lh-h1: 1.13;
  --lh-h1-wine: 1.16;
  --lh-h2: 1.19;
  --lh-h3: 1.27;
  --lh-card: 1.27;
  --lh-quote: 1.32;
  --lh-numeral: 1;
  --lh-kicker: 1.35;
  --lh-lead: 1.58;
  --lh-body: 1.64;
  --lh-ui: 1.33;
  --lh-meta: 1.43;
  --lh-eyebrow: 1.33;
  --lh-price: 1.3;

  --fw-display: 400;
  --fw-title: 500;          /* h1-wine, h3, card titles */
  --fw-text: 400;
  --fw-ui: 500;
  --fw-strong: 600;         /* buttons, eyebrows, prices */

  --track-display: -0.01em;
  --track-eyebrow: 0.1em;
  --text-measure: 64ch;

  /* ---- 3. Space and layout ------------------------------------------------------------------ */
  --sp-1: 4px;
  --sp-2: 8px;
  --sp-3: 12px;
  --sp-4: 16px;
  --sp-5: 24px;
  --sp-6: 32px;
  --sp-7: 48px;
  --sp-8: 72px;
  --sp-9: 120px;
  --section: clamp(72px, 8.3vw, 120px);       /* between sections */
  --section-inner: clamp(32px, 3.4vw, 48px);  /* inside a section */

  --container: 1296px;                        /* max content width */
  --page-gutter: 16px;                             /* phone side gutter; widened at 600 px below */
  --col-gap: 16px;                            /* 24 px from 900 px */
  --header-h: 56px;                           /* phone; 72 px from 900 px */
  --topbar-h: 32px;
  --filterbar-h: 56px;
  --buybar-h: 72px;
  --drawer-w: 440px;
  --tap: 44px;                                /* minimum hit area */

  /* ---- 4. Radii (no pills) ------------------------------------------------------------------- */
  --radius-control: 4px;  /* buttons, inputs, chips */
  --radius-media: 8px;    /* images, wells, cards */

  /* ---- 5. Shadows (none at rest; one contact shadow under bottles; overlays only) ------------- */
  --contact-shadow: radial-gradient(closest-side, rgb(26 23 27 / .30), rgb(26 23 27 / .12) 55%, rgb(26 23 27 / 0));
  --shadow-overlay: 0 24px 64px -16px rgb(26 23 27 / .30), 0 2px 6px rgb(26 23 27 / .06);
  --shadow-pop: 0 16px 40px -12px rgb(26 23 27 / .26), 0 1px 3px rgb(26 23 27 / .08);
  --shadow-bar: 0 -1px 0 var(--line), 0 -12px 32px -18px rgb(26 23 27 / .22);

  /* ---- 6. Layers ---------------------------------------------------------------------------------- */
  --z-raised: 1;
  --z-sticky: 20;    /* filter bar, sticky gallery */
  --z-header: 40;
  --z-buybar: 50;
  --z-pop: 60;       /* facet panels */
  --z-scrim: 80;
  --z-drawer: 90;
  --z-cookie: 95;
  --z-modal: 100;    /* age gate */
  --z-toast: 110;

  /* ---- 7. Motion (house rules: native-css-motion SKILL.md) ------------------------------------------- */
  --ease-emph: cubic-bezier(.16, 1, .3, 1);    /* reveals */
  --ease-out: cubic-bezier(.23, 1, .32, 1);    /* UI responses */
  --ease-move: cubic-bezier(.77, 0, .175, 1);  /* on-screen movement */
  --dur-press: 150ms;
  --dur-hover: 200ms;
  --dur-ui: 250ms;
  --dur-drawer: 350ms;
  --dur-settle: 600ms;
  --rise: 32px;     /* scroll reveal distance */
  --drift: 32px;    /* hero drift */
}

@media (min-width: 600px) {
  :root { --page-gutter: clamp(24px, 5vw, 72px); }   /* 72 px at 1440 -> 1296 px content */
}
@media (min-width: 900px) {
  :root { --col-gap: 24px; --header-h: 72px; }
}

/* ==========================================================================
   House colour pairs (note 15, 2.3; starter values pending decision D10).
   Scope: house surfaces ONLY (bottle wells on single-house surfaces, the house hero band,
   the wine-page spec band rule, the eyebrow rule and chip dot). Never buttons, links,
   prices, the header or global grounds.
   ========================================================================== */
:where([data-house="6n-collection"], .product_cat-6n-collection, .term-6n-collection)             { --house-deep: #4E3375; --house-tint: #EFE9F5; }
:where([data-house="arborele"], .product_cat-arborele, .term-arborele)                            { --house-deep: #33302A; --house-tint: #F2EDDD; }
:where([data-house="artitude"], .product_cat-artitude, .term-artitude)                            { --house-deep: #6E4234; --house-tint: #F3EAE5; }
:where([data-house="balsam-de-galitia"], .product_cat-balsam-de-galitia, .term-balsam-de-galitia) { --house-deep: #6B1E14; --house-tint: #F6E7DE; }
:where([data-house="bonaflores"], .product_cat-bonaflores, .term-bonaflores)                      { --house-deep: #1D5A7A; --house-tint: #E4EFF5; }
:where([data-house="chateaux-de-brua"], .product_cat-chateaux-de-brua, .term-chateaux-de-brua)    { --house-deep: #4F3A2E; --house-tint: #F4EDE0; }
:where([data-house="chateau-detoile"], .product_cat-chateau-detoile, .term-chateau-detoile)       { --house-deep: #6A2D3A; --house-tint: #F5EAEA; }
:where([data-house="dolofana"], .product_cat-dolofana, .term-dolofana)                            { --house-deep: #6B3A26; --house-tint: #F5EBDD; }
:where([data-house="goliard"], .product_cat-goliard, .term-goliard)                               { --house-deep: #8E2B2B; --house-tint: #F6E6E4; }
:where([data-house="lifwin"], .product_cat-lifwin, .term-lifwin)                                  { --house-deep: #2F5E3A; --house-tint: #E6F0E7; }
:where([data-house="lucky"], .product_cat-lucky, .term-lucky)                                     { --house-deep: #5C4A12; --house-tint: #F6F0D8; }
:where([data-house="pastoral"], .product_cat-pastoral, .term-pastoral)                            { --house-deep: #3B1E1F; --house-tint: #F2E8E4; }
:where([data-house="perla-neagra"], .product_cat-perla-neagra, .term-perla-neagra)                { --house-deep: #222C3A; --house-tint: #E8ECF1; }
:where([data-house="vinum-aurum"], .product_cat-vinum-aurum, .term-vinum-aurum)                   { --house-deep: #6A5418; --house-tint: #F5EDD9; }
