/* =============================================================================
   Kashi Interior — design tokens

   Every value here is the verbatim literal from the Claude Design source
   (Kashi Interior Claude Design/*.dc.html). Nothing is rounded, merged or
   normalised. The Customizer retints the site by printing a second :root{}
   block after this file, and only for values that actually differ.

   Only the accent family is retintable. Everything else is a literal captured
   as a token so it can be named, not so it can be changed.
   ========================================================================== */

:root {

	/* --- Accent family — the only retintable set (4 presets) --------------- */
	--kashi-gold: #C9A96E;
	--kashi-gold-rgb: 201 169 110;
	--kashi-gold-muted: #A88349;
	--kashi-tan: #EDE4D5;

	/* --- Core palette ----------------------------------------------------- */
	--kashi-navy: #0B1B33;
	--kashi-navy-deep: #0A1A31;
	--kashi-cream: #F8F6F1;
	--kashi-shell: #FFFDFA;
	--kashi-white: #ffffff;
	/* Testimonial overlay only. Deliberately NOT folded into --kashi-cream:
	   rgb(245,240,233) is a different colour from #F8F6F1. */
	--kashi-overlay-warm-rgb: 245 240 233;

	/* --- Text greys ------------------------------------------------------- */
	--kashi-text: #0B1B33;
	--kashi-text-soft: #4A5566;
	--kashi-text-muted: #5A6474;
	--kashi-text-dim: #6A7484;
	--kashi-text-faint: #7A8494;
	--kashi-text-meta: #8A8F99;
	--kashi-text-date: #A2AAB6;
	--kashi-text-body: #3E4A5C;
	--kashi-role-brown: #8A7355;
	--kashi-ph-a: #9AA3B0;
	--kashi-ph-b: #A2AAB6;
	--kashi-error: #B4563F;

	/* --- Hairlines and borders (verbatim rgba) ---------------------------- */
	--kashi-hairline-soft: rgba(11, 27, 51, 0.05);
	--kashi-hairline-06: rgba(11, 27, 51, 0.06);
	--kashi-hairline: rgba(11, 27, 51, 0.07);
	--kashi-hairline-08: rgba(11, 27, 51, 0.08);
	--kashi-hairline-strong: rgba(11, 27, 51, 0.1);
	--kashi-border-quiet: rgba(11, 27, 51, 0.12);
	--kashi-border: rgba(11, 27, 51, 0.14);
	--kashi-border-mid: rgba(11, 27, 51, 0.16);
	--kashi-border-strong: rgba(11, 27, 51, 0.2);
	--kashi-border-25: rgba(11, 27, 51, 0.25);

	--kashi-on-dark-rule: rgba(255, 255, 255, 0.09);
	--kashi-on-dark-14: rgba(255, 255, 255, 0.14);
	--kashi-on-dark-35: rgba(255, 255, 255, 0.35);
	--kashi-on-dark-faint: rgba(255, 255, 255, 0.5);
	--kashi-on-dark-dim: rgba(255, 255, 255, 0.55);
	--kashi-on-dark-65: rgba(255, 255, 255, 0.65);
	--kashi-on-dark: rgba(255, 255, 255, 0.68);
	--kashi-on-dark-soft: rgba(255, 255, 255, 0.7);
	--kashi-on-dark-72: rgba(255, 255, 255, 0.72);
	--kashi-on-dark-75: rgba(255, 255, 255, 0.75);
	--kashi-on-dark-strong: rgba(255, 255, 255, 0.82);

	--kashi-header-bg: rgba(255, 253, 250, 0.72);

	/* --- Gradients, kept whole -------------------------------------------- */
	--kashi-grad-hero: linear-gradient(100deg, rgba(255, 253, 250, 0.99) 0%, rgba(255, 253, 250, 0.98) 34%, rgba(255, 253, 250, 0.9) 44%, rgba(255, 253, 250, 0.45) 56%, rgba(255, 253, 250, 0) 70%);
	--kashi-grad-caption: linear-gradient(180deg, rgba(10, 26, 49, 0) 0%, rgba(10, 26, 49, 0.82) 100%);
	--kashi-grad-testimonial: linear-gradient(180deg, rgba(245, 240, 233, 0.92), rgba(245, 240, 233, 0.8));

	/* --- Font stacks — four literals, never normalised --------------------
	   The source really does write these four different stacks; h1 falls back
	   to Georgia, h2/h3 do not. Kept apart so the fallback rendering matches. */
	--kashi-font-h1: 'Playfair Display', Georgia, serif;
	--kashi-font-display: 'Playfair Display', serif;
	--kashi-font-body: 'Jost', system-ui, sans-serif;
	--kashi-font-form: 'Jost', sans-serif;

	/* --- Layout: three distinct gutter idioms -----------------------------
	   These are NOT interchangeable. Idiom A caps content at 1440px; idiom C
	   hugs the viewport and lets an inner .k-shell do the capping. Collapsing
	   them changes the content width on half the sections. */
	--kashi-max: 1440px;
	/* C — plain viewport gutter */
	--kashi-gut: clamp(18px, 3.5vw, 52px);
	/* A — gutter that grows to centre a 1440px column */
	--kashi-gut-max: max(clamp(18px, 3.5vw, 52px), calc((100% - 1440px) / 2));
	/* B — the source's doubled max(); preserved because it is what the file says */
	--kashi-gut-maxmax: max(max(clamp(18px, 3.5vw, 52px), calc((100% - 1440px) / 2)), calc((100% - 1440px) / 2));
	/* One-off: the landing hero's floating stats card */
	--kashi-hero-stat-right: max(clamp(16px, 3.5vw, 48px), calc((100% - 1440px) / 2 + 18px));

	--kashi-logo-h: clamp(58px, 4.6vw, 72px);
	/* Literal from the design, not derived from the header height. */
	--kashi-aside-top: 110px;
	--kashi-header-z: 60;

	/* --- Motion ----------------------------------------------------------- */
	--kashi-ease: cubic-bezier(.22, .61, .36, 1);
	--kashi-lift: transform .25s ease, box-shadow .25s ease;
	--kashi-lift-slow: transform .3s ease, box-shadow .3s ease;
	--kashi-zoom: transform .6s ease, opacity .4s ease;
	--kashi-zoom-slow: transform .5s ease;
	--kashi-pill: all .25s ease;

	/* --- Elevation -------------------------------------------------------- */
	--kashi-shadow-card: 0 12px 30px rgba(11, 27, 51, 0.05);
	--kashi-shadow-card-hover: 0 20px 40px rgba(11, 27, 51, 0.1);
	--kashi-shadow-lift: 0 22px 44px rgba(11, 27, 51, 0.09);
	--kashi-shadow-quote: 0 18px 44px rgba(11, 27, 51, 0.07);
	--kashi-shadow-knob: 0 8px 22px rgba(10, 26, 49, 0.28);
	--kashi-shadow-divider: 0 0 18px rgba(10, 26, 49, 0.45);
}
