/* ============================================================
   EDGEMONT DENTIST — SHARED DESIGN SYSTEM
   One stylesheet for every page (homepage, service pages, Farsi).
   Edit here once; every page that links this file updates together.
   ============================================================ */


:root{
  --teal-900:#0E2E5C; --teal-700:#1B5FAE; --teal-500:#2E86D1;
  --mint-100:#EAF2FB; --mint-50:#F6FAFE;
  --coral-500:#1656C4; --coral-600:#0F3F94;
  --cream:#F8FAFD; --text:#16233D; --text-muted:#57677E; --white:#ffffff;
  --radius-lg:24px; --radius-md:16px; --radius-sm:10px;
  --shadow:0 10px 30px rgba(14,46,92,0.08); --shadow-lg:0 20px 50px rgba(14,46,92,0.14);
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;font-family:'Inter',system-ui,sans-serif;color:var(--text);background:var(--cream);line-height:1.65;overflow-x:hidden;}
h1,h2,h3,.font-display{font-family:'Fraunces',serif;font-weight:600;letter-spacing:-0.01em;}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.container{max-width:1160px;margin:0 auto;padding:0 24px;}

/* Custom-element wrappers behave as blocks */
site-header,site-footer,site-breadcrumb,site-hero,site-faq,dentist-strip,cta-banner,credentials-row,services-grid,google-reviews{display:block;}
site-phone,site-address{display:inline;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  padding:14px 28px;border-radius:999px;font-weight:600;font-size:15px;
  border:none;cursor:pointer;transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
  white-space:nowrap;
}
.btn-primary{background:var(--coral-500);color:#fff;box-shadow:0 8px 24px rgba(22,86,196,0.4);}
.btn-primary:hover{background:var(--coral-600);transform:translateY(-2px);box-shadow:0 12px 28px rgba(22,86,196,0.5);}
@keyframes ctaPulse{
  0%,100%{box-shadow:0 8px 24px rgba(22,86,196,0.4);}
  50%{box-shadow:0 10px 34px rgba(22,86,196,0.75);}
}
.btn-pulse{animation:ctaPulse 2.2s ease-in-out infinite;}
.btn-outline{background:transparent;color:var(--teal-900);border:1.5px solid var(--teal-900);}
.btn-outline:hover{background:var(--teal-900);color:#fff;transform:translateY(-2px);}
.btn-ghost{background:rgba(255,255,255,0.15);color:#fff;border:1.5px solid rgba(255,255,255,0.5);backdrop-filter:blur(4px);}
.btn-ghost:hover{background:rgba(255,255,255,0.28);}

.eyebrow{
  display:inline-block;font-size:13px;font-weight:700;letter-spacing:0.08em;text-transform:uppercase;
  color:var(--teal-700);background:var(--mint-100);padding:6px 14px;border-radius:999px;margin-bottom:16px;
}
[dir="rtl"] .eyebrow{letter-spacing:0;}

/* ---------- Header / nav (rendered by <site-header>) ---------- */
header{
  position:sticky;top:0;z-index:100;
  background:rgba(248,250,253,0.88);backdrop-filter:blur(10px);
  border-bottom:1px solid rgba(14,46,92,.06);
  transition:padding .25s ease, box-shadow .25s ease;
}
header.scrolled{box-shadow:0 4px 20px rgba(14,46,92,0.06);}
nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:20px 24px;max-width:1160px;margin:0 auto;transition:padding .25s ease;
}
header.scrolled nav{padding:12px 24px;}
.logo{display:flex;align-items:center;gap:10px;font-family:'Fraunces',serif;font-weight:600;font-size:20px;color:var(--teal-900);}
[dir="rtl"] .logo{font-family:inherit;font-weight:700;}
.logo img{height:46px;width:auto;max-width:none;display:block;transition:transform .2s ease;}
.logo:hover img{transform:scale(1.03);}
header.scrolled .logo img{height:38px;}
footer .logo img{height:40px;}
.logo-mark{width:38px;height:38px;border-radius:12px;background:var(--teal-900);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.nav-links{display:flex;align-items:center;gap:28px;list-style:none;margin:0;padding:0;}
.nav-links > li > a{font-size:15px;font-weight:500;color:var(--text);opacity:0.85;transition:opacity .2s;}
.nav-links > li > a:hover{opacity:1;color:var(--teal-700);}
.nav-actions{display:flex;align-items:center;gap:14px;}
.lang-toggle{
  display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;
  border:1px solid rgba(14,46,92,0.15);border-radius:999px;padding:6px 12px;color:var(--teal-900);
  cursor:pointer;transition:background .2s;
}
.lang-toggle:hover{background:var(--mint-100);}
.call-link{display:flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--teal-900);direction:ltr;}
.hamburger{display:none;background:none;border:none;cursor:pointer;padding:6px;}
.hamburger span{display:block;width:24px;height:2px;background:var(--teal-900);margin:5px 0;transition:.25s;}
.mobile-menu{
  display:none;flex-direction:column;gap:4px;padding:12px 24px 20px;
  background:var(--cream);border-top:1px solid rgba(14,46,92,0.06);
  max-height:calc(100vh - 80px);overflow-y:auto;
}
.mobile-menu.open{display:flex;}
.mobile-menu a{padding:12px 4px;font-weight:500;border-bottom:1px solid rgba(14,46,92,0.06);}
.mobile-menu .mm-sub{padding-inline-start:18px;font-size:14px;color:var(--text-muted);}

/* Services dropdown */
.nav-dropdown{position:relative;}
.nav-dropdown > a .drop-caret{display:inline-block;transition:transform .25s ease;font-size:10px;vertical-align:2px;margin-inline-start:4px;}
.nav-dropdown:hover > a .drop-caret,.nav-dropdown:focus-within > a .drop-caret{transform:rotate(180deg);}
.dropdown-menu{
  position:absolute;top:calc(100% + 10px);inset-inline-start:-12px;background:#fff;border-radius:16px;
  box-shadow:var(--shadow-lg);padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:2px;width:460px;
  opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .25s ease, transform .25s ease, visibility .25s;
  border:1px solid rgba(14,46,92,.06);
}
.nav-dropdown:hover .dropdown-menu,.nav-dropdown:focus-within .dropdown-menu{opacity:1;visibility:visible;transform:translateY(0);}
.dropdown-menu a{display:block;padding:10px 12px;border-radius:9px;font-size:13.5px;font-weight:500;color:var(--text);transition:background .15s;}
.dropdown-menu a:hover{background:var(--mint-100);color:var(--teal-700);}
/* invisible hover bridge so the menu doesn't close crossing the gap */
.nav-dropdown::after{content:'';position:absolute;top:100%;left:0;right:0;height:12px;}

/* ---------- Breadcrumb (rendered by <site-breadcrumb>) ---------- */
.breadcrumb{font-size:13px;color:var(--text-muted);padding:18px 24px 0;max-width:1160px;margin:0 auto;}
.breadcrumb a{color:var(--teal-700);font-weight:600;}

/* ---------- Hero (shared) ---------- */
.hero{
  position:relative;padding:80px 24px 100px;overflow:hidden;
  background:linear-gradient(180deg,var(--mint-100) 0%, var(--cream) 65%);
}
.hero-blob{position:absolute;border-radius:50%;filter:blur(60px);opacity:0.35;pointer-events:none;}
.blob-1{width:420px;height:420px;background:var(--teal-500);top:-150px;right:-120px;animation:blobFloat 9s ease-in-out infinite;}
.blob-2{width:320px;height:320px;background:var(--coral-500);bottom:-120px;left:-100px;opacity:0.25;animation:blobFloat 11s ease-in-out infinite reverse;}
[dir="rtl"] .blob-1{right:auto;left:-120px;}
[dir="rtl"] .blob-2{left:auto;right:-100px;}
@keyframes blobFloat{
  0%,100%{transform:translate(0,0) scale(1);}
  50%{transform:translate(-24px,26px) scale(1.08);}
}
.hero-grid{
  max-width:1160px;margin:0 auto;position:relative;z-index:1;
  display:grid;grid-template-columns:1.1fr 0.9fr;gap:56px;align-items:center;
}
.hero h1{font-size:clamp(36px,5vw,56px);line-height:1.08;margin:0 0 20px;color:var(--teal-900);}
[dir="rtl"] .hero h1{line-height:1.35;font-size:clamp(30px,4.4vw,44px);}
.hero h1 em{font-style:normal;color:var(--coral-600);}
.hero p.lead{font-size:18px;color:var(--text-muted);max-width:520px;margin:0 0 32px;}
.hero-ctas{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:32px;}
.trust-row{display:flex;flex-wrap:wrap;gap:20px 28px;}
.trust-item{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--teal-900);}
.trust-item svg{width:20px;height:20px;flex-shrink:0;color:var(--teal-500);}

/* Service-page hero variant (rendered by <site-hero>) */
.hero-service{padding:52px 24px 72px;}
.hero-service .hero-inner{max-width:1160px;margin:0 auto;position:relative;z-index:1;}
.hero-service h1{font-size:clamp(30px,4.4vw,46px);line-height:1.12;max-width:720px;margin:0 0 18px;}
.hero-service p.lead{font-size:17.5px;max-width:640px;margin:0 0 28px;}

/* Homepage hero photo card */
.hero-card{position:relative;background:var(--white);border-radius:var(--radius-lg);padding:8px;box-shadow:var(--shadow-lg);}
.hero-card-inner{
  border-radius:calc(var(--radius-lg) - 8px);overflow:hidden;
  background:linear-gradient(160deg,var(--teal-700),var(--teal-900));
  aspect-ratio:4/5;display:flex;align-items:center;justify-content:center;position:relative;
}
.hero-card-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.hero-card-caption{
  position:absolute;bottom:20px;left:20px;right:20px;background:rgba(14,46,92,0.55);
  backdrop-filter:blur(6px);color:#fff;padding:14px 18px;border-radius:var(--radius-md);
}
.hero-card-caption .name{font-family:'Fraunces',serif;font-size:17px;}
[dir="rtl"] .hero-card-caption .name{font-family:inherit;font-weight:700;}
.hero-card-caption .role{font-size:12.5px;opacity:0.85;}
.float-badge{
  position:absolute;top:-18px;inset-inline-end:-18px;background:#fff;border-radius:16px;
  padding:14px 18px;box-shadow:var(--shadow);display:flex;align-items:center;gap:10px;
  animation:badgeBob 3s ease-in-out infinite;z-index:2;
}
@keyframes badgeBob{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-9px);}
}
.float-badge .num{font-family:'Fraunces',serif;font-size:24px;color:var(--teal-900);line-height:1;}
[dir="rtl"] .float-badge .num{font-family:inherit;font-weight:700;}
.float-badge .label{font-size:11px;color:var(--text-muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em;}
[dir="rtl"] .float-badge .label{letter-spacing:0;text-transform:none;}

/* ---------- Credentials / E-E-A-T badges (rendered by <credentials-row>) ---------- */
.credentials-row{display:flex;flex-wrap:wrap;gap:10px;}
.credential-badge{
  display:inline-flex;align-items:center;gap:7px;background:#fff;border:1px solid rgba(14,46,92,.12);
  border-radius:999px;padding:8px 14px;font-size:12.5px;font-weight:600;color:var(--teal-900);box-shadow:var(--shadow);
}
.credential-badge svg{width:14px;height:14px;color:var(--teal-500);flex-shrink:0;}
.credentials-row.on-dark .credential-badge{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);color:#fff;box-shadow:none;}
.credentials-row.on-dark .credential-badge svg{color:var(--mint-100);}

/* ---------- Section rhythm ---------- */
section{padding:88px 0;}
.section-head{max-width:640px;margin:0 0 44px;}
.section-head.center{margin-left:auto;margin-right:auto;text-align:center;}
.section-head h2{font-size:clamp(26px,3.4vw,38px);color:var(--teal-900);margin:0 0 14px;}
.section-head p{color:var(--text-muted);font-size:16.5px;margin:0;}
.bg-mint{background:var(--mint-50);}

/* ---------- Trust banner (homepage) ---------- */
.trust-banner-section{padding-top:0;padding-bottom:88px;}
.trust-banner{
  background:linear-gradient(110deg,var(--teal-900),var(--teal-500));
  border-radius:var(--radius-lg);padding:40px 32px;
  display:grid;grid-template-columns:repeat(4,1fr);gap:20px;
  box-shadow:var(--shadow-lg);margin-top:-64px;position:relative;z-index:2;
}
.trust-banner-item{text-align:center;color:#fff;}
.trust-banner-item .tb-icon{width:52px;height:52px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;}
.trust-banner-item .tb-icon svg{width:34px;height:34px;}
.trust-banner-item p{font-size:14px;font-weight:600;margin:0;line-height:1.4;}
.trust-banner-heading{text-align:center;font-size:clamp(22px,3vw,32px);color:var(--teal-900);max-width:820px;margin:56px auto 0;line-height:1.45;}
.trust-banner-sub{text-align:center;color:var(--text-muted);font-size:16.5px;max-width:720px;margin:18px auto 0;line-height:1.9;}

/* ---------- About doctor (homepage dark section) ---------- */
.about{background:var(--teal-900);color:#fff;position:relative;}
.about .container{display:grid;grid-template-columns:0.85fr 1.15fr;gap:64px;align-items:center;}
.about-visual{
  background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.15);
  border-radius:var(--radius-lg);aspect-ratio:1/1;display:flex;align-items:center;justify-content:center;overflow:hidden;
}
.about-visual img{width:100%;height:100%;object-fit:cover;}
.about-eyebrow{color:var(--mint-100);background:rgba(255,255,255,0.1);}
.about h2{color:#fff;font-size:clamp(28px,3.4vw,38px);margin:0 0 20px;}
.about blockquote{
  font-family:'Fraunces',serif;font-size:20px;font-weight:500;line-height:1.5;
  margin:0 0 24px;color:var(--mint-100);border-inline-start:3px solid var(--coral-500);padding-inline-start:20px;
}
[dir="rtl"] .about blockquote{font-family:inherit;line-height:1.9;}
.about p.sig{font-size:14px;opacity:0.75;margin-bottom:32px;}
.about-stats{display:flex;gap:36px;flex-wrap:wrap;}
.about-stat .num{font-family:'Fraunces',serif;font-size:32px;color:#fff;}
[dir="rtl"] .about-stat .num{font-family:inherit;font-weight:700;}
.about-stat .label{font-size:13px;color:rgba(255,255,255,0.7);}
.about .credentials-row{margin-top:28px;}

/* ---------- Benefit / "who it's for" cards (service pages) ---------- */
.benefit-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;}
.benefit-card{
  background:#fff;border-radius:var(--radius-md);padding:24px;box-shadow:var(--shadow);
  display:flex;gap:14px;align-items:flex-start;transition:transform .25s ease, box-shadow .25s ease;
}
.benefit-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);}
.benefit-card .ic{
  width:40px;height:40px;border-radius:12px;background:var(--mint-100);color:var(--teal-700);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .3s ease;
}
.benefit-card:hover .ic{transform:scale(1.1) rotate(-4deg);}
.benefit-card h3{font-size:15px;margin:0 0 6px;color:var(--teal-900);font-family:'Inter',sans-serif;font-weight:700;}
[dir="rtl"] .benefit-card h3{font-family:inherit;}
.benefit-card p{font-size:13.5px;color:var(--text-muted);margin:0;}

/* ---------- Numbered process steps ---------- */
.steps{counter-reset:step;display:flex;flex-direction:column;gap:0;}
.step{display:flex;gap:20px;padding:22px 0;border-bottom:1px solid rgba(14,46,92,.08);}
.step:last-child{border-bottom:none;}
.step-num{
  counter-increment:step;width:38px;height:38px;border-radius:50%;background:var(--teal-900);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:700;flex-shrink:0;
}
.step-num::before{content:counter(step);}
.step h3{font-size:16px;margin:0 0 6px;color:var(--teal-900);}
.step p{font-size:14.5px;color:var(--text-muted);margin:0;}

/* ---------- "Meet your dentist" strip (rendered by <dentist-strip>) ---------- */
.about-strip{
  background:var(--teal-900);color:#fff;border-radius:var(--radius-lg);padding:40px;
  display:flex;gap:28px;align-items:center;flex-wrap:wrap;
}
.about-strip img{width:110px;height:110px;border-radius:50%;object-fit:cover;flex-shrink:0;border:3px solid rgba(255,255,255,.2);}
.about-strip h3{margin:0 0 8px;font-size:19px;}
.about-strip p{margin:0;font-size:14px;color:rgba(255,255,255,.8);max-width:560px;}
.about-strip .eyebrow{background:rgba(255,255,255,.1);color:var(--mint-100);}

/* ---------- Callout / disclaimer ---------- */
.disclaimer{background:#FFF7E6;border:1px solid #F0D8A0;border-radius:var(--radius-md);padding:18px 22px;font-size:13px;color:#7A5A12;margin-top:32px;}

/* ---------- Emergency top banner ---------- */
.emergency-banner{background:var(--teal-900);color:#fff;text-align:center;padding:14px 20px;font-size:14px;font-weight:600;}
.emergency-banner a{color:#fff;text-decoration:underline;}

/* ---------- Why choose cards (homepage) ---------- */
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.why-card{
  background:#fff;border-radius:var(--radius-md);padding:32px 28px;box-shadow:var(--shadow);
  transition:transform .25s ease, box-shadow .25s ease;
}
.why-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);}
.why-icon{
  width:48px;height:48px;border-radius:12px;background:var(--mint-100);color:var(--teal-700);
  display:flex;align-items:center;justify-content:center;margin-bottom:18px;
}
.why-card h3{font-size:17px;margin:0 0 8px;color:var(--teal-900);font-family:'Inter',sans-serif;font-weight:700;}
[dir="rtl"] .why-card h3{font-family:inherit;}
.why-card p{font-size:14.5px;color:var(--text-muted);margin:0;}

/* ---------- Services flip cards (homepage) ---------- */
.services-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.service-card{min-height:190px;perspective:1200px;cursor:pointer;outline:none;transition:transform .25s ease;}
.service-card:hover{transform:translateY(-4px);}
.service-card-inner{
  position:relative;width:100%;height:100%;min-height:190px;
  transition:transform .6s cubic-bezier(.4,.2,.2,1);transform-style:preserve-3d;
}
.service-card.flipped .service-card-inner{transform:rotateY(180deg);}
.service-face{
  position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  border-radius:var(--radius-md);box-shadow:var(--shadow);
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:22px 16px;text-align:center;
}
.service-front{background:#fff;}
.service-back{transform:rotateY(180deg);background:linear-gradient(160deg,var(--teal-700),var(--teal-900));color:#fff;padding:24px 20px;}
.service-back p{font-size:13px;line-height:1.55;margin:0;color:rgba(255,255,255,.92);}
.service-back .back-title{font-size:13px;font-weight:700;margin-bottom:8px;color:#fff;}
.service-back .back-link{margin-top:10px;font-size:12px;font-weight:700;color:#fff;text-decoration:underline;}
.service-icon{
  width:56px;height:56px;border-radius:18px;
  background:linear-gradient(155deg,var(--mint-100),#ffffff);color:var(--teal-700);
  box-shadow:inset 0 0 0 1px rgba(14,46,92,.07);
  display:flex;align-items:center;justify-content:center;margin:0 auto 14px;transition:transform .3s ease;
}
.service-card:hover .service-icon{transform:scale(1.08) rotate(-4deg);}
.service-icon svg{width:28px;height:28px;}
.service-card span{font-size:14px;font-weight:600;color:var(--teal-900);}
[dir="rtl"] .service-card,[dir="rtl"] .service-card-inner{min-height:216px;}
[dir="rtl"] .service-back p{line-height:1.7;font-size:12.5px;}
.flip-hint{font-size:10.5px;color:var(--text-muted);opacity:.55;margin-top:8px;font-weight:500;}

/* ---------- Reviews CTA ---------- */
.reviews-cta{
  background:var(--white);border-radius:var(--radius-lg);padding:56px;
  display:flex;align-items:center;justify-content:space-between;gap:32px;flex-wrap:wrap;box-shadow:var(--shadow);
}
.reviews-left{display:flex;align-items:center;gap:20px;}
.google-g{width:56px;height:56px;border-radius:50%;background:var(--mint-100);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.reviews-left h3{margin:0 0 4px;font-size:20px;color:var(--teal-900);font-family:'Fraunces',serif;}
[dir="rtl"] .reviews-left h3{font-family:inherit;}
.reviews-left p{margin:0;color:var(--text-muted);font-size:14.5px;}
.stars{color:var(--coral-500);font-size:15px;letter-spacing:2px;}

/* ---------- Farsi strip (homepage) ---------- */
.farsi-strip{background:var(--coral-500);color:#fff;padding:40px 0;text-align:center;}
.farsi-strip .farsi-text{font-size:22px;margin-bottom:6px;direction:rtl;font-weight:600;}
.farsi-strip .en-text{font-size:14.5px;opacity:0.9;margin-bottom:18px;}

/* ---------- What sets apart ---------- */
.apart-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;}
.apart-item{background:#fff;border-radius:var(--radius-md);padding:22px 16px;text-align:center;box-shadow:var(--shadow);transition:transform .25s ease;}
.apart-item:hover{transform:translateY(-4px);}
.apart-item .why-icon{margin:0 auto 12px;width:40px;height:40px;}
.apart-item h4{font-size:13.5px;margin:0;color:var(--teal-900);}

/* ---------- FAQ accordion (rendered by <site-faq>) ---------- */
.faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:14px;}
.faq-item{background:#fff;border-radius:var(--radius-md);box-shadow:var(--shadow);overflow:hidden;}
.faq-question{
  width:100%;text-align:start;background:none;border:none;padding:20px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;
  font-size:15.5px;font-weight:600;color:var(--teal-900);font-family:'Inter',sans-serif;
}
[dir="rtl"] .faq-question{font-family:inherit;font-weight:700;}
.faq-question .chevron{width:20px;height:20px;flex-shrink:0;transition:transform .3s ease;color:var(--teal-500);}
.faq-item.open .faq-question .chevron{transform:rotate(180deg);}
.faq-answer{max-height:0;overflow:hidden;transition:max-height .4s ease;}
.faq-item.open .faq-answer{max-height:340px;}
.faq-answer p{margin:0;padding:0 24px 22px;color:var(--text-muted);font-size:14.5px;line-height:1.7;}
.faq-answer a{color:var(--teal-700);font-weight:600;}

/* ---------- Booking (homepage) ---------- */
.booking{background:var(--teal-900);color:#fff;}
.booking .container{display:grid;grid-template-columns:0.8fr 1.2fr;gap:56px;}
.booking h2{color:#fff;}
.booking-intro{color:rgba(255,255,255,0.75);margin-bottom:32px;}
.booking-note{font-size:13px;color:rgba(255,255,255,0.6);margin-top:18px;}
.booking-info-item{display:flex;gap:14px;margin-bottom:22px;}
.booking-info-item .why-icon{background:rgba(255,255,255,0.1);color:#fff;flex-shrink:0;margin:0;}
.booking-info-item h4{margin:0 0 4px;font-size:15px;}
.booking-info-item p{margin:0;font-size:14px;color:rgba(255,255,255,0.7);}
form.booking-form{background:#fff;border-radius:var(--radius-lg);padding:36px;color:var(--text);}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.form-row.full{grid-template-columns:1fr;}
.field label{display:block;font-size:12.5px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin-bottom:6px;}
[dir="rtl"] .field label{text-transform:none;letter-spacing:0;}
.field input, .field select, .field textarea{
  width:100%;padding:12px 14px;border-radius:var(--radius-sm);border:1.5px solid rgba(14,46,92,0.14);
  font-family:inherit;font-size:14.5px;background:var(--mint-50);transition:border-color .2s;
}
.field input:focus, .field select:focus, .field textarea:focus{outline:none;border-color:var(--teal-500);}
.form-msg{margin-top:14px;font-size:14px;font-weight:600;color:var(--teal-700);display:none;}

/* ---------- Bottom CTA banner (rendered by <cta-banner>) ---------- */
.cta-banner{
  background:linear-gradient(120deg,var(--teal-900),var(--teal-700));border-radius:var(--radius-lg);
  padding:48px;text-align:center;color:#fff;position:relative;overflow:hidden;
}
.cta-banner::before{
  content:'';position:absolute;width:280px;height:280px;border-radius:50%;background:rgba(255,255,255,.06);
  top:-140px;right:-80px;pointer-events:none;
}
.cta-banner h2{color:#fff;margin:0 0 14px;}
.cta-banner p{color:rgba(255,255,255,.8);margin:0 0 26px;}

/* ---------- Footer (rendered by <site-footer>) ---------- */
footer{background:var(--cream);padding:56px 0 32px;border-top:1px solid rgba(14,46,92,0.08);}
.footer-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:32px;}
.footer-brand p{color:var(--text-muted);font-size:14px;max-width:280px;}
.footer-col h5{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--teal-900);margin:0 0 14px;}
[dir="rtl"] .footer-col h5{text-transform:none;letter-spacing:0;}
.footer-col a{display:block;font-size:14px;color:var(--text-muted);margin-bottom:9px;transition:color .15s;}
.footer-col a:hover{color:var(--teal-700);}
.footer-col p{font-size:14px;color:var(--text-muted);margin:0 0 9px;}
.footer-social{display:flex;gap:10px;margin-top:14px;}
.footer-social a{
  width:36px;height:36px;border-radius:50%;background:var(--mint-100);color:var(--teal-700);
  display:flex;align-items:center;justify-content:center;margin:0;transition:transform .2s ease, background .2s;
}
.footer-social a:hover{transform:translateY(-3px);background:var(--teal-700);color:#fff;}
.footer-bottom{font-size:12.5px;color:var(--text-muted);text-align:center;padding-top:24px;border-top:1px solid rgba(14,46,92,0.08);}

/* ---------- Mobile sticky bar ---------- */
.mobile-bar{
  display:none;position:fixed;bottom:0;left:0;right:0;z-index:200;
  background:#fff;box-shadow:0 -8px 24px rgba(14,46,92,0.12);padding:10px 16px;gap:10px;
}
.mobile-bar .btn{flex:1;padding:12px;font-size:14px;}

/* ---------- Scroll progress bar ---------- */
.scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:0;z-index:300;
  background:linear-gradient(90deg,var(--teal-500),var(--coral-500));
  border-radius:0 3px 3px 0;pointer-events:none;transition:width .1s linear;
}

/* ---------- Hero entrance ---------- */
@keyframes heroEnter{
  from{opacity:0;transform:translateY(28px);}
  to{opacity:1;transform:translateY(0);}
}
.hero-enter{animation:heroEnter .8s cubic-bezier(.2,.7,.3,1) both;}

/* ---------- Ken Burns drift on portrait photos ---------- */
@keyframes kenBurns{
  0%{transform:scale(1) translate(0,0);}
  100%{transform:scale(1.07) translate(-1.5%,1.5%);}
}
.hero-card-img,.about-visual img{animation:kenBurns 16s ease-in-out infinite alternate;}

/* ---------- Sparkles (teeth whitening hero) ---------- */
.sparkles{position:absolute;inset:0;pointer-events:none;z-index:1;}
.sparkle-dot{
  position:absolute;color:var(--teal-500);font-size:18px;opacity:0;
  animation:twinkle 3.6s ease-in-out infinite;text-shadow:0 0 12px rgba(46,134,209,.6);
}
@keyframes twinkle{
  0%,100%{opacity:0;transform:scale(.4) rotate(0deg);}
  50%{opacity:.9;transform:scale(1.15) rotate(40deg);}
}

/* ---------- Heading shimmer on reveal ---------- */
@keyframes headingShimmer{
  from{background-position:-200% 0;}
  to{background-position:200% 0;}
}
.section-head.visible h2{
  background:linear-gradient(100deg,var(--teal-900) 42%,var(--teal-500) 50%,var(--teal-900) 58%);
  background-size:200% 100%;-webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:var(--teal-900);
  animation:headingShimmer 1.4s ease .2s both;
}

/* ---------- Google reviews: animated stars ---------- */
.stars-anim{display:flex;gap:4px;color:#F5B400;margin-bottom:8px;}
.stars-anim .star{opacity:0;transform:scale(.2) rotate(-40deg);}
.reviews-cta.visible .stars-anim .star{animation:starPop .5s cubic-bezier(.3,1.6,.4,1) both;}
.reviews-cta.visible .stars-anim .star:nth-child(1){animation-delay:.15s;}
.reviews-cta.visible .stars-anim .star:nth-child(2){animation-delay:.32s;}
.reviews-cta.visible .stars-anim .star:nth-child(3){animation-delay:.49s;}
.reviews-cta.visible .stars-anim .star:nth-child(4){animation-delay:.66s;}
.reviews-cta.visible .stars-anim .star:nth-child(5){animation-delay:.83s;}
@keyframes starPop{
  from{opacity:0;transform:scale(.2) rotate(-40deg);}
  60%{opacity:1;transform:scale(1.25) rotate(8deg);}
  to{opacity:1;transform:scale(1) rotate(0deg);}
}
.reviews-cta.visible .stars-anim{animation:starGlow 2.8s ease-in-out 1.4s infinite;}
@keyframes starGlow{
  0%,100%{filter:drop-shadow(0 0 0 rgba(245,180,0,0));}
  50%{filter:drop-shadow(0 0 8px rgba(245,180,0,.55));}
}
.reviews-btns{display:flex;gap:12px;flex-wrap:wrap;}

/* ---------- Floating hero review badge ---------- */
.hero-review-badge{
  display:inline-flex;align-items:center;gap:8px;background:#fff;border-radius:999px;
  padding:8px 16px 8px 10px;box-shadow:var(--shadow);font-size:13px;font-weight:700;color:var(--teal-900);
  animation:badgeBob 3.4s ease-in-out infinite;margin-top:20px;
}
.hero-review-badge .mini-stars{color:#F5B400;font-size:13px;letter-spacing:1px;}

/* ---------- Scroll-reveal animation ---------- */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .65s ease, transform .65s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}
/* hover transforms still apply after reveal via separate properties */
.benefit-card.reveal.visible:hover,.why-card.reveal.visible:hover{transform:translateY(-4px);}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:0.01ms !important;animation-iteration-count:1 !important;transition-duration:0.01ms !important;}
  .reveal{opacity:1;transform:none;}
}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .trust-banner{grid-template-columns:repeat(2,1fr);margin-top:-40px;}
  .hero-grid{grid-template-columns:1fr;}
  .hero-card{width:100%;max-width:420px;margin:0 auto;order:-1;}
  .about .container{grid-template-columns:1fr;}
  .about-visual{max-width:320px;margin:0 auto;}
  .why-grid{grid-template-columns:repeat(2,1fr);}
  .services-grid{grid-template-columns:repeat(3,1fr);}
  .apart-grid{grid-template-columns:repeat(3,1fr);}
  .booking .container{grid-template-columns:1fr;}
  .nav-links{display:none;}
  .call-link span{display:none;}
  .hamburger{display:block;}
}
@media (max-width:640px){
  section{padding:64px 0;}
  .trust-banner{grid-template-columns:1fr;margin-top:-32px;padding:28px 22px;}
  .trust-banner-heading{margin-top:40px;}
  .why-grid{grid-template-columns:1fr;}
  .benefit-grid{grid-template-columns:1fr;}
  .services-grid{grid-template-columns:repeat(2,1fr);}
  .apart-grid{grid-template-columns:repeat(2,1fr);}
  .form-row{grid-template-columns:1fr;}
  .reviews-cta{flex-direction:column;align-items:flex-start;padding:32px;}
  .about-strip{flex-direction:column;text-align:center;}
  .mobile-bar{display:flex;}
  footer{padding-bottom:96px;}
  .nav-actions .btn{display:none;}
}
