/* ============================================================
   OMEGA DENTAL — advanced / premium theme
   Gradient-mesh + glassmorphism on a clean clinical base
   ============================================================ */
@font-face{
  font-family:"Kalpurush";
  src:url("fonts/kalpurush.woff2") format("woff2");
  font-weight:400 800;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0980-09FF,U+0964-0965,U+200C-200D,U+25CC;
}
@font-face{
  font-family:"Noto Sans Bengali";
  src:url("fonts/noto-bengali.woff2") format("woff2");
  font-weight:400 800;
  font-style:normal;
  font-display:swap;
  unicode-range:U+0980-09FF,U+0964-0965,U+200C-200D,U+25CC;
}
/* animated glow for service cards */
@property --svc-rot{syntax:"<angle>";inherits:false;initial-value:0deg}
@keyframes svcSpin{to{--svc-rot:360deg}}
:root{
  --teal:#57C3AD; --teal-d:#3aa893; --teal-dd:#2c8a78;
  --blue:#2B6CB0; --blue-d:#1f5290; --navy:#13294e; --navy2:#1c3a63;
  --orange:#F08A24; --orange-d:#d9760f; --violet:#7b8cf4;
  --ink:#16323c; --muted:#5b7682; --line:#e7eef1;
  --bg:#ffffff; --bg-soft:#f2fbf9; --bg-soft2:#eef6fb;
  --grad-brand:linear-gradient(120deg,#57C3AD 0%,#2B6CB0 60%,#3a5fb0 100%);
  --grad-warm:linear-gradient(120deg,#57C3AD,#F08A24);
  --grad-mesh:radial-gradient(1100px 540px at 12% -10%,rgba(87,195,173,.45),transparent 60%),
              radial-gradient(900px 520px at 95% 0%,rgba(43,108,176,.40),transparent 58%),
              radial-gradient(700px 480px at 60% 120%,rgba(123,140,244,.28),transparent 60%);
  --glass:rgba(255,255,255,.72); --glass-brd:rgba(255,255,255,.6);
  --shadow:0 18px 48px rgba(19,41,78,.12); --shadow-sm:0 8px 24px rgba(19,41,78,.07);
  --shadow-glow:0 14px 36px rgba(87,195,173,.32);
  --r:20px; --r-lg:30px; --r-xl:38px; --maxw:1200px;
  --f-head:"Sora","Poppins",system-ui,sans-serif;
  --f-body:"Inter",system-ui,sans-serif;
  --f-bn:"Kalpurush","Noto Sans Bengali","Hind Siliguri",system-ui,sans-serif;
  /* fluid type scale — single source of truth for heading hierarchy */
  --fs-h1:clamp(2.1rem,5vw,3.6rem);     /* homepage hero title */
  --fs-h1-sub:clamp(1.8rem,4.2vw,2.7rem);/* sub-page / detail page titles */
  --fs-h2:clamp(1.65rem,3.8vw,2.5rem);  /* section titles */
  --fs-h3:1.12rem;                       /* card & block titles */
  --fs-h4:1rem;                          /* footer / small headings */
  --fs-lead:clamp(1.04rem,2.2vw,1.18rem);/* hero / section lead text */
  --lh-head:1.15;                        /* heading line-height */
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--f-body);color:var(--ink);background:var(--bg);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body.bn{font-family:var(--f-bn)}
body.bn h1,body.bn h2,body.bn h3,body.bn .btn{font-family:var(--f-bn)}
/* Bengali script reads clearer slightly larger with a touch more line-height */
body.bn .svc-card h3{font-size:calc(var(--fs-h3) + .09rem);line-height:1.42}
body.bn .svc-card p{font-size:.97rem;line-height:1.72}
body.bn .svc-common{font-size:.88rem}
body.bn .prod-common{font-size:1.06rem}
body.bn .prod-desc{font-size:1.12rem;line-height:1.85}
body.bn .price-table{font-size:.98rem}
body.bn .pname{line-height:1.5}
body.bn .price-cat td{font-size:1rem}
/* Bangla: larger, more comfortable reading */
body.bn{font-size:1.06rem}
body.bn p{line-height:1.85}
body.bn .lead,body.bn .hero p.lead{font-size:1.24rem;line-height:1.8}
body.bn .sec-head p{font-size:1.12rem;line-height:1.8}
body.bn .svc-card p{font-size:1.02rem;line-height:1.75}
body.bn .prod-desc{font-size:1.2rem;line-height:1.9}
body.bn .faq-q{font-size:1.08rem}
body.bn .faq-a p{font-size:1.06rem;line-height:1.85}
body.bn .test-card p{font-size:1.05rem;line-height:1.8}
body.bn .why-list li,body.bn .tab-list li,body.bn .doc-creds li{font-size:1.05rem;line-height:1.8}
body.bn .navlist a{font-size:1rem}
h1,h2,h3,h4{font-family:var(--f-head);line-height:var(--lh-head);color:var(--navy);font-weight:800;letter-spacing:-.02em;text-wrap:balance}
h1{font-size:var(--fs-h1-sub)}
h2{font-size:var(--fs-h2)}
h3{font-size:var(--fs-h3)}
h4{font-size:var(--fs-h4)}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.container{max-width:var(--maxw);margin:0 auto;padding:0 24px}
.eyebrow{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-head);font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--teal-dd);background:linear-gradient(120deg,rgba(87,195,173,.14),rgba(43,108,176,.12));border:1px solid rgba(87,195,173,.28);padding:7px 16px;border-radius:999px;margin-bottom:16px}
.eyebrow::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--teal)}
.section{padding:60px 0;position:relative}
.section.soft{background:linear-gradient(180deg,var(--bg-soft),#fff)}
.section.soft2{background:linear-gradient(180deg,var(--bg-soft2),#fff)}
.sec-head{max-width:700px;margin:0 auto 52px;text-align:center}
.sec-head h2{font-size:var(--fs-h2)}
.sec-head p{color:var(--muted);margin-top:14px;font-size:var(--fs-lead)}
.grad-text{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:9px;font-family:var(--f-head);font-weight:700;font-size:.97rem;padding:14px 28px;border-radius:999px;border:1.5px solid transparent;cursor:pointer;transition:transform .2s,box-shadow .2s,background .2s;white-space:nowrap}
.btn-primary{background:var(--grad-brand);color:#fff;box-shadow:var(--shadow-glow)}
.btn-primary:hover{transform:translateY(-3px);box-shadow:0 20px 44px rgba(87,195,173,.45)}
.btn-orange{background:linear-gradient(120deg,#F8A23A,#F08A24);color:#fff;box-shadow:0 12px 30px rgba(240,138,36,.36)}
.btn-orange:hover{transform:translateY(-3px)}
.btn-ghost{background:rgba(255,255,255,.7);color:var(--navy);border-color:var(--line);backdrop-filter:blur(8px)}
.btn-ghost:hover{border-color:var(--teal);color:var(--teal-dd);transform:translateY(-2px)}
/* highlighted "Call Now" CTA — warm-orange sibling of the cool Book button:
   matching highlight energy, distinct hue + a soft glow pulse (no shimmer/spin) */
.btn-call{position:relative;background:linear-gradient(120deg,#FBB04B,#F08A24 55%,#E0760F);color:#fff;font-weight:800;box-shadow:0 12px 30px rgba(240,138,36,.42);animation:callPulse 2.4s ease-in-out infinite}
.btn-call:hover{transform:translateY(-3px);box-shadow:0 18px 42px rgba(240,138,36,.55)}
.btn-call .ic-svg,.btn-call svg{width:18px;height:18px}
@keyframes callPulse{0%,100%{box-shadow:0 10px 24px rgba(240,138,36,.40)}50%{box-shadow:0 14px 32px rgba(240,138,36,.55),0 0 0 5px rgba(240,138,36,.18)}}
.btn-wa{background:linear-gradient(120deg,#2bd96f,#1da851);color:#fff;box-shadow:0 12px 30px rgba(37,211,102,.32)}
.btn-wa:hover{transform:translateY(-3px)}
.hero-wa-btn{font-weight:800;animation:callPulse 2.4s ease-in-out infinite;animation-delay:.8s}
.btn-red{background:linear-gradient(120deg,#e23744,#c81e2b);color:#fff;box-shadow:0 12px 30px rgba(200,30,43,.3)}
.btn-red:hover{transform:translateY(-3px)}

/* product-style service detail */
.prod-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:34px}
.prod-grid{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:start}
.prod-main{border-radius:var(--r);overflow:hidden;background:var(--bg-soft);box-shadow:var(--shadow-sm);aspect-ratio:1/.82}
.prod-main img{width:100%;height:100%;object-fit:contain;display:block}
.prod-thumbs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:12px}
.pthumb{padding:0;border:2px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;background:var(--bg-soft);aspect-ratio:1/.82;transition:.15s}
.pthumb img{width:100%;height:100%;object-fit:cover;display:block}
.pthumb:hover{border-color:var(--teal)}
.pthumb.active{border-color:var(--teal);box-shadow:0 0 0 3px rgba(87,195,173,.2)}
.prod-info h1{font-size:var(--fs-h1-sub);margin:8px 0 4px}
.prod-top-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.gallery-link{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-head);font-weight:700;font-size:.8rem;color:var(--teal-dd);background:rgba(87,195,173,.12);border:1px solid rgba(87,195,173,.35);padding:7px 14px;border-radius:999px;text-decoration:none;transition:background .15s,transform .15s}
.gallery-link:hover{background:rgba(87,195,173,.2);transform:translateY(-1px)}
.gallery-link svg{width:15px;height:15px}
.prod-price{font-family:var(--f-head);font-weight:800;font-size:2rem;color:var(--navy);margin:6px 0 14px}
.prod-desc{color:var(--muted);font-size:1.05rem;line-height:1.7}
.prod-div{border:0;border-top:1px solid var(--line);margin:24px 0}
.prod-facts{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:26px}
.fact{display:flex;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;box-shadow:var(--shadow-sm)}
.fact-ic{flex:0 0 40px;height:40px;border-radius:11px;background:linear-gradient(135deg,rgba(87,195,173,.16),rgba(43,108,176,.14));display:grid;place-items:center;font-size:1.1rem}
.fact strong{display:block;font-family:var(--f-head);font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--teal-dd)}
.fact span{color:var(--ink);font-weight:600;font-size:.95rem}
.prod-cta{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.prod-cta .btn{width:100%;justify-content:center;padding:16px}
@media(max-width:860px){
  .prod-grid{grid-template-columns:1fr;gap:28px}
  .prod-card{padding:22px}
  .prod-facts,.prod-cta{grid-template-columns:1fr 1fr}
}
@media(max-width:480px){.prod-facts,.prod-cta{grid-template-columns:1fr}}

/* service detail tabs */
.tabs{display:flex;flex-wrap:wrap;gap:10px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:26px}
.tab-btn{border:0;cursor:pointer;background:var(--bg-soft);color:var(--navy);font-family:var(--f-head);font-weight:700;font-size:.92rem;padding:10px 20px;border-radius:999px;transition:.15s}
.tab-btn:hover{background:#e6f5f1}
.tab-btn.active{background:var(--grad-brand);color:#fff;box-shadow:var(--shadow-glow)}
.tab-panel{display:none;animation:fadeUp .35s ease}
.tab-panel.active{display:block}
@keyframes fadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.tab-panel h3{font-size:1.3rem;margin:24px 0 10px;color:var(--navy)}
.tab-panel>p{color:var(--muted);line-height:1.75;margin-bottom:6px}
.tab-list,.tab-steps{margin:6px 0 6px 4px;padding-left:18px;display:grid;gap:9px;color:var(--ink)}
.tab-list{list-style:none;padding-left:0}
.tab-list li{display:flex;gap:8px;align-items:baseline}
.tab-list li strong{font-family:var(--f-head);color:var(--teal-dd)}
.tab-list li span{color:var(--muted)}
.tab-steps li{color:var(--muted)}
.tab-steps li::marker{color:var(--teal-dd);font-weight:800}
.cmp-wrap{overflow-x:auto;margin:14px 0 6px}
.cmp-table{width:100%;border-collapse:collapse;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:.95rem}
.cmp-table th{background:var(--grad-brand);color:#fff;text-align:left;padding:13px 16px;font-family:var(--f-head);font-size:.85rem}
.cmp-table td{padding:12px 16px;border-top:1px solid var(--line);color:var(--ink)}
.cmp-table tbody tr:nth-child(even){background:var(--bg-soft)}
.cmp-table td:first-child{font-weight:600}
.cmp-omega{font-family:var(--f-head);font-weight:800;color:var(--teal-dd);white-space:nowrap}
.cmp-note{font-size:.82rem;color:var(--muted);font-style:italic;margin-top:6px}
@media(max-width:600px){
  .cmp-table{font-size:.8rem}
  .cmp-table th{padding:10px 8px;font-size:.7rem;line-height:1.25}
  .cmp-table td{padding:10px 8px}
  .cmp-omega{font-size:.8rem}
}



/* header */
.header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.78);backdrop-filter:saturate(160%) blur(14px);border-bottom:1px solid rgba(231,238,241,.9)}
.nav{display:flex;align-items:center;justify-content:space-between;gap:18px;height:84px}
.brand{display:flex;align-items:center;gap:0;font-family:var(--f-head);font-weight:800;color:var(--navy);font-size:1.9rem;line-height:1}
.brand img{height:60px;width:auto}
.logo-anim--mark{margin-right:-6px}

/* animated logo (float + glow) */
.logo-anim{position:relative;display:inline-flex;animation:logoFloat 5s ease-in-out infinite}
.logo-anim img{display:block;filter:drop-shadow(0 4px 9px rgba(43,108,176,.28))}
@keyframes logoFloat{50%{transform:translateY(-4px)}}
@media(prefers-reduced-motion:reduce){.logo-anim,.logo-anim::after{animation:none}}
.brand > span:last-child{text-align:center}
.brand small{display:block;font-size:.72em;letter-spacing:.14em;color:var(--orange);font-weight:800;margin-top:2px;line-height:1;text-indent:.14em}
.navlist{display:flex;align-items:center;gap:20px;margin-left:auto}
.navlist a{font-weight:600;font-size:.93rem;color:var(--ink);transition:color .15s}
.navlist a:hover{color:var(--teal-dd)}
.nav-actions{display:flex;align-items:center;gap:10px;margin-left:8px}
.nav-actions .btn{border-radius:12px;padding:11px 22px;font-size:.9rem}
/* eye-catching Book Appointment CTA */
.nav-actions .btn-primary,a.btn[href*="book.html"],#calcBook{position:relative;overflow:hidden;font-weight:800;color:#fff;border:2px solid transparent;
  background:linear-gradient(120deg,#57C3AD,#2B6CB0 60%,#3a5fb0) padding-box,
    conic-gradient(from var(--svc-rot),#2B6CB0 0%,#57C3AD 37%,#d6f7ef 30%,#57C3AD 33%,#2B6CB0 40%,#2B6CB0 50%,#57C3AD 77%,#d6f7ef 80%,#57C3AD 83%,#2B6CB0 90%) border-box;
  animation:ctaPulse 2.4s ease-in-out infinite,svcSpin 5s linear infinite}
.nav-actions .btn-primary::after,a.btn[href*="book.html"]::after,#calcBook::after{content:"";position:absolute;top:0;left:-65%;width:45%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.6),transparent);transform:skewX(-20deg);pointer-events:none;animation:ctaShine 3.4s ease-in-out infinite}
.nav-actions .btn-primary:hover,a.btn[href*="book.html"]:hover,#calcBook:hover{color:#fff;transform:translateY(-3px) scale(1.04);animation-play-state:paused}
@keyframes ctaPulse{0%,100%{box-shadow:0 8px 22px rgba(87,195,173,.40)}50%{box-shadow:0 12px 30px rgba(43,108,176,.55),0 0 0 5px rgba(87,195,173,.16)}}
@keyframes ctaShine{0%{left:-65%}60%,100%{left:135%}}

/* services dropdown */
.has-dd{position:relative}
.has-dd .dd-toggle{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.93rem;color:var(--ink);cursor:pointer;padding:4px 2px;transition:color .15s}
.has-dd .dd-toggle:hover,.has-dd.open .dd-toggle{color:var(--teal-dd)}
.dd-caret{font-size:.7rem;color:var(--teal-dd);transition:transform .25s;display:inline-block}
.has-dd:hover .dd-caret,.has-dd.open .dd-caret{transform:rotate(180deg)}
.dd-menu{position:absolute;top:calc(100% + 14px);left:50%;transform:translateX(-50%) translateY(10px);width:272px;background:#fff;border-radius:18px;box-shadow:0 24px 64px rgba(19,41,78,.18),0 4px 16px rgba(19,41,78,.08);overflow:hidden;display:flex;flex-direction:column;opacity:0;visibility:hidden;transition:opacity .22s,transform .22s,visibility .22s;z-index:60}
.dd-menu::before{content:"";display:block;height:4px;background:linear-gradient(90deg,var(--teal),var(--teal-dd));flex-shrink:0}
.dd-notch{position:absolute;top:-7px;left:50%;transform:translateX(-50%) rotate(45deg);width:14px;height:14px;background:#fff;border-left:1px solid rgba(0,0,0,.07);border-top:1px solid rgba(0,0,0,.07)}
.has-dd:hover .dd-menu,.has-dd:focus-within .dd-menu,.has-dd.open .dd-menu{opacity:1;visibility:visible;transform:translateX(-50%) translateY(0)}
.dd-menu a{display:flex;align-items:center;gap:12px;padding:10px 16px;font-weight:600;font-size:.9rem;color:var(--ink);white-space:nowrap;transition:background .15s,color .15s,padding-left .15s;position:relative}
.dd-menu a::after{content:"";position:absolute;left:0;top:22%;bottom:22%;width:3px;border-radius:2px;background:var(--teal);opacity:0;transition:opacity .15s}
.dd-menu a:hover{background:#f0faf8;color:var(--teal-dd);padding-left:20px}
.dd-menu a:hover::after{opacity:1}
.dd-ic{font-size:1.05rem;width:32px;height:32px;border-radius:10px;background:rgba(87,195,173,.13);display:grid;place-items:center;flex-shrink:0}
.dd-nm{flex:1}
.dd-arr{font-size:.9rem;color:var(--teal-dd);opacity:0;transition:opacity .15s,transform .15s;transform:translateX(-4px)}
.dd-menu a:hover .dd-arr{opacity:1;transform:translateX(0)}
.dd-more{margin:8px 12px 12px;border-radius:12px !important;background:linear-gradient(135deg,var(--teal) 0%,#2db89e 100%) !important;color:#fff !important;justify-content:center;padding:11px 16px !important;white-space:nowrap}
.dd-more:hover{background:linear-gradient(135deg,#2db89e,var(--teal-dd)) !important;color:#fff !important;padding-left:16px !important}
.dd-more::after{display:none !important}
.dd-more .dd-arr{opacity:1 !important;transform:none !important;color:#fff}
.lang-toggle{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--navy);background:var(--navy);border-radius:12px;padding:11px 16px;font-weight:700;font-family:var(--f-head);cursor:pointer;color:#fff;font-size:.85rem;transition:.18s}
.lang-toggle:hover{background:#0d1f3d;transform:translateY(-1px)}
.call-link{display:inline-flex;align-items:center;gap:6px;font-weight:700;color:var(--teal-dd)}
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:8px}
.burger span{width:24px;height:2.5px;background:var(--navy);border-radius:2px}

/* hero — gradient mesh + glass */
.hero{position:relative;overflow:hidden;background:
  var(--grad-mesh), linear-gradient(180deg,#f4fbf9,#ffffff 75%)}
.hero::after{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(19,41,78,.04) 1px,transparent 1px);background-size:22px 22px;pointer-events:none;mask:linear-gradient(180deg,#000,transparent 70%)}
/* hero background video */
.hero-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.hero-video{width:100%;height:100%;object-fit:cover;display:block}
.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(244,251,249,.12),rgba(255,255,255,.34) 82%)}
@media(max-width:760px){.hero-media::after{background:linear-gradient(180deg,rgba(244,251,249,.22),rgba(255,255,255,.45) 82%)}}
@media(prefers-reduced-motion:reduce){.hero-video{display:none}}
/* full-bleed hero background photo + readability scrim (subject sits on the right) */
.hero-bg{position:absolute;inset:0;z-index:0;background:url(hero-portrait.jpg?v=1) no-repeat center right/cover}
.hero-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(90deg,rgba(248,252,251,.97) 0%,rgba(248,252,251,.9) 30%,rgba(248,252,251,.5) 56%,rgba(248,252,251,.12) 80%,rgba(248,252,251,0) 100%),
  linear-gradient(180deg,rgba(248,252,251,.28),rgba(255,255,255,.12) 40%,rgba(255,255,255,.34))}
/* background photo carries the image, so hide the standalone right-column card */
.hero-art{display:none}
@media(max-width:980px){
  .hero-bg{background-position:center right}
  .hero-bg::after{background:
    linear-gradient(180deg,rgba(248,252,251,.9),rgba(248,252,251,.72) 46%,rgba(248,252,251,.62) 72%,rgba(248,252,251,.9)),
    linear-gradient(90deg,rgba(248,252,251,.55),rgba(248,252,251,0) 85%)}
}
.hero .blob{position:absolute;border-radius:50%;filter:blur(20px);opacity:.55;z-index:0}
.hero .b1{width:360px;height:360px;background:radial-gradient(circle,#bfeee4,transparent 70%);top:-90px;right:-40px}
.hero .b2{width:300px;height:300px;background:radial-gradient(circle,#c7d9f7,transparent 70%);bottom:-80px;left:-60px}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1.1fr;gap:50px;align-items:center;padding:68px 0 30px}
/* merged hero stats */
.hero-stats{position:relative;z-index:1;padding-bottom:56px}
.hero-stats .stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;padding:0}
.hero-stats .hstat{background:var(--glass);border:1px solid var(--glass-brd);backdrop-filter:blur(10px);border-radius:var(--r);padding:24px 18px;text-align:center;box-shadow:var(--shadow-sm)}
.hero-stats .stat-num{font-family:var(--f-head);font-weight:800;font-size:clamp(1.8rem,4vw,2.6rem);background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero-stats .stat-lbl{color:var(--muted);font-weight:600;font-size:.92rem;margin-top:4px}

/* request a callback */
.callback-sec{padding:30px 0 60px}
.callback-card{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow);overflow:hidden}
.callback-head{background:var(--grad-brand);padding:22px;text-align:center}
.callback-head h2{color:#fff;font-size:clamp(1.3rem,3vw,1.8rem);margin:0}
.callback-body{padding:30px;display:flex;flex-direction:column;align-items:center;gap:18px}
.callback-form{display:flex;gap:12px;width:100%;max-width:560px;flex-wrap:wrap}
.cb-input{flex:1 1 190px;min-width:0;display:flex;align-items:center;gap:10px;border:1.6px solid var(--line);border-radius:13px;padding:0 14px;background:#fff;color:var(--muted)}
.cb-input:focus-within{border-color:var(--teal)}
.cb-input input:focus,.cb-input input:focus-visible{outline:none}
.cb-input input{flex:1;min-width:0;border:0;outline:0;padding:15px 0;font:inherit;color:var(--ink);background:transparent}
/* hide the phone icon once the user starts typing */
.cb-input:has(input:not(:placeholder-shown)) .ic-svg{display:none}
.cb-submit{flex:0 0 52px;height:52px;border:1.6px solid var(--line);background:#fff;border-radius:13px;cursor:pointer;display:grid;place-items:center;color:var(--navy);transition:.2s}
.cb-submit:hover{background:var(--grad-brand);color:#fff;border-color:transparent}
.cb-submit svg{width:22px;height:22px}
.callback-actions{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.callback-actions .btn{padding:13px 26px}
.cb-call{background:linear-gradient(120deg,var(--blue),var(--navy));color:#fff;box-shadow:0 10px 24px rgba(43,108,176,.3)}
.cb-call:hover{transform:translateY(-3px)}
.cb-success{display:none;color:var(--teal-dd);font-weight:600;font-size:.92rem}
.hero h1{font-size:var(--fs-h1);filter:drop-shadow(0 1px 3px rgba(255,255,255,.95)) drop-shadow(0 2px 16px rgba(255,255,255,.9))}
.hero h1 span{background:var(--grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero p.lead{color:#2a4651;font-size:var(--fs-lead);margin:20px 0 28px;max-width:540px;text-shadow:0 1px 3px rgba(255,255,255,.95),0 2px 14px rgba(255,255,255,.9)}
.hero-cta{display:flex;gap:13px;flex-wrap:wrap}
.hero-trust-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px;align-items:center}
.g-review-badge{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1.5px solid var(--teal-dd);border-radius:999px;padding:8px 18px;box-shadow:var(--shadow-sm);text-decoration:none;transition:transform .2s,box-shadow .2s}
.g-review-badge:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.g-logo{width:24px;height:24px;flex-shrink:0}
.g-review-text{display:flex;align-items:center;gap:7px}
.g-stars{color:#F08A24;font-size:1rem;letter-spacing:1px}
.g-score{font-weight:700;font-size:.95rem;color:var(--navy)}
.g-label{font-size:.8rem;color:#555;font-family:var(--f-head)}
.hp-badge{display:inline-flex;align-items:center;gap:10px;background:#fff;border:1.5px solid rgba(87,195,173,.4);border-radius:999px;padding:8px 18px;box-shadow:var(--shadow-sm)}
.hp-avatars{display:flex}
.hp-av{width:30px;height:30px;border-radius:50%;background:linear-gradient(135deg,#d6f2ec,#c0e8e0);border:2px solid #fff;display:grid;place-items:center;font-size:1rem;flex-shrink:0}
.hp-av+.hp-av{margin-left:-8px}
.hp-text{display:flex;flex-direction:column}
.hp-count{font-weight:800;font-size:.95rem;color:var(--navy);font-family:var(--f-head);line-height:1.1}
.hp-label{font-size:.75rem;color:var(--muted)}
.hero-badges{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}
.hero-badges span{display:inline-flex;align-items:center;gap:7px;background:var(--glass);border:1px solid var(--glass-brd);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm);border-radius:999px;padding:9px 15px;font-size:.85rem;font-weight:600}
.hero-badges span::before{content:"✓";color:var(--teal-dd);font-weight:800}
.hero-art{position:relative}
.hero-photo{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-sm);aspect-ratio:4/3;background:
  linear-gradient(135deg,#d6f2ec,#cfe0f7 55%,#dfe3fb);display:grid;place-items:center}
.hero-photo svg{width:74%}
.hero-photo-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:72% center;z-index:1}
.hero-photo svg{animation:heroFloat 5s ease-in-out infinite}
.hero-photo svg circle[fill="#F08A24"]{transform-box:fill-box;transform-origin:center;animation:heroDot 2.6s ease-in-out infinite}
@keyframes heroFloat{50%{transform:translateY(-6px)}}
@keyframes heroDot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.25);opacity:.8}}
.float-card{position:absolute;background:var(--glass);border:1px solid var(--glass-brd);backdrop-filter:blur(14px);border-radius:18px;box-shadow:var(--shadow);padding:14px 17px;display:flex;align-items:center;gap:12px}
.float-card .fc-ic{width:44px;height:44px;border-radius:13px;background:var(--grad-brand);display:grid;place-items:center;font-size:1.3rem}
.float-card strong{display:block;font-family:var(--f-head);color:var(--navy);font-size:.95rem}
.float-card small{color:var(--muted);font-size:.78rem}
.fc-1{top:26px;left:-26px;animation:floaty 5s ease-in-out infinite}
.fc-2{bottom:30px;right:-22px;animation:floaty 6s ease-in-out infinite reverse}
@keyframes floaty{50%{transform:translateY(-12px)}}

/* stats — glass on gradient */
.stats{background:var(--grad-brand);color:#fff;position:relative;overflow:hidden}
.stats::before{content:"";position:absolute;inset:0;background:radial-gradient(600px 300px at 80% -40%,rgba(255,255,255,.22),transparent)}
.stats-grid{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;padding:46px 0}
.stats-grid>div{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:var(--r);padding:22px;text-align:center;backdrop-filter:blur(6px)}
.stat-num{font-family:var(--f-head);font-weight:800;font-size:clamp(1.9rem,4vw,2.7rem)}
.stat-lbl{opacity:.94;font-size:.92rem;margin-top:4px}

/* services — treatment catalog */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
/* rotating conic-gradient border (BorderRotate effect) */
.svc-card{position:relative;display:flex;flex-direction:column;
  border:2px solid transparent;border-radius:var(--r);box-shadow:var(--shadow-sm);
  background:linear-gradient(#fff,#fff) padding-box,
    conic-gradient(from var(--svc-rot),
      #2B6CB0 0%,#57C3AD 37%,#d6f7ef 30%,#57C3AD 33%,#2B6CB0 40%,
      #2B6CB0 50%,#57C3AD 77%,#d6f7ef 80%,#57C3AD 83%,#2B6CB0 90%) border-box;
  animation:svcSpin 5s linear infinite;
  box-shadow:0 0 40px -16px rgba(43,108,176,.45),var(--shadow-sm);
  transition:transform .45s cubic-bezier(.34,1.56,.64,1),box-shadow .4s ease}
.svc-card:hover{transform:translateY(-6px) scale(1.03);box-shadow:0 0 60px -12px rgba(43,108,176,.6),var(--shadow)}
.svc-has-vid:hover{transform:translateY(-6px);}
.svc-img{display:block;height:150px;position:relative;overflow:hidden;border-radius:calc(var(--r) - 2px) calc(var(--r) - 2px) 0 0;background:var(--bg-soft)}
/* stretched link: h3 anchor covers the entire card; book button sits above it */
.svc-card h3 a::after{content:"";position:absolute;inset:0;z-index:1}
.svc-book,.svc-sub,.svc-img{position:relative;z-index:2}
.svc-img img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s cubic-bezier(.34,1.56,.64,1)}
.svc-card:hover .svc-img img{transform:scale(1.1)}
.svc-img .svc-static{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;transition:opacity .35s,transform .5s cubic-bezier(.34,1.56,.64,1)}
.svc-img .svc-anim{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .35s}
.svc-has-vid .svc-img img,.svc-has-vid:hover .svc-img img,.svc-has-vid.touch-active .svc-img img{transform:none}
.svc-gal{position:absolute;top:8px;right:8px;bottom:8px;z-index:10;display:flex;flex-direction:column;gap:4px;justify-content:flex-start;flex-wrap:nowrap;overflow:hidden}
.sgal-thumb{width:44px;height:34px;border-radius:5px;overflow:hidden;border:2px solid rgba(255,255,255,.45);cursor:pointer;padding:0;background:none;transition:border-color .15s,transform .15s;flex-shrink:0}
.sgal-thumb.active,.sgal-thumb:hover{border-color:#fff;box-shadow:0 2px 8px rgba(0,0,0,.35);transform:scale(1.06)}
.sgal-thumb img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
@media(max-width:480px){.svc-gal{gap:3px}.sgal-thumb{width:36px;height:28px}}
/* clean light card — large photo on top, then price + time, title and CTA */
.svc-card:has(.svc-img){overflow:hidden;cursor:pointer}
.svc-card:has(.svc-img) .svc-img{height:210px;width:100%;border-radius:calc(var(--r) - 2px) calc(var(--r) - 2px) 0 0}
.svc-card:has(.svc-img) .svc-body p{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.svc-body{padding:18px 20px 20px;display:flex;flex-direction:column;flex:1}
/* price + duration row at the top of the card body */
.svc-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:6px 10px;margin-bottom:9px}
.svc-card h3{font-size:var(--fs-h3);margin-bottom:7px;line-height:1.25}
.svc-card h3 a{color:var(--navy)}
.svc-card h3 a:hover{color:var(--teal-dd)}
.svc-card p{color:var(--muted);font-size:.88rem}
/* familiar everyday name shown under the service title */
.svc-common{display:block;font-family:var(--f-head);font-weight:600;font-size:.8rem;color:var(--teal-dd);margin:-2px 0 7px;letter-spacing:.01em}
.prod-common{font-size:.98rem;color:var(--teal-dd);margin:2px 0 12px}
/* sub-options (Tooth Filling, Denture, Orthodontic Treatment) */
.svc-sub{display:flex;flex-wrap:wrap;gap:7px;margin:11px 0 2px}
.svc-sub-chip{display:inline-flex;align-items:center;font-family:var(--f-head);font-weight:700;font-size:.74rem;color:var(--blue-d);background:linear-gradient(120deg,rgba(87,195,173,.2),rgba(43,108,176,.16));border:1px solid rgba(43,108,176,.24);padding:5px 11px;border-radius:999px;transition:.15s}
.svc-sub-chip:hover{background:var(--grad-brand);color:#fff;border-color:transparent;transform:translateY(-1px)}
.svc-dur{display:inline-flex;align-items:center;gap:5px;flex-shrink:0;font-size:.74rem;font-weight:700;color:var(--muted);background:var(--bg-soft);padding:4px 10px;border-radius:999px;white-space:nowrap}
.svc-dur svg{width:14px;height:14px;color:var(--teal-dd)}
.svc-body .svc-foot{margin-top:auto}
.svc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:16px;padding-top:16px}
.svc-price{font-family:var(--f-head);font-weight:800;color:var(--teal-dd);font-size:1.2rem;white-space:nowrap}
.svc-per{display:inline-block;font-family:var(--f-body);font-weight:700;font-size:.55rem;color:#fff;background:linear-gradient(120deg,#FBB04B,#F08A24 55%,#E0760F);text-transform:uppercase;letter-spacing:.05em;padding:2px 7px;border-radius:5px;vertical-align:middle;white-space:nowrap;margin-left:2px}
.svc-book{margin-top:auto;align-self:flex-start;padding:11px 22px;font-size:.85rem;border-radius:12px}

/* how it works */
.steps-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.step-card{position:relative;background:var(--glass);border:1px solid var(--glass-brd);backdrop-filter:blur(8px);border-radius:var(--r);padding:34px 22px 26px;box-shadow:var(--shadow-sm);text-align:center}
.step-num{position:absolute;top:-18px;left:50%;transform:translateX(-50%);width:38px;height:38px;border-radius:50%;background:var(--grad-brand);color:#fff;display:grid;place-items:center;font-family:var(--f-head);font-weight:800;box-shadow:var(--shadow-glow)}
.step-ic{font-size:2.1rem;margin:10px 0 12px}
.step-card h3{font-size:var(--fs-h3);margin-bottom:8px}
.step-card p{color:var(--muted);font-size:.9rem}

/* why us */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:52px;align-items:center}
.why-list{list-style:none;display:grid;gap:16px;margin-top:20px}
.why-list li{display:flex;gap:14px;align-items:flex-start;font-weight:600}
.why-list .ck,.doc-creds .ck{flex:0 0 30px;height:30px;border-radius:10px;background:var(--grad-brand);color:#fff;display:grid;place-items:center;font-weight:800;font-size:.85rem}
.left h2{font-size:var(--fs-h2)}
.left>p{color:var(--muted);margin-top:14px}

/* technology */
.tech-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.tech-card{display:flex;gap:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:24px;box-shadow:var(--shadow-sm);transition:.25s}
.tech-card:hover{transform:translateY(-6px);box-shadow:var(--shadow);border-color:transparent}
.tech-ic{flex:0 0 56px;height:56px;border-radius:16px;background:linear-gradient(135deg,rgba(87,195,173,.16),rgba(240,138,36,.14));display:grid;place-items:center;font-size:1.6rem}
.tech-card h3{font-size:var(--fs-h3);margin-bottom:4px}
.tech-card p{color:var(--muted);font-size:.88rem}

/* emergency band */
.emerg-band{background:var(--grad-mesh),linear-gradient(135deg,var(--navy),#1f4a7a);color:#eaf3fb;padding:66px 0;position:relative;overflow:hidden}
.emerg-grid{position:relative;display:grid;grid-template-columns:1.4fr 1fr;gap:42px;align-items:center}
.emerg-band h2{color:#fff;font-size:var(--fs-h2)}
.emerg-band p{color:#d4e4f1;margin:14px 0 20px;max-width:560px}
.eyebrow-dark{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.25);color:#bfeee4}
.eyebrow-dark::before{background:#bfeee4}
.emerg-list{list-style:none;display:grid;gap:12px}
.emerg-list li{display:flex;gap:12px;align-items:center;font-weight:600}
.emerg-list .ck{flex:0 0 28px;height:28px;border-radius:50%;background:rgba(87,195,173,.3);color:#d6fff5;display:grid;place-items:center;font-weight:800}
.emerg-cta{display:flex;flex-direction:column;gap:13px}
.emerg-cta .btn{width:100%;justify-content:center}

/* calculator — premium two-column */
.calc-layout{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:stretch;max-width:1100px;margin:0 auto}
.calc-card{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);display:flex;flex-direction:column}
.calc-top{background:radial-gradient(600px 300px at 100% -20%,rgba(87,195,173,.28),transparent),linear-gradient(165deg,#15294e,#1d3c69);padding:36px;color:#fff}
.calc-heading{font-family:var(--f-head);font-weight:800;letter-spacing:.03em;font-size:clamp(1.2rem,2.4vw,1.55rem);color:#fff;margin-bottom:24px;text-transform:uppercase}
.calc-heading .grad-pink{background:linear-gradient(120deg,#57C3AD,#F08A24);-webkit-background-clip:text;background-clip:text;color:transparent}
.calc-field{margin-bottom:18px}
.calc-field label{display:block;font-weight:700;font-family:var(--f-head);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;margin-bottom:9px;color:var(--navy)}
.calc-top .calc-field label{color:#a9c4e0}
.calc-field select,.calc-field input,.f-field input,.f-field select,.f-field textarea{width:100%;padding:14px 16px;border:1.6px solid var(--line);border-radius:13px;font:inherit;font-size:max(16px,1rem);color:var(--ink);background:#fff;transition:.15s}
.calc-top .calc-field select{border:0;box-shadow:0 6px 16px rgba(0,0,0,.18);font-weight:600}
.calc-field select:focus,.calc-field input:focus,.f-field input:focus,.f-field select:focus,.f-field textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 4px rgba(87,195,173,.16)}
/* native calendar / clock pickers on the booking date & time fields */
.f-field input[type=date],.f-field input[type=time]{cursor:pointer;min-height:52px}
/* Our own DD-MM-YYYY face for the date field; the real input sits on top, invisible,
   so taps still open the OS calendar and .value stays ISO. Built by dressDateField()
   in assets/app.js. Mirrors the .f-field input metrics above so the date field and the
   time field beside it stay the same size. */
.f-field .datebox{position:relative;display:block}
/* The native input keeps its own box, so the date field stays exactly the size and
   shape of the time field beside it and gets the same focus ring for free. We only
   cover the text it draws — stopping short of the right edge so its calendar icon
   still shows — and pointer-events:none lets every tap reach the input underneath. */
.f-field .datebox-txt{position:absolute;left:2px;right:40px;top:2px;bottom:2px;
  display:flex;align-items:center;padding:0 14px;border-radius:11px;background:#fff;
  font:inherit;font-size:max(16px,1rem);color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.f-field .datebox-txt.dt-ph{color:var(--muted)}
.f-field input[type=date]::-webkit-calendar-picker-indicator,
.f-field input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer;width:20px;height:20px;opacity:.6;transition:opacity .15s}
.f-field input[type=date]:hover::-webkit-calendar-picker-indicator,
.f-field input[type=time]:hover::-webkit-calendar-picker-indicator{opacity:1}
.calc-bottom{flex:1;background:linear-gradient(120deg,#2bb39a,#2B6CB0 55%,#3a5fb0);color:#fff;padding:40px 34px;text-align:center;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden}
.calc-bottom::before{content:"";position:absolute;inset:0;background:radial-gradient(500px 240px at 80% -30%,rgba(255,255,255,.22),transparent)}
.calc-bottom>*{position:relative}
.calc-bottom .lbl{opacity:.92;font-weight:700;font-size:.82rem;letter-spacing:.14em;text-transform:uppercase}
/* fixed-height result box so font-shrink / optional note never change the card height */
#calcResult{height:190px;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:6px 0;overflow:hidden}
.calc-amt{display:inline-block;font-family:var(--f-head);font-weight:800;font-size:clamp(2.2rem,5vw,3rem);margin:0 0 2px;text-shadow:0 4px 18px rgba(0,0,0,.18);white-space:nowrap}
.calc-usd{display:block;margin:2px 0 8px;font-family:var(--f-head);font-weight:800;font-size:clamp(2rem,4.6vw,2.7rem);color:#fff;text-shadow:0 4px 18px rgba(0,0,0,.18);white-space:nowrap}
.calc-sub{display:block;font-size:.85rem;font-weight:600;opacity:.95}
.calc-note{font-size:.8rem;margin-top:12px;opacity:.9;font-style:italic}
.calc-bottom .btn{margin-top:20px;align-self:center;background:#fff;color:var(--blue);box-shadow:0 10px 24px rgba(0,0,0,.18)}
.calc-bottom .btn:hover{background:#fff;transform:translateY(-3px)}
#calcResult.pop .calc-amt{animation:amtPop .5s cubic-bezier(.2,.9,.3,1.4)}
@keyframes amtPop{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.08)}100%{transform:scale(1);opacity:1}}
.calc-ba{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow);border:6px solid #fff;position:relative;min-height:340px;background:linear-gradient(135deg,#dff3ee,#cfe0f7)}
.calc-ba .ba{position:absolute;inset:0;aspect-ratio:auto;border:0;border-radius:0;height:100%}

/* pricing */
.price-table{width:100%;border-collapse:collapse;background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);border:1px solid var(--line)}
.price-table thead th{background:var(--grad-brand);color:#fff;text-align:left;padding:16px 22px;font-family:var(--f-head);font-size:.95rem}
.price-table thead th:last-child{text-align:right}
.price-table td{padding:14px 22px;border-top:1px solid var(--line)}
.price-table tbody tr:hover{background:var(--bg-soft)}
.price-cat td{background:linear-gradient(120deg,var(--teal-dd),var(--blue));font-family:var(--f-head);font-weight:800;color:#fff;font-size:.95rem;letter-spacing:.03em;padding-top:14px;padding-bottom:14px;border-radius:0}
.price-cat td:hover,.price-cat:hover td{background:linear-gradient(120deg,var(--teal-dd),var(--blue))}
.pname{font-weight:600}
.pprice{text-align:right;font-weight:800;color:var(--teal-dd);white-space:nowrap}
.price-row-link{cursor:pointer;transition:background .15s}
.price-row-link:hover{background:rgba(87,195,173,.08)}
.pname-link{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none;width:100%}
.pname-link:hover .pname{color:var(--teal-dd)}
.plink-arr{font-size:.85rem;color:var(--teal-dd);opacity:0;transition:opacity .15s,transform .15s;transform:translateX(-4px)}
.price-row-link:hover .plink-arr{opacity:1;transform:translateX(0)}
.pprice-per{display:block;width:fit-content;margin-left:auto;font-family:var(--f-body);font-weight:700;font-size:.62rem;color:#fff;background:linear-gradient(120deg,#FBB04B,#F08A24 55%,#E0760F);text-transform:uppercase;letter-spacing:.05em;margin-top:3px;padding:2px 8px;border-radius:5px;white-space:nowrap}
.tag{display:inline-block;font-size:.7rem;font-weight:700;background:#eaf0f6;color:var(--blue);padding:2px 9px;border-radius:999px;margin-left:4px}
.tag-soft{background:#fff3e6;color:var(--orange-d)}
.price-wrap{max-width:900px;margin:0 auto;overflow-x:auto;-webkit-overflow-scrolling:touch}
@media(max-width:600px){
  .price-table{font-size:.9rem}
  .price-table thead th{padding:12px 10px;font-size:.82rem}
  .price-table td{padding:11px 10px;vertical-align:middle}
  .price-cat td{padding:10px 10px;font-size:.82rem}
  .pname{font-weight:600;font-size:.9rem;line-height:1.25}
  .pname-link{gap:0}
  .plink-arr{display:none}
  .pprice{font-size:.82rem;padding-left:2px;white-space:nowrap}
  .price-table td:first-child{padding-right:4px}
  .price-table td:last-child{width:1%;padding-right:10px}
  .pprice-per{font-size:.58rem}
  .tag{display:inline-block;margin:4px 4px 0 0;font-size:.64rem;padding:2px 7px}
  td .pname + .tag{margin-left:0}
  body.bn .price-table{font-size:.9rem}
}

/* before / after */
.ba-filters{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:34px}
/* the images are illustrative, not this clinic's own patients — say so under them */
.ba-note{margin:22px auto 0;text-align:center;font-size:.86rem;color:var(--muted,#667);max-width:52ch}
.ba-filter{border:1.5px solid var(--line);background:rgba(255,255,255,.7);border-radius:999px;padding:10px 20px;font-weight:700;font-family:var(--f-head);font-size:.85rem;cursor:pointer;color:var(--muted);transition:.15s}
.ba-filter.active{border-color:transparent;color:#fff;background:var(--grad-brand);box-shadow:var(--shadow-glow)}
.ba-filter:hover{border-color:var(--teal);color:var(--teal-dd)}
.ba-filter.active:hover{color:#fff}
.ba-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;max-width:1100px;margin:0 auto}
.ba{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/3;max-width:620px;margin:0 auto;user-select:none;border:5px solid #fff}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba-before{clip-path:inset(0 50% 0 0)}
.ba-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;touch-action:none}
.ba-handle{position:absolute;top:0;bottom:0;left:50%;width:3px;background:#fff;transform:translateX(-50%);pointer-events:none}
.ba-handle::after{content:"⇆";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--grad-brand);color:#fff;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;box-shadow:var(--shadow);font-weight:800;animation:baPulse 2.2s ease-in-out infinite}
@keyframes baPulse{0%,100%{box-shadow:var(--shadow),0 0 0 0 rgba(87,195,173,.5)}50%{box-shadow:var(--shadow),0 0 0 9px rgba(87,195,173,0)}}
.ba-anim .ba-before,.ba-anim .ba-handle{transition:clip-path .7s ease,left .7s ease}
.ba-tag{position:absolute;bottom:12px;background:rgba(19,41,78,.72);color:#fff;font-size:.75rem;font-weight:700;padding:4px 12px;border-radius:999px;pointer-events:none;backdrop-filter:blur(4px)}
.ba-tag-l{left:12px}.ba-tag-r{right:12px}

/* doctor */
.doc-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center}
.doc-photo{border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow);aspect-ratio:4/4.6;background:linear-gradient(135deg,#dff3ee,#cfe0f7);display:grid;place-items:center;border:6px solid rgba(255,255,255,.6)}
.doc-photo svg{width:70%}
.doc-card h3{font-size:var(--fs-h1-sub)}
.doc-role{color:var(--teal-dd);font-weight:800;font-family:var(--f-head);margin:6px 0 16px}
.doc-text{color:var(--muted);margin-bottom:22px}
.doc-creds{list-style:none;display:grid;gap:13px;margin-bottom:26px}
.doc-creds li{display:flex;gap:13px;align-items:flex-start;font-weight:600}

/* faq */
.faq-wrap{max-width:840px;margin:0 auto}
.faq-list{display:grid;gap:13px}
.faq-item{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow .2s}
.faq-item.open{box-shadow:var(--shadow)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:16px;text-align:left;background:none;border:0;cursor:pointer;padding:20px 24px;font-family:var(--f-head);font-weight:700;font-size:1rem;color:var(--navy)}
.faq-qt{flex:1;min-width:0}
.faq-ic{flex:0 0 30px;height:30px;border-radius:50%;background:var(--bg-soft);color:var(--teal-dd);display:grid;place-items:center;font-size:1.3rem;transition:.25s}
.faq-item.open .faq-ic{transform:rotate(45deg);background:var(--grad-brand);color:#fff}
.faq-a{max-height:0;overflow:hidden;transition:max-height .3s ease}
.faq-item.open .faq-a{max-height:320px}
.faq-a p{padding:0 24px 20px;color:var(--muted)}

/* testimonials */
.test-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.test-card{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:30px;box-shadow:var(--shadow-sm);transition:.25s;text-decoration:none;color:inherit;cursor:pointer}
.test-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.test-card .stars{color:var(--orange);letter-spacing:2px;margin-bottom:12px;font-size:1.05rem}
.test-card p{color:var(--ink);font-style:italic}
.test-meta{display:flex;align-items:center;gap:12px;margin-top:18px}
.avatar{width:46px;height:46px;border-radius:50%;background:var(--grad-brand);color:#fff;display:grid;place-items:center;font-weight:800;font-family:var(--f-head)}
.test-meta small{display:block;color:var(--muted)}

/* tips */
.tips-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.tip-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow-sm);transition:.25s}
.tip-card:hover{transform:translateY(-7px);box-shadow:var(--shadow)}
.tip-img{height:140px;display:grid;place-items:center;font-size:2.8rem;background:var(--grad-mesh),linear-gradient(135deg,#eaf7f3,#e7f0fa)}
.tip-body{padding:24px}
.tip-body h3{font-size:var(--fs-h3);margin-bottom:8px}
.tip-body p{color:var(--muted);font-size:.9rem;margin-bottom:10px}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:38px;align-items:stretch}
.contact-info{display:grid;gap:16px;align-content:start}
.ci-row{display:flex;gap:14px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px 19px;box-shadow:var(--shadow-sm);transition:.2s}
.ci-row:hover{box-shadow:var(--shadow);transform:translateX(4px)}
.ci-ic{flex:0 0 46px;height:46px;border-radius:13px;background:linear-gradient(135deg,rgba(87,195,173,.16),rgba(43,108,176,.14));display:grid;place-items:center;font-size:1.2rem}
.ci-row strong{display:block;font-family:var(--f-head);color:var(--navy);font-size:.85rem;letter-spacing:.04em;text-transform:uppercase}
.ci-row span,.ci-row a{color:var(--muted);font-size:.95rem}
.map-frame{position:relative;border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);min-height:380px;border:5px solid #fff}
.map-frame iframe{width:100%;height:100%;min-height:380px;border:0}
.map-dir-btn{position:absolute;right:14px;bottom:14px;z-index:3;display:inline-flex;align-items:center;gap:7px;background:#fff;color:var(--teal-dd);font-family:var(--f-head);font-weight:700;font-size:.9rem;padding:11px 18px;border-radius:999px;box-shadow:0 8px 24px rgba(19,41,78,.22);transition:transform .2s,box-shadow .2s,background .2s,color .2s}
.map-dir-btn svg{width:18px;height:18px}
.map-dir-btn:hover{transform:translateY(-2px);background:var(--teal-dd);color:#fff;box-shadow:0 12px 30px rgba(44,138,120,.4)}

/* careers page */
.perk-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.perk-card{background:#fff;border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-sm);padding:26px 22px;transition:transform .25s,box-shadow .25s}
.perk-card:hover{transform:translateY(-6px);box-shadow:var(--shadow)}
.perk-ic{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;color:#fff;background:var(--grad-brand);margin-bottom:16px}
.perk-ic svg{width:24px;height:24px}
.perk-card h3{font-size:var(--fs-h3);margin-bottom:7px}
.perk-card p{color:var(--muted);font-size:.9rem}
.job-type{display:inline-block;font-family:var(--f-head);font-weight:700;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase;color:var(--teal-dd);background:linear-gradient(120deg,rgba(87,195,173,.14),rgba(43,108,176,.12));border:1px solid rgba(87,195,173,.28);padding:5px 12px;border-radius:999px;margin-bottom:12px}
.job-loc{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:.85rem;margin:6px 0}
.job-loc svg{width:15px;height:15px;color:var(--teal-dd);flex:0 0 auto}
.job-apply{width:100%;justify-content:center;margin-top:16px}
@media(max-width:980px){.perk-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.perk-grid{grid-template-columns:1fr}}

/* booking */
.book-wrap{display:grid;grid-template-columns:1fr 1fr;gap:42px;align-items:start}
.book-form{background:var(--glass);border:1px solid var(--glass-brd);backdrop-filter:blur(10px);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:34px}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.f-field{margin-bottom:16px}
.f-field label{display:block;font-weight:700;font-family:var(--f-head);font-size:.85rem;margin-bottom:7px;color:var(--navy)}
.f-check{display:flex;align-items:center;gap:10px;margin:6px 0 18px;font-weight:600;font-size:.92rem}
.f-check input{width:18px;height:18px;accent-color:var(--teal)}
.book-success{display:none;background:rgba(87,195,173,.14);border:1px solid rgba(87,195,173,.4);color:var(--teal-dd);border-radius:13px;padding:13px 16px;margin-top:14px;font-weight:600}
.book-side h2{font-size:var(--fs-h2)}
.book-side p{color:var(--muted);margin:14px 0 22px}
.book-side .btn{margin-bottom:14px}
.book-side .wa-note{display:flex;gap:13px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:17px;box-shadow:var(--shadow-sm)}
.wa-phone{display:inline-flex;align-items:center;gap:7px;font-family:var(--f-head);font-weight:800;font-size:1.12rem;letter-spacing:.4px;color:#fff;background:var(--grad-brand);padding:9px 18px;border-radius:999px;box-shadow:0 8px 20px rgba(43,108,176,.28);line-height:1.1;margin-bottom:7px;transition:transform .18s,box-shadow .18s}
.wa-phone svg{width:17px;height:17px}
.wa-phone:hover{color:#fff;transform:translateY(-2px);box-shadow:0 12px 26px rgba(43,108,176,.4)}

/* gallery page */
.gal-filter{display:flex;flex-wrap:wrap;gap:8px;margin:28px 0}
.gal-tag{background:var(--surface);border:1.5px solid var(--line);border-radius:20px;padding:6px 16px;font-size:.82rem;font-weight:600;cursor:pointer;transition:background .15s,border-color .15s,color .15s;color:var(--muted)}
.gal-tag.active,.gal-tag:hover{background:var(--teal-dd);border-color:var(--teal-dd);color:#fff}
.gal-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:22px;margin-top:4px}
.gal-item{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}
/* header */
.gal-head{display:flex;align-items:center;gap:10px;padding:10px 12px}
.gal-avatar{width:34px;height:34px;border-radius:50%;padding:2px;background:linear-gradient(45deg,#feda75,#d62976,#4f5bd5);flex-shrink:0}
.gal-avatar img{width:100%;height:100%;border-radius:50%;object-fit:contain;padding:3px;background:#fff;border:2px solid #fff;display:block;box-sizing:border-box}
.gal-user{font-weight:700;font-size:.86rem;color:var(--ink);flex:1}
.gal-more{color:var(--ink);font-size:1.1rem;letter-spacing:1px;line-height:1;cursor:default}
/* square photo */
.gal-photo{position:relative;aspect-ratio:1/1;overflow:hidden;cursor:pointer}
.gal-photo img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .3s}
.gal-item:hover .gal-photo img{transform:scale(1.03)}
.gal-wm{position:absolute;right:8px;bottom:8px;z-index:2;pointer-events:none;display:inline-flex;align-items:center;gap:4px;opacity:.38}
.gal-wm img{width:14px;height:14px;display:block}
.gal-wm-tx{display:flex;flex-direction:column;line-height:1;letter-spacing:.02em;font-weight:800;font-size:8px;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.55)}
.gal-wm-tx b{color:#fff;font-weight:800}
@media (max-width:520px){.gal-wm{right:6px;bottom:6px;gap:3px}.gal-wm img{width:11px;height:11px}.gal-wm-tx{font-size:7px}}
/* action row */
.gal-actions{display:flex;align-items:center;gap:16px;padding:10px 12px 4px;font-size:1.2rem;line-height:1}
.gal-act{background:none;border:none;cursor:pointer;color:var(--ink);padding:0;display:flex;align-items:center;transition:transform .12s,color .12s}
.gal-act:hover{transform:scale(1.12)}
.gal-act.liked{color:#e84393}
.gal-act.saved{color:var(--teal-dd)}
.gal-bookmark{margin-left:auto}
/* likes + caption */
.gal-likes{padding:2px 12px;font-weight:700;font-size:.84rem;color:var(--ink)}
.gal-caption{padding:2px 12px 4px;font-size:.85rem;color:var(--ink);line-height:1.4}
.gal-caption b{font-weight:700;margin-right:5px}
.gal-comments{padding:0 12px 14px}
.gal-viewall{background:none;border:none;padding:0;margin:0 0 4px;color:var(--muted);font-size:.82rem;cursor:pointer;font-family:inherit}
.gal-viewall:hover{text-decoration:underline}
.gal-comment{font-size:.83rem;color:var(--ink);line-height:1.4;margin-top:2px}
.gal-comment b{font-weight:700;margin-right:5px}
/* comments modal */
.gal-cm{position:fixed;inset:0;background:rgba(5,15,30,.82);z-index:320;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;pointer-events:none;transition:opacity .22s}
.gal-cm.open{opacity:1;pointer-events:auto}
.gal-cm-box{display:flex;width:min(460px,96vw);max-height:82vh;background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 24px 80px rgba(0,0,0,.5)}
.gal-cm-side{width:100%;display:flex;flex-direction:column;min-width:0}
.gal-cm-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}
.gal-cm-close{margin-left:auto;background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--muted);line-height:1;padding:4px 6px}
.gal-cm-close:hover{color:var(--ink)}
.gal-cm-cap{padding:12px 14px;font-size:.9rem;color:var(--ink);line-height:1.45;border-bottom:1px solid var(--line)}
.gal-cm-cap b{font-weight:700;margin-right:6px}
.gal-cm-title{padding:10px 14px 4px;font-size:.74rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}
.gal-cm-list{flex:1;overflow-y:auto;padding:4px 14px 12px;min-height:120px}
.gal-cm-item{display:flex;gap:10px;padding:8px 0;opacity:0;animation:galCmIn .45s ease forwards}
@keyframes galCmIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.gal-cm-av{width:32px;height:32px;border-radius:50%;padding:2px;background:linear-gradient(45deg,#feda75,#d62976,#4f5bd5);flex-shrink:0}
.gal-cm-av img{width:100%;height:100%;border-radius:50%;object-fit:cover;background:#fff;border:2px solid #fff;display:block}
.gal-cm-txt{font-size:.85rem;color:var(--ink);line-height:1.45}
.gal-cm-txt b{font-weight:700;margin-right:6px}
.gal-cm-foot{padding:10px 14px;border-top:1px solid var(--line);font-weight:700;font-size:.84rem;color:var(--ink)}
@media(max-width:640px){.gal-cm-box{width:100%;max-height:88vh}}
.gal-lb{position:fixed;inset:0;background:rgba(5,15,30,.9);z-index:300;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .22s}
.gal-lb.open{opacity:1;pointer-events:auto}
.gal-lb-img{max-width:92vw;max-height:86vh;border-radius:14px;object-fit:contain;box-shadow:0 24px 80px rgba(0,0,0,.5)}
.gal-lb-close{position:absolute;top:16px;right:18px;background:rgba(255,255,255,.14);border:none;color:#fff;font-size:1.4rem;width:44px;height:44px;border-radius:50%;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center}
.gal-lb-close:hover{background:rgba(255,255,255,.25)}
.gal-lb-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.12);border:none;color:#fff;font-size:1.5rem;width:48px;height:48px;border-radius:50%;cursor:pointer;transition:background .15s;display:flex;align-items:center;justify-content:center}
.gal-lb-nav:hover{background:rgba(255,255,255,.25)}
.gal-lb-prev{left:16px}.gal-lb-next{right:16px}
.gal-submit{text-align:center;padding:52px 24px;background:var(--surface);border-radius:24px;margin:48px 0 32px;border:1.5px dashed var(--line)}
.gal-submit h3{font-size:1.4rem;margin-bottom:8px}
.gal-submit p{color:var(--muted);margin-bottom:24px;max-width:480px;margin-left:auto;margin-right:auto}
.gal-submit .btn{display:inline-flex;gap:8px;align-items:center}
@media(max-width:600px){.gal-grid{grid-template-columns:1fr;gap:18px}.gal-lb-nav{display:none}}

/* search */
.srch-btn{background:none;border:1.5px solid var(--line);cursor:pointer;padding:8px 10px;border-radius:12px;color:var(--navy);display:flex;align-items:center;transition:color .15s,background .15s,border-color .15s;flex-shrink:0}
.srch-btn:hover{background:var(--surface);color:var(--teal-dd);border-color:var(--teal-dd)}
.srch-btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2.75;stroke-linecap:round;stroke-linejoin:round}
.srch-overlay{position:fixed;inset:0;background:rgba(5,15,30,.72);z-index:400;display:flex;align-items:flex-start;justify-content:center;padding-top:72px;opacity:0;pointer-events:none;transition:opacity .18s}
.srch-overlay.open{opacity:1;pointer-events:auto}
.srch-modal{width:min(640px,92vw);background:#fff;border-radius:20px;box-shadow:0 24px 64px rgba(0,0,0,.28);overflow:hidden;max-height:80vh;display:flex;flex-direction:column}
.srch-row{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.srch-ic{width:18px;height:18px;flex-shrink:0;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;color:var(--muted)}
.srch-input{flex:1;border:none;background:none;font-size:1rem;color:var(--ink);outline:none;min-width:0}
.srch-input:focus,.srch-input:focus-visible{outline:none}
.srch-input::placeholder{color:var(--muted)}
.srch-esc{font-size:.72rem;border:1.5px solid var(--line);border-radius:5px;padding:2px 7px;color:var(--muted);flex-shrink:0;font-family:inherit}
.srch-close{background:none;border:none;cursor:pointer;color:var(--muted);font-size:1.1rem;padding:4px 6px;border-radius:6px;line-height:1;transition:color .15s}
.srch-close:hover{color:var(--ink)}
.srch-results{overflow-y:auto;flex:1}
.srch-group-label{font-size:.7rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);padding:12px 18px 4px}
.srch-item{display:flex;align-items:center;gap:12px;padding:9px 18px;cursor:pointer;transition:background .12s;text-decoration:none;color:inherit;border-radius:0}
.srch-item:hover,.srch-item.srch-active{background:rgba(87,195,173,.1)}
.srch-item-icon{width:36px;height:36px;border-radius:10px;background:var(--surface);display:flex;align-items:center;justify-content:center;font-size:1.05rem;flex-shrink:0}
.srch-item-body{flex:1;min-width:0}
.srch-item-label{font-size:.9rem;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srch-item-sub{font-size:.77rem;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.srch-item-price{font-size:.82rem;font-weight:700;color:var(--teal-dd);flex-shrink:0;margin-left:4px}
.srch-empty{text-align:center;padding:40px 24px;color:var(--muted);font-size:.9rem}
.srch-hint{padding:9px 18px;font-size:.73rem;color:var(--muted);border-top:1px solid var(--line);text-align:center}

/* footer */
.footer{background:linear-gradient(180deg,var(--navy),#0d1f3d);color:#cfe0e8;padding:66px 0 28px;position:relative}
.footer::before{content:"";position:absolute;top:0;left:0;right:0;height:5px;background:var(--grad-brand)}
.foot-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:36px}
.footer h4{color:#fff;font-family:var(--f-head);margin-bottom:18px;font-size:var(--fs-h4)}
.footer a{color:#c2d6e0;display:block;padding:5px 0;font-size:.92rem;transition:.15s}
.footer a:hover{color:var(--teal)}
.foot-brand .foot-logo{display:flex;align-items:center;gap:11px;margin-bottom:16px}
.foot-brand .foot-logo img{height:54px;width:auto}
.foot-brand .foot-logo span{font-family:var(--f-head);font-weight:800;color:#fff;font-size:1.4rem;line-height:1}
.foot-brand .foot-logo small{display:block;font-size:.72em;letter-spacing:.14em;color:var(--orange);font-weight:800;margin-top:2px;line-height:1;text-indent:.14em}
.foot-brand p{font-size:.9rem;color:#a9c2cd}
.foot-soc{display:flex;gap:10px;margin-top:15px}
.foot-soc a{width:42px;height:42px;border-radius:12px;background:var(--grad-brand);box-shadow:var(--shadow-glow);color:#fff;display:grid;place-items:center;padding:0;font-weight:800;font-size:1.1rem;transition:transform .18s,box-shadow .18s}
.foot-soc a:hover{transform:translateY(-2px)}
.foot-soc a svg{width:20px;height:20px}
.foot-soc a[aria-label="Facebook"]{background:#1877F2;box-shadow:0 8px 20px rgba(24,119,242,.45)}
.foot-soc a[aria-label="WhatsApp"]{background:#25D366;box-shadow:0 8px 20px rgba(37,211,102,.45)}
.foot-soc a[aria-label="Facebook"]:hover{box-shadow:0 12px 26px rgba(24,119,242,.6)}
.foot-soc a[aria-label="WhatsApp"]:hover{box-shadow:0 12px 26px rgba(37,211,102,.6)}
.foot-bottom{border-top:1px solid rgba(255,255,255,.13);margin-top:44px;padding-top:22px;text-align:center;font-size:.85rem;color:#a9c2cd}

/* inline svg icons */
.ic-svg{width:1.5em;height:1.5em;display:block}
.step-ic{color:var(--teal-dd)}
.step-ic .ic-svg{width:34px;height:34px}
.tech-ic{color:var(--teal-dd)}
.tech-ic .ic-svg{width:26px;height:26px}
.ci-ic{color:var(--teal-dd)}
.ci-ic .ic-svg{width:22px;height:22px}
.fc-ic{color:#fff}
.fc-ic .ic-svg{width:22px;height:22px}
.fact-ic{color:var(--teal-dd)}
.fact-ic .ic-svg{width:20px;height:20px}

/* accessibility: visible keyboard focus + pointer affordance (UI UX Pro Max checklist) */
a,button,select,.tab-btn,.pthumb,.faq-q,.lang-toggle,.svc-img,[role="button"]{cursor:pointer}
a:focus-visible,button:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,.tab-btn:focus-visible,.faq-q:focus-visible,.pthumb:focus-visible,.svc-img:focus-visible{outline:3px solid var(--teal);outline-offset:2px;border-radius:8px}

/* scroll progress bar */
#scrollbar{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;background:linear-gradient(90deg,var(--teal),var(--blue),var(--orange));transition:width .08s linear}

/* kinetic marquee */
.marquee{overflow:hidden;background:var(--navy);padding:14px 0;white-space:nowrap;border-top:1px solid rgba(255,255,255,.06)}
.marquee-track{display:inline-flex;gap:0;animation:marquee 32s linear infinite;will-change:transform}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-track span{display:inline-flex;align-items:center;gap:12px;padding:0 26px;font-family:var(--f-head);font-weight:800;font-size:1.05rem;color:#fff;text-transform:uppercase;letter-spacing:.04em}
.marquee-track span::after{content:"✦";color:var(--teal);font-size:.8rem;margin-left:26px}
@keyframes marquee{to{transform:translateX(-50%)}}

/* kinetic hero reveal */
.hero h1,.hero p.lead,.hero .hero-cta,.hero .hero-trust-row,.hero .hero-badges{opacity:0;transform:translateY(26px);animation:heroUp .8s cubic-bezier(.2,.7,.2,1) forwards}
.hero p.lead{animation-delay:.12s}.hero .hero-cta{animation-delay:.24s}.hero .hero-trust-row{animation-delay:.32s}.hero .hero-badges{animation-delay:.40s}
.hero-art{opacity:0;transform:translateY(26px) scale(.98);animation:heroUp .9s .2s cubic-bezier(.2,.7,.2,1) forwards}
@keyframes heroUp{to{opacity:1;transform:none}}
.hero .blob{animation:blobDrift 16s ease-in-out infinite}
.hero .b2{animation-duration:20s;animation-direction:reverse}
@keyframes blobDrift{50%{transform:translate(26px,-22px) scale(1.08)}}

/* back to top */
.totop{position:fixed;right:20px;bottom:86px;z-index:60;width:48px;height:48px;border-radius:50%;border:0;cursor:pointer;background:var(--grad-brand);color:#fff;font-size:1.3rem;font-weight:800;box-shadow:var(--shadow);opacity:0;visibility:hidden;transform:translateY(12px);transition:.25s}
.totop.show{opacity:1;visibility:visible;transform:none}
.totop:hover{transform:translateY(-3px)}

/* topbar */
.topbar{background:var(--navy);color:rgba(255,255,255,.85);font-size:.75rem;font-family:var(--f-head);padding:0 0}
.topbar-inner{display:flex;align-items:center;justify-content:space-between;height:38px;gap:12px}
.tb-left{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.tb-item{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.tb-item svg{width:13px;height:13px;stroke:var(--teal);flex-shrink:0}
.tb-divider{color:rgba(255,255,255,.25)}
.tb-right{display:flex;align-items:center;gap:10px}
.tb-social{color:rgba(255,255,255,.6);display:grid;place-items:center;transition:color .15s}
.tb-social:hover{color:#fff}
.tb-social svg{width:14px;height:14px}

/* right floating sidebar */
.fixed-sidebar{position:fixed;right:0;top:60%;transform:translateY(-50%);z-index:200;display:flex;flex-direction:column;border-radius:12px 0 0 12px;overflow:hidden;box-shadow:0 8px 32px rgba(19,41,78,.22);opacity:.4;transition:opacity .25s ease}
.fixed-sidebar:hover,.fixed-sidebar:focus-within,.fixed-sidebar:active{opacity:1}
.fsb-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 10px;font-size:.6rem;font-weight:700;text-decoration:none;color:#fff;min-width:62px;letter-spacing:.02em;transition:filter .15s}
.fsb-btn:hover{filter:brightness(1.12)}
.fsb-ic{width:34px;height:34px;border-radius:50%;display:grid;place-items:center}
.fsb-ic svg{width:18px;height:18px}
.fsb-call{background:var(--navy)}
.fsb-call .fsb-ic{background:rgba(255,255,255,.15)}
.fsb-wa{background:#25D366}
.fsb-wa .fsb-ic{background:rgba(255,255,255,.18)}
.fsb-rev{background:#fff;color:#444;border-top:1px solid #eee}
.fsb-rev .fsb-ic{background:#f4f4f4}
.fsb-rev .fsb-ic svg{width:22px;height:22px}

/* features bar */
.features-bar{background:#fff;border-top:1px solid #eaf5f3;border-bottom:1px solid #eaf5f3;padding:28px 0}
.fb-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.fb-item{display:flex;align-items:flex-start;gap:14px;padding:14px 12px;border-radius:14px;transition:box-shadow .2s,background .2s}
.fb-item:hover{box-shadow:var(--shadow-sm);background:#fafffe}
.fb-ic{width:50px;height:50px;border-radius:14px;background:var(--grad-brand);display:grid;place-items:center;flex-shrink:0}
.fb-ic svg{width:24px;height:24px;stroke:#fff;fill:none}
.fb-item strong{font-family:var(--f-head);font-size:.9rem;color:var(--navy);display:block;margin-bottom:3px}
.fb-item p{font-size:.78rem;color:var(--muted);margin:0;line-height:1.4}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
/* service cards: fade in from bottom — JS-observer fallback for browsers
   without scroll-driven CSS. Uses the independent `translate` property so it
   never fights the hover `transform`. */
.svc-card.reveal{opacity:0;translate:0 40px;
  transition:opacity .7s cubic-bezier(.22,1,.36,1),translate .7s cubic-bezier(.22,1,.36,1)}
.svc-card.reveal.in{opacity:1;translate:0 0}
/* gentle per-column stagger within a grid row */
.svc-grid .svc-card:nth-child(4n+2){transition-delay:.07s}
.svc-grid .svc-card:nth-child(4n+3){transition-delay:.14s}
.svc-grid .svc-card:nth-child(4n+4){transition-delay:.21s}

/* preferred path: pure-CSS scroll-driven fade-in-from-bottom (no JS, no libs).
   Each card animates as it scrolls up into view; cards naturally stagger because
   they enter the viewport at slightly different scroll positions. `svcSpin` (the
   rotating border) is preserved by listing both animations with paired timelines. */
@keyframes svcRise{
  from{opacity:0;translate:0 46px}
  to{opacity:1;translate:0 0}
}
@supports (animation-timeline:view()){
  .svc-card{
    animation:svcSpin 5s linear infinite, svcRise both linear;
    animation-timeline:auto, view();
    animation-range:normal, entry 0% entry 65%;
  }
  /* scroll-timeline now owns the reveal — silence the JS-observer fallback so the
     two never double-fire (the `both`-fill animation overrides these anyway). */
  .svc-card.reveal{opacity:1;translate:0 0;transition:none}
}

/* responsive */
@media(max-width:980px){
  .hero-grid,.why-grid,.doc-grid,.contact-grid,.book-wrap,.calc-layout,.emerg-grid{grid-template-columns:1fr}
  .calc-ba{min-height:300px}
  .svc-grid,.tech-grid,.tips-grid{grid-template-columns:repeat(3,1fr)}
  .steps-grid{grid-template-columns:repeat(2,1fr);gap:32px 18px}
  .test-grid{grid-template-columns:1fr 1fr}
  .hero-art{max-width:440px;margin:0 auto}
  .why-doc,.doc-photo{max-width:420px;margin:0 auto}
  .fc-1{left:0}
  .fc-2{right:0}
}
@media(max-width:760px){
  .container{padding-left:14px;padding-right:14px;max-width:100%;width:100%}
  .hero{width:100%}
  .brand img{height:48px}
  .brand{font-size:1.5rem;gap:0}
  .logo-anim--mark{margin-right:-4px}
  .navlist{position:fixed;inset:84px 0 auto 0;flex-direction:column;background:rgba(255,255,255,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);padding:18px 24px;gap:14px;display:none;box-shadow:var(--shadow)}
  .navlist.open{display:flex}
  .navlist .nav-actions{margin:6px 0 0;flex-wrap:wrap}
  .burger{display:flex}
  .srch-btn{margin-left:auto;padding:9px}
  .nav-lang{display:inline-flex;margin-left:8px;padding:9px 13px;font-size:.82rem}
  .stats-grid{grid-template-columns:1fr 1fr;gap:16px}
  .hero-stats .stats-grid{grid-template-columns:1fr 1fr;gap:12px}
  /* name takes its own line so the phone field and the send button stay paired */
  .cb-name{flex:1 1 100%}
  .callback-actions{width:100%}
  .callback-actions .btn{flex:1;justify-content:center}
  .svc-grid,.tech-grid,.tips-grid{grid-template-columns:1fr 1fr}
  .ba-grid,.test-grid,.f-row{grid-template-columns:1fr}
  .map-dir-btn{right:10px;bottom:10px;padding:9px 14px;font-size:.82rem}
  .section{padding:40px 0}
  .foot-grid{grid-template-columns:1fr 1fr}
  .call-link span{display:none}
}
@media(max-width:480px){
  .svc-grid,.tech-grid,.tips-grid,.steps-grid{grid-template-columns:1fr}
  .stats-grid{grid-template-columns:1fr 1fr}
  .foot-grid{grid-template-columns:1fr}
  /* stack the hero CTAs full-width so long labels (e.g. "Book Appointment")
     never get clipped by a forced 50/50 row */
  .hero-cta{flex-direction:column;align-items:stretch}
  .hero-cta .btn{width:100%;justify-content:center}
}
@media(max-width:760px){
  .has-dd{width:100%}
  .has-dd .dd-toggle{justify-content:space-between;width:100%;padding:4px 0}
  .dd-menu{position:static;transform:none !important;width:100%;border-radius:12px;background:rgba(87,195,173,.07);border:1.5px solid rgba(87,195,173,.22);box-shadow:none;max-height:0;overflow:hidden;opacity:0;visibility:hidden;transition:max-height .32s ease,opacity .25s,visibility .25s;margin-top:8px}
  .dd-menu::before{display:none}
  .has-dd.open .dd-menu{max-height:520px;opacity:1;visibility:visible}
  .dd-notch{display:none}
  .dd-menu a{padding:10px 14px;white-space:normal;gap:10px}
  .dd-ic{width:28px;height:28px;font-size:.9rem;border-radius:8px}
  .dd-more{margin:6px 10px 10px;padding:10px 14px !important}
}
@media(max-width:760px){
  .fb-grid{grid-template-columns:1fr 1fr}
  .topbar .tb-left .tb-divider,.topbar .tb-left .tb-item:last-child{display:none}
}
@media(max-width:480px){
  .fb-grid{grid-template-columns:1fr}
  .topbar{display:none}
  .fixed-sidebar{display:none}
}
@media(prefers-reduced-motion:reduce){
  .fc-1,.fc-2,.marquee-track,.hero .blob{animation:none}
  .hero h1,.hero p.lead,.hero .hero-cta,.hero .hero-trust-row,.hero .hero-badges,.hero-art{opacity:1;transform:none;animation:none}
  .reveal{opacity:1;transform:none;transition:none}
  .svc-card.reveal{opacity:1;transform:none;translate:0 0;transition:none}
  .svc-card{animation:none;translate:0 0}
  .nav-actions .btn-primary,a.btn[href*="book.html"],#calcBook,.nav-actions .btn-primary::after,a.btn[href*="book.html"]::after,#calcBook::after{animation:none}
  .btn-call{animation:none}
}

/* ============================================================
   WhatsApp Live Chat Widget
   ============================================================ */
.wa-chat-bubble{position:fixed;bottom:24px;right:24px;z-index:300;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 24px rgba(37,211,102,.5);transition:transform .2s,box-shadow .2s}
.wa-chat-bubble svg{width:30px;height:30px}
.wa-chat-bubble:hover,.wa-chat-bubble.active{transform:scale(1.1);box-shadow:0 6px 32px rgba(37,211,102,.65)}
.wa-bubble-badge{position:absolute;top:-3px;right:-3px;background:#e53e3e;color:#fff;font-size:.62rem;font-weight:700;width:18px;height:18px;border-radius:50%;display:grid;place-items:center;border:2px solid #fff}
.wa-chat-popup{position:fixed;bottom:90px;right:20px;z-index:299;width:260px;background:#fff;border-radius:16px;box-shadow:0 8px 32px rgba(0,0,0,.18);overflow:hidden;transform:scale(.92) translateY(10px);opacity:0;pointer-events:none;transition:transform .25s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}
.wa-chat-popup.open{transform:scale(1) translateY(0);opacity:1;pointer-events:all}
.wcp-mini-head{background:#25D366;color:#fff;padding:10px 14px;display:flex;align-items:center;justify-content:space-between;font-size:.78rem;font-weight:700;letter-spacing:.04em}
.wcp-close{background:none;border:none;color:#fff;font-size:1rem;cursor:pointer;padding:2px 4px;opacity:.85;line-height:1}
.wcp-close:hover{opacity:1}
.wcp-chips{display:flex;flex-direction:column;gap:0}
.wcp-chip{background:#fff;border:0;border-bottom:1px solid #f0f0f0;color:var(--navy);padding:11px 16px;font-size:.84rem;font-weight:600;cursor:pointer;text-align:left;transition:background .15s;width:100%}
.wcp-chip:last-child{border-bottom:0}
.wcp-chip:hover{background:#f0fff4}
.wcp-start{display:flex;align-items:center;justify-content:center;gap:8px;background:#25D366;color:#fff;padding:11px 14px;font-weight:700;font-size:.84rem;text-decoration:none;transition:background .15s;border-top:1px solid #1fc45a}
.wcp-start:hover{background:#1ebe5d;color:#fff}
@media(max-width:480px){.wa-chat-popup{width:calc(100vw - 40px);right:20px;bottom:84px}}

/* ============================================================
   Google Review QR + Score Block
   ============================================================ */
.review-cta{display:flex;align-items:center;justify-content:center;gap:32px 56px;margin-top:48px;padding:32px 40px;background:linear-gradient(135deg,#f0fbf8 0%,#e8f4fd 100%);border-radius:20px;flex-wrap:wrap}
.review-qr{position:relative}
.review-qr::before{content:"";position:absolute;left:-28px;top:8px;bottom:8px;width:1px;background:linear-gradient(180deg,transparent,rgba(19,41,78,.14),transparent)}
.review-score{display:flex;align-items:center;gap:18px;flex-wrap:wrap;max-width:420px}
.g-logo-lg{width:52px;height:52px;flex-shrink:0}
.rs-score{font-size:2rem;font-weight:800;color:var(--navy);font-family:var(--f-head);line-height:1}
.rs-stars{color:#f59e0b;font-size:1.3rem;letter-spacing:.05em}
.rs-label{font-size:.85rem;color:var(--muted);margin-top:4px}
.review-qr{display:flex;flex-direction:column;align-items:center;gap:12px;text-align:center}
.review-qr p{font-size:.82rem;color:var(--muted);max-width:150px;margin:0}
.review-qr-img{display:block;line-height:0;border-radius:10px}
#reviewQRCode canvas,#reviewQRCode img{border-radius:10px;box-shadow:0 4px 16px rgba(0,0,0,.12);display:block}
.review-write-btn{width:100%;justify-content:center;text-align:center}
@media(max-width:600px){
  .review-cta{gap:24px;padding:24px 20px}
  .review-score{justify-content:center;text-align:center}
  .review-qr::before{display:none}
  .review-qr{width:100%;max-width:320px}
  .review-write-btn{width:100%;padding:14px 20px;font-size:1rem}
}

/* service tutorial video */
.svc-video{margin:24px 0 8px}
.svc-video h3{margin-bottom:14px}
.video-embed{position:relative;width:100%;aspect-ratio:16/9;border-radius:16px;overflow:hidden;box-shadow:var(--shadow);background:#000}
.video-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* brand name highlight */
.brand-hl{font-weight:800;color:#F5851F;font-size:1.12em;text-shadow:0 0 10px rgba(245,133,31,.5)}
.cmp-table th .brand-hl{color:#fff;text-shadow:none}
/* callback mobile perfect */
@media(max-width:560px){
  .callback-sec{padding:18px 0 36px}
  .callback-card{margin:0 14px}
  .callback-head{padding:16px}
  .callback-body{padding:20px 16px;gap:14px}
  .callback-form{gap:10px}
  .cb-input{padding:0 12px}
  .cb-input input{padding:14px 0;font-size:16px}
  .cb-submit{flex:0 0 48px;height:48px}
  .callback-actions{flex-direction:column;width:100%;gap:10px}
  .callback-actions .btn{width:100%;flex:1 1 100%;padding:14px 18px;font-size:1rem}
}

/* ============ Legal pages, footer legal bar, cookie banner ============ */
.legal-doc{max-width:820px;margin:0 auto}
.legal-doc h2{font-size:1.32rem;font-family:var(--f-head);color:var(--navy);margin:34px 0 10px}
.legal-doc h2:first-of-type{margin-top:8px}
.legal-doc p,.legal-doc li{color:var(--muted);line-height:1.75;margin:0 0 12px}
.legal-doc ul{margin:0 0 16px;padding-left:20px}
.legal-doc li{margin-bottom:8px}
.legal-doc a{color:var(--teal-dd);font-weight:600}
.legal-updated{display:inline-block;font-size:.85rem;color:var(--muted);background:var(--bg-soft);
  border:1px solid var(--line);border-radius:999px;padding:6px 14px;margin-bottom:8px}
.legal-callout{background:var(--bg-soft);border:1px solid var(--line);border-left:4px solid var(--orange);
  border-radius:12px;padding:16px 18px;margin:18px 0}
.legal-callout p{margin:0;color:var(--ink)}
body.bn .legal-doc p,body.bn .legal-doc li{font-size:1.05rem;line-height:1.9}

/* Footer legal bar (injected by legal.js) */
.foot-legal{border-top:1px solid rgba(255,255,255,.14);margin-top:22px;padding-top:18px;text-align:center}
.foot-legal-links{display:flex;flex-wrap:wrap;gap:8px 12px;justify-content:center;align-items:center;font-size:.9rem}
.foot-legal-links a{color:#cfe0ea;font-weight:600}
.foot-legal-links a:hover{color:#fff}
.foot-legal-links span{color:#7f9aa8}
.foot-disc{max-width:640px;margin:12px auto 0;color:#93aeba;font-size:.8rem;line-height:1.6}

/* Cookie consent banner */
.cookie-banner{position:fixed;left:16px;right:16px;bottom:16px;z-index:1200;
  background:var(--navy);color:#eaf2f6;border-radius:16px;box-shadow:0 18px 48px rgba(0,0,0,.35);
  padding:16px 20px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 20px;
  max-width:760px;margin:0 auto;animation:cookieUp .4s ease}
@keyframes cookieUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
.cookie-txt{flex:1 1 300px;margin:0;font-size:.9rem;line-height:1.55;color:#dce8ee}
.cookie-txt a{color:var(--teal);font-weight:700;white-space:nowrap}
.cookie-btns{display:flex;gap:10px;flex:0 0 auto}
.cookie-banner button{border:0;border-radius:10px;padding:10px 20px;font-weight:700;font-size:.9rem;
  cursor:pointer;font-family:inherit}
.cookie-decline{background:transparent;color:#cfe0ea;border:1px solid rgba(255,255,255,.3)}
.cookie-decline:hover{background:rgba(255,255,255,.08)}
.cookie-accept{background:var(--grad-brand);color:#fff;box-shadow:var(--shadow-glow)}
.cookie-accept:hover{filter:brightness(1.06)}
@media(max-width:560px){
  .cookie-banner{padding:14px 16px;gap:12px}
  .cookie-btns{width:100%}
  .cookie-banner button{flex:1 1 50%}
}

/* Form consent lines */
.f-consent span{font-size:.82rem;color:var(--muted);line-height:1.5}
.f-consent a{color:var(--teal-dd);font-weight:600}
.cb-consent{width:100%;max-width:560px;margin:0 auto;align-items:flex-start}
.careers-privacy{font-size:.85rem;color:var(--muted);margin-top:10px}
.careers-privacy a{color:var(--teal-dd);font-weight:600}

/* Booking WhatsApp transparency note */
.book-wa-note{margin-top:12px;font-size:.82rem;color:var(--muted);text-align:center;line-height:1.5}
.book-wa-note a{color:var(--teal-dd);font-weight:600}

/* ---- our doctors ------------------------------------------------------------
   Auto-fit rather than a fixed column count: the clinic has one dentist today and
   may have four next year, and a 4-column grid holding a single card looks like a
   page that failed to load. Cards centre themselves at any count. */
.doc-grid{display:grid;gap:24px;justify-content:center;
  grid-template-columns:repeat(auto-fit,minmax(280px,340px))}
/* The doctor sits in the left column of the Why-us grid, where a placeholder avatar
   illustration used to be. No gradient frame or fixed aspect ratio here — those were
   sized for an SVG, and a card of real text needs to grow to its own height. */
.why-doc .doc-grid{grid-template-columns:minmax(0,1fr);max-width:380px;margin:0 auto}
/* A 4:5 portrait at full column width would push the card far taller than the list of
   reasons beside it, so it squares off in this position. */
.why-doc .doc-photo{aspect-ratio:1/1}
/* The initials stand-in is not a photograph and should not reserve a photograph's worth
   of space — a big empty square beside a short list of reasons is the emptiest thing on
   the page. It stays compact until a real portrait replaces it, which then gets the
   square above. */
.why-doc .doc-initials{aspect-ratio:16/9;font-size:2.6rem}
.doc-card{background:var(--card,#fff);border:1px solid var(--line,#e6ecf2);border-radius:18px;
  overflow:hidden;box-shadow:0 18px 40px -26px rgba(19,41,78,.35);display:flex;flex-direction:column}
.doc-photo{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;display:block;
  background:#eef4f7}
/* Shown when no photograph has been supplied. Initials, never a stock face: a made-up
   portrait next to a real name and BMDC number would be a claim the clinic never made. */
.doc-initials{display:flex;align-items:center;justify-content:center;
  font-family:var(--fh,inherit);font-weight:800;font-size:3.2rem;color:#7ba7c9;
  background:linear-gradient(160deg,#eef4f7,#dce9f2)}
.doc-body{padding:18px 20px 20px}
.doc-name{font-size:1.06rem;margin:0 0 3px}
.doc-role{color:var(--teal-dd,#2c8a78);font-weight:700;font-size:.86rem;margin:0 0 8px}
.doc-deg{color:var(--muted,#6b7a8d);font-size:.8rem;line-height:1.55;margin:0 0 6px}
.doc-exp{color:var(--muted,#6b7a8d);font-size:.8rem;margin:0 0 4px}
.doc-bmdc{color:var(--muted,#6b7a8d);font-size:.78rem;margin:0 0 10px;font-variant-numeric:tabular-nums}
.doc-bio{font-size:.85rem;line-height:1.6;margin:0 0 12px}
.doc-tags{display:flex;flex-wrap:wrap;gap:6px}
.doc-tag{background:#eaf6f2;color:var(--teal-dd,#2c8a78);font-weight:600;font-size:.72rem;
  padding:4px 10px;border-radius:999px}
@media(max-width:520px){
  .doc-grid{grid-template-columns:minmax(0,1fr)}
  .doc-photo{aspect-ratio:1/1}
}

/* Shown until app.js confirms the booking form can actually submit — see book.html. */
.book-fallback{display:flex;flex-direction:column;gap:6px;background:#fff6e9;
  border:1px solid #f6d9b0;color:#8a5a12;border-radius:12px;padding:12px 14px;
  margin-bottom:16px;font-size:.88rem}
.book-fallback a{color:#8a5a12;font-weight:700}
.book-form button[type=submit][disabled]{opacity:.5;cursor:not-allowed}
