:root{
  --teal:#1FBFAA;        /* primary bright teal (buttons/accents) */
  --teal-2:#33D6C0;      /* logo bright teal */
  --mint:#86ECDB;        /* light accent text */
  --teal-lt:#CFF3EC;
  --dark:#0A2724;        /* main dark theme bg (deep logo green) */
  --dark-2:#0E322E;      /* alt section bg */
  --card:#123E39;        /* card bg */
  --card-hi:#17473F;
  --line:rgba(127,232,216,.14);
  --text:#D5E7E3;        /* body text */
  --dim:rgba(213,231,227,.62);
  --gold:#FBBC04;        /* review stars */
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Raleway',sans-serif;color:var(--text);background:var(--dark);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:'Playfair Display',serif;line-height:1.16;color:#fff;overflow-wrap:break-word}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.container{max-width:1200px;margin:0 auto;padding:0 28px}
.section{padding:96px 0}
.section-alt{background:var(--dark-2)}
.eyebrow{display:inline-flex;align-items:center;gap:14px;font-weight:700;font-size:12px;letter-spacing:3px;text-transform:uppercase;color:var(--teal-2)}
.eyebrow::before{content:"";width:34px;height:1px;background:var(--teal)}
.eyebrow.center{justify-content:center}
.eyebrow.center::after{content:"";width:34px;height:1px;background:var(--teal)}
.heading{font-size:clamp(30px,4vw,46px);margin:18px 0 0;color:#fff}
.heading .accent{color:var(--mint);font-style:italic;font-weight:500}
.sub{color:var(--dim);font-size:16.5px;max-width:640px;margin-top:18px}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;font-family:'Poppins',sans-serif;font-weight:600;font-size:16px;letter-spacing:.1px;padding:15px 30px;border-radius:50px;transition:.22s;cursor:pointer;border:1.5px solid transparent}
.btn-primary{background:linear-gradient(135deg,var(--teal-2),#10A48F);color:#04201c;box-shadow:0 10px 30px rgba(31,191,170,.35)}
.btn-primary:hover{transform:translateY(-2px);filter:brightness(1.06)}
.btn-ghost{background:rgba(255,255,255,.06);color:#fff;border-color:rgba(255,255,255,.28);backdrop-filter:blur(4px)}
.btn-ghost:hover{background:#fff;color:var(--dark);border-color:#fff}
.btn-outline{background:transparent;color:var(--teal-2);border-color:rgba(51,214,192,.55)}
.btn-outline:hover{background:var(--teal);color:#04201c;border-color:var(--teal)}

/* top bar */
.topbar{background:#041916;color:rgba(213,231,227,.78);font-size:12.5px;font-weight:500}
.topbar .container{display:flex;justify-content:space-between;align-items:center;padding:9px 28px;flex-wrap:wrap;gap:6px}
.topbar a{color:var(--mint)}
.topbar i{color:var(--teal);margin-right:7px}
.topbar .tb-right{display:flex;gap:22px;align-items:center}

/* nav */
header.nav{position:sticky;top:0;z-index:60;background:linear-gradient(90deg,#12665B 0%,#0B4740 100%);border-bottom:2px solid var(--teal-2);box-shadow:0 8px 26px rgba(3,20,18,.45)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:13px 28px;max-width:1200px;margin:0 auto}
.brand-logo{height:46px;width:auto}
.nav-links{display:flex;gap:6px;align-items:center}
.nav-links a{font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;letter-spacing:1.1px;text-transform:uppercase;color:#fff;transition:.18s;padding:9px 15px;border-radius:50px}
.nav-links a:hover{color:#04201c;background:var(--teal-2)}
.nav-cta{display:flex;align-items:center;gap:16px}
.nav-phone{font-weight:800;color:#fff;font-size:16px}
.nav-phone i{color:var(--teal-2);margin-right:6px}
.burger{display:none;font-size:24px;color:#fff;background:none;border:none}

/* hero */
.hero{position:relative;min-height:92vh;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:url('/images/hero-banner.jpg') center 22%/cover;transform:scale(1.04);animation:slowzoom 18s ease-in-out infinite alternate}
@keyframes slowzoom{to{transform:scale(1.12)}}
.hero-overlay{position:absolute;inset:0;background:
  linear-gradient(to top,rgba(7,26,24,.96) 0%,rgba(8,32,29,.78) 38%,rgba(8,32,29,.45) 70%,rgba(8,32,29,.5) 100%),
  linear-gradient(115deg,rgba(7,26,24,.78) 0%,rgba(7,26,24,.25) 55%,transparent 100%)}
.hero .container{position:relative;z-index:2;width:100%}
.hero-inner{max-width:760px;padding:96px 0 64px}
.hero-eyebrow{display:inline-flex;align-items:center;gap:13px;color:var(--teal-2);font-weight:700;font-size:12px;letter-spacing:3px;text-transform:uppercase;margin-bottom:24px}
.hero-eyebrow::before{content:"";width:36px;height:1px;background:var(--teal-2)}
.hero h1{font-size:clamp(40px,6vw,72px);color:#fff;line-height:1.08;text-shadow:0 2px 30px rgba(0,0,0,.45)}
.hero h1 .accent{display:block;color:var(--mint);font-style:italic;font-weight:500}
.hero-sub{font-size:18.5px;color:rgba(255,255,255,.85);max-width:560px;margin:24px 0 34px;line-height:1.7}
.hero-actions{display:flex;gap:15px;flex-wrap:wrap;margin-bottom:50px}
.hero-divider{height:1px;background:rgba(255,255,255,.16);margin-bottom:30px;max-width:620px}
.hero-stats{display:flex;gap:50px;flex-wrap:wrap}
.hstat strong{display:block;font-family:'Playfair Display',serif;font-size:38px;font-weight:800;color:#fff;line-height:1}
.hstat .stars{color:var(--gold);font-size:14px;letter-spacing:2px}
.hstat span{font-size:11.5px;color:rgba(255,255,255,.62);letter-spacing:.8px;text-transform:uppercase;margin-top:6px;display:block}

/* trust strip */
.trust{background:#061d1a;border-bottom:1px solid var(--line)}
.trust-inner{display:flex;justify-content:space-between;gap:22px;padding:30px 0;flex-wrap:wrap}
.trust-item{display:flex;align-items:center;gap:14px;flex:1;min-width:200px}
.trust-item i{font-size:22px;color:var(--teal-2);background:rgba(51,214,192,.12);width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;border:1px solid var(--line)}
.trust-item strong{display:block;font-size:14.5px;color:#fff;font-family:'Raleway',sans-serif;font-weight:700}
.trust-item span{font-size:12.5px;color:var(--dim)}

/* meet dentist */
.dentist{display:grid;grid-template-columns:.92fr 1.08fr;gap:60px;align-items:center}
.dentist-photo{position:relative}
.dentist-photo .frame{position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line);box-shadow:0 30px 70px rgba(0,0,0,.5)}
.dentist-photo .frame img{width:100%;height:580px;object-fit:cover;object-position:top center;background:#0d3631}
/* cutout variant — transparent PNG standing on a teal panel rather than a filled photo */
.dentist-photo .frame.is-cutout{background:linear-gradient(165deg,#17564D 0%,#0D3A35 55%,#0A2B28 100%)}
.dentist-photo .frame.is-cutout::after{content:"";position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);width:86%;height:74%;background:radial-gradient(ellipse,rgba(51,214,192,.34),transparent 70%);filter:blur(42px)}
.dentist-photo .frame.is-cutout img{position:relative;z-index:1;object-fit:contain;object-position:bottom center;background:transparent;padding:26px 0 0;filter:drop-shadow(0 18px 38px rgba(0,0,0,.45))}
.dentist-photo::before{content:"";position:absolute;inset:-14px -14px 30px 30px;background:radial-gradient(circle at 50% 50%,rgba(51,214,192,.35),transparent 70%);filter:blur(30px);z-index:-1}
.badge-float{position:absolute;z-index:2;left:-22px;bottom:34px;background:var(--card-hi);border:1px solid var(--line);border-radius:16px;padding:16px 20px;box-shadow:0 18px 40px rgba(0,0,0,.5);display:flex;align-items:center;gap:13px}
.badge-float .bn{font-family:'Playfair Display',serif;font-size:30px;font-weight:800;color:var(--mint);line-height:1}
.badge-float .bl{font-size:11px;color:var(--dim);text-transform:uppercase;letter-spacing:.6px;line-height:1.3}
.badge-float .stars{color:var(--gold);font-size:11px;letter-spacing:1px;display:block;margin-bottom:2px}
.creds{display:flex;gap:10px;flex-wrap:wrap;margin:24px 0 6px}
.cred{background:rgba(51,214,192,.1);color:var(--mint);font-weight:700;font-size:12.5px;padding:8px 16px;border-radius:50px;border:1px solid var(--line)}
.dentist p{color:var(--dim);font-size:16px;margin-top:18px}
.sig{margin-top:26px;font-family:'Playfair Display',serif;font-style:italic;color:#fff;font-size:21px;padding-left:18px;border-left:3px solid var(--teal)}

/* reviews */
.rev-head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:22px;margin-bottom:50px}
.rev-score{display:flex;align-items:center;gap:18px;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px 28px}
.rev-score .big{font-family:'Playfair Display',serif;font-size:48px;font-weight:800;color:#fff;line-height:.9}
.rev-score .stars{color:var(--gold);font-size:15px;letter-spacing:2px}
.rev-score .src{font-size:12.5px;color:var(--dim);font-weight:600;margin-top:4px}
.rev-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.rev-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:30px 28px;display:flex;flex-direction:column;transition:.22s}
.rev-card:hover{transform:translateY(-5px);border-color:rgba(51,214,192,.4);background:var(--card-hi)}
.rev-card .quote{color:var(--teal-2);font-size:28px;margin-bottom:12px;opacity:.85}
.rev-card .stars{color:var(--gold);font-size:13px;letter-spacing:1.5px;margin-bottom:14px}
.rev-card p{color:#cfe3df;font-size:14.5px;flex:1;line-height:1.7}
.rev-meta{display:flex;align-items:center;gap:12px;margin-top:20px;padding-top:18px;border-top:1px solid var(--line)}
.rev-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--teal-2),#0e8d7c);color:#042521;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:16px}
.rev-meta strong{display:block;font-size:14px;color:#fff;font-family:'Raleway',sans-serif;font-weight:700}
.rev-meta span{font-size:12px;color:var(--dim)}

/* services */
.svc-layout{display:grid;grid-template-columns:.82fr 1.18fr;gap:58px}
.svc-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}
.svc-card{display:block;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:30px 26px;transition:.22s}
.svc-card:hover{transform:translateY(-5px);border-color:rgba(51,214,192,.45);background:var(--card-hi)}
.svc-icon{width:56px;height:56px;border-radius:15px;background:rgba(51,214,192,.12);color:var(--teal-2);display:flex;align-items:center;justify-content:center;font-size:23px;margin-bottom:18px;border:1px solid var(--line)}
.svc-card h3{font-size:19.5px;margin-bottom:9px;color:#fff}
.svc-card p{color:var(--dim);font-size:14px}
.emergency-box{margin-top:32px;padding:28px 26px;background:linear-gradient(135deg,var(--teal),#0e8576);border-radius:18px;color:#042c27}
.emergency-box .et{font-weight:800;font-size:13px;letter-spacing:.6px;text-transform:uppercase;margin-bottom:9px;color:#042c27}
.emergency-box .et i{margin-right:8px}
.emergency-box p{color:#073a33;font-size:14px;margin-bottom:14px;font-weight:500}
.emergency-box a{font-weight:800;color:#04211d;font-size:16px}

/* gallery */
.gal-layout{display:grid;grid-template-columns:40% 1fr;gap:16px;align-items:start}
.gal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gal{position:relative;border-radius:16px;overflow:hidden;height:250px;border:1px solid var(--line)}
.gal-feature{display:grid;grid-template-rows:auto 1fr;gap:16px;height:516px}
.gal-feature-img{position:relative;aspect-ratio:4/3;height:auto;border-radius:16px;overflow:hidden;border:1px solid var(--line)}
.gal-feature-card{background:linear-gradient(135deg,#12665B,#0B4740);border:1px solid var(--line);border-radius:16px;padding:22px 24px;display:flex;flex-direction:column;justify-content:center}
.gal-feature-card h3{font-size:22px;margin-bottom:8px}
.gal-feature-card p{color:rgba(233,247,244,.8);font-size:14.5px;line-height:1.6}
.gal-wide{grid-column:span 2}
.gal img{width:100%;height:100%;object-fit:cover;transition:.45s}
.gal:hover img{transform:scale(1.08)}
.gal-cap{position:absolute;left:0;right:0;bottom:0;padding:34px 18px 15px;background:linear-gradient(transparent,rgba(6,29,26,.94));color:#fff;font-weight:600;font-size:14px}

/* CTA */
.cta{position:relative;overflow:hidden;text-align:center}
.cta-bg{position:absolute;inset:0;background:url('/images/operatory-1.jpg') center/cover}
.cta-overlay{position:absolute;inset:0;background:linear-gradient(135deg,rgba(8,42,37,.95),rgba(6,29,26,.92))}
.cta .container{position:relative;z-index:2;padding:88px 28px}
.cta h2{font-size:clamp(30px,4.4vw,48px)}
.cta .accent{color:var(--mint);font-style:italic;font-weight:500}
.cta p{color:rgba(255,255,255,.82);max-width:580px;margin:18px auto 30px;font-size:17px}
.cta .hero-actions{justify-content:center;margin-bottom:0}

/* contact */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:58px;align-items:start}
.cinfo{display:flex;gap:14px;margin-bottom:20px}
.cinfo i{color:var(--teal-2);font-size:18px;width:46px;height:46px;background:rgba(51,214,192,.1);border:1px solid var(--line);border-radius:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.cinfo strong{color:#fff;font-family:'Raleway',sans-serif;font-weight:700}
.cinfo span,.cinfo a{color:var(--dim);font-size:14.5px}
.form-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:38px}
.form-card input,.form-card select,.form-card textarea{width:100%;padding:14px 16px;background:var(--dark-2);border:1px solid var(--line);border-radius:11px;font-family:inherit;font-size:15px;color:#fff;margin-bottom:14px}
.form-card input::placeholder,.form-card textarea::placeholder{color:var(--dim)}
.form-card select{color:var(--dim)}
.form-card input:focus,.form-card select:focus,.form-card textarea:focus{outline:none;border-color:var(--teal-2)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}

/* footer */
footer{background:#061d1a;color:var(--dim);padding:64px 0 28px;font-size:14.5px;border-top:1px solid var(--line)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:46px;padding-bottom:42px;border-bottom:1px solid var(--line)}
footer h4{color:#fff;font-family:'Raleway',sans-serif;font-weight:800;font-size:13px;letter-spacing:1.2px;text-transform:uppercase;margin-bottom:20px}
footer a{color:var(--dim);transition:.15s}
footer a:hover{color:var(--mint)}
.foot-li{margin-bottom:12px;display:flex;gap:12px}
.foot-li i{color:var(--teal-2);margin-top:4px}
.foot-bottom{padding-top:24px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13px;color:rgba(213,231,227,.45)}

@media(max-width:980px){
  .dentist{grid-template-columns:1fr;gap:38px}
  .dentist-photo .frame img{height:460px}
  .svc-layout,.contact-grid{grid-template-columns:1fr;gap:38px}
  .rev-grid{grid-template-columns:1fr}
  .foot-grid{grid-template-columns:1fr;gap:32px}
  .hero-inner{padding:70px 0 54px}
  .gal-layout{grid-template-columns:1fr}
  .gal-feature{height:auto}
}
@media(max-width:760px){
  .container{padding-left:18px;padding-right:18px}
  .nav-links,.nav-phone,.topbar .tb-left,.burger{display:none}
  .nav-inner{padding:11px 18px}
  .brand-logo{height:38px}
  .nav-cta{gap:8px}
  .nav-cta .btn{padding:11px 20px;font-size:14.5px}
  .topbar .container{justify-content:center}
  .gal-grid{grid-template-columns:1fr 1fr}
  .svc-grid,.form-row{grid-template-columns:1fr}
  .trust-inner{gap:8px}
  .trust-item{min-width:100%;flex:1 1 100%}
  .section{padding:64px 0}
  .hero-stats{gap:24px}
  .rev-head{flex-direction:column;align-items:stretch}
  .rev-score{align-self:flex-start}
}
@media(max-width:480px){.gal-grid{grid-template-columns:1fr}.gal-wide{grid-column:auto}}

/* ===== embedded-cutout hero variant ===== */
.hero-embed{min-height:600px;align-items:stretch}
.hero-solid{position:absolute;inset:0;background:linear-gradient(115deg,#082521 0%,#0C3B35 46%,#10574D 100%)}
.hero-solid::after{content:"";position:absolute;inset:0;background:radial-gradient(900px 480px at 18% 26%,rgba(51,214,192,.16),transparent 62%)}
.hero-slideshow{position:absolute;inset:0;overflow:hidden}
.hero-slide{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;animation:kb 28s infinite}
.hero-slide:nth-child(1){animation-delay:0s}
.hero-slide:nth-child(2){animation-delay:7s}
.hero-slide:nth-child(3){animation-delay:14s}
.hero-slide:nth-child(4){animation-delay:21s}
@keyframes kb{0%{opacity:0;transform:scale(1.05)}5%{opacity:1}21%{opacity:1}27%{opacity:0;transform:scale(1.12)}100%{opacity:0}}
.hero-embed .hero-overlay{background:linear-gradient(100deg,rgba(7,26,24,.96) 0%,rgba(7,26,24,.84) 34%,rgba(7,26,24,.5) 62%,rgba(7,26,24,.34) 100%)}
.hero-embed .hero-grid{display:grid;grid-template-columns:1fr .85fr;gap:30px;align-items:stretch;width:100%}
.hero-embed .hero-inner{max-width:600px;padding:62px 0}
/* doctor cutout — sized to the text band (eyebrow → stats), bottom-aligned */
.hero-photo-col{position:relative;align-self:stretch;display:flex;align-items:center}
.hero-cutout-wrap{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-end}
.hero-cutout-wrap::before{content:"";position:absolute;left:56%;top:46%;transform:translate(-50%,-50%);width:88%;height:82%;background:radial-gradient(ellipse,rgba(51,214,192,.3),transparent 70%);filter:blur(50px);z-index:0}
.hero-cutout{position:relative;z-index:1;height:100%;width:auto;max-width:100%;display:block;filter:drop-shadow(0 22px 44px rgba(0,0,0,.5))}
.hero-name-chip{position:absolute;left:0;bottom:14px;z-index:3;pointer-events:auto;background:rgba(6,26,23,.72);backdrop-filter:blur(8px);border:1px solid var(--line);border-radius:15px;padding:12px 18px;box-shadow:0 16px 36px rgba(0,0,0,.45)}
.hero-name-chip strong{display:block;font-family:'Playfair Display',serif;color:#fff;font-size:19px}
.hero-name-chip span{color:var(--mint);font-size:12.5px;font-weight:600;letter-spacing:.4px}
/* prominent Google rating chip (left) */
.g-rating{display:inline-flex;align-items:center;gap:13px;background:#fff;border-radius:14px;padding:12px 20px 12px 16px;box-shadow:0 14px 34px rgba(0,0,0,.3);text-decoration:none}
.g-rating .g-logo{width:30px;height:30px;flex-shrink:0}
.g-rating .g-top{display:flex;align-items:center;gap:9px}
.g-rating .g-top strong{font-family:'Playfair Display',serif;font-size:30px;font-weight:800;color:#1f2a29;line-height:1}
.g-rating .g-top .stars{color:#FBBC04;font-size:15px;letter-spacing:1.5px}
.g-rating .g-sub{display:block;font-size:11.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#5f6f6d;margin-top:3px}
.hero-stats{display:flex;gap:38px;flex-wrap:wrap;align-items:center}
@media(max-width:900px){
  .hero-embed{min-height:auto;align-items:stretch}
  .hero-embed .hero-grid{grid-template-columns:1fr;gap:4px}
  .hero-embed .hero-inner{max-width:none;padding:30px 0 6px}
  .hero-photo-col{position:relative;align-self:auto;display:flex;justify-content:center}
  .hero-cutout-wrap{position:relative;inset:auto;height:auto;width:auto;max-width:300px;justify-content:center}
  .hero-cutout{height:auto;width:100%}
  .hero-name-chip{left:50%;transform:translateX(-50%);bottom:8px;text-align:center;white-space:nowrap}
  .hero-stats{gap:20px}
}

/* ============ SHARED NAV (dropdowns + mobile drawer) ============ */
.nav-links li{list-style:none;position:relative}
.nav-links>li>a,.nav-links>a{display:inline-flex;align-items:center;gap:7px}
.nav-links .caret{font-size:10px;opacity:.8}
.dropdown{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(8px);min-width:260px;background:#0B4740;border:1px solid rgba(127,232,216,.2);border-radius:14px;padding:10px;box-shadow:0 24px 50px rgba(3,20,18,.55);opacity:0;visibility:hidden;transition:.18s;z-index:70}
.nav-links li:hover>.dropdown{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.dropdown a{display:block;padding:9px 14px;border-radius:9px;font-size:13.5px;letter-spacing:.6px;color:#e9f7f4;text-transform:none;font-weight:500}
.dropdown a:hover{background:var(--teal-2);color:#04201c}
.dropdown .dd-sep{height:1px;background:rgba(127,232,216,.16);margin:8px 6px}
.nav-links a.is-active{background:rgba(255,255,255,.13)}

.drawer{position:fixed;inset:0 0 0 auto;width:min(88vw,360px);background:#0A2724;border-left:1px solid var(--line);z-index:200;transform:translateX(100%);transition:.28s ease;overflow-y:auto;padding:22px 22px 40px}
.drawer.open{transform:translateX(0)}
.drawer-scrim{position:fixed;inset:0;background:rgba(3,16,14,.6);z-index:190;opacity:0;visibility:hidden;transition:.25s}
.drawer-scrim.open{opacity:1;visibility:visible}
.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}
.drawer-close{background:none;border:none;color:#fff;font-size:22px}
.drawer a{display:block;font-family:'Poppins',sans-serif;font-weight:600;font-size:15px;color:#fff;padding:11px 4px;border-bottom:1px solid rgba(127,232,216,.12)}
.drawer .grp{margin-top:18px;font-size:11.5px;letter-spacing:2.4px;text-transform:uppercase;color:var(--teal-2);font-weight:700}
.drawer .sub a{font-size:14px;font-weight:500;color:var(--text);padding-left:12px}
.drawer .drawer-cta{margin-top:24px;display:grid;gap:10px}
.drawer .drawer-cta .btn{justify-content:center;width:100%}

/* ============ INTERIOR PAGES ============ */
.page-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.page-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 38%;transform:scale(1.04)}
.page-hero-overlay{position:absolute;inset:0;background:linear-gradient(105deg,rgba(6,26,24,.95) 0%,rgba(7,30,27,.86) 52%,rgba(7,30,27,.62) 100%)}
.page-hero .container{position:relative;z-index:2;padding-top:74px;padding-bottom:74px}
.page-hero h1{font-size:clamp(30px,4.6vw,50px);max-width:15ch}
.page-hero p{color:var(--dim);font-size:17px;max-width:60ch;margin-top:16px}
.crumbs{font-size:13px;color:var(--dim);margin-bottom:18px;letter-spacing:.3px}
.crumbs a{color:var(--teal-2)}
.crumbs span{opacity:.5;margin:0 8px}

.page-body{display:grid;grid-template-columns:1fr 350px;gap:56px;align-items:start;padding:80px 0}
.prose h2{font-size:clamp(24px,3vw,33px);margin:44px 0 16px}
.prose h2:first-child{margin-top:0}
.prose h3{font-size:20px;margin:30px 0 10px;color:#fff}
.prose p{color:var(--dim);font-size:16.5px;margin-bottom:16px}
.prose ul{margin:0 0 20px 0;padding:0;list-style:none}
.prose ul li{color:var(--dim);font-size:16.5px;padding-left:30px;position:relative;margin-bottom:11px}
.prose ul li::before{content:"\f00c";font-family:"Font Awesome 6 Free";font-weight:900;position:absolute;left:0;top:1px;color:var(--teal-2);font-size:13px}
.prose strong{color:#eaf7f4}
.prose .lead{font-size:19px;color:var(--text);line-height:1.7}
.callout{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--teal-2);border-radius:14px;padding:22px 24px;margin:28px 0}
.callout p{margin:0;color:var(--text)}
.prose-img{border-radius:16px;overflow:hidden;border:1px solid var(--line);margin:30px 0}
.prose-img img{width:100%;height:330px;object-fit:cover}

.steps{counter-reset:s;margin:26px 0}
.step{position:relative;padding-left:62px;margin-bottom:24px}
.step::before{counter-increment:s;content:counter(s);position:absolute;left:0;top:0;width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--teal-2),#10A48F);color:#04201c;font-family:'Poppins',sans-serif;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:17px}
.step h3{margin:6px 0 6px}
.step p{margin:0}

.faq{margin-top:14px}
.faq-item{border:1px solid var(--line);background:var(--card);border-radius:14px;margin-bottom:12px;overflow:hidden}
.faq-q{width:100%;text-align:left;background:none;border:none;color:#fff;font-family:'Poppins',sans-serif;font-weight:600;font-size:16px;padding:19px 54px 19px 22px;cursor:pointer;position:relative}
.faq-q::after{content:"\2b";position:absolute;right:22px;top:50%;transform:translateY(-50%);color:var(--teal-2);font-size:19px;font-weight:400}
.faq-item.open .faq-q::after{content:"\2212"}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-a p{color:var(--dim);font-size:15.5px;padding:0 22px 20px;margin:0}

.aside{position:sticky;top:110px;display:grid;gap:18px}
.aside-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:26px 24px}
.aside-card h3{font-size:20px;margin-bottom:8px}
.aside-card p{color:var(--dim);font-size:14.5px;margin-bottom:18px}
.aside-card .btn{width:100%;justify-content:center}
.aside-phone{display:flex;align-items:center;gap:12px;margin-top:14px;font-family:'Poppins',sans-serif;font-weight:700;font-size:19px;color:#fff}
.aside-phone i{color:var(--teal-2);font-size:16px}
.aside-list a{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 0;border-bottom:1px solid var(--line);color:var(--text);font-size:15px}
.aside-list a:last-child{border-bottom:none}
.aside-list a:hover{color:var(--teal-2)}
.aside-list i{color:var(--teal-2);font-size:12px}
.hours-row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:14.5px;color:var(--dim)}
.hours-row:last-child{border-bottom:none}
.hours-row strong{color:#fff;font-weight:600}
.hours-row.closed span{opacity:.55}

.svc-index{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.svc-tile{display:block;background:var(--card);border:1px solid var(--line);border-radius:18px;padding:28px 26px;transition:.22s}
.svc-tile:hover{transform:translateY(-4px);border-color:rgba(51,214,192,.45);background:var(--card-hi)}
.svc-tile i{color:var(--teal-2);font-size:24px;margin-bottom:14px;display:block}
.svc-tile h3{font-size:20px;margin-bottom:8px}
.svc-tile p{color:var(--dim);font-size:14.5px;margin:0}
.svc-tile .go{color:var(--teal-2);font-size:13.5px;font-weight:700;font-family:'Poppins',sans-serif;margin-top:14px;display:inline-block}

.related{border-top:1px solid var(--line);padding:60px 0}
.related h2{font-size:26px;margin-bottom:24px}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.rel-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 22px;transition:.2s}
.rel-card:hover{border-color:rgba(51,214,192,.45);transform:translateY(-3px)}
.rel-card h3{font-size:17px;margin-bottom:6px}
.rel-card p{color:var(--dim);font-size:14px;margin:0}

.team-card{display:grid;grid-template-columns:300px 1fr;gap:40px;align-items:start;background:var(--card);border:1px solid var(--line);border-radius:22px;padding:32px;margin-bottom:26px}
.team-card .tphoto{border-radius:16px;overflow:hidden;border:1px solid var(--line)}
.team-card .tphoto img{width:100%;height:340px;object-fit:cover;object-position:top center}
.team-card .tphoto.no-photo{height:340px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#12665B,#0B4740)}
.team-card .tphoto.no-photo i{font-size:64px;color:rgba(134,236,219,.5)}
.team-card h2{font-size:28px;margin-bottom:4px}
.team-role{color:var(--teal-2);font-family:'Poppins',sans-serif;font-weight:600;font-size:14px;letter-spacing:1px;text-transform:uppercase;margin-bottom:16px}

.map-embed{border-radius:18px;overflow:hidden;border:1px solid var(--line);height:420px}
.map-embed iframe{width:100%;height:100%;border:0;display:block}
.form-card.page-form{margin-top:0}

@media(max-width:980px){
  .page-body{grid-template-columns:1fr;gap:44px;padding:56px 0}
  .aside{position:static}
  .svc-index,.rel-grid{grid-template-columns:repeat(2,1fr)}
  .team-card{grid-template-columns:1fr;gap:24px;padding:24px}
  .team-card .tphoto img{height:300px}
}
@media(max-width:1180px){
  .nav-links,.nav-phone{display:none !important}
  .burger{display:block !important}
  .nav-inner{padding:12px 22px}
}
@media(max-width:760px){
  .svc-index,.rel-grid{grid-template-columns:1fr}
  .page-hero .container{padding-top:52px;padding-bottom:52px}
  .prose-img img{height:230px}
}

/* ============ EDITORIAL PAGE PATTERN (compact hero + alternating rows) ============ */
.slim-hero{position:relative;overflow:hidden;background:linear-gradient(115deg,#0E4A43 0%,#0A2724 62%)}
.slim-hero::after{content:"";position:absolute;right:-140px;top:-90px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle at 40% 40%,rgba(51,214,192,.16),transparent 68%)}
.slim-hero .container{position:relative;z-index:2;padding-top:62px;padding-bottom:66px}
.slim-hero h1{font-size:clamp(34px,5.2vw,58px);margin:14px 0 0;max-width:16ch}
.slim-hero .kicker{color:var(--dim);font-size:17px;max-width:58ch;margin-top:16px;line-height:1.7}
.crumb-bar{background:#061d1a;border-bottom:1px solid var(--line)}
.crumb-bar .container{padding-top:13px;padding-bottom:13px;font-size:13.5px;color:var(--dim)}
.crumb-bar a{color:var(--teal-2)}
.crumb-bar i{font-size:9px;opacity:.6;margin:0 9px}

.band{padding:78px 0}
.band-alt{background:var(--dark-2)}
.row2{display:grid;grid-template-columns:1fr 1.08fr;gap:64px;align-items:center}
.row2.flip .row2-media{order:2}
.row2-media{position:relative}
.row2-media img{width:100%;height:520px;object-fit:cover;border-radius:22px;border:1px solid var(--line);box-shadow:0 30px 66px rgba(3,18,16,.5)}
.row2-media.tall img{height:600px}
.row2-media.short img{height:400px}
.row2-text h2{font-size:clamp(27px,3.6vw,42px);line-height:1.14;margin:14px 0 20px}
.row2-text p{color:var(--dim);font-size:16.5px;line-height:1.78;margin-bottom:16px}
.row2-text p:last-child{margin-bottom:0}
.row2-media .float-tag{position:absolute;left:-18px;bottom:26px;background:linear-gradient(135deg,#12665B,#0B4740);border:1px solid rgba(127,232,216,.28);border-radius:14px;padding:14px 20px;box-shadow:0 18px 40px rgba(3,18,16,.5)}
.float-tag strong{display:block;color:#fff;font-family:'Poppins',sans-serif;font-size:15px}
.float-tag span{color:var(--mint);font-size:12.5px;letter-spacing:1.4px;text-transform:uppercase;font-weight:600}

.seals{display:flex;gap:14px;flex-wrap:wrap;margin-top:24px}
.seal{display:flex;align-items:center;gap:11px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px 16px}
.seal i{color:var(--teal-2);font-size:17px}
.seal span{font-size:13px;color:var(--text);font-weight:600;line-height:1.35}

.pullquote{max-width:900px;margin:0 auto;text-align:center}
.pullquote .mark{color:var(--teal-2);font-size:34px;margin-bottom:14px}
.pullquote p{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(22px,3vw,31px);color:#fff;line-height:1.45}
.pullquote cite{display:block;margin-top:20px;font-style:normal;font-size:13px;letter-spacing:2.4px;text-transform:uppercase;color:var(--teal-2);font-weight:700}

.statband{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;text-align:center}
.statband .st strong{display:block;font-family:'Playfair Display',serif;font-size:clamp(30px,4vw,44px);color:#fff;line-height:1}
.statband .st span{display:block;margin-top:9px;font-size:13.5px;color:var(--dim);letter-spacing:.4px}

.tour{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:196px;gap:11px}
.tour figure{position:relative;border-radius:16px;overflow:hidden;border:1px solid var(--line);margin:0}
.tour figure img{width:100%;height:100%;object-fit:cover;transition:.5s}
.tour figure:hover img{transform:scale(1.07)}
.tour figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 11px;background:linear-gradient(transparent,rgba(6,29,26,.92));color:#fff;font-size:13px;font-weight:600;letter-spacing:.2px}
.tour .w2{grid-column:span 2}
.tour .w4{grid-column:span 4}
.tour .h2{grid-row:span 2}

@media(max-width:980px){
  .row2{grid-template-columns:1fr;gap:32px}
  .row2.flip .row2-media{order:0}
  .row2-media img,.row2-media.tall img,.row2-media.short img{height:380px}
  .row2-media .float-tag{left:14px}
  .statband{grid-template-columns:repeat(2,1fr);gap:28px}
  .tour{grid-template-columns:repeat(2,1fr);grid-auto-rows:168px;gap:10px}
  .tour .w4{grid-column:span 2}
  .band{padding:56px 0}
}
@media(max-width:560px){
  .tour{grid-auto-rows:150px}
  .tour .h2{grid-row:span 2}
}

/* ============ BANNER HERO (Lotus-style: bg photo + cutout + chips) ============ */
.banner-hero{position:relative;overflow:hidden;border-bottom:2px solid var(--teal-2)}
.banner-hero-bg{position:absolute;inset:0;background-size:cover;background-position:center 42%;transform:scale(1.04)}
.banner-hero-overlay{position:absolute;inset:0;background:
  linear-gradient(100deg,rgba(5,24,22,.97) 0%,rgba(7,32,29,.93) 42%,rgba(7,32,29,.7) 68%,rgba(7,32,29,.52) 100%),
  linear-gradient(to top,rgba(6,29,26,.75),transparent 45%)}
.banner-hero .container{position:relative;z-index:2;width:100%}
.bh-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:26px;align-items:end;min-height:340px}
.bh-text{padding:30px 0 32px;align-self:center}
.banner-hero h1{font-size:clamp(29px,3.5vw,44px);line-height:1.12;margin-top:10px}
.banner-hero h1 .accent{display:block;font-style:italic;color:var(--mint)}
.bh-sub{color:var(--dim);font-size:16px;max-width:46ch;margin-top:12px;line-height:1.6}
.bh-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.bh-chip{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.09);border:1px solid rgba(127,232,216,.3);border-radius:50px;padding:9px 16px;font-family:'Poppins',sans-serif;font-weight:600;font-size:13px;color:#fff;letter-spacing:.2px;white-space:nowrap}
.bh-chip i{color:var(--teal-2);font-size:14px}
.bh-chip .g-logo{width:17px;height:17px;flex:none}
.bh-chip .stars{color:var(--gold);letter-spacing:1px;font-size:12.5px}
.bh-chip .cnt{color:var(--dim);font-weight:500;font-size:12.5px}
.bh-cta{display:flex;gap:12px;flex-wrap:wrap;margin-top:20px}
.bh-photo{position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:340px}
.bh-photo img{max-height:342px;width:auto;max-width:100%;filter:drop-shadow(0 26px 54px rgba(0,0,0,.55))}
.bh-namechip{position:absolute;left:-8px;bottom:12px;background:linear-gradient(135deg,#12665B,#0B4740);border:1px solid rgba(127,232,216,.3);border-radius:12px;padding:9px 15px;box-shadow:0 18px 40px rgba(3,18,16,.55)}
.bh-namechip strong{display:block;color:#fff;font-family:'Poppins',sans-serif;font-size:13.5px}
.bh-namechip span{color:var(--mint);font-size:10.5px;letter-spacing:1.5px;text-transform:uppercase;font-weight:600}

@media(max-width:900px){
  .bh-grid{grid-template-columns:1fr;min-height:0}
  .bh-text{padding:26px 0 8px}
  .bh-photo{min-height:0;justify-content:flex-start;align-items:flex-end;gap:14px}
  .bh-photo img{max-height:240px}
  .bh-namechip{position:static;margin-bottom:18px}
  .bh-sub{max-width:none}
}
@media(max-width:560px){
  .bh-photo{display:none}
  .bh-text{padding:24px 0 28px}
  .bh-cta .btn{width:100%;justify-content:center}
}

/* ============================================================
   DYNAMIC LAYER — scroll reveals, marquee reviews, sticky
   mobile call bar, counters, micro-motion.  Added 2026-09-15.
   Everything here degrades to "no motion, still readable" and
   is switched off entirely under prefers-reduced-motion.
   ============================================================ */

/* ---------- scroll reveal ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s cubic-bezier(.22,.7,.3,1),transform .7s cubic-bezier(.22,.7,.3,1)}
.reveal.is-in{opacity:1;transform:none}
.reveal-d1{transition-delay:.08s}
.reveal-d2{transition-delay:.16s}
.reveal-d3{transition-delay:.24s}
.reveal-d4{transition-delay:.32s}
.reveal-d5{transition-delay:.4s}

/* ---------- condensed sticky header on scroll ---------- */
header.nav{transition:box-shadow .3s,padding .3s,background .3s}
header.nav.is-stuck{background:linear-gradient(90deg,rgba(9,52,47,.97) 0%,rgba(6,38,34,.97) 100%);backdrop-filter:blur(10px);box-shadow:0 10px 32px rgba(3,20,18,.6)}
header.nav.is-stuck .brand-logo{height:38px;transition:height .3s}
.brand-logo{transition:height .3s}

/* ---------- hero stat counters ---------- */
.hstat strong{display:inline-block;font-variant-numeric:tabular-nums}
.hero-stats .hstat{transition:transform .25s}
.hero-stats .hstat:hover{transform:translateY(-3px)}
.g-rating{transition:transform .25s,border-color .25s}
.g-rating:hover{transform:translateY(-3px)}

/* ---------- scroll cue under the hero ---------- */
.hero-cue{position:absolute;right:26px;bottom:26px;display:flex;flex-direction:column;align-items:center;gap:9px;color:rgba(255,255,255,.55);font-size:10px;letter-spacing:2.6px;text-transform:uppercase;font-family:'Poppins',sans-serif;z-index:4;writing-mode:vertical-rl;text-orientation:mixed}
.hero-cue i{writing-mode:horizontal-tb}
@media(max-width:860px){.hero-cue{display:none}}
.hero-cue i{animation:cuebob 2.1s ease-in-out infinite}
@keyframes cuebob{0%,100%{transform:translateY(0);opacity:.55}50%{transform:translateY(7px);opacity:1}}

/* ---------- reviews marquee ---------- */
.rev-marquee{position:relative;margin-top:36px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent)}
.rev-track{display:flex;gap:24px;width:max-content;animation:revscroll 64s linear infinite;will-change:transform}
.rev-marquee:hover .rev-track,.rev-marquee:focus-within .rev-track{animation-play-state:paused}
.rev-track .rev-card{width:390px;flex:0 0 390px}
@keyframes revscroll{from{transform:translateX(0)}to{transform:translateX(calc(-50% - 12px))}}
.rev-hint{margin-top:18px;text-align:center;color:var(--dim);font-size:12.5px;letter-spacing:.4px}
.rev-hint i{color:var(--teal-2);margin-right:7px}
@media(max-width:700px){.rev-track .rev-card{width:290px;flex:0 0 290px}.rev-track{animation-duration:48s}}

/* ---------- service cards: sheen + icon lift ---------- */
.svc-card{position:relative;overflow:hidden}
.svc-card::after{content:"";position:absolute;inset:0;background:radial-gradient(420px 160px at var(--mx,50%) var(--my,0%),rgba(51,214,192,.13),transparent 65%);opacity:0;transition:opacity .35s;pointer-events:none}
.svc-card:hover::after{opacity:1}
.svc-card i{transition:transform .3s}
.svc-card:hover i{transform:translateY(-4px) scale(1.08)}

/* ---------- sticky mobile action bar ---------- */
.mobile-bar{position:fixed;left:0;right:0;bottom:0;z-index:90;display:none;gap:10px;padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:rgba(6,35,31,.96);backdrop-filter:blur(12px);border-top:1px solid var(--line);transform:translateY(110%);transition:transform .34s cubic-bezier(.22,.7,.3,1)}
.mobile-bar.is-up{transform:none}
.mobile-bar a{flex:1;justify-content:center;padding:13px 10px;font-size:15px;border-radius:12px}
@media(max-width:860px){
  .mobile-bar{display:flex}
  body{padding-bottom:0}
  body.has-mobile-bar{padding-bottom:74px}
}

/* ---------- back to top ---------- */
.to-top{position:fixed;left:20px;bottom:24px;z-index:80;width:46px;height:46px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--teal-2);display:flex;align-items:center;justify-content:center;cursor:pointer;opacity:0;pointer-events:none;transform:translateY(12px);transition:opacity .3s,transform .3s,background .2s}
.to-top.is-up{opacity:1;pointer-events:auto;transform:none}
.to-top:hover{background:var(--card-hi);color:#fff}
@media(max-width:860px){.to-top{bottom:88px;left:14px;width:42px;height:42px}}

/* ---------- FAQ indicator + row feedback ---------- */
.faq-q::after{transition:transform .3s,color .2s}
.faq-item.open .faq-q::after{transform:translateY(-50%) rotate(180deg)}
.faq-q:hover{background:rgba(51,214,192,.05)}
.faq-item{transition:border-color .25s,background .25s}
.faq-item.open{border-color:rgba(51,214,192,.34)}

/* ---------- reduced motion: turn all of it off ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .rev-track{animation:none;width:100%;overflow-x:auto;flex-wrap:nowrap}
  .rev-marquee{-webkit-mask-image:none;mask-image:none;overflow-x:auto}
  .hero-slide,.hero-bg,.hero-cue i{animation:none!important}
  .mobile-bar{transition:none}
  *{scroll-behavior:auto}
}

/* ============================================================
   HERO PHOTO WALL — two columns of real office photos looping
   in opposite directions (the Lotus Dental pattern).
   ============================================================ */
/* Explicit height, never 100%/stretch: the column has no definite-height
   ancestor, so a percentage resolves to auto and the stacked tiles' own
   content height blows the hero up to ~2500px (hit this exact trap). The
   column centres the wall so there is no dead space. Edges are faded with a MASK
   rather than a colour overlay, so they blend into the hero gradient whatever
   colour sits behind them. */
.hero-photowall{display:flex;gap:16px;width:100%;max-width:470px;margin-left:auto;height:clamp(540px,70vh,660px);overflow:hidden;position:relative;z-index:1;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 13%,#000 87%,transparent 100%);
  mask-image:linear-gradient(180deg,transparent 0%,#000 13%,#000 87%,transparent 100%)}
.pw-col{flex:1;overflow:hidden}
.pw-track{display:flex;flex-direction:column;gap:16px;animation:pwScroll 34s linear infinite;will-change:transform}
/* column A runs bottom-to-top, column B top-to-bottom */
.pw-col-a .pw-track{animation-direction:reverse}
@keyframes pwScroll{from{transform:translateY(-50%)}to{transform:translateY(0)}}
.pw-tile{flex-shrink:0;width:100%;aspect-ratio:3/4;border-radius:14px;overflow:hidden;border:1px solid var(--line);box-shadow:0 14px 32px rgba(0,0,0,.42)}
.pw-tile img{width:100%;height:100%;object-fit:cover;display:block}
.hero-photowall:hover .pw-track{animation-play-state:paused}
@media(max-width:860px){
  .hero-photowall{max-width:330px;height:330px;min-height:0;margin:0 auto;gap:12px;
    -webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 11%,#000 89%,transparent 100%);
    mask-image:linear-gradient(180deg,transparent 0%,#000 11%,#000 89%,transparent 100%)}
  .pw-col-b{margin-top:-38px}
  .pw-tile{border-radius:11px}
  .pw-track{gap:12px;animation-duration:26s}
}
@media(prefers-reduced-motion:reduce){.pw-track{animation:none}}

/* ============================================================
   LIGHT GREEN THEME — 2026-09-27. Pale-green ground taken from the
   VisitorPlans light-green email (#E9F4E1 / #D3E5C8 / #1E4A2B).
   Pure override layer: delete this block to get the dark theme back.
   Header, footer, CTA bands and photo overlays stay deep green, so
   white type (and the white logo) keep their contrast there.
   ============================================================ */
:root{
  --bg:#E9F4E1;          /* page ground */
  --bg-2:#D3E5C8;        /* alternate section */
  --ink:#1E4A2B;         /* headings */
  --body:#33503A;        /* body text */
  --muted:#5B7562;       /* secondary text */
  --deep:#1E4A2B;        /* dark bands */
  --deep-2:#163A21;
  --acc:#0E8F7E;         /* SCFD teal, darkened for text on light */
  --lline:rgba(30,74,43,.14);
  --text:var(--body);
  --dim:var(--muted);
  --card:#FFFFFF;
  --card-hi:#FFFFFF;
  --line:var(--lline);
  --dark-2:var(--bg-2);
}
body{background:var(--bg);color:var(--body)}
h1,h2,h3,h4,.heading,.svc-card h3,.prose h3,.team-card h2{color:var(--ink)}
.heading .accent,.hero h1 .accent,.banner-hero h1 .accent,.cta .accent{color:var(--acc)}
.eyebrow,.hero-eyebrow,.team-role,.crumbs a,.crumb-bar a,.svc-tile .go,.svc-tile i,.aside-list i,.aside-phone i,.cinfo i,.trust-item i,.svc-icon,.rev-card .quote,.pullquote .mark,.pullquote cite,.faq-q::after,.prose ul li::before,.rev-hint i,.seal i{color:var(--acc)}
.eyebrow::before,.eyebrow.center::after,.hero-eyebrow::before{background:var(--acc)}
.section-alt,.band-alt{background:var(--bg-2)}
a.btn-outline{color:var(--acc);border-color:rgba(14,143,126,.5)}
.btn-primary{background:linear-gradient(135deg,#14A893,#0B7F70);color:#fff;box-shadow:0 10px 26px rgba(14,143,126,.28)}
.btn-ghost{background:#fff;color:var(--ink);border-color:rgba(30,74,43,.25)}
.btn-ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}

/* cards on the light ground */
.rev-card,.svc-card,.svc-tile,.rel-card,.aside-card,.faq-item,.callout,.form-card,.team-card,.seal,.rev-score,.blog-card{background:#fff;border-color:var(--lline);box-shadow:0 8px 24px rgba(30,74,43,.07)}
.rev-card:hover,.svc-card:hover,.svc-tile:hover{background:#fff;border-color:rgba(14,143,126,.4)}
.rev-card p{color:var(--body)}
.rev-meta strong,.cinfo strong,.hours-row strong,.aside-phone,.faq-q,.rev-score .big,.statband .st strong,.pullquote p,.sig,.prose strong{color:var(--ink)}
.rev-avatar{color:#fff;background:linear-gradient(135deg,#14A893,#0B7F70)}
.svc-icon,.trust-item i,.cinfo i{background:rgba(14,143,126,.1);border-color:var(--lline)}
.cred{background:rgba(14,143,126,.1);color:var(--acc);border-color:var(--lline)}
.form-card input,.form-card select,.form-card textarea{background:var(--bg);color:var(--ink);border-color:var(--lline)}
.to-top{background:#fff;color:var(--acc)}
.to-top:hover{background:var(--acc);color:#fff}
.faq-q:hover{background:rgba(14,143,126,.06)}

/* strips */
.trust{background:#fff;border-bottom:1px solid var(--lline)}
.trust-item strong{color:var(--ink)}
.crumb-bar{background:var(--bg-2);border-bottom:1px solid var(--lline)}
.slim-hero{background:linear-gradient(115deg,#D3E5C8 0%,#E9F4E1 70%)}
.slim-hero::after{background:radial-gradient(circle at 40% 40%,rgba(14,143,126,.14),transparent 68%)}
.slim-hero .kicker{color:var(--body)}

/* home hero: light gradient instead of the deep teal one */
.hero-solid{background:linear-gradient(115deg,#E9F4E1 0%,#DCEDD2 50%,#C9E0BB 100%)}
.hero-solid::after{background:radial-gradient(900px 480px at 18% 26%,rgba(14,143,126,.12),transparent 62%)}
.hero-embed .hero-overlay{background:none}
.hero h1{color:var(--ink);text-shadow:none}
.hero-sub{color:var(--body)}
.hero-divider{background:var(--lline)}
.hstat strong{color:var(--ink)}
.hstat span{color:var(--muted)}
.hero-cue{color:var(--muted)}
.pw-tile{box-shadow:0 14px 30px rgba(30,74,43,.2);border-color:rgba(255,255,255,.7)}
.g-rating{box-shadow:0 10px 26px rgba(30,74,43,.14)}

/* meet-your-dentist cutout panel + floating badges */
.dentist-photo .frame{box-shadow:0 26px 60px rgba(30,74,43,.22)}
.dentist-photo .frame.is-cutout{background:linear-gradient(165deg,#CFE6C2 0%,#B9D9A9 60%,#A6CE95 100%)}
.dentist-photo .frame.is-cutout img{filter:drop-shadow(0 18px 34px rgba(30,74,43,.3))}
.dentist-photo .frame img{background:#DCEDD2}
.badge-float{background:#fff;box-shadow:0 16px 36px rgba(30,74,43,.18)}
.badge-float .bn{color:var(--acc)}
.row2-media img{box-shadow:0 26px 56px rgba(30,74,43,.2)}
.team-card .tphoto.no-photo{background:linear-gradient(135deg,#CFE6C2,#B9D9A9)}

/* the parts that stay deep green (white type) */
.topbar{background:var(--deep-2);color:rgba(255,255,255,.85)}
.topbar a{color:#BFE8C9}
header.nav,header.nav.is-stuck{background:linear-gradient(90deg,#1E4A2B 0%,#163A21 100%);border-bottom-color:#7BC24C}
.dropdown{background:#1E4A2B}
.drawer{background:#1E4A2B}
footer{background:var(--deep-2);color:rgba(255,255,255,.72);border-top:none}
footer a{color:rgba(255,255,255,.72)}
footer a:hover{color:#BFE8C9}
footer h4{color:#fff}
.foot-bottom{color:rgba(255,255,255,.5)}
footer .foot-li i{color:#9ED67A}
.cta-overlay{background:linear-gradient(135deg,rgba(30,74,43,.94),rgba(22,58,33,.9))}
.cta h2{color:#fff}
.cta .accent{color:#BFE8C9}
.cta p{color:rgba(255,255,255,.88)}
.cta .btn-ghost{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.4)}
.cta .btn-ghost:hover{background:#fff;color:var(--ink)}
.page-hero-overlay,.banner-hero-overlay{background:linear-gradient(100deg,rgba(22,58,33,.95) 0%,rgba(30,74,43,.88) 45%,rgba(30,74,43,.6) 100%)}
.page-hero h1,.banner-hero h1,.page-hero p,.bh-sub,.banner-hero .crumbs{color:#fff}
.banner-hero h1 .accent{color:#BFE8C9}
.banner-hero{border-bottom-color:#7BC24C}
.float-tag,.bh-namechip,.gal-feature-card{background:linear-gradient(135deg,#1E4A2B,#163A21)}
.gal-feature-card h3,.float-tag strong{color:#fff}
.mobile-bar{background:rgba(22,58,33,.97)}
.hero-name-chip{background:rgba(30,74,43,.85)}

/* reviews header: Google + Yelp side by side */
.rev-scores{display:flex;gap:14px;flex-wrap:wrap}
.rev-score .src a{color:var(--acc);text-decoration:underline}
.rev-when{display:block;font-size:11.5px;color:var(--muted);margin-top:2px}

/* blog */
.blog-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px}
.blog-card{display:flex;flex-direction:column;border:1px solid var(--lline);border-radius:18px;overflow:hidden;transition:.22s}
.blog-card:hover{transform:translateY(-4px);border-color:rgba(14,143,126,.4)}
.blog-img img{width:100%;height:240px;object-fit:cover}
.blog-txt{padding:24px 26px 28px}
.blog-date{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--acc);font-weight:700}
.blog-txt h2{font-size:24px;margin:10px 0 10px}
.blog-txt p{color:var(--body);font-size:15px;margin:0 0 14px}
.blog-txt .go{color:var(--acc);font-weight:700;font-family:'Poppins',sans-serif;font-size:14px}
@media(max-width:760px){.blog-grid{grid-template-columns:1fr}}

/* nav fits Blog without wrapping; footer's 4 columns on one row */
.nav-links a{white-space:nowrap;padding:9px 12px;letter-spacing:.7px;font-size:14.5px}
.nav-phone{white-space:nowrap}
.nav-links{gap:2px}
@media(max-width:1320px){.nav-phone{display:none}}
.foot-grid{grid-template-columns:1.4fr 1fr 1fr 1.1fr}
@media(max-width:980px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.foot-grid{grid-template-columns:1fr}}

/* Readable numbers: Playfair + Raleway default to old-style figures (399, 5,000
   dip below the baseline like lowercase). Force full-height lining figures
   everywhere. Stat numbers use Lora and small numeric labels use Inter,
   matching the AIDM events page. */
html,body,h1,h2,h3,h4,input,select,textarea,button{font-variant-numeric:lining-nums;font-feature-settings:"lnum" 1}
.hstat strong,.g-rating .g-top strong,.rev-score .big,.badge-float .bn,.statband .st strong,.num-lora{font-family:'Lora',Georgia,serif;font-weight:400;letter-spacing:-.3px;font-variant-numeric:lining-nums proportional-nums}
.hstat strong{font-size:40px}
.g-rating .g-top strong{font-size:30px}
.rev-score .big{font-size:46px}
.g-rating .g-sub,.hstat span,.rev-score .src,.badge-float .bl,.statband .st span,.rev-when,.blog-date{font-family:'Inter',sans-serif;font-weight:600;letter-spacing:.7px;font-variant-numeric:lining-nums}

/* Photo wall: both team photos live in column A, three tiles apart (~650px),
   so they are never on screen together. Column A has 6 tiles vs B's 4, so
   its loop runs 1.5x longer to keep the same scroll speed. */
.pw-col-a .pw-track{animation-duration:51s}
@media(max-width:860px){.pw-col-a .pw-track{animation-duration:39s}}

/* Lead form: honeypot field (bots fill it, people never see it) + reCAPTCHA v2 tickbox.
   The tickbox is a fixed 304px wide, so scale it down on very narrow phones. */
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
#lead-form .g-recaptcha{margin:2px 0 14px}
@media(max-width:380px){#lead-form .g-recaptcha{transform:scale(.88);transform-origin:0 0}}
