/* ===== Self-hosted web fonts (Spectral, Hanken Grotesk) — latin + latin-ext subsets cover Danish ae/oe/aa. No CDN / GDPR-safe. =====
   Hanken Grotesk ships as ONE variable file per subset (wght axis 100-900): the previous
   per-weight files were byte-identical copies of this same variable font, so 500-800 never
   had distinct outlines on disk — this declaration is what actually enables real bolds. */
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/hanken-grotesk-variable-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Hanken Grotesk';font-style:normal;font-weight:100 900;font-display:swap;src:url("../fonts/hanken-grotesk-variable-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/spectral-400-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:400;font-display:swap;src:url("../fonts/spectral-400-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/spectral-500-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:500;font-display:swap;src:url("../fonts/spectral-500-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/spectral-600-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:600;font-display:swap;src:url("../fonts/spectral-600-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/spectral-700-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face{font-family:'Spectral';font-style:normal;font-weight:700;font-display:swap;src:url("../fonts/spectral-700-latin.woff2") format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}

/* ===== Design tokens + base primitives (single token source; components add utilities in later tasks) ===== */
:root{
  --bg:#F4EFE6; --ink:#26241F; --green:#2F4A3E; --green-deep:#22382E;
  --cream-card:#FBF8F1; --line:#EAE1D2; --line-2:#E7DFD1;
  --muted:#5B5347; --muted-2:#7a7161; --sage:#E7EEE7;
  --accent:#B15C3B; --accent-strong:#8f4527; --accent-shadow-rgb:155 74 44;
}
*{box-sizing:border-box;}
/* Clears the sticky header on anchor/skip-link jumps. Sized for the pinned
   header at the max admin TextScalePercent (140%): the zoom on .site-root
   scales the header (~111px desktop / ~67px mobile) but not this html-level
   value, so 111*1.4≈156 and 67*1.4≈94 must still fit. */
html{scroll-behavior:smooth;scroll-padding-top:160px;}
@media (max-width:720px){html{scroll-padding-top:96px;}}
body{margin:0;font-family:'Hanken Grotesk',system-ui,-apple-system,sans-serif;color:var(--ink);background:var(--bg);font-size:20px;line-height:1.62;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}
h1,h2,h3,h4{font-family:'Spectral',Georgia,serif;font-weight:600;line-height:1.12;margin:0;color:var(--ink);letter-spacing:-.01em;}
p{margin:0;}
a{color:var(--green);}
a:hover{color:var(--accent);}
input,textarea,button{font-family:inherit;}
img{max-width:100%;display:block;}
::selection{background:var(--green);color:var(--bg);}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px;}
/* FocusOnNavigate moves focus to the page h1 for screen readers; headings are not
   keyboard-interactive, so suppress the visual ring there (prototype never focused headings). */
h1:focus,h1:focus-visible{outline:none;}
.container{width:100%;max-width:1180px;margin:0 auto;padding:0 24px;}
.skip-link{position:absolute;left:-9999px;top:0;background:var(--green);color:#fff;padding:10px 16px;border-radius:8px;z-index:100;}
.skip-link:focus{left:12px;top:12px;}
@keyframes fviFade{from{opacity:0;transform:translateY(12px);}to{opacity:1;transform:none;}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;}}
/* ===== Shared primitive utilities (Task 14) — ported from prototype ===== */

/* Buttons — prototype lines 56/75/76/147/212 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-weight:700;font-size:18px;padding:16px 28px;border-radius:12px;text-decoration:none;border:none;cursor:pointer;line-height:1;transition:background .18s ease,transform .18s ease,border-color .18s ease;}
.btn-primary{background:var(--accent);color:#fff;box-shadow:0 8px 20px rgb(var(--accent-shadow-rgb) / .22);}
.btn-primary:hover{background:var(--accent-strong);color:#fff;transform:translateY(-2px);}
.btn-secondary{background:#fff;color:var(--green);border:1.5px solid #D8CDB8;}
.btn-secondary:hover{border-color:var(--green);color:var(--green);transform:translateY(-2px);}
.btn-ghost{background:transparent;color:inherit;border:1.5px solid currentColor;}
.btn-ghost:hover{color:inherit;transform:translateY(-2px);}

/* Eyebrow accent label — prototype line 71 */
.eyebrow{display:inline-block;text-transform:uppercase;letter-spacing:.14em;font-size:14px;font-weight:700;color:var(--accent);}

/* Info boxes — prototype lines 124/254/275/386 */
.infobox{display:flex;gap:14px;align-items:flex-start;border-radius:16px;padding:20px 22px;}
.infobox i{flex:none;font-size:24px;margin-top:2px;}
.infobox-sage{background:var(--sage);color:var(--green);}
.infobox-sage i{color:var(--green);}
.infobox-amber{background:#FBF3E9;border:1px solid #EAD9C2;color:#5B4A3A;}
.infobox-amber i{color:var(--accent);}
.infobox-neutral{background:#F1ECE0;color:var(--muted);}
.infobox-neutral i{color:var(--muted-2);}

/* Placeholder image — prototype lines 85–86 (stripes parametrized via --stripe-a/--stripe-b) */
.placeholder{display:grid;place-items:center;border-radius:24px;overflow:hidden;border:1px solid var(--line);background:repeating-linear-gradient(135deg,var(--stripe-a),var(--stripe-a) 14px,var(--stripe-b) 14px,var(--stripe-b) 28px);}
.placeholder-cap{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.82);border:1px solid #E0D5C1;border-radius:999px;padding:9px 15px;font-family:ui-monospace,Menlo,monospace;font-size:12.5px;letter-spacing:.02em;color:#6E6656;}
.placeholder-cap i{font-size:15px;}
.placeholder-dark .placeholder-cap{background:rgba(20,30,25,.72);border-color:rgba(255,255,255,.18);color:#C6D3C6;}
.placeholder>img{width:100%;height:100%;object-fit:cover;display:block;}

/* Filter chips — prototype lines 287, 727–730 */
.chip{display:inline-flex;align-items:center;gap:8px;border:1.5px solid #D8CDB8;background:#fff;color:#3B372F;font-weight:600;font-size:16px;padding:11px 20px;border-radius:999px;text-decoration:none;cursor:pointer;transition:all .16s ease;}
.chip:hover{border-color:var(--green);color:#3B372F;}
.chip.is-active{background:var(--green);color:#fff;border-color:var(--green);}
.chip.is-active:hover{color:#fff;}

/* ===== Card components (Task 15) — ServiceCard/ValueCard/StepCard; VideoCard styling is scoped in VideoCard.razor.css ===== */

/* Base card — prototype lines 106, 195 (icon color/size inherit into the child <Icon>'s <i>). No hover lift: these cards are static content, not links. */
.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:30px 26px;}

/* Service card — prototype lines 106–110 */
.card-icon{width:58px;height:58px;border-radius:14px;background:var(--sage);display:grid;place-items:center;margin-bottom:20px;color:var(--green);font-size:30px;}
.service-card h3{font-size:23px;margin-bottom:10px;}
.service-card p{font-size:16.5px;color:var(--muted);line-height:1.55;}

/* Value card — prototype lines 176–180 */
.value-card{display:flex;flex-direction:column;gap:14px;}
.value-icon{width:52px;height:52px;border-radius:50%;background:var(--sage);display:grid;place-items:center;color:var(--green);font-size:26px;}
.value-card h3{font-size:20px;}
.value-card p{font-size:16px;color:var(--muted);line-height:1.55;}

/* Step card — prototype lines 195–199 */
.step-card{padding:28px 26px;}
.step-num{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:var(--green);color:#fff;font-family:'Spectral',serif;font-weight:600;font-size:22px;margin-bottom:18px;}
.step-card h3{font-size:21px;margin-bottom:9px;}
.step-card p{font-size:16px;color:var(--muted);line-height:1.55;}

/* ===== Section-level layout helpers (Task 16) — reused by later pages. Prototype section heads: 99–103/170–172/189–191, card grid: 104. ===== */
.section-head{max-width:640px;margin-bottom:44px;}
.section-head .eyebrow{margin-bottom:14px;}
.section-head h2{font-size:clamp(30px,3.6vw,44px);}
.section-head p{font-size:19px;color:var(--muted);margin-top:16px;}
.grid-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:24px;}

/* ===== Konami easter egg — built by js/konami.js; gated by SiteSettings.EasterEggEnabled via data-konami on .site-root. Rain is click-through; the site stays usable. ===== */
.konami-rain{position:fixed;inset:0;z-index:999;pointer-events:none;overflow:hidden;}
.konami-piece{position:absolute;top:-12vh;animation:konami-fall linear infinite;will-change:transform;}
.konami-rain.konami-paused .konami-piece{animation-play-state:paused;}
.konami-confetti{width:10px;height:16px;border-radius:3px;}
.konami-egg{line-height:0;}
.konami-egg svg{display:block;width:100%;height:auto;filter:drop-shadow(0 1px 1px rgba(38,36,31,.2));}
.konami-player{position:fixed;right:20px;bottom:20px;z-index:1000;display:flex;align-items:center;gap:10px;background:#fff;border:1px solid var(--line,#e5e1d8);border-left:5px solid var(--accent,#B15C3B);border-radius:999px;padding:8px 10px 8px 18px;box-shadow:0 12px 32px rgba(38,36,31,.22);animation:konami-pop .35s cubic-bezier(.34,1.56,.64,1);}
.konami-player span{font-weight:600;font-size:15px;white-space:nowrap;}
.konami-pill-egg{width:19px;line-height:0;}
.konami-pill-egg svg{display:block;width:100%;height:auto;}
.konami-player button{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:0;cursor:pointer;font-size:16px;}
.konami-toggle{background:var(--accent,#B15C3B);color:#fff;}
.konami-toggle:hover{background:var(--accent-strong,#8f4527);}
.konami-dismiss{background:transparent;color:var(--muted,#6b675e);}
.konami-dismiss:hover{background:#f1eee6;}
@keyframes konami-fall{to{transform:translateY(124vh) rotate(var(--spin,360deg));}}
@keyframes konami-pop{from{transform:scale(.7);opacity:0;}}
