/* ==========================================================================
   Roots Dental Care — styles
   Palette: teal / red / white (approved). Fonts: Schibsted Grotesk + Hanken Grotesk.
   Premium layer: light glassmorphism + depth (technique adapted from the
   Esthétique Le Divine build, reskinned to Roots' brand — no gold, no dark base).
   ========================================================================== */
:root{
  --white:#FFFFFF;
  --paper:#F5F9F9;
  --ink:#0F2A2C;
  --muted:#5E7674;
  --line:#E2ECEB;
  --teal:#0E7C86;
  --teal-deep:#0B3B40;
  --teal-tint:#E4F1F1;
  --red:#D62F26;
  --red-tint:#FCEAE8;

  /* glass system (light) */
  --glass-bg:linear-gradient(145deg, rgba(255,255,255,.74) 0%, rgba(240,247,247,.55) 100%);
  --glass-bg-hover:linear-gradient(145deg, rgba(255,255,255,.9) 0%, rgba(240,247,247,.72) 100%);
  --glass-border:rgba(14,124,134,.16);
  --glass-hi:rgba(255,255,255,.9);
  --glass-blur:blur(16px);
  --glass-shadow:0 20px 45px rgba(11,59,64,.10), inset 0 1px 0 rgba(255,255,255,.85);
  --glass-shadow-hover:0 26px 55px rgba(11,59,64,.16), 0 0 0 1px rgba(14,124,134,.10), inset 0 1px 0 rgba(255,255,255,.95);

  --shadow-sm:0 1px 2px rgba(15,42,44,.05), 0 4px 14px rgba(15,42,44,.05);
  --r:11px;
  --sans:"Hanken Grotesk",system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  --head:"Schibsted Grotesk","Hanken Grotesk",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,monospace;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--white); color:var(--ink); font-family:var(--sans);
  font-size:16px; line-height:1.6; -webkit-font-smoothing:antialiased; position:relative;
}
/* Ambient backdrop so frosted glass has something to refract — base stays white */
body::before{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none;
  background:
    radial-gradient(620px 440px at 10% 6%, rgba(14,124,134,.07), transparent 60%),
    radial-gradient(520px 520px at 90% 26%, rgba(214,47,38,.045), transparent 62%),
    radial-gradient(640px 520px at 72% 96%, rgba(14,124,134,.06), transparent 60%),
    linear-gradient(rgba(14,124,134,.022) 1px, transparent 1px),
    linear-gradient(90deg, rgba(14,124,134,.022) 1px, transparent 1px);
  background-size:auto, auto, auto, 64px 64px, 64px 64px;
}
.wrap{max-width:1180px; margin:0 auto; padding:0 26px;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block;}
h1,h2,h3{font-family:var(--head); font-weight:700; margin:0; letter-spacing:-.022em; text-wrap:balance; color:var(--ink);}
h2{font-size:clamp(1.75rem,3.6vw,2.6rem); line-height:1.06;}
h3{font-size:1.1rem; font-weight:600; letter-spacing:-.015em;}
p{margin:0;}
.eyebrow{font-family:var(--mono); font-size:.72rem; font-weight:500; letter-spacing:.18em; text-transform:uppercase; color:var(--teal);}
.lede{color:var(--muted); font-size:1.06rem;}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); border:0;}

/* ---- glass helpers ---- */
.glass{
  background:var(--glass-bg);
  backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border);
  border-top-color:var(--glass-hi);
  border-left-color:rgba(255,255,255,.7);
  box-shadow:var(--glass-shadow);
  border-radius:var(--r);
  position:relative; overflow:hidden;
}
/* thin brand accent that wipes in on hover (adapted from eld .luxury-card::before) */
.glass::before{
  content:""; position:absolute; top:0; left:0; height:3px; width:100%;
  background:linear-gradient(90deg, var(--teal), rgba(14,124,134,.15));
  transform:scaleX(0); transform-origin:left; transition:transform .4s ease;
}
.glass:hover::before{ transform:scaleX(1); }

/* buttons */
.btn{position:relative; overflow:hidden; display:inline-flex; align-items:center; justify-content:center; gap:9px; font-family:var(--head); font-weight:600; font-size:.95rem; padding:13px 22px; border-radius:11px; cursor:pointer; border:1px solid transparent; transition:transform .15s ease, box-shadow .15s ease, background .2s ease;}
.btn::after{content:""; position:absolute; top:0; left:-120%; width:55%; height:100%; background:linear-gradient(120deg, transparent, rgba(255,255,255,.4), transparent); transform:skewX(-20deg); pointer-events:none;}
.btn:hover::after{animation:btnShine .7s ease;}
@keyframes btnShine{to{left:135%;}}
@keyframes ctaPulse{0%,100%{box-shadow:0 6px 18px rgba(214,47,38,.26);}50%{box-shadow:0 9px 26px rgba(214,47,38,.5);}}
.btn-red{background:linear-gradient(135deg,#E5453C 0%,#D62F26 55%,#B41F18 100%); color:#fff; box-shadow:0 6px 18px rgba(214,47,38,.26); animation:ctaPulse 2.4s ease-in-out infinite;}
.btn-red:hover{transform:translateY(-2px); box-shadow:0 12px 28px rgba(214,47,38,.38); animation:none;}
.btn-teal{background:linear-gradient(135deg,#149AA6 0%,#0E7C86 55%,#0B5C64 100%); color:#fff; box-shadow:0 6px 18px rgba(14,124,134,.24);}
.btn-teal:hover{transform:translateY(-2px); box-shadow:0 12px 28px rgba(14,124,134,.36);}
.btn-ghost{background:rgba(255,255,255,.5); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); color:var(--ink); border-color:var(--glass-border);}
.btn-ghost:hover{border-color:var(--teal); color:var(--teal); transform:translateY(-2px);}

/* header */
header{position:sticky; top:0; z-index:60; background:rgba(255,255,255,.72); backdrop-filter:saturate(1.5) blur(14px); -webkit-backdrop-filter:saturate(1.5) blur(14px); border-bottom:1px solid var(--glass-border);}
.nav{display:flex; align-items:center; justify-content:space-between; height:70px;}
.brand{display:flex; align-items:center; gap:11px;}
.brand .name{font-family:var(--head); font-weight:700; font-size:1.1rem; line-height:1; letter-spacing:-.01em; white-space:nowrap; color:var(--ink);}
.brand .name small{display:block; font-family:var(--mono); font-size:.56rem; letter-spacing:.22em; color:var(--teal); margin-top:4px; font-weight:500;}
.nav-links{display:flex; gap:28px; align-items:center;}
.nav-links a{font-size:.92rem; color:#33514F; font-weight:500;}
.nav-links a:hover{color:var(--teal);}
.menu-only{display:none;}
.nav-cta{display:flex; align-items:center; gap:14px;}
.nav-phone{font-family:var(--mono); font-size:.86rem; color:var(--ink); font-weight:500;}
.menu-btn{display:none; background:none; border:1px solid var(--line); border-radius:10px; width:42px; height:42px; cursor:pointer; align-items:center; justify-content:center;}
.menu-btn svg{width:20px; height:20px; stroke:var(--ink);}
.badge{width:38px; height:38px; border-radius:50%; background:linear-gradient(145deg,#149AA6,#0B5C64); display:grid; place-items:center; flex:none; box-shadow:0 4px 12px rgba(14,124,134,.3), inset 0 1px 0 rgba(255,255,255,.35);}
.badge svg{width:22px; height:22px;}
.brand-logo{width:46px; height:46px; border-radius:50%; flex:none; display:block;}
.f-logo{width:60px; height:60px; margin-bottom:14px;}
@media(max-width:900px){
  .nav-links,.nav-phone{display:none;}
  .menu-btn{display:inline-flex;}
  .nav-cta .btn-red{display:none;}          /* Book moves into the menu on mobile */
  .nav-links.open{display:flex; position:absolute; top:70px; left:0; right:0; flex-direction:column; gap:0; background:#ffffff; border-bottom:1px solid var(--line); padding:8px 0; box-shadow:0 14px 26px rgba(11,59,64,.14);}
  .nav-links.open a{padding:13px 26px; width:100%; color:var(--ink);}
  .nav-links.open .menu-only{display:block;}
  .nav-links.open .menu-only.book{color:var(--red); font-weight:700;}
}

/* hero */
.hero{padding:64px 0 54px;}
.hero-grid{display:grid; grid-template-columns:1.15fr .85fr; gap:54px; align-items:center;}
.offer-tag{display:inline-flex; align-items:center; gap:9px; background:var(--red-tint); color:var(--red); border:1px solid #F3C9C4; font-weight:600; font-size:.82rem; padding:7px 14px; border-radius:9px; margin-bottom:22px; box-shadow:0 4px 14px rgba(214,47,38,.1);}
.offer-tag .dotpulse{width:8px; height:8px; border-radius:50%; background:var(--red); box-shadow:0 0 0 0 rgba(214,47,38,.5); animation:pulse 2s infinite;}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(214,47,38,.45);}70%{box-shadow:0 0 0 8px rgba(214,47,38,0);}100%{box-shadow:0 0 0 0 rgba(214,47,38,0);}}
.hero h1{font-size:clamp(2.35rem,4.9vw,3.55rem); line-height:1.0; margin-bottom:20px; font-weight:800; letter-spacing:-.03em;}
.hero h1 em{font-style:normal; color:var(--teal);}
.hero .lede{max-width:46ch; margin-bottom:26px;}
.trust-row{display:flex; flex-wrap:wrap; gap:10px; margin-top:30px;}
.trust-chip{font-size:.8rem; color:var(--ink); background:rgba(255,255,255,.6); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border:1px solid var(--glass-border); border-top-color:var(--glass-hi); padding:7px 13px; border-radius:9px; display:inline-flex; gap:7px; align-items:center; box-shadow:0 4px 12px rgba(11,59,64,.05);}
.trust-chip b{color:var(--teal); font-weight:700;}

/* hero form — the showpiece glass card */
.form-card{
  background:linear-gradient(145deg, rgba(255,255,255,.82) 0%, rgba(238,246,246,.62) 100%);
  backdrop-filter:blur(22px); -webkit-backdrop-filter:blur(22px);
  border:1px solid var(--glass-border); border-top-color:var(--glass-hi); border-left-color:rgba(255,255,255,.7);
  border-radius:14px; padding:26px; scroll-margin-top:90px;
  box-shadow:0 30px 60px -18px rgba(11,59,64,.28), 0 0 0 1px rgba(14,124,134,.04), inset 0 1px 0 rgba(255,255,255,.9);
}
.form-card h3{font-family:var(--head); font-size:1.3rem; font-weight:700; margin-bottom:4px;}
.form-card .sub{color:var(--muted); font-size:.88rem; margin-bottom:18px;}
.field{margin-bottom:12px;}
.field label{display:block; font-size:.72rem; font-family:var(--mono); letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:6px;}
.field input,.field select{
  width:100%; padding:12px 13px; border-radius:10px; font-family:inherit; font-size:.95rem; color:var(--ink);
  background:rgba(255,255,255,.5); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(14,124,134,.14); border-bottom-color:rgba(14,124,134,.28);
  box-shadow:inset 0 2px 5px rgba(11,59,64,.06); appearance:none; transition:all .25s ease;
}
.field input:focus,.field select:focus{outline:none; border-color:var(--teal); background:rgba(255,255,255,.75); box-shadow:inset 0 2px 5px rgba(11,59,64,.05), 0 0 0 3px rgba(14,124,134,.14);}
.field input.invalid{border-color:var(--red); box-shadow:0 0 0 3px rgba(214,47,38,.12);}
.form-card .btn{width:100%; margin-top:6px;}
.form-note{font-size:.78rem; color:var(--muted); margin-top:12px; text-align:center; line-height:1.5;}
.form-ok{display:none; background:var(--teal-tint); border:1px solid #BFE1E1; color:var(--teal-deep); border-radius:12px; padding:14px; font-size:.9rem; margin-top:12px;}
@media(max-width:860px){ .hero-grid{grid-template-columns:1fr; gap:36px;} }

/* sections */
section.block{padding:72px 0; border-top:1px solid var(--line);}
.sec-top{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; margin-bottom:38px;}
.sec-top .eyebrow{display:block; margin-bottom:12px;}
.sec-top p{color:var(--muted); max-width:40ch; margin-top:10px;}
.sec-top h2{max-width:22ch;}

.svc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.svc{
  background:var(--glass-bg); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border); border-top-color:var(--glass-hi); border-left-color:rgba(255,255,255,.7);
  border-radius:var(--r); padding:22px; position:relative; overflow:hidden;
  box-shadow:var(--glass-shadow); transition:transform .3s cubic-bezier(.16,1,.3,1), box-shadow .3s ease, background .3s ease;
}
.svc::before{content:""; position:absolute; top:0; left:0; height:3px; width:100%; background:linear-gradient(90deg,var(--teal),rgba(14,124,134,.15)); transform:scaleX(0); transform-origin:left; transition:transform .4s ease;}
.svc:hover{transform:translateY(-5px); background:var(--glass-bg-hover); box-shadow:var(--glass-shadow-hover);}
.svc:hover::before{transform:scaleX(1);}
.svc .ico{width:40px; height:40px; border-radius:11px; background:linear-gradient(145deg,rgba(228,241,241,.9),rgba(207,231,231,.7)); display:grid; place-items:center; margin-bottom:16px; box-shadow:inset 0 1px 0 rgba(255,255,255,.8);}
.svc .ico svg{width:21px; height:21px;}
.svc h3{margin-bottom:7px;}
.svc p{color:var(--muted); font-size:.9rem; margin-bottom:14px;}
.svc a{font-family:var(--head); font-size:.82rem; font-weight:600; color:var(--teal); display:inline-flex; align-items:center; gap:6px;}
.svc a:hover{gap:9px;}
@media(max-width:860px){ .svc-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:560px){ .svc-grid{grid-template-columns:1fr;} }

.why{position:relative;}
.usp-grid{display:grid; grid-template-columns:repeat(5,1fr); gap:16px;}
.usp{
  background:var(--glass-bg); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border); border-top-color:var(--glass-hi); border-radius:10px; padding:20px 18px;
  box-shadow:var(--glass-shadow); transition:transform .3s ease, box-shadow .3s ease;
}
.usp:hover{transform:translateY(-4px); box-shadow:var(--glass-shadow-hover);}
.usp .n{font-family:var(--mono); font-size:.72rem; color:var(--red); letter-spacing:.1em;}
.usp h3{font-size:1rem; margin:12px 0 7px;}
.usp p{font-size:.85rem; color:var(--muted);}
@media(max-width:960px){ .usp-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .usp-grid{grid-template-columns:1fr;} }

.doc-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:18px;}
.doc{
  background:var(--glass-bg); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border); border-top-color:var(--glass-hi); border-radius:var(--r); overflow:hidden;
  box-shadow:var(--glass-shadow); transition:transform .3s ease, box-shadow .3s ease;
}
.doc:hover{transform:translateY(-5px); box-shadow:var(--glass-shadow-hover);}
.doc .ph{height:260px; background:linear-gradient(160deg,#E4F1F1,#CFE7E7); display:grid; place-items:center; position:relative; overflow:hidden;}
.doc .ph img{width:100%; height:100%; object-fit:cover; object-position:center 18%;}
.doc .ph-cap{position:absolute; left:0; right:0; bottom:0; padding:16px 16px 13px; background:linear-gradient(0deg, rgba(11,59,64,.92) 0%, rgba(11,59,64,.55) 55%, rgba(11,59,64,0) 100%);}
.doc .ph-cap h3{color:#fff; font-size:1.05rem; margin:0 0 2px;}
.doc .ph-cap .role{color:#7FE0E6; font-size:.76rem; font-weight:600; letter-spacing:.01em;}
.doc .ph .init{font-family:var(--head); font-size:2rem; color:var(--teal); font-weight:700; text-shadow:0 1px 0 rgba(255,255,255,.6);}
.doc .ph .cam{position:absolute; bottom:8px; right:10px; font-family:var(--mono); font-size:.6rem; letter-spacing:.1em; color:var(--teal); background:rgba(255,255,255,.75); padding:3px 7px; border-radius:6px;}
.doc .body{padding:18px;}
.doc h3{font-size:1.05rem; margin-bottom:3px;}
.doc .role{font-size:.8rem; color:var(--red); font-weight:600; margin-bottom:10px;}
.doc .cred{font-size:.83rem; color:var(--muted); margin-bottom:14px; min-height:78px;}
.doc a{font-family:var(--head); font-size:.8rem; font-weight:600; color:var(--teal);}
@media(max-width:900px){ .doc-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .doc-grid{grid-template-columns:1fr;} .doc .cred{min-height:0;} }

/* reassurance band — the one dark moment, glass tiles on deep teal */
.band{background:linear-gradient(160deg,#0B3B40 0%,#082B2F 100%); color:#EAF6F5; border:none; position:relative; overflow:hidden;}
.band::after{content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(500px 400px at 85% 10%, rgba(53,176,186,.14), transparent 60%);}
.band .eyebrow{color:#5FD0CE;}
.band h2{color:#fff; max-width:18ch;}
.band-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:48px; align-items:center; position:relative; z-index:1;}
.band .big{font-size:clamp(1.4rem,2.8vw,1.85rem); line-height:1.28; color:#fff; font-weight:500; font-family:var(--head); letter-spacing:-.015em;}
.reassure-list{display:flex; flex-direction:column; gap:14px; margin-top:8px;}
.ritem{display:flex; gap:14px; align-items:flex-start; background:linear-gradient(145deg,rgba(255,255,255,.08),rgba(255,255,255,.03)); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border:1px solid rgba(255,255,255,.12); border-top-color:rgba(255,255,255,.22); border-radius:12px; padding:14px 16px; box-shadow:inset 0 1px 0 rgba(255,255,255,.1);}
.ritem .rp{color:#5FD0CE; font-weight:700; font-size:1.15rem; line-height:1.25; flex:none;}
.ritem b{color:#fff; font-weight:600;}
.ritem span{color:#B9D9D7; font-size:.92rem;}
@media(max-width:820px){ .band-grid{grid-template-columns:1fr; gap:28px;} }

.rev-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.rev{
  background:var(--glass-bg); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--glass-border); border-top-color:var(--glass-hi); border-radius:var(--r); padding:22px;
  box-shadow:var(--glass-shadow); transition:transform .3s ease, box-shadow .3s ease;
}
.rev:hover{transform:translateY(-4px); box-shadow:var(--glass-shadow-hover);}
.stars{color:#F2A900; letter-spacing:2px; font-size:.9rem; margin-bottom:12px;}
.rev p{font-size:.94rem; color:var(--ink); margin-bottom:16px; line-height:1.55;}
.rev .who{font-size:.82rem; color:var(--muted);}
.rev .who b{color:var(--ink);}
.google{display:inline-flex; align-items:center; gap:10px; background:rgba(255,255,255,.6); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); border:1px solid var(--glass-border); border-radius:9px; padding:8px 16px; font-size:.85rem; box-shadow:0 4px 12px rgba(11,59,64,.05);}
.google b{color:var(--ink);}
@media(max-width:820px){ .rev-grid{grid-template-columns:1fr;} }

.loc-grid{display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:stretch;}
.map-embed{border-radius:var(--r); border:1px solid var(--glass-border); overflow:hidden; min-height:320px; box-shadow:var(--glass-shadow);}
.map-embed iframe{width:100%; height:100%; min-height:320px; border:0; display:block;}
.hours{width:100%; border-collapse:collapse; margin-top:6px;}
.hours td{padding:9px 0; border-bottom:1px solid var(--line); font-size:.92rem;}
.hours td:last-child{text-align:right; font-family:var(--mono); color:var(--muted);}
.hours tr:last-child td{border-bottom:none;}
.addr{font-size:.98rem; color:var(--ink); line-height:1.6; margin-bottom:18px;}
.addr .lbl{font-family:var(--mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); display:block; margin-bottom:5px;}
.contact-btns{display:flex; gap:12px; flex-wrap:wrap; margin-top:20px;}
@media(max-width:820px){ .loc-grid{grid-template-columns:1fr;} }

.final{background:linear-gradient(160deg,#E9F4F4 0%,#DDEFEF 100%); text-align:center; position:relative; overflow:hidden;}
.final::after{content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(500px 300px at 50% 120%, rgba(14,124,134,.12), transparent 60%);}
.final .wrap{position:relative; z-index:1;}
.final h2{max-width:20ch; margin:0 auto 14px;}
.final p{color:var(--muted); max-width:48ch; margin:0 auto 26px;}
.final .btns{display:flex; gap:14px; justify-content:center; flex-wrap:wrap;}

footer.f{background:linear-gradient(160deg,#0B3B40,#082B2F); color:#B9D9D7; padding:56px 0 30px;}
.f-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1.1fr; gap:34px;}
footer.f h4{font-family:var(--mono); font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:#5FD0CE; margin:0 0 16px; font-weight:500;}
footer.f a,footer.f p{color:#B9D9D7; font-size:.9rem; display:block; margin-bottom:9px;}
footer.f a:hover{color:#fff;}
.f-brand .name{font-family:var(--head); font-weight:700; color:#fff; font-size:1.2rem; margin-bottom:12px;}
.f-bot{border-top:1px solid rgba(255,255,255,.12); margin-top:40px; padding-top:22px; font-size:.8rem; color:#8FBAB8; display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px;}
@media(max-width:820px){ .f-grid{grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .f-grid{grid-template-columns:1fr;} }

.wa-float{position:fixed; bottom:22px; right:22px; z-index:70; display:flex; align-items:center; gap:10px; background:#25603f; color:#fff; padding:12px 18px; border-radius:999px; font-family:var(--head); font-weight:600; font-size:.9rem; box-shadow:0 10px 28px rgba(37,96,63,.4), inset 0 1px 0 rgba(255,255,255,.2); transition:transform .3s ease; animation:float 4s ease-in-out infinite;}
.wa-float:hover{transform:translateY(-3px);}
@keyframes float{0%{transform:translateY(0);}50%{transform:translateY(-6px);}100%{transform:translateY(0);}}
@media(max-width:560px){ .wa-float span{display:none;} .wa-float{padding:14px; border-radius:50%;} }

/* subtle reveal */
.reveal{opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease;}
.reveal.in{opacity:1; transform:none;}
@media(prefers-reduced-motion:reduce){
  *{transition:none!important; animation:none!important; scroll-behavior:auto;}
  .reveal{opacity:1; transform:none;}
}

/* ===== VIDEO HERO ===== */
.hero-video{position:relative; min-height:clamp(520px,84vh,760px); display:flex; align-items:center; overflow:hidden; background:#08201f;}
.hero-bg{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0;}
.hero-scrim{position:absolute; inset:0; z-index:1; background:
  linear-gradient(90deg, rgba(7,27,29,.88) 0%, rgba(7,27,29,.64) 30%, rgba(7,27,29,.22) 58%, rgba(7,27,29,0) 80%),
  linear-gradient(0deg, rgba(7,27,29,.5) 0%, rgba(7,27,29,0) 32%);}
.hero-content{position:relative; z-index:2; color:#fff; padding-top:44px; padding-bottom:44px; display:grid; grid-template-columns:1.06fr .94fr; gap:46px; align-items:center;}
.hero-left{min-width:0;}
@media(max-width:900px){ .hero-content{grid-template-columns:1fr; gap:26px;} }
.hero-content .offer-tag{background:rgba(214,47,38,.18); color:#ffd9d5; border-color:rgba(255,255,255,.2); box-shadow:none;}
.hero-content h1{color:#fff; font-size:clamp(2.3rem,5.4vw,4.05rem); line-height:1.02; font-weight:800; letter-spacing:-.03em; margin:16px 0 16px; max-width:15ch;}
.hero-content h1 .accent{display:inline-block; position:relative; color:#F0483F; margin-top:4px;}
.hero-content h1 .accent .swoosh{position:absolute; left:0; bottom:-.34em; width:100%; height:.42em; color:#F0483F; overflow:visible;}
.hero-sub{font-family:var(--head); font-weight:600; font-size:clamp(1rem,1.9vw,1.3rem); color:#EAF3F2; max-width:38ch; text-shadow:0 1px 14px rgba(0,0,0,.45);}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap; margin-top:30px;}
.btn-glass{background:rgba(255,255,255,.14); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); color:#fff; border-color:rgba(255,255,255,.4);}
.btn-glass:hover{background:rgba(255,255,255,.24); transform:translateY(-2px);}
@media(max-width:600px){ .hero-content h1,.hero-sub{max-width:100%;} .hero-video{min-height:78vh;} }

/* ===== FLOATING SIDE ACTIONS ===== */
.side-actions{position:fixed; right:16px; top:50%; transform:translateY(-50%); z-index:66; display:flex; flex-direction:column; gap:12px;}
.fab{width:52px; height:52px; border-radius:50%; display:grid; place-items:center; box-shadow:0 8px 22px rgba(0,0,0,.22); transition:transform .2s ease, box-shadow .2s ease; border:2px solid rgba(255,255,255,.9);}
.fab svg{width:24px; height:24px;}
.fab:hover{transform:scale(1.09); box-shadow:0 12px 28px rgba(0,0,0,.3);}
.fab-maps{background:#1a73e8;}
.fab-wa{background:#25D366;}
.fab-call{background:#F59E0B;}
@media(max-width:600px){ .side-actions{right:12px; gap:10px; top:auto; bottom:96px; transform:none;} .fab{width:46px; height:46px;} .fab svg{width:21px; height:21px;} }

/* ===== BOOKING BOTTOM SHEET ===== */
.sheet-backdrop{position:fixed; inset:0; background:rgba(7,27,29,.55); backdrop-filter:blur(3px); -webkit-backdrop-filter:blur(3px); opacity:0; pointer-events:none; transition:opacity .3s ease; z-index:80;}
.sheet-backdrop.open{opacity:1; pointer-events:auto;}
.sheet{position:fixed; left:0; right:0; bottom:0; z-index:81; display:flex; justify-content:center; pointer-events:none; transform:translateY(110%); transition:transform .42s cubic-bezier(.16,1,.3,1); will-change:transform;}
.sheet.open{transform:translateY(0); pointer-events:auto;}
.sheet-panel{position:relative; width:100%; max-width:520px; background:linear-gradient(180deg,rgba(255,255,255,.98),rgba(244,249,249,.98)); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:1px solid var(--glass-border); border-bottom:none; border-radius:16px 16px 0 0; padding:20px 24px calc(24px + env(safe-area-inset-bottom)); box-shadow:0 -24px 60px rgba(7,27,29,.28);}
.sheet-grip{width:44px; height:5px; border-radius:3px; background:var(--line); margin:2px auto 14px;}
.sheet-close{position:absolute; top:12px; right:14px; width:34px; height:34px; border-radius:50%; border:1px solid var(--line); background:var(--white); color:var(--muted); font-size:1.4rem; line-height:1; cursor:pointer; display:grid; place-items:center; transition:all .2s ease;}
.sheet-close:hover{color:var(--ink); border-color:var(--teal);}
.sheet-panel h3{font-family:var(--head); font-size:1.3rem; font-weight:700; margin-bottom:4px;}
.sheet-panel .sub{color:var(--muted); font-size:.9rem; margin-bottom:16px;}
.sheet-offer{margin-bottom:6px;}
.sheet-panel .btn{width:100%; margin-top:4px;}
.field.two{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
.field.two > div{margin:0;}
@media(max-width:520px){ .field.two{grid-template-columns:1fr;} }
body.sheet-lock{overflow:hidden;}
@media(max-width:600px){
  .brand .name{font-size:1.02rem;}
  .brand-logo{width:42px; height:42px;}
  .hero-content h1{font-size:2rem; line-height:1.05; margin:14px 0;}
  .hero-content h1 .accent .swoosh{bottom:-.28em;}
  .hero-sub{font-size:1rem;}
  .hero-cta{gap:10px;}
  .hero-cta .btn{width:100%;}
}

/* ===== FAQ (SEO + AEO) ===== */
.faq{background:var(--paper);}
.sec-top-center{flex-direction:column; align-items:center; text-align:center;}
.sec-top-center>div{display:flex; flex-direction:column; align-items:center;}
.sec-top-center h2{max-width:none;}
.sec-top-center p{max-width:52ch;}
.faq-list{display:flex; flex-direction:column; gap:12px; max-width:860px; margin:0 auto;}
.faq-item{background:var(--glass-bg); backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur); border:1px solid var(--glass-border); border-top-color:var(--glass-hi); border-radius:11px; box-shadow:var(--glass-shadow); overflow:hidden;}
.faq-item summary{list-style:none; cursor:pointer; padding:17px 20px; font-family:var(--head); font-weight:600; font-size:1.02rem; color:var(--ink); display:flex; justify-content:space-between; align-items:center; gap:14px;}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:"+"; color:var(--teal); font-size:1.35rem; font-weight:700; line-height:1; transition:transform .2s ease; flex:none;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item .a{padding:0 20px 18px; color:var(--muted); font-size:.95rem; line-height:1.65;}

/* ===== INLINE BOOKING SECTION (fallback + on-page form) ===== */
.book-section{background:linear-gradient(160deg,#E9F4F4 0%,#DDEFEF 100%); position:relative; overflow:hidden; scroll-margin-top:80px;}
.book-section::after{content:""; position:absolute; inset:0; pointer-events:none; background:radial-gradient(560px 340px at 88% 120%, rgba(14,124,134,.14), transparent 60%);}
.book-wrap{display:grid; grid-template-columns:1.05fr .95fr; gap:44px; align-items:center; position:relative; z-index:1;}
.book-copy h2{max-width:16ch; margin:10px 0 12px;}
.book-copy p{color:var(--muted); max-width:44ch;}
.book-copy .quick{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px;}
.book-form-card{background:linear-gradient(145deg, rgba(255,255,255,.92), rgba(240,247,247,.78)); backdrop-filter:blur(20px); -webkit-backdrop-filter:blur(20px); border:1px solid var(--glass-border); border-top-color:var(--glass-hi); border-radius:16px; padding:24px; box-shadow:0 24px 55px rgba(11,59,64,.16), inset 0 1px 0 rgba(255,255,255,.9);}
.book-form-card h3{font-family:var(--head); font-weight:700; font-size:1.2rem; margin-bottom:4px;}
.book-form-card .sub{color:var(--muted); font-size:.88rem; margin-bottom:16px;}
.book-form-card .btn{width:100%; margin-top:4px;}
@media(max-width:820px){ .book-wrap{grid-template-columns:1fr; gap:26px;} .book-copy h2,.book-copy p{max-width:100%;} }

/* powered-by: subtle, bottom-right */
.f-bot .powered{margin-left:auto; font-size:.72rem; color:#6f9b98;}
.f-bot .powered a{color:#6f9b98; font-weight:500;}
.f-bot .powered a:hover{color:#fff;}
@media(max-width:820px){ .f-bot .powered{margin-left:0;} }

/* ===== HERO in-form + left column ===== */
.hero-form{background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(244,249,249,.96)); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border:1px solid rgba(255,255,255,.55); border-radius:16px; padding:22px; box-shadow:0 26px 64px rgba(0,0,0,.34), inset 0 1px 0 rgba(255,255,255,.9); color:var(--ink);}
.hero-form .badge-offer{display:inline-flex; align-items:center; gap:8px; background:var(--red-tint); color:var(--red); border:1px solid #F3C9C4; font-weight:600; font-size:.78rem; padding:6px 12px; border-radius:9px; margin-bottom:12px;}
.hero-form h3{font-family:var(--head); font-weight:700; font-size:1.25rem; margin-bottom:3px; color:var(--ink);}
.hero-form .sub{color:var(--muted); font-size:.86rem; margin-bottom:14px;}
.hero-form .btn{width:100%; margin-top:2px;}
.hero-form .form-note{margin-top:10px;}
.hero-left .hero-cta{margin-top:24px;}
@media(max-width:900px){ .hero-content h1{font-size:clamp(2.1rem,7vw,3rem);} }

/* ===== STATS BAND ===== */
.stats{background:var(--teal-tint); border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:30px 0;}
.stats-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px; text-align:center;}
.stat b{display:block; font-family:var(--head); font-size:2.15rem; font-weight:800; color:var(--teal); line-height:1; letter-spacing:-.02em;}
.stat span{font-size:.86rem; color:var(--muted); margin-top:7px; display:block;}
.stat + .stat{border-left:1px solid var(--line);}
@media(max-width:640px){ .stats-grid{grid-template-columns:1fr 1fr; gap:26px 12px;} .stat:nth-child(3){border-left:none;} }

/* ===== CLINIC IMAGERY BAND ===== */
.clinic-band{background:var(--white);}
.clinic-grid{display:grid; grid-template-columns:1fr 1fr; gap:44px; align-items:center;}
.clinic-photo{border-radius:14px; overflow:hidden; box-shadow:var(--glass-shadow); border:1px solid var(--line);}
.clinic-photo img{width:100%; height:100%; object-fit:cover; display:block; aspect-ratio:4/3;}
.clinic-photo-portrait img{aspect-ratio:4/5; object-position:center 14%; background:linear-gradient(160deg,#E4F1F1,#CFE7E7);}
@media(max-width:820px){ .clinic-photo-portrait img{aspect-ratio:1/1;} }
.clinic-copy h2{margin-bottom:14px;}
.clinic-list{display:flex; flex-direction:column; gap:14px; margin-top:18px;}
.clinic-list .ci{display:flex; gap:12px; align-items:flex-start;}
.clinic-list .ci .plus{color:var(--red); font-weight:700; font-size:1.1rem; line-height:1.3; flex:none;}
.clinic-list .ci b{color:var(--ink); font-weight:600;}
.clinic-list .ci span{color:var(--muted); font-size:.92rem;}
@media(max-width:820px){ .clinic-grid{grid-template-columns:1fr; gap:26px;} }

/* ===== BEFORE / AFTER ===== */
.ba{background:var(--paper);}
.ba-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.ba-card{background:var(--white); border:1px solid var(--line); border-radius:14px; overflow:hidden; box-shadow:var(--glass-shadow);}
.ba-pair{display:grid; grid-template-columns:1fr 1fr;}
.ba-half{aspect-ratio:1/1; display:grid; place-items:center; position:relative; background:linear-gradient(160deg,#E4F1F1,#CFE7E7); color:var(--teal);}
.ba-half.after{background:linear-gradient(160deg,#EAF6F5,#D6ECE9);}
.ba-half .lbl{position:absolute; top:8px; left:8px; font-family:var(--mono); font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; background:rgba(255,255,255,.85); color:var(--ink); padding:3px 7px; border-radius:6px;}
.ba-half svg{width:34px; height:34px; opacity:.5;}
.ba-card .cap{padding:13px 15px; font-size:.86rem; color:var(--muted);}
.ba-card .cap b{color:var(--ink); display:block; font-size:.92rem; margin-bottom:2px;}
.ba-note{margin-top:18px; font-family:var(--mono); font-size:.8rem; color:var(--muted);}
@media(max-width:760px){ .ba-grid{grid-template-columns:1fr;} }

/* ===== service landing pages ===== */
.hero-page{position:relative; display:flex; align-items:center; overflow:hidden;
  background:radial-gradient(1100px 620px at 82% -12%, rgba(20,154,166,.5), transparent 62%), linear-gradient(158deg,#0B3B40 0%,#08201f 72%);}
.hero-page .hero-content{min-height:clamp(440px,68vh,600px);}
.hero-page .hero-cta .btn-red{color:#fff;}
.incl-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px 44px;}
.incl-grid .ci{display:flex; gap:12px; align-items:flex-start;}
.incl-grid .ci .plus{color:var(--red); font-weight:700; font-size:1.1rem; line-height:1.3; flex:none;}
.incl-grid .ci b{color:var(--ink); font-weight:600;}
.incl-grid .ci span{color:var(--muted); font-size:.92rem; line-height:1.55;}
@media(max-width:760px){ .incl-grid{grid-template-columns:1fr; gap:16px;} }
.usp-grid-4{grid-template-columns:repeat(4,1fr);}
@media(max-width:960px){ .usp-grid-4{grid-template-columns:1fr 1fr;} }
@media(max-width:520px){ .usp-grid-4{grid-template-columns:1fr;} }
.spec-role{font-family:var(--mono); font-size:.8rem; letter-spacing:.02em; color:var(--teal); margin:-4px 0 14px;}
.clinic-copy .quick{display:flex; gap:12px; flex-wrap:wrap; margin-top:22px;}
.crosslinks{background:var(--paper); border-top:1px solid var(--line);}
.cross-row{display:flex; flex-wrap:wrap; gap:12px; justify-content:center;}

/* ===== header services dropdown ===== */
.nav-dd{position:relative;}
.nav-dd-t{cursor:pointer;}
.nav-dd-t::after{content:"\25BE"; font-size:.7em; margin-left:5px; color:var(--teal); vertical-align:middle;}
.nav-dd::before{content:""; position:absolute; top:100%; left:-10px; right:-10px; height:12px;}
.nav-dd-menu{position:absolute; top:calc(100% + 8px); left:0; min-width:214px; background:#fff; border:1px solid var(--line); border-radius:12px; box-shadow:0 18px 40px rgba(11,59,64,.18); padding:8px; display:flex; flex-direction:column; gap:2px; opacity:0; visibility:hidden; transform:translateY(6px); transition:opacity .18s ease, transform .18s ease; z-index:70;}
.nav-dd:hover .nav-dd-menu, .nav-dd:focus-within .nav-dd-menu{opacity:1; visibility:visible; transform:none;}
.nav-dd-menu a{padding:9px 12px; border-radius:8px; font-size:.9rem; color:var(--ink); white-space:nowrap;}
.nav-dd-menu a:hover{background:var(--teal-tint); color:var(--teal);}
@media(max-width:900px){
  .nav-links.open .nav-dd{width:100%;}
  .nav-dd-menu{position:static; opacity:1; visibility:visible; transform:none; box-shadow:none; border:none; border-radius:0; padding:0; background:transparent; min-width:0;}
  .nav-links.open .nav-dd-menu a{padding:10px 26px 10px 42px; color:var(--muted); font-size:.88rem;}
  .nav-dd-t::after{display:none;}
  .nav-dd::before{display:none;}
}
