/* ============================================================
   TGC DENTAL — Shared design system
   Hybrid: Direction 02 (clean sage/stone) + Direction 01 (serif warmth)
   ============================================================ */

:root{
  /* Surfaces */
  --paper:#f6f5f1;
  --stone:#eceae4;
  --white:#ffffff;
  --cream:#faf7f1;
  /* Ink */
  --ink:#2c322c;
  --ink-soft:#6c726a;
  --ink-faint:#9aa093;
  /* Brand */
  --sage:#7c8a6d;
  --sage-deep:#5f6c52;
  --sage-tint:#e6ebe0;
  --clay:#a85d3e;
  --clay-deep:#8a4a30;
  --clay-tint:#f2e2d8;
  --gold:#c2945a;
  /* Lines */
  --line:#e0ded6;
  --line-soft:#eae7df;
  /* Type */
  --serif:'Newsreader',Georgia,serif;
  --sans:'Hanken Grotesk',system-ui,sans-serif;
  --mono:'SFMono-Regular',Menlo,Consolas,monospace;
  /* Layout */
  --maxw:1180px;
  --radius:20px;
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);line-height:1.6;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.08;letter-spacing:-0.01em}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 40px}

/* Utility */
.eyebrow{font-family:var(--sans);font-size:13px;font-weight:700;letter-spacing:0.04em;color:var(--sage-deep);display:inline-flex;align-items:center;gap:9px;text-transform:none}
.eyebrow::before{content:"";width:22px;height:2px;background:var(--clay);border-radius:2px}
.eyebrow.center{justify-content:center}
.serif-em{font-style:italic;color:var(--clay)}
.lead{font-size:19px;color:var(--ink-soft)}

/* Placeholders */
.ph{position:relative;background-color:#e3e4dc;
  background-image:repeating-linear-gradient(135deg,rgba(124,138,109,0.13) 0,rgba(124,138,109,0.13) 1px,transparent 1px,transparent 12px);
  display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:var(--radius)}
.ph.clay{background-color:#ecdfd3;background-image:repeating-linear-gradient(135deg,rgba(168,93,62,0.13) 0,rgba(168,93,62,0.13) 1px,transparent 1px,transparent 12px)}
.ph span{font-family:var(--mono);font-size:11px;letter-spacing:0.06em;color:var(--sage-deep);background:rgba(246,245,241,0.85);padding:6px 11px;border-radius:20px;text-transform:uppercase;text-align:center;max-width:80%}
.ph.clay span{color:var(--clay-deep);background:rgba(250,247,241,0.88)}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:700;font-size:15px;padding:13px 26px;border-radius:34px;cursor:pointer;transition:all .2s;border:1.5px solid transparent;white-space:nowrap}
.btn-primary{background:var(--sage);color:#fff}
.btn-primary:hover{background:var(--sage-deep)}
.btn-clay{background:var(--clay);color:#fff}
.btn-clay:hover{background:var(--clay-deep)}
.btn-soft{background:var(--sage-tint);color:var(--sage-deep)}
.btn-soft:hover{background:#dbe2d2}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--ink);color:#fff}
.btn-lg{font-size:17px;padding:16px 32px}

/* ---------------- Header ---------------- */
header.site{position:sticky;top:0;z-index:60;background:rgba(246,245,241,0.86);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;justify-content:space-between;height:82px}
.brand{display:flex;align-items:center;gap:13px}
.monogram{width:46px;height:46px;border-radius:14px;background:var(--sage);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-weight:500;font-size:17px;letter-spacing:0.02em}
.brand .bt{font-family:var(--serif);font-size:22px;line-height:1;font-weight:500}
.brand .bs{font-size:10.5px;letter-spacing:0.12em;text-transform:uppercase;color:var(--ink-soft);font-weight:600;margin-top:3px}
.nav-links{list-style:none;display:flex;gap:6px;align-items:center}
.nav-links a{font-size:15px;font-weight:600;color:var(--ink-soft);padding:9px 15px;border-radius:30px;transition:all .2s}
.nav-links a:hover{color:var(--ink);background:var(--stone)}
.nav-links a.active{color:var(--sage-deep)}
.nav-cta{display:flex;align-items:center;gap:14px}
.menu-btn{display:none;background:none;border:0;cursor:pointer;font-size:24px;color:var(--ink)}

/* mobile nav */
@media(max-width:940px){
  .nav-links{display:none;position:absolute;top:82px;left:0;right:0;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--line);padding:14px 40px 24px;gap:2px}
  .nav-links.open{display:flex}
  .nav-links a{padding:13px 12px;border-radius:10px;font-size:17px}
  .menu-btn{display:block}
  .brand .bs{display:none}
}

/* ---------------- Page hero ---------------- */
.page-hero{padding:64px 0 40px;border-bottom:1px solid var(--line-soft)}
.page-hero .eyebrow{margin-bottom:18px}
.page-hero h1{font-size:60px;letter-spacing:-0.02em;max-width:780px}
.page-hero p{font-size:19px;color:var(--ink-soft);max-width:600px;margin-top:20px}

/* ---------------- Sections ---------------- */
section.block{padding:88px 0}
.sec-head{max-width:640px;margin-bottom:52px}
.sec-head.center{margin-left:auto;margin-right:auto;text-align:center}
.sec-head h2{font-size:44px;margin:14px 0 14px}
.sec-head p{font-size:18px;color:var(--ink-soft)}

/* Cards grid */
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.card{background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:34px;transition:all .25s}
.card.hover:hover{transform:translateY(-4px);box-shadow:0 24px 40px -28px rgba(44,50,44,0.35)}
.card .ico{width:52px;height:52px;border-radius:16px;background:var(--sage-tint);display:flex;align-items:center;justify-content:center;margin-bottom:20px;color:var(--sage-deep);font-size:22px}
.card .ico.clay{background:var(--clay-tint);color:var(--clay-deep)}
.card h3{font-size:23px;margin-bottom:9px}
.card p{font-size:15px;color:var(--ink-soft)}
.card .more{display:inline-block;margin-top:16px;font-family:var(--sans);font-weight:700;font-size:14px;color:var(--sage-deep)}

/* Chips */
.chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{background:var(--sage-tint);color:var(--sage-deep);font-size:14px;font-weight:600;padding:8px 16px;border-radius:30px}
.chip.clay{background:var(--clay-tint);color:var(--clay-deep)}

/* CTA band */
.cta-band{background:var(--sage);color:#fff}
.cta-band .wrap{padding:80px 40px;display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center}
.cta-band .eyebrow{color:#e7eede}
.cta-band .eyebrow::before{background:#e7c8b6}
.cta-band h2{font-size:44px;color:#fff;margin:14px 0 14px}
.cta-band p{font-size:17px;color:#eaf0e3;max-width:440px}
.cta-actions{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.cta-band .btn-white{background:#fff;color:var(--sage-deep)}
.cta-band .btn-white:hover{background:var(--cream)}
.cta-actions small{font-size:13px;color:#eaf0e3;opacity:.9}

/* ---------------- Footer ---------------- */
footer.site{background:var(--ink);color:#b9beb4;padding:70px 0 30px;font-size:15px}
.foot-grid{display:grid;grid-template-columns:1.7fr 1fr 1fr 1.2fr;gap:40px;padding-bottom:46px;border-bottom:1px solid rgba(255,255,255,0.1)}
footer.site .monogram{background:var(--sage)}
footer.site .brand .bt{color:#fff}
footer.site .brand .bs{color:#7c8275}
footer.site h4{font-family:var(--sans);font-size:12px;letter-spacing:0.1em;text-transform:uppercase;color:#7c8275;margin-bottom:18px;font-weight:700}
footer.site ul{list-style:none}
footer.site ul li{margin-bottom:11px}
footer.site ul a:hover{color:#fff}
footer.site .ft-contact a{color:var(--sage-tint)}
.foot-tag{max-width:300px;color:#9aa093;margin-top:18px}
.foot-bottom{display:flex;justify-content:space-between;padding-top:26px;font-size:13px;color:#7c8275;flex-wrap:wrap;gap:12px}
.foot-bottom a:hover{color:#fff}

@media(max-width:940px){
  .wrap{padding:0 26px}
  .page-hero h1{font-size:40px}
  .sec-head h2{font-size:34px}
  .grid-3,.grid-2,.cta-band .wrap,.foot-grid{grid-template-columns:1fr}
  .cta-actions{align-items:stretch}
}


/* New-patient visibility toggle (see <style id="np-toggle"> in each page) */
[data-new-patients="closed"] .np-open{display:none !important}
[data-new-patients="open"] .np-closed{display:none !important}
