:root{
  --navy:#14284b;
  --navy-2:#1c3763;
  --blue:#1f5aa6;
  --orange:#e8892b;
  --orange-d:#c46f19;
  --cream:#f8f4ec;
  --sand:#efe8da;
  --ink:#1d2433;
  --muted:#5a6475;
}
html{scroll-behavior:smooth;scroll-padding-top:84px}
body{font-family:'DM Sans',system-ui,sans-serif;color:var(--ink);background:#fff;font-size:1.05rem;line-height:1.7}
h1,h2,h3,.h5,.fact-num,.svc-num,.navbar-brand .brand-name{font-family:'Fraunces',Georgia,serif}
h2{font-size:clamp(1.9rem,3.4vw,2.7rem);line-height:1.15;color:var(--navy);font-weight:700;margin-bottom:1.1rem}
a{color:var(--blue)}
.kicker{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:700;color:var(--orange-d);margin-bottom:.6rem}
.kicker-light{color:#ffb869}
.section{padding:clamp(4rem,8vw,7rem) 0}
.band{background:var(--cream)}
.band-navy{background:var(--navy);color:#e8eef9}
.band-navy h2{color:#fff}
.band-navy a{color:#ffd29a}

.btn-accent{background:var(--orange);border-color:var(--orange);color:#1b1206;font-weight:700}
.btn-accent:hover,.btn-accent:focus{background:var(--orange-d);border-color:var(--orange-d);color:#fff}

/* Navbar */
.site-nav{background:rgba(248,244,236,.97);box-shadow:0 1px 0 rgba(20,40,75,.1);padding:.5rem 0}
.navbar-brand{display:flex;align-items:center;gap:.7rem;margin:0;padding:0}
.brand-chip{display:inline-block;background:#fff;border-radius:10px;padding:5px 9px;line-height:0}
.brand-chip img{height:30px;width:auto}
.navbar-brand .brand-name{font-size:1.05rem;font-weight:700;color:var(--navy);line-height:1.15;white-space:normal}
.site-nav .nav-link{color:var(--navy);font-weight:500;padding:.5rem .75rem}
.site-nav .nav-link:hover{color:var(--orange-d)}
@media (max-width:991.98px){
  .site-nav .brand-chip{display:none}
  .site-nav .btn{margin:.5rem 0 .75rem}
}
@media (min-width:992px) and (max-width:1199.98px){
  .navbar-brand .brand-name{font-size:.95rem;max-width:150px}
  .site-nav .nav-link{padding:.5rem .5rem;font-size:.95rem}
}

/* Hero: split panel */
.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);min-height:100vh;padding-top:66px;background:var(--navy)}
.hero-panel{display:flex;align-items:center;padding:3rem clamp(1.25rem,5vw,4.5rem);background:var(--navy);color:#fff}
.hero-content{max-width:560px}
.hero-eyebrow{font-size:.85rem;letter-spacing:.18em;text-transform:uppercase;font-weight:700;color:#ffb869;margin-bottom:1rem}
.hero-title{font-size:clamp(2.4rem,5vw,4.2rem);line-height:1.05;font-weight:700;margin-bottom:1.2rem}
.hero-subtitle{font-size:1.2rem;color:#dbe6f7;margin-bottom:.8rem}
.hero-tagline{font-size:.95rem;color:#9fb6d9;margin:0}
.hero-photo{background:url('img/hero.webp') 75% center/cover no-repeat;min-height:320px}
@media (max-width:991.98px){
  .hero{grid-template-columns:1fr;min-height:0}
  .hero-photo{min-height:46vw;order:-1;margin-top:0;background-position:70% center}
  .hero-panel{padding:2.5rem 1.25rem 3rem}
}
@media (max-width:575.98px){.hero-photo{min-height:260px}}

/* Facts strip: 4 cells */
.facts{background:var(--orange);color:#1b1206}
.fact{padding:1.6rem .75rem;display:flex;flex-direction:column;border-right:1px solid rgba(27,18,6,.15)}
.fact:last-child{border-right:0}
.fact-num{font-size:clamp(1.8rem,3vw,2.5rem);font-weight:700;line-height:1.1}
.fact-lbl{font-size:.9rem;font-weight:500}
@media (max-width:991.98px){.fact:nth-child(2){border-right:0}.fact:nth-child(-n+2){border-bottom:1px solid rgba(27,18,6,.15)}}

/* Photos */
.portrait{border-radius:18px;width:100%;height:auto;box-shadow:0 18px 40px -18px rgba(20,40,75,.45)}
.round-photo{border-radius:50%;width:100%;max-width:420px;height:auto;display:block;margin:0 auto;box-shadow:0 0 0 10px var(--sand)}
.lead-copy{font-size:1.2rem;color:var(--navy)}
.pull{border-left:4px solid var(--orange);padding:.4rem 0 .4rem 1.25rem;margin:1.5rem 0 0;font-family:'Fraunces',Georgia,serif;font-size:1.25rem;color:var(--navy)}
.tech-list,.cond-list{padding-left:0;list-style:none;display:grid;gap:.4rem 1.5rem}
.tech-list{grid-template-columns:repeat(2,1fr)}
.cond-list{grid-template-columns:repeat(2,1fr);font-size:.97rem;line-height:1.5}
.tech-list li,.cond-list li{padding-left:1.4rem;position:relative}
.tech-list li::before,.cond-list li::before{content:"";position:absolute;left:0;top:.6em;width:.55rem;height:.55rem;border-radius:50%;background:var(--orange)}
.tech-list li{font-weight:500}
@media (max-width:575.98px){.cond-list{grid-template-columns:1fr}}

/* Services accordion */
.sticky-intro{position:sticky;top:100px}
.service-acc .accordion-item{border:0;border-bottom:1px solid rgba(20,40,75,.15);background:transparent}
.service-acc .accordion-button{background:transparent;box-shadow:none;font-family:'Fraunces',Georgia,serif;font-size:1.3rem;font-weight:500;color:var(--navy);padding:1.2rem 0;gap:1rem}
.service-acc .accordion-button:not(.collapsed){color:var(--navy);background:transparent}
.service-acc .accordion-button:focus-visible{outline:3px solid var(--orange);outline-offset:2px}
.svc-num{color:var(--orange-d);font-size:1rem;font-weight:700;min-width:2rem}
.service-acc .accordion-body{padding:0 0 1.5rem 3rem}
@media (max-width:575.98px){.service-acc .accordion-body{padding-left:0}.service-acc .accordion-button{font-size:1.15rem}}

/* New patients */
.steps{padding-left:1.2rem}
.steps li{margin-bottom:.35rem}
.tile{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:16px;display:block}
.tile-quote{background:var(--orange);color:#1b1206;display:flex;align-items:center;justify-content:center;padding:1.5rem;text-align:center;font-family:'Fraunces',Georgia,serif;font-size:clamp(1.1rem,2vw,1.5rem);font-weight:500;line-height:1.3}

/* Gallery */
.gal{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;border-radius:14px;display:block}

/* Reviews */
.review{background:#fff;border-radius:16px;padding:2rem;height:100%;margin:0;border-top:5px solid var(--orange);box-shadow:0 12px 30px -20px rgba(20,40,75,.4);display:flex;flex-direction:column}
.review blockquote{font-family:'Fraunces',Georgia,serif;font-size:1.12rem;line-height:1.55;color:var(--navy);flex:1}
.review figcaption{font-weight:700;color:var(--orange-d)}

/* Contact */
.info-card{background:var(--cream);border-radius:18px;padding:2rem;height:100%}
.info-card p{display:flex;gap:.9rem;margin-bottom:1.1rem}
.info-card i{color:var(--orange-d);font-size:1.3rem;line-height:1.5}
.hours{width:100%;font-size:.97rem}
.hours th{font-weight:700;padding:.3rem 1rem .3rem 0;white-space:nowrap;color:var(--navy)}
.hours td{padding:.3rem 0}
.map-wrap{height:100%;min-height:380px;border-radius:18px;overflow:hidden;background:var(--sand)}
.map-wrap iframe{width:100%;height:100%;min-height:380px;border:0;display:block}

/* Footer */
.site-footer{background:var(--navy);color:#c9d6ee;padding:3.5rem 0 2rem}
.site-footer a{color:#ffd29a;text-decoration:none}
.site-footer a:hover{text-decoration:underline}
.site-footer .brand-chip{padding:8px 12px}
.site-footer .brand-chip img{height:40px}
.foot-links li{margin-bottom:.2rem}
.social{display:flex;gap:1rem;font-size:1.5rem}
.social a{color:#fff}
.powered{margin-top:2.5rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.15);text-align:center;font-size:.9rem}
.powered a{font-weight:700;background:rgba(232,137,43,.18);padding:.3rem .8rem;border-radius:999px;color:#ffd29a}
.bolt{color:var(--orange)}
@media (max-width:767.98px){.social{justify-content:flex-start}}

/* g-5 horizontal gutter overflows the container on small screens */
@media (max-width:991.98px){.row.g-5{--bs-gutter-x:1.5rem}}
.info-card .btn i{color:inherit;font-size:inherit;line-height:inherit}
