/*
 * Hearth marketing site — shared foundation.
 *
 * Brand tokens, reset, nav, footer, buttons, typography and section
 * primitives shared by every page. Page-specific styles stay inline in
 * each page's own <style> block, which loads AFTER this file — so a page
 * can override anything here without !important.
 *
 * Brand colours (exact, per CLAUDE.md):
 *   Copper #C8664A · Sage #7A9E86 · Navy #1A2B3C · Cream #F7F2EC
 */

/* ═══ TOKENS ═════════════════════════════════════════════ */
:root{
  --cream:#F7F2EC;
  --cream-dark:#EDE6DC;
  --navy:#1A2B3C;
  --navy-light:#2A3F54;
  --copper:#C8664A;
  --copper-light:#E07B5C;
  --copper-dark:#B5573E;
  --copper-pale:#FDF0ED;
  --sage:#7A9E86;
  --sage-light:#A8C4B0;
  --sage-dark:#5C7E66;
  --warm-white:#FDFAF6;
  --text:#1A2B3C;
  --text-muted:#6B7C8D;
  --text-light:#9AAABB;
  --border:rgba(26,43,60,0.1);
  --shadow:0 4px 32px rgba(26,43,60,0.08);
  --shadow-lg:0 12px 60px rgba(26,43,60,0.14);
}

/* ═══ RESET + BASE ═══════════════════════════════════════ */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;font-size:16px}
body{font-family:'DM Sans',sans-serif;background:var(--cream);color:var(--text);overflow-x:hidden;line-height:1.6;-webkit-font-smoothing:antialiased}

/* ═══ NAV ════════════════════════════════════════════════ */
nav{position:fixed;top:0;left:0;right:0;z-index:1000;background:rgba(247,242,236,0.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border);transition:.35s}
nav.scrolled{background:rgba(247,242,236,0.98);box-shadow:0 2px 24px rgba(26,43,60,0.08)}
.nav-inner{max-width:1200px;margin:0 auto;padding:0 2rem;height:68px;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);cursor:pointer}
.logo-mark{width:38px;height:38px;flex-shrink:0}
.logo-text{font-family:'Fraunces',serif;font-size:1.45rem;font-weight:400;letter-spacing:-0.03em}
.nav-links{display:flex;align-items:center;gap:.15rem;list-style:none}
.nav-links a{text-decoration:none;color:var(--text-muted);font-weight:500;font-size:.88rem;padding:.5rem .85rem;border-radius:8px;transition:.3s;cursor:pointer}
.nav-links a:hover,.nav-links a.active{color:var(--navy);background:var(--cream-dark)}
.nav-cta{display:inline-flex!important;align-items:center;gap:8px;background:var(--copper)!important;color:white!important;padding:.55rem 1.25rem!important;border-radius:10px!important;font-weight:600!important;box-shadow:0 2px 12px rgba(200,102,74,.2);transition:all .3s!important}
.nav-cta:hover{background:var(--copper-dark)!important;transform:translateY(-1px)}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:5px;border:none;background:none}
.hamburger span{display:block;width:24px;height:2px;background:var(--navy);border-radius:2px}
.mobile-menu{display:none;position:fixed;top:68px;left:0;right:0;background:var(--warm-white);border-bottom:1px solid var(--border);padding:1rem 2rem 1.5rem;z-index:999;box-shadow:var(--shadow)}
.mobile-menu.open{display:block}
.mobile-menu a{display:block;padding:.75rem 0;text-decoration:none;color:var(--text);font-weight:500;font-size:1rem;border-bottom:1px solid var(--border);cursor:pointer}

/* ═══ SECTIONS + TYPOGRAPHY ══════════════════════════════ */
section{padding:6rem 2rem}
.container{max-width:1200px;margin:0 auto}
.container-narrow{max-width:800px;margin:0 auto}
.label{display:inline-flex;align-items:center;gap:6px;background:rgba(200,102,74,.1);color:var(--copper);font-size:.76rem;font-weight:600;text-transform:uppercase;letter-spacing:.1em;padding:.3rem .8rem;border-radius:100px;margin-bottom:1.25rem}
.label-dot{width:6px;height:6px;border-radius:50%;background:var(--copper)}
h1{font-family:'Fraunces',serif;font-size:clamp(2.5rem,5vw,3.8rem);font-weight:400;line-height:1.12;letter-spacing:-.02em;color:var(--navy)}
h1 em,h2 em{font-style:italic;color:var(--copper)}
h2{font-family:'Fraunces',serif;font-size:clamp(1.8rem,3.5vw,2.6rem);font-weight:400;line-height:1.2;letter-spacing:-.02em;color:var(--navy)}
h3{font-family:'Fraunces',serif;font-size:1.35rem;font-weight:400;color:var(--navy);margin-bottom:.75rem}
.lead{font-size:1.1rem;color:var(--text-muted);line-height:1.75}

/* ═══ BUTTONS ════════════════════════════════════════════ */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:'DM Sans',sans-serif;font-weight:600;font-size:.95rem;padding:.85rem 1.75rem;border-radius:12px;text-decoration:none;cursor:pointer;transition:all .35s;border:none}
.btn-copper{background:var(--copper);color:white;box-shadow:0 4px 20px rgba(200,102,74,.25)}
.btn-copper:hover{background:var(--copper-dark);transform:translateY(-2px);box-shadow:0 6px 28px rgba(200,102,74,.35)}
.btn-outline{background:transparent;color:var(--navy);border:2px solid var(--border)}
.btn-outline:hover{border-color:var(--copper);color:var(--copper)}

/* ═══ MOTION ═════════════════════════════════════════════
   Content is visible by default; movement is only added when
   the visitor allows it (prefers-reduced-motion aware). */
.fade-up{opacity:0;transform:translateY(30px);transition:opacity .7s ease,transform .7s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}
.reveal{opacity:1;transform:none}
.reveal-stagger>*{opacity:1;transform:none}
@media (prefers-reduced-motion: no-preference){
  .reveal{opacity:0;transform:translateY(30px);transition:opacity .8s cubic-bezier(.22,.61,.36,1),transform .8s cubic-bezier(.22,.61,.36,1)}
  .reveal.in{opacity:1;transform:none}
  .reveal-stagger>*{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1)}
  .reveal-stagger.in>*{opacity:1;transform:none}
  .reveal-stagger.in>*:nth-child(2){transition-delay:.07s}
  .reveal-stagger.in>*:nth-child(3){transition-delay:.14s}
  .reveal-stagger.in>*:nth-child(4){transition-delay:.21s}
  .reveal-stagger.in>*:nth-child(5){transition-delay:.28s}
  .reveal-stagger.in>*:nth-child(6){transition-delay:.35s}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto!important}
  .fade-up,.reveal,.reveal-stagger>*{opacity:1!important;transform:none!important;transition:none!important}
}

/* ═══ LONGFORM / LEGAL CONTENT ═══════════════════════════ */
.legal-section{background:var(--warm-white)}
.legal-content h3{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:400;color:var(--navy);margin-top:2.5rem;margin-bottom:.75rem}
.legal-content h3:first-child{margin-top:0}
.legal-content h4{font-family:'DM Sans',sans-serif;font-size:.95rem;font-weight:600;color:var(--navy);margin-top:1.5rem;margin-bottom:.5rem}
.legal-content p{font-size:.92rem;color:var(--text-muted);line-height:1.8;margin-bottom:1rem}
.legal-content ul{margin:.5rem 0 1rem 1.5rem;color:var(--text-muted);font-size:.92rem;line-height:1.8}
.legal-content li{margin-bottom:.4rem}
.legal-updated{font-size:.82rem;color:var(--text-light);margin-top:.5rem}
.legal-draft{background:var(--copper-pale);border-left:3px solid var(--copper);padding:1rem 1.25rem;border-radius:0 10px 10px 0;margin-bottom:2rem}
.legal-draft p{color:var(--text)!important;margin:0!important;font-size:.88rem}
.legal-draft strong{color:var(--copper)}

/* ═══ FOOTER ═════════════════════════════════════════════ */
footer{background:var(--navy);color:rgba(247,242,236,.6);padding:4rem 2rem 2rem}
.footer-inner{max-width:1200px;margin:0 auto}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2rem}
.footer-brand p{font-size:.88rem;line-height:1.7;margin-top:1rem}
.footer-col h5{color:white;font-size:.82rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;margin-bottom:1rem}
.footer-col ul{list-style:none}
.footer-col li{margin-bottom:.5rem}
.footer-col a{color:rgba(247,242,236,.5);text-decoration:none;font-size:.88rem;cursor:pointer;transition:color .2s}
.footer-col a:hover{color:var(--copper-light)}
.footer-bottom{margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(247,242,236,.08);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.footer-bottom p{font-size:.78rem;color:rgba(247,242,236,.3)}
.footer-disclaimer{margin-top:1.5rem;padding-top:1rem;border-top:1px solid rgba(247,242,236,.06);font-size:.72rem;color:rgba(247,242,236,.2);text-align:center;max-width:600px;margin-left:auto;margin-right:auto}

/* ═══ SHARED RESPONSIVE ══════════════════════════════════ */
@media(max-width:900px){
  .nav-links{display:none}
  .hamburger{display:flex}
  .footer-grid{grid-template-columns:1fr 1fr}
  section{padding:4rem 1.5rem}
}
@media(max-width:600px){
  .footer-grid{grid-template-columns:1fr}
}

/* ═══ LENIS SMOOTH-SCROLL BASE (vendored JS) ═════════════ */
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
.lenis.lenis-stopped{overflow:hidden}
