/* Boesch Dental — shared site styles (matches homepage design system) */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#0B1E45;--blue-dk:#153272;--blue:#1C4BA0;
  --blue-md:#2E69C8;--blue-lt:#4A85D8;
  --sky:#E0EDFB;--sky-mid:#BFD9F4;--white:#FFFFFF;
  --text:#0F1E3A;--muted:#3D5478;--gold:#C9A84C;
  --serif:"Cormorant Garamond",Georgia,serif;
  --sans:"DM Sans",system-ui,sans-serif;
  --max-w:1200px;--nav-h:70px;
}
html{scroll-behavior:smooth;font-size:16px}
body{background:var(--sky);color:var(--text);font-family:var(--sans);line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
ul{list-style:none}
h1,h2,h3,h4{font-family:var(--serif);font-weight:400;line-height:1.15;color:var(--navy)}
h1{font-size:clamp(2.4rem,5vw,4rem)}
h2{font-size:clamp(1.9rem,3.8vw,3rem)}
h3{font-size:clamp(1.2rem,2.4vw,1.65rem)}
p{color:var(--muted);font-size:1rem}
.skip-link{position:absolute;left:-999px;background:var(--blue);color:#fff;padding:.5rem 1rem;z-index:9999;border-radius:0 0 6px 0;font-size:14px}
.skip-link:focus{left:0;top:0}
.eyebrow{display:inline-block;font-family:var(--sans);font-size:.68rem;font-weight:600;letter-spacing:.20em;text-transform:uppercase;color:var(--blue-lt);margin-bottom:.85rem}
.eyebrow-dk{color:var(--blue)}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-weight:500;font-size:.88rem;letter-spacing:.03em;border-radius:7px;cursor:pointer;transition:background .2s,transform .15s,box-shadow .2s;border:none;text-decoration:none;white-space:nowrap}
.btn-primary{background:var(--blue);color:#fff;padding:13px 28px;box-shadow:0 4px 14px rgba(28,75,160,.30)}
.btn-primary:hover{background:var(--blue-md);transform:translateY(-1px);box-shadow:0 6px 20px rgba(28,75,160,.40)}
.btn-primary:focus-visible{outline:3px solid var(--blue-lt);outline-offset:3px}
.btn-outline{background:transparent;color:var(--blue);padding:12px 26px;border:1.5px solid var(--blue)}
.btn-outline:hover{background:var(--sky-mid)}
.btn-white{background:#fff;color:var(--navy);padding:13px 28px;box-shadow:0 4px 16px rgba(0,0,0,.12)}
.btn-white:hover{background:var(--sky);transform:translateY(-1px)}
.btn-ghost-white{background:rgba(255,255,255,.12);color:#fff;padding:12px 26px;border:1.5px solid rgba(255,255,255,.35);backdrop-filter:blur(4px)}
.btn-ghost-white:hover{background:rgba(255,255,255,.22)}
.btn-lg{padding:16px 38px;font-size:.95rem}
.container{max-width:var(--max-w);margin:0 auto;padding:0 32px}
.section{padding:96px 0}
.section-hd{text-align:center;margin-bottom:56px}
.section-hd h2{margin-bottom:14px}
.section-hd p{max-width:560px;margin:0 auto;font-size:1.05rem}

/* NAV */
.site-header{background:var(--navy);padding:0 2rem;position:sticky;top:0;z-index:100;border-bottom:1px solid rgba(255,255,255,.08);transition:box-shadow .3s}
.site-header.raised{box-shadow:0 2px 24px rgba(0,0,0,.25)}
.header-inner{max-width:var(--max-w);margin:0 auto;display:flex;align-items:center;justify-content:space-between;height:var(--nav-h)}
.logo-link{display:flex;align-items:center;flex-shrink:0}
.logo-img{height:48px;width:auto;display:block}
.nav-links{display:flex;align-items:center;gap:28px}
.nav-links a{font-family:var(--sans);font-size:.84rem;font-weight:500;color:rgba(255,255,255,.80);letter-spacing:.03em;transition:color .2s;position:relative}
.nav-links a:hover{color:#fff;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--blue-lt)}
.nav-cta{margin-left:8px}
.hamburger{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:4px}
.hamburger span{width:23px;height:2px;background:rgba(255,255,255,.85);border-radius:2px;transition:.3s}
.mobile-nav{display:none;position:fixed;top:var(--nav-h);left:0;right:0;bottom:0;background:var(--navy);z-index:99;flex-direction:column;align-items:center;justify-content:center;gap:22px;overflow-y:auto}
.mobile-nav.open{display:flex}
.mobile-nav a{font-family:var(--serif);font-size:1.45rem;color:#fff}
.nav-item{position:relative}
.nav-item::after{content:"";position:absolute;top:100%;left:-10px;right:-10px;height:16px}
.nav-item>a{display:flex;align-items:center;gap:5px}
.nav-item>a .chevron{width:10px;height:10px;transition:transform .2s;opacity:.7;flex-shrink:0}
.nav-item:hover>a .chevron{transform:rotate(180deg)}
.dropdown{display:none;position:absolute;top:calc(100% + 12px);left:50%;transform:translateX(-50%);background:var(--navy);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:8px 0;min-width:200px;box-shadow:0 12px 36px rgba(0,0,0,.35);z-index:200;backdrop-filter:blur(12px)}
.dropdown::before{content:"";position:absolute;top:-6px;left:50%;width:12px;height:12px;background:var(--navy);border-left:1px solid rgba(255,255,255,.12);border-top:1px solid rgba(255,255,255,.12);transform:translateX(-50%) rotate(45deg)}
.nav-item:hover .dropdown,.nav-item:focus-within .dropdown{display:block}
.dropdown a{display:block;padding:10px 20px;font-family:var(--sans);font-size:.83rem;font-weight:500;color:rgba(255,255,255,.78);letter-spacing:.03em;transition:background .15s,color .15s;white-space:nowrap}
.dropdown a:hover{background:rgba(255,255,255,.08);color:#fff}
.smile-era-text{font-family:var(--serif);font-size:1.02rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;line-height:1;color:#F5DC8C}
.smile-era-star{color:#F5DC8C;font-size:.8rem;margin-left:2px}
.nav-item.smile-era-item>a{color:#F5DC8C!important}
.nav-item.smile-era-item>a:hover{color:#fff!important}
.nav-item.smile-era-item>a:hover .smile-era-text{color:#fff}

/* PAGE HERO (interior pages) */
.page-hero{background:linear-gradient(150deg,var(--navy) 0%,var(--blue-dk) 55%,var(--blue) 100%);position:relative;overflow:hidden;padding:110px 0 90px;text-align:center}
.page-hero .hero-fl-tl{position:absolute;top:-14px;left:-14px;width:clamp(200px,26vw,340px);opacity:.32;mix-blend-mode:screen;pointer-events:none;z-index:0}
.page-hero .hero-fl-br{position:absolute;bottom:-18px;right:-18px;width:clamp(220px,28vw,380px);opacity:.30;mix-blend-mode:screen;pointer-events:none;z-index:0}
.page-hero .container{position:relative;z-index:1}
.page-hero .eyebrow{color:rgba(255,255,255,.55)}
.page-hero h1{color:#fff;font-weight:300;max-width:900px;margin:0 auto 22px}
.page-hero h1 em{font-style:italic;font-weight:400}
.page-hero p.lede{color:rgba(255,255,255,.75);font-size:1.1rem;max-width:640px;margin:0 auto;line-height:1.72}
.page-hero .hero-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin-top:36px}
.breadcrumb{font-size:.76rem;color:rgba(255,255,255,.45);letter-spacing:.06em;margin-bottom:18px}
.breadcrumb a{color:rgba(255,255,255,.65);text-decoration:underline;text-underline-offset:3px}
.breadcrumb a:hover{color:#fff}

/* Common blocks */
.card{background:var(--white);border:1px solid rgba(28,75,160,.09);border-radius:14px;padding:32px 30px;box-shadow:0 4px 20px rgba(11,30,69,.06);transition:transform .25s,box-shadow .25s}
.card:hover{transform:translateY(-3px);box-shadow:0 12px 36px rgba(11,30,69,.11)}
.card h3{font-size:1.5rem;color:var(--blue-dk);margin-bottom:8px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.band-navy{background:linear-gradient(150deg,var(--navy) 0%,var(--blue-dk) 55%,var(--blue) 100%);position:relative;overflow:hidden;text-align:center;padding:96px 0}
.band-navy h2{color:#fff}
.band-navy p{color:rgba(255,255,255,.75)}
.band-navy .eyebrow{color:rgba(255,255,255,.55)}
.checklist{display:flex;flex-direction:column;gap:0;max-width:820px;margin:0 auto}
.checklist li{display:flex;align-items:flex-start;gap:14px;padding:15px 20px;border-bottom:1px solid rgba(28,75,160,.10);font-size:1rem;color:var(--text)}
.checklist li:last-child{border-bottom:none}
.checklist .ck{flex-shrink:0;width:26px;height:26px;border-radius:50%;border:1.5px solid var(--blue);color:var(--blue);display:flex;align-items:center;justify-content:center;margin-top:2px}
.img-placeholder{background:repeating-linear-gradient(-45deg,var(--sky),var(--sky) 14px,#E9F1FC 14px,#E9F1FC 28px);border:1px dashed var(--sky-mid);border-radius:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--blue);text-align:center}
.img-placeholder span{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;font-weight:600}

/* FOOTER CTA */
.footer-cta{background:var(--white);text-align:center;padding:96px 0;position:relative;overflow:hidden}
.footer-cta .eyebrow{color:var(--blue)}
.footer-cta h2{font-size:clamp(2rem,4.2vw,3.3rem);margin-top:12px;margin-bottom:18px}
.footer-cta>.container>p{max-width:520px;margin:0 auto 36px;font-size:1.04rem}
.fcta-actions{display:flex;flex-direction:column;align-items:center;gap:16px}
.fcta-phone{font-family:var(--serif);font-size:1.5rem;color:var(--navy);font-weight:300}
.fcta-phone a{color:var(--blue)}
.fcta-phone a:hover{text-decoration:underline}
.fcta-address{font-size:.8rem;color:var(--muted);margin-top:4px}
.fcta-fl-l{position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:200px;opacity:.09;mix-blend-mode:multiply;pointer-events:none}
.fcta-fl-r{position:absolute;right:-10px;top:50%;transform:translateY(-50%) scaleX(-1);width:200px;opacity:.09;mix-blend-mode:multiply;pointer-events:none}

/* FOOTER */
.site-footer{background:var(--navy);padding:56px 0 0;position:relative;overflow:hidden}
.footer-top{display:grid;grid-template-columns:260px 1fr 1fr 1fr;gap:44px;padding-bottom:44px;border-bottom:1px solid rgba(255,255,255,.07)}
.footer-logo-img{height:48px;width:auto;margin-bottom:14px}
.footer-tagline{font-family:var(--serif);font-style:italic;font-size:.96rem;color:rgba(255,255,255,.48);line-height:1.55}
.footer-col h4{font-family:var(--sans);font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.35);font-weight:600;margin-bottom:16px}
.footer-col a,.footer-col p,.footer-col address{display:block;font-size:.85rem;color:rgba(255,255,255,.58);margin-bottom:8px;font-style:normal;transition:color .2s}
.footer-col a:hover{color:#fff}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding:20px 0;flex-wrap:wrap;gap:10px}
.footer-bottom p,.footer-bottom a{font-size:.74rem;color:rgba(255,255,255,.28)}
.footer-bottom a:hover{color:rgba(255,255,255,.60)}
.footer-fl{position:absolute;right:-30px;top:-20px;width:260px;opacity:.06;mix-blend-mode:screen;pointer-events:none}

/* FADE */
.fade-up{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.fade-up.visible{opacity:1;transform:none}
.d1{transition-delay:.10s}.d2{transition-delay:.20s}.d3{transition-delay:.30s}.d4{transition-delay:.40s}
@media(prefers-reduced-motion:reduce){.fade-up{opacity:1;transform:none;transition:none}}

/* RESPONSIVE */
@media(max-width:1024px){
  .grid-3{grid-template-columns:1fr 1fr}
  .footer-top{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  :root{--nav-h:64px}
  .container{padding:0 20px}
  .section{padding:68px 0}
  .nav-links{display:none}
  .hamburger{display:flex}
  .grid-2,.grid-3{grid-template-columns:1fr}
  .page-hero .hero-fl-tl,.page-hero .hero-fl-br{display:none}
}
@media(max-width:480px){
  h2{font-size:1.75rem}
  .footer-top{grid-template-columns:1fr;gap:26px}
}
