/* ==========================================================================
   Birla Dental Clinic — MediPro-style Stylesheet
   Theme : Modern medical-clinic (bright blue primary, navy/gold accents)
   Fonts : Plus Jakarta Sans + DM Serif Display
   ========================================================================== */

/* ---------- ROOT / VARIABLES ---------- */
:root{
  /* Primary brand — now using logo gold */
  --primary:#C9A961;          /* Logo gold */
  --primary-dark:#a68027;     /* Deeper gold for hover/dark states */
  --primary-light:#DBC084;    /* Lighter gold */
  --primary-soft:#FAF3DC;     /* Pale gold background tint */
  --primary-tint:#FDFAEF;     /* Very pale gold (almost cream) */

  /* Brand accents from logo */
  --navy:#192182;             /* Logo navy — used for headings */
  --gold:#C9A961;             /* Logo gold — same as primary now */
  --gold-soft:#F7F1E2;

  /* Neutrals */
  --ink:#1A2B3F;              /* Primary text */
  --ink-soft:#5A6B7E;         /* Secondary text */
  --ink-light:#8A98A8;
  --line:#E8EEF4;
  --line-soft:#F1F5F9;
  --bg:#FFFFFF;
  --bg-soft:#F7FAFC;

  /* Status */
  --success:#10B981;
  --error:#EF4444;

  /* Effects */
  --shadow-sm:0 1px 2px rgba(11,37,69,.04), 0 1px 3px rgba(11,37,69,.04);
  --shadow:0 4px 12px rgba(11,37,69,.06), 0 2px 4px rgba(11,37,69,.04);
  --shadow-lg:0 24px 48px -12px rgba(11,37,69,.12), 0 8px 16px rgba(11,37,69,.04);
  --shadow-xl:0 40px 80px -20px rgba(11,37,69,.18), 0 12px 24px rgba(11,37,69,.06);
  --radius-sm:8px;
  --radius:14px;
  --radius-lg:24px;
  --radius-xl:36px;
  --radius-pill:999px;
}

/* ---------- BASE ---------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;}
body{
  font-family:'Plus Jakarta Sans',system-ui,sans-serif;
  font-weight:400;font-size:16px;
  color:var(--ink);background:var(--bg);
  line-height:1.65;
  overflow-x:hidden;
}
.serif{font-family:'DM Serif Display',serif}
::selection{background:var(--primary);color:#fff}
a{color:var(--primary);text-decoration:none}
img{max-width:100%;display:block}
button{font-family:inherit;cursor:pointer;border:none;background:none}

.container{max-width:1280px;margin:0 auto;padding:0 28px}
@media (max-width:640px){.container{padding:0 20px}}

h1,h2,h3,h4,h5,h6{font-family:'DM Serif Display',serif;color:var(--navy);font-weight:400;line-height:1.15;letter-spacing:-.01em}

/* ==========================================================================
   TOPBAR
   ========================================================================== */
.topbar{
  background:var(--navy);color:rgba(255,255,255,.9);
  font-size:13px;padding:10px 0;
}
.topbar-inner{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px}
.topbar-left{display:flex;gap:24px;flex-wrap:wrap;align-items:center}
.topbar-info{display:flex;align-items:center;gap:8px;color:rgba(255,255,255,.85)}
.topbar-info svg{width:14px;height:14px;color:var(--gold)}
.topbar-info a{color:rgba(255,255,255,.85);transition:color .2s}
.topbar-info a:hover{color:var(--gold)}
.topbar-social{display:flex;gap:10px;align-items:center}
.topbar-social a{
  width:28px;height:28px;border-radius:50%;
  display:grid;place-items:center;
  background:rgba(255,255,255,.1);color:#fff;
  transition:all .25s;
}
.topbar-social a:hover{background:var(--gold);color:var(--navy);transform:translateY(-2px)}
.topbar-social svg{width:13px;height:13px}
@media (max-width:640px){
  .topbar{font-size:11.5px}
  .topbar-left{gap:14px}
  .topbar-social{display:none}
}

/* ==========================================================================
   NAVIGATION
   ========================================================================== */
.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.98);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transition:box-shadow .3s ease, padding .3s ease;
}
.nav.scrolled{box-shadow:var(--shadow)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;gap:24px}
.brand{display:flex;align-items:center;gap:12px;color:var(--navy)}
.brand-mark{
  width:54px;height:54px;border-radius:14px;overflow:hidden;
  background:var(--navy);flex-shrink:0;
  box-shadow:var(--shadow);
}
.brand-mark img{width:100%;height:100%;object-fit:cover}
.brand-text{display:flex;flex-direction:column;line-height:1.2}
.brand-name{font-family:'DM Serif Display',serif;font-size:21px;color:var(--navy);font-weight:400;letter-spacing:-.005em}
.brand-tag{font-size:11px;color:var(--ink-light);font-weight:500;margin-top:2px;letter-spacing:.04em}

.nav-links{display:flex;gap:6px;align-items:center}
.nav-links a{
  color:var(--ink);font-size:14.5px;font-weight:500;
  padding:10px 16px;border-radius:var(--radius-pill);
  transition:all .25s;position:relative;
}
.nav-links a:hover{background:rgba(201,169,97,.12);color:var(--navy)}
.nav-links a.active{background:rgba(201,169,97,.15);color:var(--navy);font-weight:600}

.nav-cta{display:flex;align-items:center;gap:14px}
.nav-call{
  display:flex;align-items:center;gap:10px;
  padding:6px 12px 6px 6px;border-radius:var(--radius-pill);
  background:transparent;color:var(--navy);
  text-decoration:none;font-weight:600;font-size:14px;
  transition:all .25s;
}
.nav-call:hover{background:var(--primary-soft);color:var(--navy)}
.nav-call .nav-call-icon{
  width:36px;height:36px;border-radius:50%;
  background:var(--primary);color:#fff;
  display:grid;place-items:center;flex-shrink:0;
  transition:transform .3s ease;
}
.nav-call:hover .nav-call-icon{transform:rotate(-15deg) scale(1.05)}
.nav-call svg{width:16px;height:16px}
.nav-call-info{display:flex;flex-direction:column;line-height:1.1;align-items:flex-start}
.nav-call-info small{font-size:10px;color:var(--ink-light);font-weight:500;text-transform:uppercase;letter-spacing:.08em}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  padding:14px 28px;border-radius:var(--radius-pill);
  font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;font-size:14.5px;
  text-decoration:none;cursor:pointer;border:1px solid transparent;
  transition:all .3s cubic-bezier(.4,0,.2,1);
  white-space:nowrap;
}
.btn svg{width:16px;height:16px;transition:transform .3s ease}
.btn-primary{background:var(--primary);color:var(--navy)}
.btn-primary:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 12px 24px -8px rgba(201,169,97,.5)}
.btn-primary:hover svg{transform:translateX(4px)}
.btn-outline{background:transparent;color:var(--navy);border-color:var(--line)}
.btn-outline:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-soft)}
.btn-gold{background:var(--gold);color:var(--navy)}
.btn-gold:hover{background:var(--navy);color:var(--gold);transform:translateY(-2px)}
.btn-white{background:#fff;color:var(--primary)}
.btn-white:hover{background:var(--gold);color:var(--navy);transform:translateY(-2px)}

.menu-toggle{
  display:none;width:44px;height:44px;border-radius:50%;
  background:var(--primary-soft);color:var(--primary);
  align-items:center;justify-content:center;
}
.menu-toggle svg{width:22px;height:22px}

@media (max-width:1100px){.nav-call-info{display:none}.nav-call{padding:4px}}
@media (max-width:980px){
  .nav-links{display:none}
  .menu-toggle{display:grid}
  .nav-call{display:none}
  .nav-cta .btn{display:none}
}

/* ==========================================================================
   MOBILE DRAWER
   ========================================================================== */
.drawer{
  position:fixed;
  top:0;
  left:0;
  right:0;
  bottom:0;
  width:100vw;
  min-width:100vw;
  max-width:100vw;
  height:100vh;
  height:100dvh;
  z-index:9999;
  background:#fff;
  color:var(--ink);
  transform:translate3d(100%,0,0);
  transition:transform .4s cubic-bezier(.7,0,.3,1);
  display:flex;
  flex-direction:column;
  padding:24px 28px;
  overflow-y:auto;
  overflow-x:hidden;
  box-sizing:border-box;
  will-change:transform;
}
.drawer.open{transform:translate3d(0,0,0);}
body.drawer-open{overflow:hidden;}
.drawer-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:36px}
.drawer-close{
  width:44px;height:44px;border-radius:50%;
  background:var(--primary-soft);color:var(--primary);
  display:grid;place-items:center;
}
.drawer-close svg{width:22px;height:22px}
.drawer ul{list-style:none;display:flex;flex-direction:column;gap:4px}
.drawer ul a{
  color:var(--ink);font-family:'DM Serif Display',serif;
  font-size:26px;font-weight:400;
  padding:14px 0;border-bottom:1px solid var(--line);display:block;
  transition:all .3s ease;
}
.drawer ul a:hover{color:var(--primary);padding-left:8px}
.drawer-foot{margin-top:auto;padding-top:24px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px}
.drawer-foot-call{
  display:flex;align-items:center;gap:14px;
  padding:14px;border-radius:var(--radius);background:var(--primary-soft);
  color:var(--navy);font-weight:600;
}
.drawer-foot-call svg{width:18px;height:18px;color:var(--primary)}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position:relative;background:var(--primary-tint);
  padding:60px 0 90px;overflow:hidden;
}
.hero-bg-shape{
  position:absolute;top:-80px;right:-80px;width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle, rgba(14,125,193,.08), transparent 70%);
  pointer-events:none;
}
.hero-bg-shape-2{
  position:absolute;bottom:-100px;left:-100px;width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.08), transparent 70%);
  pointer-events:none;
}
.hero-grid{
  display:grid;grid-template-columns:1.1fr 1fr;gap:64px;align-items:center;
  position:relative;z-index:1;
}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 18px 8px 8px;border-radius:var(--radius-pill);
  background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-sm);
  font-size:13px;font-weight:600;color:var(--navy);
  margin-bottom:24px;
}
.hero-eyebrow-dot{
  width:8px;height:8px;border-radius:50%;background:var(--primary);
  position:relative;
}
.hero-eyebrow-dot::after{
  content:'';position:absolute;inset:-4px;border-radius:50%;
  background:var(--primary);opacity:.3;
  animation:pulse 2s ease-out infinite;
}
.hero-eyebrow-icon{
  width:32px;height:32px;border-radius:50%;background:var(--primary-soft);
  display:grid;place-items:center;color:var(--primary);
}
.hero-eyebrow-icon svg{width:16px;height:16px}
@keyframes pulse{0%{transform:scale(.8);opacity:.5}100%{transform:scale(2);opacity:0}}

.hero h1{
  font-size:clamp(34px,4.4vw,58px);line-height:1.08;
  color:var(--navy);margin-bottom:24px;font-weight:400;
}
.hero h1 .accent{color:var(--primary);font-style:italic;font-family:'DM Serif Display',serif}
.hero h1 .underline{
  position:relative;display:inline-block;
}
.hero h1 .underline svg{
  position:absolute;left:0;right:0;bottom:-8px;width:100%;height:14px;
  color:var(--gold);
}

.hero-lede{
  font-size:17px;color:var(--ink-soft);max-width:520px;line-height:1.7;
  margin-bottom:36px;
}
.hero-actions{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:48px}
.hero-play{
  display:inline-flex;align-items:center;gap:14px;
  padding:6px 18px 6px 6px;border-radius:var(--radius-pill);
  background:transparent;color:var(--navy);font-weight:600;font-size:14px;
  text-decoration:none;transition:all .25s;
}
.hero-play:hover{background:#fff;box-shadow:var(--shadow-sm)}
.hero-play-icon{
  width:46px;height:46px;border-radius:50%;background:var(--gold);color:var(--navy);
  display:grid;place-items:center;position:relative;flex-shrink:0;
}
.hero-play-icon::before{
  content:'';position:absolute;inset:-4px;border-radius:50%;border:1px solid var(--gold);
  animation:pulseRing 2s ease-out infinite;
}
.hero-play-icon svg{width:14px;height:14px;margin-left:2px}
@keyframes pulseRing{0%{transform:scale(.95);opacity:1}100%{transform:scale(1.4);opacity:0}}

/* hero trust row */
.hero-trust{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.hero-trust-avatars{display:flex}
.hero-trust-avatars img{
  width:46px;height:46px;border-radius:50%;border:3px solid #fff;
  object-fit:cover;margin-right:-12px;box-shadow:var(--shadow-sm);
}
.hero-trust-text{display:flex;flex-direction:column;gap:2px}
.hero-trust-stars{display:flex;gap:1px;color:var(--gold)}
.hero-trust-stars svg{width:14px;height:14px;fill:currentColor}
.hero-trust-label{font-size:13px;color:var(--ink-soft);font-weight:500}
.hero-trust-label strong{color:var(--navy);font-weight:700}

/* hero visual */
.hero-visual{position:relative;aspect-ratio:1/1;max-width:560px;margin:0 0 0 auto}
.hero-blob{
  position:absolute;inset:0;
  background:linear-gradient(135deg,var(--navy) 0%,var(--primary-dark) 100%);
  border-radius:46% 54% 50% 50% / 60% 50% 50% 40%;
  animation:morph 14s ease-in-out infinite;
  z-index:0;
}
@keyframes morph{
  0%,100%{border-radius:46% 54% 50% 50% / 60% 50% 50% 40%}
  33%{border-radius:54% 46% 60% 40% / 50% 60% 40% 50%}
  66%{border-radius:50% 50% 40% 60% / 45% 55% 45% 55%}
}
.hero-img{
  position:absolute;inset:8%;border-radius:50%;overflow:hidden;
  z-index:1;box-shadow:var(--shadow-xl);
}
.hero-img img{width:100%;height:100%;object-fit:cover}

/* hero floating cards */
.hero-float{
  position:absolute;background:#fff;border-radius:var(--radius);
  padding:14px 18px;box-shadow:var(--shadow-lg);
  display:flex;align-items:center;gap:12px;z-index:2;
}
.hero-float-1{top:8%;left:-4%;animation:float1 5s ease-in-out infinite}
.hero-float-2{bottom:18%;right:-4%;animation:float2 6s ease-in-out infinite}
.hero-float-3{bottom:-2%;left:8%;animation:float3 7s ease-in-out infinite}
@keyframes float1{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes float2{0%,100%{transform:translateY(0)}50%{transform:translateY(12px)}}
@keyframes float3{0%,100%{transform:translateY(0) translateX(0)}50%{transform:translateY(-8px) translateX(6px)}}

.hero-float-icon{
  width:42px;height:42px;border-radius:12px;display:grid;place-items:center;flex-shrink:0;
}
.hero-float-icon.blue{background:var(--primary-soft);color:var(--primary)}
.hero-float-icon.gold{background:var(--gold-soft);color:var(--gold)}
.hero-float-icon.green{background:#E6F7F0;color:var(--success)}
.hero-float-icon svg{width:20px;height:20px}
.hero-float-text{display:flex;flex-direction:column;line-height:1.2}
.hero-float-text strong{font-size:14px;color:var(--navy);font-weight:700}
.hero-float-text small{font-size:11.5px;color:var(--ink-light);font-weight:500;letter-spacing:.02em}

@media (max-width:980px){
  .hero{padding:48px 0 80px}
  .hero-grid{grid-template-columns:1fr;gap:48px;text-align:center}
  .hero-eyebrow,.hero-trust,.hero-actions{justify-content:center}
  .hero-trust{flex-direction:column}
  .hero-lede{margin-left:auto;margin-right:auto}
  .hero-visual{max-width:380px;margin:0 auto}
  .hero-float-1{left:-4%}
  .hero-float-2{right:-4%}
}

/* ==========================================================================
   FEATURES STRIP (under hero)
   ========================================================================== */
.features-strip-wrapper{width:100%;padding:0;margin:0;overflow:hidden}
.features-strip{
  background:#fff;
  border-radius:0;
  margin-top:-40px;
  margin-left:0;
  margin-right:0;
  width:100%;
  position:relative;
  z-index:5;
  box-shadow:0 4px 24px rgba(11,37,69,.1);
  padding:28px 48px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:20px;
}

.feat-strip-item{
  display:flex;
  align-items:center;
  gap:16px;
}

.feat-strip-icon{
  width:50px;
  height:50px;
  border-radius:14px;
  background:var(--primary-soft);
  color:var(--primary);
  display:grid;
  place-items:center;
  flex-shrink:0;
  transition:all .35s cubic-bezier(.4,0,.2,1);
}

.feat-strip-icon svg{
  width:24px;
  height:24px;
}

.feat-strip-item:hover .feat-strip-icon{
  background:var(--primary);
  color:#fff;
  transform:rotate(-8deg) scale(1.05);
}

.feat-strip-text strong{
  display:block;
  font-family:'DM Serif Display',serif;
  font-size:16px;
  color:var(--navy);
  font-weight:400;
  line-height:1.3;
}

.feat-strip-text span{
  font-size:13px;
  color:#000;
}

@media (max-width:980px){
  .features-strip{
    grid-template-columns:1fr 1fr;
    gap:16px;
    padding:20px 24px;
    margin-top:-30px;
  }
}
@media (max-width:600px){
  .features-strip{
    grid-template-columns:1fr 1fr;
    gap:12px;
    padding:16px;
    margin-top:-20px;
    border-radius:0;
  }
  .feat-strip-item{ gap:10px; }
  .feat-strip-icon{ width:40px; height:40px; border-radius:10px; }
  .feat-strip-icon svg{ width:18px; height:18px; }
  .feat-strip-text strong{ font-size:13px; }
  .feat-strip-text span{ font-size:11px; }
}
/* ==========================================================================
   SECTION COMMONS
   ========================================================================== */
section{padding:96px 0}
.section-eyebrow{
  display:inline-flex;align-items:center;gap:10px;
  padding:6px 16px;border-radius:var(--radius-pill);
  background:var(--primary-soft);color:var(--primary);
  font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;
  margin-bottom:18px;
}
.section-eyebrow::before{
  content:'';width:6px;height:6px;border-radius:50%;background:var(--primary);
}
.section-title{
  font-family:'DM Serif Display',serif;
  font-size:clamp(34px,4vw,56px);line-height:1.1;color:var(--navy);
  font-weight:400;letter-spacing:-.01em;
  font-style:italic;
}
.section-title em{color:var(--primary);font-style:italic}
.section-subtitle{font-size:16.5px;color:var(--ink-soft);line-height:1.7;margin-top:20px;max-width:620px}
.section-head-center{text-align:center;margin:0 auto 64px;max-width:760px}
.section-head-center .section-subtitle{margin-left:auto;margin-right:auto}
@media (max-width:980px){section{padding:72px 0}}

/* ==========================================================================
   ABOUT
   ========================================================================== */
.about{background:#fff;position:relative;overflow:hidden}

/* Decorative background patterns */
.about::before{
  content:'';position:absolute;top:10%;right:-100px;width:300px;height:300px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.08), transparent 70%);
  pointer-events:none;
}
.about::after{
  content:'';position:absolute;bottom:-50px;left:-80px;width:240px;height:240px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(11,37,69,.05), transparent 70%);
  pointer-events:none;
}

.about-grid{
  display:grid;grid-template-columns:1fr 1.1fr;gap:60px;align-items:center;
  position:relative;z-index:1;
}

/* ---------- Images container ---------- */
.about-images{
  position:relative;
  aspect-ratio:1/1.05;
  min-height:420px;
  perspective:1500px;
}
.about-img-1{
  position:absolute;top:0;left:0;width:78%;aspect-ratio:4/5;
  border-radius:28px;overflow:hidden;
  box-shadow:0 30px 60px -20px rgba(11,37,69,.25);
  z-index:1;
}
.about-img-2{
  position:absolute;bottom:0;right:0;width:64%;aspect-ratio:1/1;
  border-radius:28px;overflow:hidden;
  box-shadow:0 30px 60px -20px rgba(11,37,69,.3);
  border:8px solid #fff;z-index:2;
}
.about-img-1 img,.about-img-2 img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1);
}
.about-img-1:hover img,.about-img-2:hover img{transform:scale(1.06)}

/* Subtle gold accent border on hover for both images */
.about-img-1::before,.about-img-2::before{
  content:'';position:absolute;inset:0;
  border:2px solid transparent;border-radius:28px;
  pointer-events:none;z-index:3;
  transition:border-color .4s ease;
}
.about-img-1:hover::before,.about-img-2:hover::before{
  border-color:rgba(201,169,97,.5);
}

/* Decorative dot pattern behind the images */
.about-images::before{
  content:'';position:absolute;
  top:-20px;left:-30px;width:140px;height:160px;
  background-image:radial-gradient(circle, var(--gold) 1.5px, transparent 1.5px);
  background-size:14px 14px;opacity:.3;z-index:0;
}
.about-images::after{
  content:'';position:absolute;
  bottom:8%;right:-30px;width:100px;height:120px;
  background-image:radial-gradient(circle, var(--gold) 1.5px, transparent 1.5px);
  background-size:14px 14px;opacity:.3;z-index:0;
}

/* ---------- Experience badge — refined floating circle ---------- */
.about-experience{
  position:absolute;top:-5%;left:-5%;
  background:var(--navy);color:#fff;
  border-radius:50%;width:148px;height:148px;
  display:grid;place-items:center;text-align:center;
  box-shadow:0 24px 48px -10px rgba(11,37,69,.4),
             0 0 0 8px #fff,
             0 0 0 9px rgba(201,169,97,.3);
  z-index:5;
  animation:badgeRotateFloat 8s ease-in-out infinite;
}
@keyframes badgeRotateFloat{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-12px) rotate(4deg)}
}

.about-experience-num{
  font-family:'DM Serif Display',serif;font-size:46px;line-height:1;
  font-weight:400;color:var(--gold);
}
.about-experience-num sup{font-size:.5em;color:#fff;font-weight:300}
.about-experience-lbl{
  font-size:10.5px;font-weight:600;letter-spacing:.12em;
  text-transform:uppercase;margin-top:6px;
  color:rgba(255,255,255,.85);line-height:1.4;
}

/* Badge inner ring decoration */
.about-experience::before{
  content:'';position:absolute;inset:8px;
  border:1px dashed rgba(201,169,97,.4);
  border-radius:50%;pointer-events:none;
  animation:rotateSlow 18s linear infinite;
}
@keyframes rotateSlow{from{transform:rotate(0)}to{transform:rotate(360deg)}}

@media (max-width:980px){
  .about-experience{top:-4%;left:-4%;width:120px;height:120px}
  .about-experience-num{font-size:36px}
}

/* ---------- About content right column ---------- */
.about-content h2{margin-bottom:24px}

.about-features-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:18px;
  margin:32px 0 36px;
}

.about-feat{
  display:flex;align-items:flex-start;gap:14px;
  padding:18px;border-radius:16px;
  background:var(--bg-soft);
  border:1px solid var(--line-soft);
  transition:all .4s cubic-bezier(.4,0,.2,1);
  position:relative;overflow:hidden;
}
.about-feat::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:0;
  background:linear-gradient(180deg,var(--primary),var(--navy));
  transition:width .4s cubic-bezier(.4,0,.2,1);
}
.about-feat:hover{
  background:#fff;
  border-color:var(--primary-light);
  transform:translateY(-4px);
  box-shadow:0 12px 28px -8px rgba(11,37,69,.12);
}
.about-feat:hover::before{width:3px}

.about-feat-icon{
  width:46px;height:46px;border-radius:12px;
  background:#fff;color:var(--primary-dark);
  display:grid;place-items:center;flex-shrink:0;
  box-shadow:0 4px 12px rgba(11,37,69,.06);
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.about-feat:hover .about-feat-icon{
  background:var(--primary);color:var(--navy);
  transform:rotate(-8deg) scale(1.05);
}
.about-feat-icon svg{width:22px;height:22px}

.about-feat strong{
  display:block;font-family:'DM Serif Display',serif;
  font-size:17px;color:var(--navy);font-weight:400;
  margin-bottom:3px;line-height:1.2;
}
.about-feat span{
  font-size:13.5px;color:var(--ink-soft);line-height:1.5;
  display:block;
}

/* ---------- Doctor signature card ---------- */
.about-doctor{
  display:flex;align-items:center;gap:16px;
  padding:20px 24px;border-radius:16px;
  background:linear-gradient(135deg, var(--primary-soft) 0%, #fff 100%);
  border:1px solid var(--line-soft);
  transition:all .4s ease;
}
.about-doctor:hover{
  box-shadow:0 12px 28px -8px rgba(201,169,97,.25);
  transform:translateY(-3px);
}
.about-doctor-photo{
  width:60px;height:60px;border-radius:50%;overflow:hidden;flex-shrink:0;
  border:3px solid #fff;
  box-shadow:0 4px 12px rgba(11,37,69,.1);
}
.about-doctor-photo img{width:100%;height:100%;object-fit:cover}
.about-doctor-info{flex:1}
.about-doctor-info strong{
  display:block;font-family:'DM Serif Display',serif;
  font-size:28px;color:var(--navy);font-weight:400;
}
.about-doctor-info span{
  font-size:12.5px;color:var(--primary-dark);font-weight:600;
  letter-spacing:.02em;
}
.about-signature{
  font-family:'DM Serif Display',serif;font-style:italic;
  color:var(--gold);font-size:26px;
}

@media (max-width:980px){
  .about-grid{grid-template-columns:1fr;gap:60px}
  .about-images{max-width:480px;margin:0 auto;width:100%}
  .about-features-grid{grid-template-columns:1fr 1fr}
}
@media (max-width:600px){
  .about-features-grid{grid-template-columns:1fr}
  .about-doctor{flex-direction:column;text-align:center;padding:24px}
  .about-signature{display:none}
}


/* ==========================================================================
   ABOUT — ENHANCED ANIMATIONS & EFFECTS
   ========================================================================== */

/* ---------- Image reveal: removed (GSAP not available) ---------- */
.about-img-1::after,.about-img-2::after{
  display: none;
}

/* ---------- Floating gold accent shapes behind images ---------- */
.about-images .about-shape-1{
  position:absolute;top:10%;right:-18px;
  width:56px;height:56px;border-radius:14px;
  background:var(--gold);opacity:.18;
  transform:rotate(18deg);
  animation:shapeFloat1 7s ease-in-out infinite;
  pointer-events:none;z-index:0;
}
.about-images .about-shape-2{
  position:absolute;bottom:18%;left:-18px;
  width:36px;height:36px;border-radius:50%;
  background:var(--navy);opacity:.12;
  animation:shapeFloat2 9s ease-in-out infinite;
  pointer-events:none;z-index:0;
}
.about-images .about-shape-3{
  position:absolute;bottom:4%;right:10%;
  width:48px;height:48px;
  border:2px solid var(--gold);border-radius:50%;
  opacity:.25;
  animation:shapeFloat3 11s ease-in-out infinite;
  pointer-events:none;z-index:0;
}
@keyframes shapeFloat1{
  0%,100%{transform:rotate(18deg) translateY(0)}
  50%{transform:rotate(24deg) translateY(-14px)}
}
@keyframes shapeFloat2{
  0%,100%{transform:translateY(0) scale(1)}
  50%{transform:translateY(-10px) scale(1.15)}
}
@keyframes shapeFloat3{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-8px) rotate(180deg)}
}

/* ---------- img-1 hover: subtle lift + gold shadow ---------- */
.about-img-1{
  transition:transform .6s cubic-bezier(.2,.8,.2,1), box-shadow .6s ease;
}
.about-img-1:hover{
  transform:translateY(-8px) rotate(-1deg);
  box-shadow:0 40px 70px -20px rgba(201,169,97,.35);
}

/* ---------- img-2 hover: lift opposite direction ---------- */
.about-img-2{
  transition:transform .6s cubic-bezier(.2,.8,.2,1), box-shadow .6s ease;
}
.about-img-2:hover{
  transform:translateY(-8px) rotate(1deg);
  box-shadow:0 40px 70px -20px rgba(11,37,69,.3);
}

/* ---------- Feature card: animated gradient shine on hover ---------- */
.about-feat::after{
  content:'';position:absolute;top:0;left:-100%;
  width:60%;height:100%;
  background:linear-gradient(115deg, transparent, rgba(201,169,97,.12), transparent);
  transition:left .6s ease;pointer-events:none;
}
.about-feat:hover::after{left:150%}

/* ---------- Section title: animated gold underline ---------- */
.about-content .title-underline::after{
  background:linear-gradient(90deg, var(--gold), var(--primary), var(--gold));
  background-size:200% auto;
  animation:underlineShimmer 3s linear infinite;
}
@keyframes underlineShimmer{
  0%{background-position:0% center}
  100%{background-position:200% center}
}

/* ---------- About section background: slow animated gradient orb ---------- */
.about{
  background:linear-gradient(160deg, #fff 0%, var(--primary-tint) 50%, #fff 100%);
  background-size:200% 200%;
  animation:aboutBgShift 12s ease-in-out infinite;
}
@keyframes aboutBgShift{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

/* ---------- Doctor card: shimmer sweep ---------- */
.about-doctor{position:relative;overflow:hidden}
.about-doctor::after{
  content:'';position:absolute;top:0;left:-100%;
  width:60%;height:100%;
  background:linear-gradient(115deg, transparent, rgba(201,169,97,.15), transparent);
  transition:left .8s ease;pointer-events:none;
}
.about-doctor:hover::after{left:150%}

/* ---------- Doctor photo: gold ring pulse on hover ---------- */
.about-doctor-photo{
  transition:box-shadow .4s ease, transform .4s ease;
}
.about-doctor:hover .about-doctor-photo{
  box-shadow:0 0 0 4px var(--gold), 0 8px 20px rgba(201,169,97,.3);
  transform:scale(1.08) rotate(-3deg);
}

/* ---------- Signature text: float animation ---------- */
.about-signature{
  animation:signatureFloat 4s ease-in-out infinite;
  display:inline-block;
}
@keyframes signatureFloat{
  0%,100%{transform:translateY(0) rotate(-2deg)}
  50%{transform:translateY(-5px) rotate(2deg)}
}

/* ---------- Experience badge: outer glow pulse ---------- */
.about-experience::after{
  content:'';position:absolute;inset:-10px;border-radius:50%;
  border:2px solid var(--gold);opacity:0;
  animation:badgeGlowPulse 3s ease-out infinite;
  pointer-events:none;
}
@keyframes badgeGlowPulse{
  0%{transform:scale(.9);opacity:.6}
  100%{transform:scale(1.3);opacity:0}
}

/* ---------- Feature icon: continuous micro-pulse ---------- */
.about-feat-icon{
  animation:iconMicroPulse 4s ease-in-out infinite;
}
.about-feat:nth-child(2) .about-feat-icon{animation-delay:-.8s}
.about-feat:nth-child(3) .about-feat-icon{animation-delay:-1.6s}
.about-feat:nth-child(4) .about-feat-icon{animation-delay:-2.4s}
@keyframes iconMicroPulse{
  0%,100%{box-shadow:0 4px 12px rgba(11,37,69,.06)}
  50%{box-shadow:0 4px 18px rgba(201,169,97,.25)}
}

/* ==========================================================================
   SERVICES
   ========================================================================== */
.services{background:var(--bg-soft);position:relative;overflow:hidden}
.services::before{
  content:'';position:absolute;top:0;left:0;width:300px;height:300px;
  background:radial-gradient(circle, rgba(14,125,193,.06), transparent 70%);
  pointer-events:none;
}
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.service{
  background:#fff;border-radius:var(--radius-lg);
  box-shadow:var(--shadow-sm);
  transition:transform .4s cubic-bezier(.4,0,.2,1), box-shadow .4s cubic-bezier(.4,0,.2,1), border-color .4s ease;
  position:relative;border:1px solid rgba(11,37,69,.08);
  display:flex;flex-direction:column;
  overflow:visible; /* never clip children */
}
.service:hover{
  transform:translateY(-10px);
  box-shadow:0 32px 64px -16px rgba(11,37,69,.18);
  border-color:var(--primary-light);
}
/* Image wrapper: clips photo only */
.service-img{
  position:relative;aspect-ratio:5/3;overflow:hidden;
  border-radius:var(--radius-lg) var(--radius-lg) 0 0;
  background:linear-gradient(135deg,var(--primary),var(--primary-dark));
}
.service-img img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1);
}
.service:hover .service-img img{transform:scale(1.08)}
.service-img-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(11,37,69,.35) 100%);
  pointer-events:none;
  transition:opacity .4s ease;
}
.service:hover .service-img-overlay{opacity:.7}

/* Icon sits on .service (not .service-img) so it is never clipped */
.service-icon{
  position:absolute;left:24px;bottom:-28px;
  width:60px;height:60px;border-radius:16px;
  background:#fff;color:var(--primary);
  display:grid;place-items:center;
  box-shadow:0 4px 16px rgba(11,37,69,.14);
  z-index:20;
  transition:background .35s ease, color .35s ease, transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s ease;
}
.service:hover .service-icon{
  background:var(--primary);color:#fff;
  transform:rotate(-6deg) scale(1.08);
  box-shadow:0 8px 24px rgba(11,37,69,.22);
}
.service-icon svg{width:26px;height:26px;transition:transform .35s ease}
.service:hover .service-icon svg{transform:scale(1.1)}

.service-content{padding:44px 28px 28px;flex:1;display:flex;flex-direction:column}
.service-num{
  font-size:11px;color:var(--ink-light);font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;margin-bottom:8px;
}
.service-title{
  font-family:'DM Serif Display',serif;font-size:23px;color:var(--navy);font-weight:400;
  margin-bottom:10px;line-height:1.2;transition:color .3s;
}
.service:hover .service-title{color:var(--primary)}
.service-desc{font-size:14.5px;color:var(--ink-soft);line-height:1.65;flex:1;margin-bottom:18px}
.service-link{
  display:inline-flex;align-items:center;gap:8px;
  color:var(--primary);font-weight:600;font-size:13.5px;
  text-decoration:none;transition:gap .3s ease;
  margin-top:auto;
}
.service-link svg{width:14px;height:14px;transition:transform .3s}
.service:hover .service-link{gap:12px}
.service:hover .service-link svg{transform:translateX(3px)}

@media (max-width:980px){.services-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.services-grid{grid-template-columns:1fr;max-width:420px;margin:0 auto}}


/* ==========================================================================
   SERVICES — CLEAN ANIMATIONS & EFFECTS
   ========================================================================== */

/* Subtle top border accent that grows on hover */
.service::before{
  content:'';position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:0;height:3px;
  background:linear-gradient(90deg, var(--primary), var(--navy));
  border-radius:0 0 4px 4px;
  transition:width .45s cubic-bezier(.7,0,.3,1);
  z-index:1;pointer-events:none;
}
.service:hover::before{width:60%}

/* Service number: subtle gold on hover */
.service-num{
  transition:color .3s ease, letter-spacing .3s ease;
}
.service:hover .service-num{
  color:var(--gold);letter-spacing:.26em;
}

/* Title color shift */
.service:hover .service-title{color:var(--primary)}

/* Arrow bounce on hover */
.service:hover .service-link svg{
  animation:svcArrowBounce .55s ease infinite;
}
@keyframes svcArrowBounce{
  0%,100%{transform:translateX(0)}
  50%{transform:translateX(5px)}
}

/* Bottom line reveal */
.service-link{
  position:relative;
}
.service-link::after{
  content:'';position:absolute;bottom:-4px;left:0;
  width:0;height:1.5px;
  background:var(--primary);
  transition:width .4s ease;
}
.service:hover .service-link::after{width:100%}

/* Image Ken Burns — gentle slow zoom always on */
.service-img img{
  animation:svcKenBurns 9s ease-in-out infinite alternate;
}
@keyframes svcKenBurns{
  0%{transform:scale(1) translate(0,0)}
  100%{transform:scale(1.05) translate(-1%,-1%)}
}
.service:hover .service-img img{
  animation:none;
  transform:scale(1.08);
}

/* Section background — keep it clean white/soft, no color shift */
.services{
  background:var(--bg-soft);
  animation:none;
}

/* ==========================================================================
   STATS BAND (numbers)
   ========================================================================== */
.stats-band{
  background:var(--primary);color:#fff;position:relative;overflow:hidden;
  padding:72px 0;
}
.stats-band::before{
  content:'';position:absolute;top:-80px;right:-80px;width:300px;height:300px;border-radius:50%;
  background:rgba(255,255,255,.06);
}
.stats-band::after{
  content:'';position:absolute;bottom:-100px;left:-100px;width:280px;height:280px;border-radius:50%;
  background:rgba(255,255,255,.04);
}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;position:relative}
.stat-item{text-align:center;color:#fff}
.stat-icon{
  width:64px;height:64px;border-radius:50%;
  background:rgba(255,255,255,.12);color:#fff;
  display:grid;place-items:center;margin:0 auto 18px;
  transition:transform .35s ease;
}
.stat-item:hover .stat-icon{transform:rotate(-8deg) scale(1.05);background:var(--navy);color:#fff}
.stat-icon svg{width:28px;height:28px}
.stat-value{font-family:'DM Serif Display',serif;font-size:48px;line-height:1;margin-bottom:8px;color:#fff;font-weight:400}
.stat-value sup{font-size:.5em;color:rgba(255,255,255,.85);vertical-align:top;margin-left:4px}
.stat-label{font-size:14px;color:rgba(255,255,255,.85);font-weight:500;letter-spacing:.04em;text-transform:uppercase}
@media (max-width:880px){.stats-grid{grid-template-columns:1fr 1fr;gap:32px}}
@media (max-width:520px){.stats-grid{grid-template-columns:1fr}}


/* ==========================================================================
   STATS BAND — ENHANCED ANIMATIONS & EFFECTS
   ========================================================================== */

/* ---------- Animated background: moving gradient + floating orbs ---------- */
.stats-band{
  background:linear-gradient(135deg, var(--primary-dark) 0%, var(--primary) 50%, var(--navy) 100%);
  background-size:300% 300%;
  animation:statsBgFlow 10s ease-in-out infinite;
}
@keyframes statsBgFlow{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

/* Floating decorative circles in background */
.stats-band::before{
  content:'';position:absolute;top:-80px;right:-80px;
  width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.1) 0%, transparent 70%);
  animation:statsOrb1 12s ease-in-out infinite;
}
.stats-band::after{
  content:'';position:absolute;bottom:-100px;left:-100px;
  width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.15) 0%, transparent 70%);
  animation:statsOrb2 15s ease-in-out infinite;
}
@keyframes statsOrb1{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(-40px,30px) scale(1.2)}
}
@keyframes statsOrb2{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(30px,-40px) scale(1.15)}
}

/* ---------- Stat item: glass card effect ---------- */
.stat-item{
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.12);
  border-radius:20px;
  padding:36px 24px;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  transition:transform .4s cubic-bezier(.2,.8,.2,1), background .4s ease, box-shadow .4s ease;
  cursor:default;
}
.stat-item:hover{
  transform:translateY(-10px) scale(1.03);
  background:rgba(255,255,255,.14);
  box-shadow:0 24px 48px rgba(0,0,0,.2), 0 0 0 1px rgba(255,255,255,.2);
}

/* ---------- Icon: pulsing ring + spin on hover ---------- */
.stat-icon{
  position:relative;
  width:68px;height:68px;border-radius:50%;
  background:rgba(255,255,255,.15);color:#fff;
  display:grid;place-items:center;margin:0 auto 20px;
  transition:transform .4s cubic-bezier(.4,0,.2,1), background .4s ease, box-shadow .4s ease;
}
.stat-item:hover .stat-icon{
  transform:rotate(360deg) scale(1.12);
  background:rgba(201,169,97,.9);
  box-shadow:0 0 0 8px rgba(201,169,97,.2), 0 8px 24px rgba(201,169,97,.3);
}

/* Pulsing outer ring on icon */
.stat-icon::before{
  content:'';position:absolute;inset:-6px;border-radius:50%;
  border:2px solid rgba(255,255,255,.2);
  animation:iconRingPulse 3s ease-out infinite;
}
.stat-item:nth-child(2) .stat-icon::before{animation-delay:-.75s}
.stat-item:nth-child(3) .stat-icon::before{animation-delay:-1.5s}
.stat-item:nth-child(4) .stat-icon::before{animation-delay:-2.25s}
@keyframes iconRingPulse{
  0%{transform:scale(1);opacity:.6}
  100%{transform:scale(1.5);opacity:0}
}

/* ---------- Stat value: gold shimmer on hover ---------- */
.stat-value{
  font-family:'DM Serif Display',serif;font-size:52px;line-height:1;
  margin-bottom:10px;color:#fff;font-weight:400;
  position:relative;display:inline-block;
  transition:color .35s ease;
  background:linear-gradient(90deg, #fff 0%, var(--gold) 50%, #fff 100%);
  background-size:200% auto;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
  animation:statValueShimmer 4s linear infinite;
}
@keyframes statValueShimmer{
  0%{background-position:0% center}
  100%{background-position:200% center}
}
.stat-value sup{
  font-size:.45em;vertical-align:top;margin-left:3px;
  -webkit-text-fill-color:rgba(255,255,255,.8);
}

/* ---------- Stat label: slide up & gold on hover ---------- */
.stat-label{
  font-size:13px;color:rgba(255,255,255,.75);
  font-weight:500;letter-spacing:.08em;text-transform:uppercase;
  transition:color .3s ease, letter-spacing .3s ease;
}
.stat-item:hover .stat-label{
  color:rgba(255,255,255,1);
  letter-spacing:.14em;
}

/* ---------- Entrance animation: items pop up from below ---------- */
.stat-item.stat-hidden{
  opacity:0;
  transform:translateY(40px) scale(0.94);
}
.stat-item.stat-visible{
  opacity:1;
  transform:translateY(0) scale(1);
  transition:opacity .65s ease, transform .65s cubic-bezier(.2,.8,.2,1);
}

/* ---------- Divider line between items ---------- */
.stat-item + .stat-item{
  border-left:1px solid rgba(255,255,255,.08);
}
@media (max-width:880px){
  .stat-item + .stat-item{border-left:none;border-top:1px solid rgba(255,255,255,.08)}
}

/* ==========================================================================
   DOCTORS
   ========================================================================== */

/* ---------- Section layout ---------- */
.doctors{
  background:linear-gradient(180deg, #fff 0%, var(--primary-tint) 60%, #fff 100%);
  position:relative;overflow:hidden;
}

/* Subtle decorative blob behind the grid */
.doctors::before{
  content:'';position:absolute;top:10%;left:-120px;
  width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.08) 0%, transparent 70%);
  pointer-events:none;
}
.doctors::after{
  content:'';position:absolute;bottom:5%;right:-100px;
  width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle, rgba(11,37,69,.06) 0%, transparent 70%);
  pointer-events:none;
}

/* ---------- Header: two-column — text left, CTA right ---------- */
.doctors-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:40px;
  margin-bottom:60px;
  flex-wrap:wrap;
}
.doctors-head-text{
  flex:1;
  min-width:260px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}
/* Force eyebrow to its own line inside doctors head */
.doctors-head-text .section-eyebrow{
  display:inline-flex;
  margin-bottom:16px;
}
.doctors-head-text h2{
  margin-bottom:14px;
  margin-top:0;
}
.doctors-head-text .section-subtitle{
  max-width:520px;
  margin-top:0;
  margin-bottom:0;
}
.doctors-cta{flex-shrink:0;padding-bottom:4px}

/* ---------- Grid ---------- */
.doctors-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:28px;
  position:relative;z-index:1;
}

/* ---------- Card base ---------- */
.doctor{
  background:#fff;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:0 2px 12px rgba(11,37,69,.08);
  transition:transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease, border-color .45s ease;
  position:relative;
  border:1px solid rgba(11,37,69,.06);
}
.doctor:hover{
  transform:translateY(-12px);
  box-shadow:0 32px 56px -16px rgba(11,37,69,.2);
  border-color:rgba(11,37,69,.12);
}

/* Animated top border reveal on hover */
.doctor::before{
  content:'';position:absolute;top:0;left:0;right:0;
  height:3px;
  background:linear-gradient(90deg, var(--primary), var(--navy), var(--gold));
  background-size:200% auto;
  transform:scaleX(0);transform-origin:left;
  transition:transform .5s cubic-bezier(.7,0,.3,1);
  z-index:5;
  animation:doctorBorderShimmer 3s linear infinite paused;
}
.doctor:hover::before{
  transform:scaleX(1);
  animation-play-state:running;
}
@keyframes doctorBorderShimmer{
  0%{background-position:0% center}
  100%{background-position:200% center}
}

/* ---------- Photo area ---------- */
.doctor-photo{
  aspect-ratio:4/5;overflow:hidden;position:relative;
  background:linear-gradient(180deg, var(--primary-soft), var(--primary-tint));
}
.doctor-photo img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1), filter .4s ease;
  filter:saturate(.95);
}
.doctor:hover .doctor-photo img{
  transform:scale(1.07);
  filter:saturate(1.08);
}

/* Gradient overlay on photo bottom */
.doctor-photo::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 45%, rgba(11,37,69,.55) 100%);
  opacity:0;transition:opacity .45s ease;pointer-events:none;
}
.doctor:hover .doctor-photo::after{opacity:1}

/* ---------- Social icons ---------- */
.doctor-social{
  position:absolute;left:50%;bottom:16px;
  transform:translateX(-50%) translateY(24px);
  display:flex;gap:10px;opacity:0;
  transition:all .4s cubic-bezier(.2,.8,.2,1);
  z-index:3;
}
.doctor:hover .doctor-social{
  transform:translateX(-50%) translateY(0);
  opacity:1;
}
.doctor-social a{
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.95);color:var(--primary);
  display:grid;place-items:center;
  transition:all .3s ease;
  box-shadow:0 4px 12px rgba(0,0,0,.15);
}
.doctor-social a:hover{
  background:var(--primary);color:#fff;
  transform:translateY(-4px) scale(1.1);
  box-shadow:0 8px 20px rgba(11,37,69,.25);
}
.doctor-social svg{width:14px;height:14px}

/* ---------- Info area ---------- */
.doctor-info{
  padding:24px 22px 26px;text-align:center;
  position:relative;
}
/* Gold accent line above info */
.doctor-info::before{
  content:'';display:block;
  width:32px;height:2px;
  background:var(--gold);
  border-radius:2px;
  margin:0 auto 14px;
  transition:width .4s ease;
}
.doctor:hover .doctor-info::before{width:60px}

.doctor-name{
  font-family:'DM Serif Display',serif;font-size:20px;
  color:var(--navy);font-weight:400;margin-bottom:5px;
  transition:color .3s ease;
}
.doctor:hover .doctor-name{color:var(--primary)}
.doctor-role{
  display:inline-block;font-size:11.5px;color:var(--primary);
  font-weight:600;letter-spacing:.07em;text-transform:uppercase;
  background:var(--primary-tint);
  padding:3px 10px;border-radius:20px;margin-bottom:6px;
}
.doctor-degree{
  font-size:12.5px;color:var(--ink-light);
  margin-top:6px;font-weight:500;
}

/* ---------- Founder tag ---------- */
.doctor-tag{
  position:absolute;top:14px;left:14px;z-index:4;
  background:var(--gold);color:var(--navy);
  padding:5px 13px;border-radius:var(--radius-pill);
  font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  box-shadow:0 4px 12px rgba(201,169,97,.4);
  animation:tagPulse 3s ease-in-out infinite;
}
@keyframes tagPulse{
  0%,100%{box-shadow:0 4px 12px rgba(201,169,97,.4)}
  50%{box-shadow:0 4px 20px rgba(201,169,97,.7)}
}

/* ---------- Card entrance animation classes ---------- */
.doctor.doc-hidden{
  opacity:0;
  transform:translateY(50px) scale(0.95);
}
.doctor.doc-visible{
  opacity:1;
  transform:translateY(0) scale(1);
  transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1);
}

/* ---------- Responsive ---------- */
@media (max-width:1100px){.doctors-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.doctors-grid{grid-template-columns:1fr;max-width:360px;margin:0 auto}}
@media (max-width:768px){
  .doctors-head{flex-direction:column;align-items:flex-start}
  .doctors-cta{align-self:flex-start}
}

/* ==========================================================================
   APPOINTMENT CTA (dark blue)
   ========================================================================== */
.appointment-cta{
  background:linear-gradient(135deg, var(--navy) 0%, #0a1f3d 50%, #0d2a52 100%);
  background-size:200% 200%;
  color:#fff;padding:80px 0;
  position:relative;overflow:hidden;
  animation:ctaBgShift 10s ease-in-out infinite;
}
@keyframes ctaBgShift{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}

/* Animated glowing orbs */
.appointment-cta::before{
  content:'';position:absolute;top:50%;right:-150px;transform:translateY(-50%);
  width:480px;height:480px;border-radius:50%;
  background:radial-gradient(circle, rgba(14,125,193,.2) 0%, transparent 70%);
  animation:ctaOrb1 12s ease-in-out infinite;
}
.appointment-cta::after{
  content:'';position:absolute;bottom:-80px;left:-80px;
  width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.18) 0%, transparent 70%);
  animation:ctaOrb2 15s ease-in-out infinite;
}
@keyframes ctaOrb1{
  0%,100%{transform:translateY(-50%) scale(1)}
  50%{transform:translateY(-55%) scale(1.15)}
}
@keyframes ctaOrb2{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(20px,-20px) scale(1.1)}
}

/* Floating dot particles */
.appointment-cta .cta-particle{
  position:absolute;border-radius:50%;pointer-events:none;
  background:rgba(255,255,255,.06);
}

/* Grid layout */
.appt-cta-grid{
  display:grid;grid-template-columns:1.4fr 1fr;
  gap:48px;align-items:center;
  position:relative;z-index:1;
}

/* ── TEXT FIX: target h2 and p directly inside the grid's first child ── */
.appt-cta-grid > div:first-child h2,
.appt-cta-grid > div:first-child > h2{
  color:#fff;
  font-family:'DM Serif Display',serif;
  font-size:clamp(28px,3.2vw,44px);
  line-height:1.15;
  margin-bottom:16px;
  font-weight:400;
}
.appt-cta-grid > div:first-child h2 em{
  color:var(--gold);
  font-style:italic;
  position:relative;
}
/* Animated underline on em */
.appt-cta-grid > div:first-child h2 em::after{
  content:'';
  position:absolute;bottom:-3px;left:0;right:0;
  height:2px;
  background:linear-gradient(90deg, var(--gold), rgba(201,169,97,.3));
  background-size:200% auto;
  animation:ctaEmUnderline 3s linear infinite;
}
@keyframes ctaEmUnderline{
  0%{background-position:0% center}
  100%{background-position:200% center}
}

.appt-cta-grid > div:first-child p{
  color:rgba(255,255,255,.78);
  font-size:16px;line-height:1.75;
  margin-bottom:0;
}

/* Actions */
.appt-cta-actions{
  display:flex;gap:14px;
  align-items:center;justify-content:flex-end;
  flex-wrap:wrap;
}

/* Button pulse on the gold CTA */
.btn-gold{
  position:relative;overflow:hidden;
}
.btn-gold::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.18) 50%, transparent 70%);
  transform:translateX(-100%);
  transition:transform .6s ease;
}
.btn-gold:hover::after{transform:translateX(100%)}

/* Entrance animation classes */
.appt-cta-grid > div:first-child{
  opacity:0;transform:translateX(-40px);
  transition:opacity .8s ease, transform .8s cubic-bezier(.2,.8,.2,1);
}
.appt-cta-actions{
  opacity:0;transform:translateX(40px);
  transition:opacity .8s ease .15s, transform .8s cubic-bezier(.2,.8,.2,1) .15s;
}
.appointment-cta.cta-visible .appt-cta-grid > div:first-child,
.appointment-cta.cta-visible .appt-cta-actions{
  opacity:1;transform:translateX(0);
}

@media (max-width:880px){
  .appt-cta-grid{grid-template-columns:1fr;text-align:center}
  .appt-cta-actions{justify-content:center}
}

/* ==========================================================================
   GALLERY (Bootstrap Carousel)
   ========================================================================== */
/* ==========================================================================
   GALLERY — MASONRY GRID REDESIGN
   ========================================================================== */

.gallery{
  background:var(--bg-soft);
  position:relative;overflow:hidden;
}
.gallery::before{
  content:'';position:absolute;top:-100px;right:-100px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.07) 0%, transparent 70%);
  pointer-events:none;
}

/* ---------- Filter tabs ---------- */
.gallery-filters{
  display:flex;gap:10px;flex-wrap:wrap;
  justify-content:center;
  margin-bottom:40px;
}
.gf-btn{
  padding:9px 22px;border-radius:var(--radius-pill);
  border:1.5px solid rgba(11,37,69,.15);
  background:transparent;color:var(--ink-soft);
  font-size:13px;font-weight:600;letter-spacing:.04em;
  cursor:pointer;
  transition:all .3s ease;
}
.gf-btn:hover{border-color:var(--primary);color:var(--primary)}
.gf-btn.active{
  background:var(--primary);color:#fff;
  border-color:var(--primary);
  box-shadow:0 6px 16px rgba(11,37,69,.2);
}

/* ---------- Masonry grid ---------- */
.gallery-masonry{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:auto;
  gap:16px;
}
/* Tall item spans 2 rows */
.gm-item.gm-tall{grid-row:span 2}
/* Wide item spans 2 cols */
.gm-item.gm-wide{grid-column:span 2}

/* ---------- Each grid item ---------- */
.gm-item{
  position:relative;overflow:hidden;
  border-radius:20px;
  cursor:pointer;
  background:var(--primary-tint);
  /* entrance */
  opacity:0;transform:scale(0.94) translateY(20px);
  transition:opacity .6s ease, transform .6s cubic-bezier(.2,.8,.2,1),
             box-shadow .4s ease;
}
.gm-item.gm-visible{opacity:1;transform:scale(1) translateY(0)}
.gm-item.gm-hidden{opacity:0;transform:scale(0.9);pointer-events:none;
  position:absolute;width:0;height:0;overflow:hidden}

/* Image */
.gm-item img{
  width:100%;height:100%;object-fit:cover;
  display:block;
  /* tall item needs explicit height */
  min-height:220px;
  transition:transform .8s cubic-bezier(.2,.8,.2,1), filter .5s ease;
  filter:saturate(.9) brightness(.95);
}
.gm-item.gm-tall img{min-height:460px}
.gm-item.gm-wide img{min-height:260px}

.gm-item:hover{box-shadow:0 24px 48px rgba(11,37,69,.22)}
.gm-item:hover img{
  transform:scale(1.07);
  filter:saturate(1.1) brightness(1);
}

/* Overlay */
.gm-overlay{
  position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 30%, rgba(11,37,69,.82) 100%);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:24px;
  opacity:0;transform:translateY(8px);
  transition:opacity .4s ease, transform .4s ease;
  pointer-events:none;
}
.gm-item:hover .gm-overlay{opacity:1;transform:translateY(0)}

.gm-tag{
  display:inline-block;
  background:var(--gold);color:var(--navy);
  font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 10px;border-radius:20px;
  margin-bottom:8px;align-self:flex-start;
}
.gm-title{
  font-family:'DM Serif Display',serif;
  font-size:18px;color:#fff;font-weight:400;
  margin-bottom:6px;line-height:1.2;
}
.gm-desc{font-size:13px;color:rgba(255,255,255,.8);line-height:1.5}

/* Zoom button */
.gm-zoom{
  position:absolute;top:14px;right:14px;
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.15);
  backdrop-filter:blur(6px);
  border:1px solid rgba(255,255,255,.3);
  color:#fff;display:grid;place-items:center;
  cursor:pointer;
  opacity:0;transform:scale(0.8);
  transition:opacity .35s ease, transform .35s ease, background .3s ease;
}
.gm-zoom svg{width:16px;height:16px}
.gm-item:hover .gm-zoom{opacity:1;transform:scale(1)}
.gm-zoom:hover{background:rgba(255,255,255,.35)}

/* ---------- Lightbox ---------- */
.gm-lightbox{
  position:fixed;inset:0;z-index:9999;
  background:rgba(0,0,0,.92);
  display:flex;align-items:center;justify-content:center;
  opacity:0;pointer-events:none;
  transition:opacity .35s ease;
  backdrop-filter:blur(8px);
}
.gm-lightbox.active{opacity:1;pointer-events:all}
.gm-lb-img-wrap{
  position:relative;
  max-width:88vw;max-height:84vh;
  border-radius:16px;overflow:hidden;
  box-shadow:0 40px 80px rgba(0,0,0,.6);
  transform:scale(0.92);
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.gm-lightbox.active .gm-lb-img-wrap{transform:scale(1)}
#gmLbImg{
  display:block;max-width:88vw;max-height:78vh;
  object-fit:contain;
}
.gm-lb-caption{
  position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(transparent, rgba(0,0,0,.7));
  padding:24px 24px 20px;
}
.gm-lb-tag{
  display:inline-block;
  background:var(--gold);color:var(--navy);
  font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:3px 10px;border-radius:20px;margin-bottom:8px;
}
#gmLbTitle{font-family:'DM Serif Display',serif;font-size:20px;color:#fff;font-weight:400}
.gm-lb-close,.gm-lb-prev,.gm-lb-next{
  position:fixed;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;border-radius:50%;
  display:grid;place-items:center;cursor:pointer;
  transition:background .3s ease, transform .3s ease;
  backdrop-filter:blur(4px);
}
.gm-lb-close{top:24px;right:24px;width:44px;height:44px}
.gm-lb-close svg{width:20px;height:20px}
.gm-lb-prev,.gm-lb-next{top:50%;width:52px;height:52px}
.gm-lb-prev svg,.gm-lb-next svg{width:22px;height:22px}
.gm-lb-prev{left:24px;transform:translateY(-50%)}
.gm-lb-next{right:24px;transform:translateY(-50%)}
.gm-lb-close:hover,.gm-lb-prev:hover,.gm-lb-next:hover{background:rgba(255,255,255,.25)}
.gm-lb-prev:hover{transform:translateY(-50%) translateX(-3px)}
.gm-lb-next:hover{transform:translateY(-50%) translateX(3px)}

/* ---------- Responsive ---------- */
@media (max-width:900px){
  .gallery-masonry{grid-template-columns:repeat(2,1fr)}
  .gm-item.gm-tall{grid-row:span 1}
}
@media (max-width:600px){
  .gallery-masonry{grid-template-columns:1fr}
  .gm-item.gm-wide{grid-column:span 1}
  .gallery-filters{gap:8px}
  .gf-btn{padding:7px 16px;font-size:12px}
}

/* ==========================================================================
   TESTIMONIALS
   ========================================================================== */
.testimonials{
  background:linear-gradient(160deg, #fff 0%, var(--primary-tint) 50%, #fff 100%);
  background-size:200% 200%;
  animation:testiBgShift 14s ease-in-out infinite;
  position:relative;overflow:hidden;
}
@keyframes testiBgShift{
  0%,100%{background-position:0% 50%}
  50%{background-position:100% 50%}
}
/* Decorative floating orbs */
.testimonials::before{
  content:'';position:absolute;top:-60px;left:-80px;
  width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.07) 0%, transparent 70%);
  animation:testiOrb1 12s ease-in-out infinite;pointer-events:none;
}
.testimonials::after{
  content:'';position:absolute;bottom:-60px;right:-80px;
  width:260px;height:260px;border-radius:50%;
  background:radial-gradient(circle, rgba(11,37,69,.05) 0%, transparent 70%);
  animation:testiOrb2 15s ease-in-out infinite;pointer-events:none;
}
@keyframes testiOrb1{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(30px,20px) scale(1.2)}
}
@keyframes testiOrb2{
  0%,100%{transform:translate(0,0)}
  50%{transform:translate(-20px,-30px) scale(1.1)}
}

/* Grid */
.testi-grid{
  display:grid;grid-template-columns:repeat(3,1fr);
  gap:28px;position:relative;z-index:1;
}

/* Card */
.testi-card{
  background:#fff;border-radius:var(--radius-lg);
  padding:36px 30px;
  transition:transform .45s cubic-bezier(.2,.8,.2,1), box-shadow .45s ease, border-color .4s ease;
  display:flex;flex-direction:column;gap:18px;position:relative;overflow:hidden;
  border:1px solid rgba(11,37,69,.07);
  box-shadow:0 2px 12px rgba(11,37,69,.06);
}
.testi-card:hover{
  transform:translateY(-10px);
  box-shadow:0 28px 56px -16px rgba(11,37,69,.18);
  border-color:rgba(11,37,69,.13);
}

/* Animated left border accent */
.testi-card::after{
  content:'';position:absolute;top:0;left:0;
  width:3px;height:0;
  background:linear-gradient(180deg, var(--primary), var(--gold), var(--navy));
  transition:height .55s cubic-bezier(.7,0,.3,1);
  border-radius:0 0 4px 4px;
}
.testi-card:hover::after{height:100%}

/* Shine sweep on hover */
.testi-card::before{
  content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(115deg, transparent, rgba(201,169,97,.08), transparent);
  transition:left .7s ease;pointer-events:none;
}
.testi-card:hover::before{left:150%}

/* Quote mark — large, decorative, animated */
.testi-quote-mark{
  font-family:'DM Serif Display',serif;
  font-size:80px;line-height:.5;
  color:var(--primary);opacity:.12;
  font-style:italic;
  position:absolute;top:20px;right:24px;
  pointer-events:none;
  transition:opacity .4s ease, transform .4s ease;
}
.testi-card:hover .testi-quote-mark{
  opacity:.22;
  transform:scale(1.1) rotate(-5deg);
}

/* Stars — staggered pop-in + hover twinkle */
.testi-stars{
  display:flex;gap:3px;color:var(--gold);
}
.testi-stars svg{
  width:17px;height:17px;fill:currentColor;
  transition:transform .3s ease;
}
.testi-card:hover .testi-stars svg{
  animation:starPop .5s cubic-bezier(.2,.8,.2,1) forwards;
}
.testi-card:hover .testi-stars svg:nth-child(1){animation-delay:0s}
.testi-card:hover .testi-stars svg:nth-child(2){animation-delay:.07s}
.testi-card:hover .testi-stars svg:nth-child(3){animation-delay:.14s}
.testi-card:hover .testi-stars svg:nth-child(4){animation-delay:.21s}
.testi-card:hover .testi-stars svg:nth-child(5){animation-delay:.28s}
@keyframes starPop{
  0%{transform:scale(1) rotate(0)}
  40%{transform:scale(1.4) rotate(15deg)}
  100%{transform:scale(1) rotate(0)}
}

/* Text */
.testi-text{
  font-size:15.5px;color:var(--ink);line-height:1.75;flex:1;
  transition:color .3s ease;
}
.testi-card:hover .testi-text{color:var(--ink-dark, var(--navy))}

/* Author row */
.testi-author{
  display:flex;align-items:center;gap:14px;
  padding-top:18px;
  border-top:1px solid rgba(11,37,69,.08);
}

/* Author photo — gold ring on hover */
.testi-author-photo{
  width:50px;height:50px;border-radius:50%;overflow:hidden;
  flex-shrink:0;
  border:2px solid var(--primary-soft);
  transition:border-color .35s ease, box-shadow .35s ease, transform .35s ease;
}
.testi-card:hover .testi-author-photo{
  border-color:var(--gold);
  box-shadow:0 0 0 4px rgba(201,169,97,.2);
  transform:scale(1.08) rotate(-3deg);
}
.testi-author-photo img{width:100%;height:100%;object-fit:cover}
.testi-author-info{display:flex;flex-direction:column;line-height:1.35}
.testi-author-info strong{
  font-family:'DM Serif Display',serif;font-size:17px;
  color:var(--navy);font-weight:400;
  transition:color .3s ease;
}
.testi-card:hover .testi-author-info strong{color:var(--primary)}
.testi-author-info span{
  font-size:12px;color:var(--primary);font-weight:600;
  letter-spacing:.04em;
  background:var(--primary-tint);
  padding:2px 8px;border-radius:10px;
  display:inline-block;margin-top:4px;
  align-self:flex-start;
}

/* Entrance classes */
.testi-card.tc-hidden{opacity:0;transform:translateY(40px) scale(0.96)}
.testi-card.tc-visible{
  opacity:1;transform:translateY(0) scale(1);
  transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.2,1);
}

/* Middle card: slightly elevated to create depth */
.testi-card:nth-child(2){
  transform:translateY(-8px);
  border-color:rgba(11,37,69,.1);
  box-shadow:0 8px 28px rgba(11,37,69,.1);
}
.testi-card:nth-child(2):hover{transform:translateY(-18px)}

@media (max-width:980px){.testi-grid{grid-template-columns:1fr 1fr}}
@media (max-width:680px){
  .testi-grid{grid-template-columns:1fr;max-width:440px;margin:0 auto}
  .testi-card:nth-child(2){transform:none}
  .testi-card:nth-child(2):hover{transform:translateY(-10px)}
}

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq{background:var(--bg-soft);position:relative}
.faq-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:64px;align-items:start}
.faq-image{
  position:relative;aspect-ratio:4/5;border-radius:var(--radius-xl);
  overflow:hidden;box-shadow:var(--shadow-lg);
}
.faq-image img{width:100%;height:100%;object-fit:cover}
.faq-image-card{
  position:absolute;left:24px;bottom:24px;right:24px;
  background:#fff;border-radius:var(--radius);padding:18px 20px;
  box-shadow:var(--shadow-lg);
  display:flex;align-items:center;gap:14px;
}
.faq-image-card-icon{
  width:48px;height:48px;border-radius:14px;
  background:var(--primary-soft);color:var(--primary);
  display:grid;place-items:center;flex-shrink:0;
}
.faq-image-card-icon svg{width:24px;height:24px}
.faq-image-card strong{display:block;font-family:'DM Serif Display',serif;font-size:18px;color:var(--navy);font-weight:400}
.faq-image-card span{font-size:13px;color:var(--ink-soft)}

.faq-list{display:flex;flex-direction:column;gap:14px}
.faq-item{
  background:#fff;border-radius:var(--radius-lg);
  border:1px solid var(--line);overflow:hidden;
  transition:all .35s ease;
}
.faq-item.open{border-color:var(--primary);box-shadow:var(--shadow)}
.faq-q{
  width:100%;padding:22px 26px;display:flex;align-items:center;justify-content:space-between;gap:18px;
  font-family:'DM Serif Display',serif;font-size:18.5px;color:var(--navy);font-weight:400;
  text-align:left;line-height:1.3;background:none;border:none;cursor:pointer;
  transition:color .25s ease;
}
.faq-q:hover{color:var(--primary)}
.faq-icon{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  background:var(--primary-soft);color:var(--primary);
  display:grid;place-items:center;position:relative;
  transition:all .35s ease;
}
.faq-icon::before,.faq-icon::after{
  content:'';position:absolute;background:currentColor;
  transition:transform .35s ease;
}
.faq-icon::before{width:14px;height:2px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:1px}
.faq-icon::after{width:2px;height:14px;left:50%;top:50%;transform:translate(-50%,-50%);border-radius:1px}
.faq-item.open .faq-icon{background:var(--primary);color:#fff;transform:rotate(180deg)}
.faq-item.open .faq-icon::after{transform:translate(-50%,-50%) scaleY(0)}
.faq-a{max-height:0;opacity:0;overflow:hidden;transition:max-height .5s ease, opacity .35s ease}
.faq-item.open .faq-a{max-height:400px;opacity:1}
.faq-a-inner{padding:0 26px 24px;font-size:15px;color:var(--ink-soft);line-height:1.7}

@media (max-width:980px){
  .faq-grid{grid-template-columns:1fr;gap:48px}
  .faq-image{display:none}
}

/* ==========================================================================
   APPOINTMENT FORM
   ========================================================================== */
.appointment{background:#fff;position:relative}
.appt-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:64px;align-items:start}
.appt-info-img{
  position:relative;aspect-ratio:4/5;border-radius:var(--radius-xl);
  overflow:hidden;box-shadow:var(--shadow-lg);
}
.appt-info-img img{width:100%;height:100%;object-fit:cover}
.appt-info-content{padding-top:24px}
.appt-info-content h2{margin-bottom:18px}
.appt-info-content p{font-size:16px;color:var(--ink-soft);line-height:1.7;margin-bottom:28px}
.appt-info-feats{display:flex;flex-direction:column;gap:14px}
.appt-info-feat{display:flex;align-items:center;gap:14px}
.appt-info-feat-icon{
  width:42px;height:42px;border-radius:12px;
  background:var(--primary-soft);color:var(--primary);
  display:grid;place-items:center;flex-shrink:0;
}
.appt-info-feat-icon svg{width:20px;height:20px}
.appt-info-feat strong{display:block;font-family:'DM Serif Display',serif;font-size:17px;color:var(--navy);font-weight:400}
.appt-info-feat span{font-size:14px;color:var(--ink-soft)}
.appt-info-feat a{color:var(--ink-soft);text-decoration:none}
.appt-info-feat a:hover{color:var(--primary)}

.appt-form-card{
  background:#fff;border-radius:var(--radius-xl);
  border:1px solid var(--line);
  padding:40px 36px;box-shadow:var(--shadow-lg);
  position:relative;
}
.appt-form-card::before{
  content:'';position:absolute;top:0;left:36px;right:36px;height:3px;
  background:linear-gradient(90deg,var(--primary),var(--navy));
  border-radius:0 0 4px 4px;
}
.appt-form-card h3{font-family:'DM Serif Display',serif;font-size:26px;color:var(--navy);font-weight:400;margin-bottom:6px}
.appt-form-card .subtitle{font-size:14px;color:var(--ink-soft);margin-bottom:28px}

.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}
.form-row.single{grid-template-columns:1fr}
.form-field{display:flex;flex-direction:column;gap:6px}
.form-field label{font-size:13px;font-weight:600;color:var(--navy)}
.form-field label .req{color:var(--error)}
.form-field input,.form-field select,.form-field textarea{
  font-family:'Plus Jakarta Sans',sans-serif;font-size:14.5px;color:var(--navy);font-weight:500;
  padding:13px 16px;background:var(--bg-soft);
  border:1.5px solid transparent;border-radius:var(--radius);
  transition:all .25s ease;width:100%;
}
.form-field textarea{resize:vertical;min-height:96px}
.form-field select{
  appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' stroke='%230E7DC1' stroke-width='2' fill='none' stroke-linecap='round'/></svg>");
  background-repeat:no-repeat;background-position:right 16px center;
  padding-right:42px;
}
.form-field input:focus,.form-field select:focus,.form-field textarea:focus{
  outline:none;border-color:var(--primary);background:#fff;
  box-shadow:0 0 0 4px rgba(14,125,193,.1);
}
.form-field input::placeholder,.form-field textarea::placeholder{color:var(--ink-light)}

.form-submit{
  width:100%;padding:16px;margin-top:8px;
  background:var(--primary);color:#fff;
  border-radius:var(--radius-pill);
  font-family:'Plus Jakarta Sans',sans-serif;font-size:14.5px;font-weight:600;
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  transition:all .3s cubic-bezier(.4,0,.2,1);
}
.form-submit:hover{background:var(--primary-dark);transform:translateY(-2px);box-shadow:0 12px 24px -8px rgba(14,125,193,.4)}
.form-submit svg{width:16px;height:16px;transition:transform .3s}
.form-submit:hover svg{transform:translateX(4px)}

.form-success{
  display:none;padding:16px 18px;border-radius:var(--radius);
  background:#E6F7F0;color:#065F46;border:1px solid #A7F3D0;
  font-size:14px;margin-top:14px;
}
.form-success.show{display:block}

@media (max-width:980px){
  .appt-grid{grid-template-columns:1fr;gap:36px}
  .appt-info-img{display:none}
  .appt-form-card{padding:32px 24px}
  .form-row{grid-template-columns:1fr}
}

/* ==========================================================================
   LOCATIONS
   ========================================================================== */
.locations{background:var(--bg-soft)}
.loc-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.loc-card{
  background:#fff;border-radius:var(--radius-xl);overflow:hidden;
  box-shadow:var(--shadow-sm);transition:all .4s cubic-bezier(.4,0,.2,1);
}
.loc-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-xl)}
.loc-card-img{position:relative;aspect-ratio:5/3;overflow:hidden}
.loc-card-img img{width:100%;height:100%;object-fit:cover;transition:transform 1s ease}
.loc-card:hover .loc-card-img img{transform:scale(1.06)}
.loc-card-tag{
  position:absolute;top:18px;left:18px;
  background:#fff;color:var(--primary);
  padding:6px 14px;border-radius:var(--radius-pill);
  font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  box-shadow:var(--shadow-sm);
}
.loc-card-body{padding:28px}
.loc-card-body h3{font-family:'DM Serif Display',serif;font-size:24px;color:var(--navy);font-weight:400;margin-bottom:6px}
.loc-card-area{font-size:13px;color:var(--primary);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-bottom:14px}
.loc-card-addr{font-size:14.5px;color:var(--ink-soft);line-height:1.7;margin-bottom:18px}
.loc-card-meta{display:flex;flex-direction:column;gap:10px;margin-bottom:22px;padding:16px;background:var(--bg-soft);border-radius:var(--radius)}
.loc-card-meta-row{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--ink)}
.loc-card-meta-row svg{width:16px;height:16px;color:var(--primary);flex-shrink:0}
.loc-card-meta-row a{color:var(--ink);text-decoration:none}
.loc-card-meta-row a:hover{color:var(--primary)}
.loc-card-actions{display:flex;gap:10px}
.loc-card-actions a{flex:1;padding:11px 16px;font-size:13px}
@media (max-width:880px){.loc-grid{grid-template-columns:1fr}}

/* ==========================================================================
   FOOTER
   ========================================================================== */
.footer{
  background:var(--navy);color:rgba(255,255,255,.7);
  padding:80px 0 28px;position:relative;
}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px;margin-bottom:48px}
.footer-brand{margin-bottom:20px}
.footer-brand .brand-name{color:#fff}
.footer-brand .brand-tag{color:var(--gold)}
.footer-bio{font-size:14px;line-height:1.75;margin-bottom:20px}
.footer-social{display:flex;gap:8px}
.footer-social a{
  width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.08);color:#fff;
  display:grid;place-items:center;
  transition:all .3s ease;
}
.footer-social a:hover{background:var(--primary);transform:translateY(-3px)}
.footer-social svg{width:14px;height:14px}
.footer h4{font-family:'DM Serif Display',serif;font-size:18px;color:#fff;font-weight:400;margin-bottom:18px}
.footer ul{list-style:none;display:flex;flex-direction:column;gap:10px}
.footer ul a{color:rgba(255,255,255,.65);font-size:14px;transition:color .25s,padding-left .25s}
.footer ul a:hover{color:var(--gold);padding-left:6px}
.footer-contact-item{display:flex;align-items:flex-start;gap:12px;font-size:14px;color:rgba(255,255,255,.7);margin-bottom:14px;line-height:1.6}
.footer-contact-item svg{width:16px;height:16px;color:var(--gold);flex-shrink:0;margin-top:2px}
.footer-contact-item a{color:rgba(255,255,255,.7);text-decoration:none}
.footer-contact-item a:hover{color:var(--gold)}
.footer-divider{height:1px;background:rgba(255,255,255,.1);margin-bottom:24px}
.footer-bottom{display:flex;justify-content:space-between;font-size:13px;color:rgba(255,255,255,.5);flex-wrap:wrap;gap:14px}
.footer-bottom a{color:rgba(255,255,255,.5)}
.footer-bottom a:hover{color:var(--gold)}
@media (max-width:880px){.footer-grid{grid-template-columns:1fr 1fr;gap:32px}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr}}

/* ==========================================================================
   WHATSAPP FLOAT
   ========================================================================== */
.wa-float{
  position:fixed;bottom:24px;right:24px;z-index:90;
  width:60px;height:60px;border-radius:50%;
  background:#25D366;color:#fff;
  display:grid;place-items:center;
  text-decoration:none;
  box-shadow:0 12px 32px rgba(37,211,102,.4);
  transition:transform .3s ease;
}
.wa-float:hover{transform:scale(1.08)}
.wa-float svg{width:28px;height:28px}
.wa-float::before{
  content:'';position:absolute;inset:-4px;border-radius:50%;
  background:#25D366;opacity:.4;animation:waPulse 2s infinite;z-index:-1;
}
@keyframes waPulse{0%{transform:scale(1);opacity:.4}100%{transform:scale(1.5);opacity:0}}

/* ==========================================================================
   PRELOADER
   ========================================================================== */
.preloader{
  position:fixed;inset:0;z-index:9999;
  background:#fff;display:grid;place-items:center;
  transition:opacity .6s ease, visibility .6s ease;
}
.preloader.hide{opacity:0;visibility:hidden;pointer-events:none}
.preloader-logo{
  width:80px;height:80px;border-radius:18px;overflow:hidden;
  box-shadow:var(--shadow-lg);
  animation:preloaderPulse 1.5s ease-in-out infinite;
}
.preloader-logo img{width:100%;height:100%;object-fit:cover}
@keyframes preloaderPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(.92);opacity:.8}}

/* ==========================================================================
   SCROLL PROGRESS BAR
   ========================================================================== */
.scroll-progress{
  position:fixed;top:0;left:0;height:3px;width:0;z-index:1000;
  background:linear-gradient(90deg,var(--primary),var(--navy));
  transition:width .15s ease-out;
}

/* ==========================================================================
   GSAP REVEAL HELPERS
   ========================================================================== */

/* ==========================================================================
   REDUCED MOTION
   ========================================================================== */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .preloader{display:none}
}

/* ==========================================================================
   ENHANCED ANIMATIONS & EFFECTS
   ========================================================================== */

/* ---------- Custom cursor follower (desktop only) ---------- */
.cursor-dot{
  position:fixed;top:0;left:0;width:8px;height:8px;border-radius:50%;
  background:var(--primary);pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);transition:transform .15s ease, background .25s ease, width .25s ease, height .25s ease;
  mix-blend-mode:multiply;will-change:transform;
}
.cursor-ring{
  position:fixed;top:0;left:0;width:36px;height:36px;border-radius:50%;
  border:1.5px solid var(--primary);pointer-events:none;z-index:9998;
  transform:translate(-50%,-50%);transition:transform .25s cubic-bezier(.2,.8,.2,1), border-color .25s ease, width .25s ease, height .25s ease;
  will-change:transform;opacity:.6;
}
.cursor-dot.grow{width:48px;height:48px;background:rgba(14,125,193,.2);mix-blend-mode:normal}
.cursor-ring.grow{width:0;height:0;opacity:0}
@media (hover:none),(max-width:1024px){.cursor-dot,.cursor-ring{display:none}}

/* ---------- Section heading underline draw ---------- */
.title-underline{
  position:relative;display:inline-block;
}
.title-underline::after{
  content:'';position:absolute;left:0;bottom:-4px;height:3px;width:0;
  background:linear-gradient(90deg,var(--primary),var(--navy));
  border-radius:2px;
  transition:width 1s cubic-bezier(.7,0,.3,1);
}
.title-underline.drawn::after{width:100%}

/* ---------- Marquee text animation (between sections) ---------- */
.marquee{
  overflow:hidden;background:var(--navy);color:#fff;
  padding:18px 0;border-top:1px solid rgba(255,255,255,.1);border-bottom:1px solid rgba(255,255,255,.1);
  max-width:100vw;
}
.marquee-track{
  display:flex;gap:60px;white-space:nowrap;
  animation:marqueeScroll 40s linear infinite;
}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-item{
  font-family:'DM Serif Display',serif;font-size:32px;color:rgba(255,255,255,.85);
  display:flex;align-items:center;gap:60px;flex-shrink:0;
}
.marquee-item::after{
  content:'';width:10px;height:10px;border-radius:50%;background:var(--gold);
}
.marquee-item em{color:var(--gold);font-style:italic;font-weight:400}
@keyframes marqueeScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- Service card 3D tilt prep ---------- */
.service{
  transform-style:preserve-3d;
  perspective:1000px;
}
.service-content{
  position:relative;
}
.service::before{
  content:'';position:absolute;inset:0;border-radius:var(--radius-lg);
  background:radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(14,125,193,.08), transparent 50%);
  opacity:0;transition:opacity .4s ease;pointer-events:none;z-index:1;
}
.service:hover::before{opacity:1}

/* ---------- Service icon enhanced animation ---------- */
.service-icon{
  animation:none;
}
.service:hover .service-icon{
  animation:iconWiggle .6s ease;
}
@keyframes iconWiggle{
  0%,100%{transform:rotate(0) scale(1)}
  25%{transform:rotate(-8deg) scale(1.05)}
  50%{transform:rotate(0deg) scale(1.1)}
  75%{transform:rotate(8deg) scale(1.05)}
}

/* ---------- Doctor card hover enhancements ---------- */
.doctor-photo::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, transparent 60%, rgba(14,125,193,.7) 100%);
  opacity:0;transition:opacity .4s ease;z-index:1;pointer-events:none;
}
.doctor:hover .doctor-photo::before{opacity:1}

/* ---------- About image hover ---------- */
.about-img-1,.about-img-2{
  transition:transform .5s cubic-bezier(.2,.8,.2,1), box-shadow .5s ease;
}
.about-img-1:hover{transform:translateY(-8px) rotate(-1deg);box-shadow:var(--shadow-xl)}
.about-img-2:hover{transform:translateY(-8px) rotate(1deg);box-shadow:var(--shadow-xl)}

/* ---------- Experience badge rotation ---------- */
.about-experience{
  animation:badgeFloat 4s ease-in-out infinite;
}
@keyframes badgeFloat{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-10px) rotate(3deg)}
}

  20%{opacity:.6}
  100%{transform:translate(-50%,-20px) scale(1.5);opacity:0}
}

/* ---------- Testimonial card animation ---------- */
.testi-card{
  position:relative;overflow:hidden;
}
.testi-card::before{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(90deg, transparent, rgba(14,125,193,.08), transparent);
  transition:left .8s ease;pointer-events:none;
}
.testi-card:hover::before{left:100%}
.testi-stars{transition:transform .35s ease}
.testi-card:hover .testi-stars{transform:scale(1.1)}
.testi-card:hover .testi-stars svg{
  animation:starTwinkle .6s ease;
}
.testi-card:hover .testi-stars svg:nth-child(1){animation-delay:0s}
.testi-card:hover .testi-stars svg:nth-child(2){animation-delay:.08s}
.testi-card:hover .testi-stars svg:nth-child(3){animation-delay:.16s}
.testi-card:hover .testi-stars svg:nth-child(4){animation-delay:.24s}
.testi-card:hover .testi-stars svg:nth-child(5){animation-delay:.32s}
@keyframes starTwinkle{
  0%,100%{transform:scale(1) rotate(0)}
  50%{transform:scale(1.3) rotate(20deg)}
}

/* ---------- FAQ enhanced animation ---------- */
.faq-item{
  transition:all .35s ease, transform .35s ease;
}
.faq-item:hover{transform:translateX(4px)}
.faq-item.open:hover{transform:translateX(0)}

/* ---------- Loc card lift effect ---------- */
.loc-card{position:relative;overflow:hidden}
.loc-card::after{
  content:'';position:absolute;top:0;left:0;right:0;height:3px;
  background:linear-gradient(90deg,var(--primary),var(--navy));
  transform:scaleX(0);transform-origin:left;
  transition:transform .5s cubic-bezier(.7,0,.3,1);
  z-index:5;
}
.loc-card:hover::after{transform:scaleX(1)}

/* ---------- Bootstrap-style fade-in helpers ---------- */
.fade-in-up{opacity:0;transform:translateY(40px);transition:opacity .8s ease, transform .8s ease}
.fade-in-up.visible{opacity:1;transform:translateY(0)}

.fade-in-left{opacity:0;transform:translateX(-50px);transition:opacity .8s ease, transform .8s ease}
.fade-in-left.visible{opacity:1;transform:translateX(0)}

.fade-in-right{opacity:0;transform:translateX(50px);transition:opacity .8s ease, transform .8s ease}
.fade-in-right.visible{opacity:1;transform:translateX(0)}

.zoom-in{opacity:0;transform:scale(.85);transition:opacity .8s ease, transform .8s ease}
.zoom-in.visible{opacity:1;transform:scale(1)}

/* ---------- Button ripple effect ---------- */
.btn{position:relative;overflow:hidden}
.btn .ripple{
  position:absolute;border-radius:50%;
  background:rgba(255,255,255,.4);transform:scale(0);
  animation:ripple .6s ease-out;pointer-events:none;
}
@keyframes ripple{
  to{transform:scale(2.5);opacity:0}
}

/* ---------- Nav link hover indicator ---------- */
.nav-links a::before{
  content:'';position:absolute;left:50%;bottom:4px;width:0;height:2px;
  background:var(--gold);border-radius:2px;
  transform:translateX(-50%);transition:width .3s ease;
}
.nav-links a:hover::before,.nav-links a.active::before{width:18px}

/* ---------- Image zoom-on-hover with overlay icon ---------- */


/* ---------- Hero background animated gradient orbs ---------- */
.hero-orb{
  position:absolute;border-radius:50%;
  filter:blur(60px);opacity:.4;pointer-events:none;z-index:0;
  animation:orbFloat 12s ease-in-out infinite;
}
.hero-orb-1{
  top:20%;left:10%;width:200px;height:200px;
  background:radial-gradient(circle, rgba(14,125,193,.5), transparent);
  animation-delay:0s;
}
.hero-orb-2{
  bottom:10%;right:20%;width:280px;height:280px;
  background:radial-gradient(circle, rgba(201,169,97,.4), transparent);
  animation-delay:-4s;
}
@keyframes orbFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  33%{transform:translate(40px,-30px) scale(1.1)}
  66%{transform:translate(-20px,40px) scale(.9)}
}

/* ---------- Hero floating cards interactive hover ---------- */
.hero-float{transition:transform .35s cubic-bezier(.2,.8,.2,1), box-shadow .35s ease}
.hero-float:hover{
  transform:translateY(-6px) scale(1.05);
  box-shadow:var(--shadow-xl);
  z-index:10;
}

/* ---------- Eyebrow icon spin on hover ---------- */
.section-eyebrow:hover::before{
  animation:dotSpin .6s ease;
}
@keyframes dotSpin{
  0%{transform:scale(1) rotate(0)}
  50%{transform:scale(1.5) rotate(180deg)}
  100%{transform:scale(1) rotate(360deg)}
}

/* ---------- Form field focus animation ---------- */
.form-field{position:relative}
.form-field input,.form-field select,.form-field textarea{position:relative}
.form-field::before{
  content:'';position:absolute;left:0;bottom:0;width:0;height:1.5px;
  background:linear-gradient(90deg,var(--primary),var(--navy));
  transition:width .4s cubic-bezier(.7,0,.3,1);z-index:1;pointer-events:none;
  border-radius:2px;
}
.form-field:focus-within::before{width:100%}

/* ---------- Footer link hover effect ---------- */
.footer ul a{position:relative;display:inline-block}
.footer ul a::before{
  content:'→';opacity:0;margin-right:0;
  transition:opacity .3s ease, margin-right .3s ease;
}
.footer ul a:hover::before{opacity:1;margin-right:6px}

/* ---------- Service card link arrow animation ---------- */
.service-link{position:relative;overflow:hidden}
.service-link span{position:relative;display:inline-block;transition:transform .4s ease}

/* ---------- Floating decorative blobs in services section ---------- */
.services::after{
  content:'';position:absolute;bottom:-100px;right:-100px;width:400px;height:400px;
  border-radius:50%;background:radial-gradient(circle, rgba(201,169,97,.08), transparent 70%);
  pointer-events:none;animation:orbFloat 18s ease-in-out infinite;
}

/* ---------- Reveal animations ---------- */
@keyframes slideUp{
  from{opacity:0;transform:translateY(50px)}
  to{opacity:1;transform:translateY(0)}
}
@keyframes slideLeft{
  from{opacity:0;transform:translateX(-50px)}
  to{opacity:1;transform:translateX(0)}
}
@keyframes slideRight{
  from{opacity:0;transform:translateX(50px)}
  to{opacity:1;transform:translateX(0)}
}
@keyframes scaleIn{
  from{opacity:0;transform:scale(.85)}
  to{opacity:1;transform:scale(1)}
}
@keyframes blur-in{
  from{opacity:0;filter:blur(10px)}
  to{opacity:1;filter:blur(0)}
}

/* ---------- Char split for hero h1 ---------- */
.split-char{display:inline-block;will-change:transform}
.split-word{display:inline-block;overflow:hidden;vertical-align:top}

/* ---------- Subtle wave divider between sections ---------- */
.wave-divider{
  display:block;width:100%;height:60px;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 60' preserveAspectRatio='none'%3E%3Cpath d='M0,0 Q300,60 600,30 T1200,30 L1200,60 L0,60 Z' fill='%23F7FAFC'/%3E%3C/svg%3E") no-repeat;
  background-size:cover;
}

/* ---------- "Back to top" button ---------- */
.back-to-top{
  position:fixed;bottom:24px;left:24px;z-index:90;
  width:48px;height:48px;border-radius:50%;
  background:var(--navy);color:#fff;
  display:grid;place-items:center;text-decoration:none;
  box-shadow:var(--shadow-lg);
  opacity:0;visibility:hidden;transform:translateY(20px);
  transition:all .35s cubic-bezier(.2,.8,.2,1);
}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:var(--primary);transform:translateY(-4px)}
.back-to-top svg{width:18px;height:18px}

/* ---------- Image lazy reveal effect ---------- */
.img-reveal{position:relative;overflow:hidden}
.img-reveal::after{
  content:'';position:absolute;inset:0;background:var(--primary);
  transform:translateX(0);
  transition:transform .9s cubic-bezier(.7,0,.3,1);z-index:2;
}
.img-reveal.revealed::after{transform:translateX(100%)}

/* ---------- Pulse animation for important elements ---------- */
.pulse-attention{
  animation:pulseAttention 2s ease-in-out infinite;
}
@keyframes pulseAttention{
  0%,100%{box-shadow:0 0 0 0 rgba(14,125,193,.4)}
  50%{box-shadow:0 0 0 10px rgba(14,125,193,0)}
}

/* ---------- Gradient text animation ---------- */
.gradient-text{
  background:linear-gradient(90deg, var(--primary), var(--navy), var(--primary));
  background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:gradientShift 3s linear infinite;
}
@keyframes gradientShift{
  0%{background-position:0% center}
  100%{background-position:200% center}
}

/* ---------- Parallax containers ---------- */
.parallax-slow{will-change:transform}
.parallax-fast{will-change:transform}

/* ---------- Counter wrapper effect ---------- */
.stat-value{
  display:inline-block;
  position:relative;
}


/* ==========================================================================
   HERO ENHANCEMENTS — pattern, decorative icons, orbits, sparkles, awards, scroll cue
   ========================================================================== */

/* ---------- Subtle dot pattern overlay ---------- */
.hero-pattern{
  position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(circle, rgba(11,37,69,.08) 1px, transparent 1px);
  background-size:32px 32px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 40%, #000 30%, transparent 80%);
  -webkit-mask-image:radial-gradient(ellipse 80% 60% at 50% 40%, #000 30%, transparent 80%);
}

/* ---------- Floating decorative dental/medical icons ---------- */
.hero-deco{
  position:absolute;color:var(--primary);pointer-events:none;z-index:1;
  opacity:.35;will-change:transform;
}
.hero-deco-tooth{top:18%;left:5%;width:42px;height:42px;animation:floatY 7s ease-in-out infinite}
.hero-deco-plus{top:8%;right:42%;width:24px;height:24px;color:var(--gold);opacity:.5;animation:floatY 5s ease-in-out infinite -1s, spinSlow 18s linear infinite}
.hero-deco-spark{top:55%;left:42%;width:18px;height:18px;color:var(--gold);opacity:.7;animation:sparkPulse 3s ease-in-out infinite}
.hero-deco-circle{bottom:18%;left:8%;width:36px;height:36px;color:var(--navy);opacity:.18;animation:floatY 9s ease-in-out infinite -2s}
.hero-deco-cross{top:62%;right:46%;width:28px;height:28px;color:var(--primary);opacity:.4;animation:spinSlow 22s linear infinite, floatY 6s ease-in-out infinite}
.hero-deco-wave{top:38%;right:6%;width:60px;height:18px;color:var(--gold);opacity:.5;animation:floatY 8s ease-in-out infinite -3s}

@keyframes floatY{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-18px)}
}
@keyframes spinSlow{from{transform:rotate(0)}to{transform:rotate(360deg)}}
@keyframes sparkPulse{
  0%,100%{transform:scale(1) rotate(0);opacity:.7}
  50%{transform:scale(1.4) rotate(180deg);opacity:1}
}
@media (max-width:980px){
  .hero-deco-tooth,.hero-deco-circle,.hero-deco-cross,.hero-deco-wave{display:none}
}

/* ---------- "Open Now" live badge ---------- */
.hero-live-badge{
  display:inline-flex;align-items:center;gap:10px;
  padding:8px 16px;border-radius:var(--radius-pill);
  background:#fff;border:1px solid var(--line);
  box-shadow:var(--shadow-sm);
  font-size:13px;font-weight:600;color:var(--ink-soft);
  margin-bottom:16px;
}
.hero-live-badge strong{color:var(--success);font-weight:700}
.hero-live-badge .live-dot{
  width:8px;height:8px;border-radius:50%;background:var(--success);
  position:relative;flex-shrink:0;
}
.hero-live-badge .live-dot::after{
  content:'';position:absolute;inset:-4px;border-radius:50%;
  background:var(--success);opacity:.4;
  animation:livePulse 1.6s ease-out infinite;
}
@keyframes livePulse{
  0%{transform:scale(.6);opacity:.5}
  100%{transform:scale(2.2);opacity:0}
}

/* ---------- Hero accent word styling ---------- */
.hero h1 .accent{
  position:relative;display:inline-block;
}

/* ---------- Awards / Certifications strip ---------- */
.hero-awards{
  display:flex;gap:14px;flex-wrap:wrap;
  margin-top:32px;padding-top:24px;
  border-top:1px solid var(--line);
}
.award-item{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;border-radius:12px;
  background:#fff;border:1px solid var(--line-soft);
  transition:all .35s cubic-bezier(.4,0,.2,1);cursor:default;
}
.award-item:hover{
  border-color:var(--primary);
  box-shadow:0 8px 20px -8px rgba(201,169,97,.4);
  transform:translateY(-3px);
}
.award-icon{
  width:36px;height:36px;border-radius:10px;flex-shrink:0;
  background:var(--primary-soft);color:var(--primary);
  display:grid;place-items:center;
  transition:all .35s ease;
}
.award-item:hover .award-icon{
  background:var(--primary);color:var(--navy);transform:rotate(-8deg);
}
.award-icon svg{width:18px;height:18px}
.award-item div{display:flex;flex-direction:column;line-height:1.2}
.award-item strong{font-size:13px;color:var(--navy);font-weight:700;letter-spacing:-.005em}
.award-item small{font-size:11px;color:var(--ink-light);font-weight:500}
@media (max-width:980px){
  .hero-awards{justify-content:center}
}

/* ---------- Orbital rings around main image ---------- */
.hero-orbit{
  position:absolute;border:1.5px dashed var(--primary);border-radius:50%;
  opacity:.3;pointer-events:none;z-index:0;
}
.hero-orbit-1{
  inset:-4%;animation:rotateOrbit 30s linear infinite;
}
.hero-orbit-2{
  inset:-12%;border-style:dotted;border-color:var(--gold);opacity:.25;
  animation:rotateOrbit 45s linear infinite reverse;
}
@keyframes rotateOrbit{from{transform:rotate(0)}to{transform:rotate(360deg)}}

/* ---------- Sparkle particles around image ---------- */
.hero-sparkle{
  position:absolute;width:8px;height:8px;border-radius:50%;
  background:var(--gold);pointer-events:none;z-index:2;
  box-shadow:0 0 12px 2px rgba(201,169,97,.6);
}
.hero-sparkle::before{
  content:'';position:absolute;inset:-3px;border-radius:50%;
  background:var(--gold);opacity:.3;animation:sparkleRing 2s ease-out infinite;
}
.hero-sparkle.s1{top:8%;right:6%;animation:sparkleFloat 4s ease-in-out infinite}
.hero-sparkle.s2{top:30%;left:0%;animation:sparkleFloat 5s ease-in-out infinite -1s}
.hero-sparkle.s3{bottom:14%;right:0%;animation:sparkleFloat 6s ease-in-out infinite -2s}
.hero-sparkle.s4{bottom:30%;left:6%;width:6px;height:6px;animation:sparkleFloat 5s ease-in-out infinite -.5s}
.hero-sparkle.s5{top:50%;right:-4%;width:5px;height:5px;animation:sparkleFloat 7s ease-in-out infinite -3s}
.hero-sparkle.s6{top:65%;left:-2%;width:7px;height:7px;animation:sparkleFloat 4s ease-in-out infinite -1.5s}
@keyframes sparkleFloat{
  0%,100%{transform:translateY(0) scale(1);opacity:.7}
  50%{transform:translateY(-12px) scale(1.3);opacity:1}
}
@keyframes sparkleRing{
  0%{transform:scale(.8);opacity:.4}
  100%{transform:scale(2.5);opacity:0}
}

/* ---------- Live booking mini card ---------- */
.hero-live-card{
  position:absolute;top:0%;right:0%;
  background:#fff;border-radius:var(--radius);
  padding:12px 16px;box-shadow:var(--shadow-lg);
  display:flex;align-items:center;gap:12px;z-index:3;
  animation:floatCard 8s ease-in-out infinite;
}
@keyframes floatCard{
  0%,100%{transform:translateY(0) rotate(-2deg)}
  50%{transform:translateY(-8px) rotate(2deg)}
}
.live-card-avatars{display:flex}
.live-card-avatars img{
  width:32px;height:32px;border-radius:50%;border:2px solid #fff;
  object-fit:cover;margin-right:-10px;box-shadow:var(--shadow-sm);
}
.live-card-avatars img:last-child{margin-right:0}
.live-card-text{display:flex;flex-direction:column;line-height:1.2}
.live-card-text strong{font-size:13px;color:var(--navy);font-weight:700}
.live-card-text small{font-size:10.5px;color:var(--ink-light);font-weight:500;display:flex;align-items:center;gap:6px}
.live-pulse{
  display:inline-block;width:6px;height:6px;border-radius:50%;
  background:var(--success);
  box-shadow:0 0 0 0 var(--success);
  animation:liveDot 1.6s ease-out infinite;
}
@keyframes liveDot{
  0%{box-shadow:0 0 0 0 rgba(16,185,129,.5)}
  70%{box-shadow:0 0 0 6px rgba(16,185,129,0)}
  100%{box-shadow:0 0 0 0 rgba(16,185,129,0)}
}

@media (max-width:980px){
  .hero-live-card{top:0;right:0}
}

/* ---------- Scroll cue at bottom of hero ---------- */
.hero-scroll-cue{
  position:absolute;left:50%;bottom:18px;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:10px;
  z-index:5;pointer-events:none;
}
.scroll-cue-text{
  font-size:10px;letter-spacing:.34em;text-transform:uppercase;
  color:var(--primary-dark);font-weight:600;
  font-family:'Plus Jakarta Sans',sans-serif;
  animation:scrollFade 2.4s ease-in-out infinite;
}
.scroll-cue-line{
  width:1.5px;height:42px;background:linear-gradient(to bottom, var(--primary), transparent);
  position:relative;overflow:hidden;border-radius:2px;
}
.scroll-cue-line::after{
  content:'';position:absolute;top:0;left:0;width:100%;height:30%;
  background:var(--navy);
  animation:scrollDot 2.4s cubic-bezier(.7,0,.3,1) infinite;
}
@keyframes scrollFade{0%,100%{opacity:.5}50%{opacity:1}}
@keyframes scrollDot{0%{transform:translateY(-100%)}100%{transform:translateY(330%)}}
@media (max-width:980px){.hero-scroll-cue{display:none}}

/* ---------- Hero blob enhanced glow ---------- */
.hero-blob{
  box-shadow:0 30px 80px -20px rgba(11,37,69,.45);
}

/* ---------- Hero image enhanced hover ---------- */
.hero-img{
  border:6px solid #fff;
  transition:transform .8s cubic-bezier(.2,.8,.2,1);
}
.hero-img img{
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1);
}
.hero-visual:hover .hero-img img{transform:scale(1.06)}

/* (Duplicate hero padding removed — using values in main .hero block above) */


/* ==========================================================================
   HERO SLIDER CONTROLS
   ========================================================================== */

/* ---------- Slider control bar (dots + arrows + counter) ---------- */
.hero-slider-controls{
  display:flex;align-items:center;gap:18px;
  margin-top:32px;padding:14px 18px;
  background:#fff;border-radius:var(--radius-pill);
  box-shadow:var(--shadow-sm);
  border:1px solid var(--line);
  width:fit-content;
}
.slider-arrow{
  width:42px;height:42px;border-radius:50%;
  background:var(--primary-soft);color:var(--primary-dark);
  display:grid;place-items:center;flex-shrink:0;
  transition:all .3s cubic-bezier(.4,0,.2,1);
  border:none;cursor:pointer;
}
.slider-arrow:hover{
  background:var(--primary);color:var(--navy);
  transform:scale(1.08);
}
.slider-arrow svg{width:16px;height:16px}

.slider-dots{
  display:flex;gap:6px;align-items:center;
}
.slider-dot{
  width:10px;height:10px;padding:0;border-radius:50%;
  background:var(--line);border:none;cursor:pointer;
  transition:all .35s cubic-bezier(.4,0,.2,1);
  position:relative;
}
.slider-dot:hover{background:var(--primary-light);transform:scale(1.2)}
.slider-dot.active{
  width:36px;border-radius:6px;
  background:var(--primary);
}
.slider-dot span{display:none}

.slider-counter{
  display:flex;align-items:center;gap:8px;
  font-family:'DM Serif Display',serif;font-size:18px;
  color:var(--navy);
  padding-left:12px;border-left:1px solid var(--line);
}
.slider-current{font-weight:400}
.slider-total{color:var(--ink-light);font-size:15px}
.slider-divider{
  width:14px;height:1px;background:var(--ink-light);
  display:inline-block;
}

@media (max-width:980px){
  .hero-slider-controls{
    margin-left:auto;margin-right:auto;gap:12px;padding:10px 14px;
  }
  .slider-counter{display:none}
  .slider-arrow{width:36px;height:36px}
}

/* ---------- Slide service tag (middle-left of image area) ---------- */
.hero-slide-tag{
  position:absolute;top:50%;left:-2%;z-index:4;
  transform:translateY(-50%);
  background:var(--navy);color:#fff;
  padding:10px 18px 10px 10px;border-radius:var(--radius-pill);
  display:flex;align-items:center;gap:10px;
  box-shadow:var(--shadow-lg);
  font-size:13px;font-weight:600;
}
.hero-slide-tag{
  animation:tagFloatMid 6s ease-in-out infinite;
}
@keyframes tagFloatMid{
  0%,100%{transform:translateY(-50%) translateX(0)}
  50%{transform:translateY(-50%) translateX(-6px)}
}
@keyframes tagFloat{
  0%,100%{transform:translateY(0) rotate(-1deg)}
  50%{transform:translateY(-6px) rotate(1deg)}
}
.tag-icon{
  width:32px;height:32px;border-radius:50%;
  background:var(--primary);color:var(--navy);
  display:grid;place-items:center;flex-shrink:0;
}
.tag-icon svg{width:16px;height:16px}
@media (max-width:980px){
  .hero-slide-tag{left:0}
}

/* ---------- Hero slider progress bar (at bottom of section) ---------- */
.hero-slider-progress{
  position:absolute;left:0;right:0;bottom:0;height:3px;
  background:rgba(11,37,69,.06);overflow:hidden;z-index:5;
}
.hero-slider-progress-bar{
  height:100%;width:0;
  background:linear-gradient(90deg,var(--primary),var(--navy));
  transition:width .15s linear;
}

/* ---------- Slide content fade transition ---------- */
.hero-slide-content{
  transition:opacity .4s ease;
}
.hero-slide-content.is-leaving{opacity:0}

/* ---------- Hero image transition ---------- */
.hero-img img{
  transition:opacity .5s ease, transform 1.2s cubic-bezier(.2,.8,.2,1);
}
.hero-img.is-changing img{opacity:0;transform:scale(1.08)}


/* ==========================================================================
   DARK HERO REDESIGN — clean two-oval-image layout
   ========================================================================== */

/* ---------- Override base hero for dark theme ---------- */
.hero.hero-dark{
  background:var(--navy);
  color:rgba(255,255,255,.85);
  padding:80px 0 90px;
  min-height:auto;
  position:relative;
  overflow:hidden;
}

.hero.hero-dark .hero-grid{
  display:grid;grid-template-columns:1fr 1fr;
  gap:64px;align-items:center;
}

@media (max-width:980px){
  .hero.hero-dark{padding:64px 0 80px}
  .hero.hero-dark .hero-grid{
    grid-template-columns:1fr;gap:48px;text-align:left;
  }
}

/* ---------- Subtle dot pattern background ---------- */
.hero-dot-bg{
  position:absolute;inset:0;pointer-events:none;z-index:0;
  background-image:radial-gradient(circle, rgba(255,255,255,.06) 1.5px, transparent 1.5px);
  background-size:26px 26px;
  opacity:.7;
}

/* ---------- Soft glow accents ---------- */
.hero-glow-1{
  position:absolute;top:-100px;right:-80px;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.18), transparent 70%);
  filter:blur(40px);pointer-events:none;z-index:0;
  animation:glowFloat 14s ease-in-out infinite;
  overflow:hidden;
}
.hero-glow-2{
  position:absolute;bottom:-100px;left:-60px;
  width:400px;height:400px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.1), transparent 70%);
  filter:blur(40px);pointer-events:none;z-index:0;
  animation:glowFloat 18s ease-in-out infinite reverse;
}
@keyframes glowFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(20px,-20px) scale(1.05)}
}

/* ---------- Hero copy column on dark ---------- */
.hero-dark .hero-copy{position:relative;z-index:2}

/* ---------- Eyebrow with line (clean version) ---------- */
.hero-eyebrow-clean{
  display:inline-flex;align-items:center;gap:14px;
  font-size:13px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;
  color:rgba(255,255,255,.85);
  margin-bottom:22px;
  font-family:'Plus Jakarta Sans',sans-serif;
}
.eyebrow-line{
  display:inline-block;width:36px;height:1px;
  background:var(--gold);flex-shrink:0;
}

/* ---------- Headline on dark ---------- */
.hero-dark h1{
  color:#fff;
  font-size:clamp(34px,4.4vw,58px);
  line-height:1.08;
  margin-bottom:22px;
  font-weight:400;
  letter-spacing:-.01em;
}
.hero-dark h1 .accent{
  color:var(--gold);font-style:italic;
  font-family:'DM Serif Display',serif;
}
.hero-dark h1 .underline{position:relative;display:inline-block}

/* ---------- Lede on dark ---------- */
.hero-dark .hero-lede{
  color:rgba(255,255,255,.7);
  font-size:16px;line-height:1.7;
  max-width:480px;margin-bottom:36px;
  padding-left:0;border-left:0;
}
.hero-dark .hero-lede::before{display:none}

/* ---------- Buttons on dark ---------- */
.btn-pill-outline{
  display:inline-flex;align-items:center;gap:14px;
  padding:6px 8px 6px 26px;
  border:1.5px solid var(--gold);
  border-radius:999px;
  color:var(--gold);
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:600;font-size:14.5px;
  text-decoration:none;
  transition:all .35s cubic-bezier(.4,0,.2,1);
  white-space:nowrap;
}
.btn-pill-outline:hover{
  background:var(--gold);color:var(--navy);
  transform:translateY(-2px);
  box-shadow:0 12px 24px -8px rgba(201,169,97,.4);
}
.btn-pill-icon{
  width:38px;height:38px;border-radius:50%;
  background:var(--gold);color:var(--navy);
  display:grid;place-items:center;flex-shrink:0;
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.btn-pill-icon svg{width:14px;height:14px}
.btn-pill-outline:hover .btn-pill-icon{
  background:var(--navy);color:var(--gold);
  transform:rotate(-15deg);
}

.hero-play-clean{
  display:inline-flex;align-items:center;gap:14px;
  color:#fff;font-weight:600;font-size:14.5px;
  text-decoration:none;
  transition:all .25s ease;
}
.hero-play-icon-clean{
  width:46px;height:46px;border-radius:50%;
  background:rgba(255,255,255,.12);color:#fff;
  display:grid;place-items:center;
  position:relative;flex-shrink:0;
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.hero-play-icon-clean::before{
  content:'';position:absolute;inset:-4px;
  border-radius:50%;border:1px solid rgba(255,255,255,.3);
  animation:pulseRing 2.4s ease-out infinite;
}
.hero-play-icon-clean svg{width:14px;height:14px;margin-left:2px}
.hero-play-clean:hover .hero-play-icon-clean{
  background:var(--gold);color:var(--navy);transform:scale(1.08);
}

/* ---------- Slider controls (override for dark) ---------- */
.hero-dark .hero-slider-controls{
  background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.1);
  box-shadow:none;
  margin-top:48px;padding:8px 14px;
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
}
.hero-dark .slider-arrow{
  background:rgba(255,255,255,.08);
  color:#fff;
}
.hero-dark .slider-arrow:hover{
  background:var(--gold);color:var(--navy);
}
.hero-dark .slider-dot{background:rgba(255,255,255,.2)}
.hero-dark .slider-dot:hover{background:rgba(255,255,255,.5)}
.hero-dark .slider-dot.active{background:var(--gold)}
.hero-dark .slider-counter{
  color:rgba(255,255,255,.85);
  border-left:1px solid rgba(255,255,255,.15);
  padding-left:14px;
}
.hero-dark .slider-total{color:rgba(255,255,255,.4)}
.hero-dark .slider-divider{background:rgba(255,255,255,.4)}

/* ---------- Hero visual: two image cards (rounded rectangles) ---------- */
.hero-dark .hero-visual{
  position:relative;
  display:flex;gap:18px;align-items:stretch;
  height:540px;max-width:none;margin:0;
  aspect-ratio:auto;
}

.hero-oval{
  position:relative;
  border-radius:28px;
  overflow:hidden;
  background:rgba(255,255,255,.05);
  box-shadow:0 24px 48px -12px rgba(0,0,0,.4);
  transition:transform .8s cubic-bezier(.2,.8,.2,1);
}
.hero-oval-main{
  flex:1.5;height:100%;
}
.hero-oval-secondary{
  flex:1;height:82%;
  align-self:flex-end;margin-bottom:0;
}
.hero-oval img{
  width:100%;height:100%;object-fit:cover;
  transition:transform 1.4s cubic-bezier(.2,.8,.2,1), opacity .5s ease;
}
.hero-oval:hover{transform:translateY(-6px)}
.hero-oval:hover img{transform:scale(1.06)}

/* Subtle gold accent border on hover */
.hero-oval::before{
  content:'';position:absolute;inset:0;
  border:2px solid transparent;border-radius:28px;
  pointer-events:none;z-index:2;
  transition:border-color .4s ease;
}
.hero-oval:hover::before{border-color:rgba(201,169,97,.5)}

@media (max-width:980px){
  .hero-dark .hero-visual{height:420px;max-width:540px;margin:0 auto}
}
@media (max-width:600px){
  .hero-dark .hero-visual{height:340px}
  .hero-oval-secondary{display:none}
  .hero-oval-main{flex:1}
}

/* ---------- Decorative dot patterns near images ---------- */
.hero-pattern-dots{
  position:absolute;pointer-events:none;z-index:0;
  background-image:radial-gradient(circle, rgba(255,255,255,.4) 1.5px, transparent 1.5px);
  background-size:14px 14px;
}
.hero-pattern-dots-1{
  top:-20px;right:-50px;width:130px;height:200px;
}
.hero-pattern-dots-2{
  bottom:-30px;left:-40px;width:100px;height:160px;
}
@media (max-width:980px){
  .hero-pattern-dots-1{right:-20px;width:90px;height:140px}
  .hero-pattern-dots-2{left:-20px;width:80px;height:120px}
}

/* ---------- Slider progress bar on dark ---------- */
.hero-dark .hero-slider-progress{
  background:rgba(255,255,255,.05);
}
.hero-dark .hero-slider-progress-bar{
  background:linear-gradient(90deg, var(--gold), rgba(255,255,255,.4));
}

/* ---------- Hide elements no longer used in dark hero ---------- */
.hero-dark .hero-trust,
.hero-dark .hero-awards,
.hero-dark .hero-scroll-cue,
.hero-dark .hero-slide-tag{display:none}


/* ==========================================================================
   ENHANCED HERO ANIMATIONS — particles, spotlight, hover effects, glow
   ========================================================================== */

/* ---------- Cursor-following gold spotlight ---------- */
.hero-cursor-glow{
  position:absolute;top:0;left:0;
  width:500px;height:500px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.18), transparent 70%);
  filter:blur(40px);
  pointer-events:none;z-index:0;
  opacity:0;
  transform:translate(-50%,-50%);
  transition:opacity .5s ease;
  will-change:transform;
}
.hero-dark:hover .hero-cursor-glow{opacity:1}
@media (hover:none),(max-width:1024px){.hero-cursor-glow{display:none}}

/* ---------- Floating gold particles ---------- */
.hero-particle{
  position:absolute;width:6px;height:6px;border-radius:50%;
  background:var(--gold);pointer-events:none;
  opacity:.6;z-index:1;
  box-shadow:0 0 12px rgba(201,169,97,.5);
}
.hero-particle.p1{top:18%;left:8%;animation:partFloat1 7s ease-in-out infinite}
.hero-particle.p2{top:32%;left:32%;width:4px;height:4px;animation:partFloat2 9s ease-in-out infinite -2s}
.hero-particle.p3{top:62%;left:6%;width:8px;height:8px;animation:partFloat3 11s ease-in-out infinite -4s}
.hero-particle.p4{top:24%;right:18%;width:5px;height:5px;animation:partFloat4 8s ease-in-out infinite -1s}
.hero-particle.p5{bottom:22%;left:38%;animation:partFloat5 10s ease-in-out infinite -3s}
.hero-particle.p6{bottom:14%;right:8%;width:7px;height:7px;animation:partFloat6 12s ease-in-out infinite -5s}
.hero-particle.p7{top:50%;left:18%;width:3px;height:3px;animation:partFloat7 8s ease-in-out infinite -2.5s}
.hero-particle.p8{bottom:40%;right:30%;width:4px;height:4px;animation:partFloat8 9s ease-in-out infinite -4.5s}

@keyframes partFloat1{0%,100%{transform:translate(0,0) scale(1);opacity:.4}50%{transform:translate(30px,-25px) scale(1.4);opacity:1}}
@keyframes partFloat2{0%,100%{transform:translate(0,0);opacity:.5}50%{transform:translate(-20px,30px);opacity:1}}
@keyframes partFloat3{0%,100%{transform:translate(0,0) scale(1);opacity:.6}50%{transform:translate(40px,-20px) scale(1.3);opacity:1}}
@keyframes partFloat4{0%,100%{transform:translate(0,0);opacity:.5}50%{transform:translate(-25px,20px);opacity:.9}}
@keyframes partFloat5{0%,100%{transform:translate(0,0) scale(1);opacity:.5}50%{transform:translate(20px,-35px) scale(1.5);opacity:1}}
@keyframes partFloat6{0%,100%{transform:translate(0,0);opacity:.4}50%{transform:translate(-30px,-25px);opacity:.9}}
@keyframes partFloat7{0%,100%{transform:translate(0,0);opacity:.5}50%{transform:translate(15px,-15px);opacity:1}}
@keyframes partFloat8{0%,100%{transform:translate(0,0) scale(1);opacity:.5}50%{transform:translate(-15px,25px) scale(1.3);opacity:1}}

@media (max-width:980px){
  .hero-particle.p2,.hero-particle.p4,.hero-particle.p7{display:none}
}

/* ---------- Image card overlays (hover effects) ---------- */
.hero-oval-overlay{
  position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(180deg, transparent 50%, rgba(11,37,69,.7) 100%);
  opacity:0;transition:opacity .5s ease;
}
.hero-oval:hover .hero-oval-overlay{opacity:1}

/* Diagonal shine on hover */
.hero-oval-shine{
  position:absolute;top:0;left:-150%;width:80%;height:100%;z-index:3;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.15) 50%, transparent 70%);
  pointer-events:none;
  transition:left .9s cubic-bezier(.2,.8,.2,1);
}
.hero-oval:hover .hero-oval-shine{left:150%}

/* Continuous subtle gold glow pulse around cards */
.hero-oval{
  animation:cardGlowPulse 5s ease-in-out infinite;
}
.hero-oval-secondary{animation-delay:-2.5s}
@keyframes cardGlowPulse{
  0%,100%{box-shadow:0 24px 48px -12px rgba(0,0,0,.4)}
  50%{box-shadow:0 24px 48px -12px rgba(0,0,0,.4), 0 0 40px -8px rgba(201,169,97,.25)}
}

/* ---------- Image breathing (very subtle continuous) ---------- */
@keyframes imgBreath{
  0%,100%{filter:brightness(1) contrast(1)}
  50%{filter:brightness(1.04) contrast(1.02)}
}
.hero-oval img{
  animation:imgBreath 6s ease-in-out infinite;
}

/* ---------- Eyebrow line draw animation ---------- */
.eyebrow-line{
  display:inline-block;width:36px;height:1px;
  background:var(--gold);flex-shrink:0;
  position:relative;
  animation:lineGrow 2s ease-out infinite;
  transform-origin:left;
}
@keyframes lineGrow{
  0%,100%{transform:scaleX(1)}
  50%{transform:scaleX(1.4)}
}

/* ---------- Headline accent shimmer (gold gradient) ---------- */
.hero-dark h1 .accent{
  background:linear-gradient(90deg, var(--gold) 0%, #E8D08C 50%, var(--gold) 100%);
  background-size:200% auto;
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
  animation:accentShimmer 4s linear infinite;
}
@keyframes accentShimmer{
  0%{background-position:0% center}
  100%{background-position:200% center}
}

/* ---------- Slider counter rotation animation ---------- */
.slider-current{
  display:inline-block;
  transition:transform .5s cubic-bezier(.7,0,.3,1);
}
.slider-current.flip{
  animation:numFlip .6s cubic-bezier(.7,0,.3,1);
}
@keyframes numFlip{
  0%{transform:rotateX(0)}
  50%{transform:rotateX(-90deg)}
  100%{transform:rotateX(0)}
}

/* ---------- Slider dot pulse for active ---------- */
.slider-dot.active{
  position:relative;
}
.slider-dot.active::after{
  content:'';position:absolute;inset:-4px;border-radius:8px;
  border:1px solid var(--gold);opacity:0;
  animation:dotPulse 2s ease-out infinite;
}
@keyframes dotPulse{
  0%{transform:scale(.8);opacity:.6}
  100%{transform:scale(1.4);opacity:0}
}

/* ---------- Image transition states (slide-from-right) ---------- */
.hero-oval img{
  will-change:transform, opacity;
}

/* Helper: no-animation when dragging/focusing input */
.hero-dark .hero-oval{
  transform-style:preserve-3d;
}
/* ==========================================================================
   FAQ — ENHANCED ANIMATIONS & EFFECTS
   ========================================================================== */

/* ---------- Section setup ---------- */
.faq{overflow:hidden}

/* ---------- Background decorations ---------- */
.faq-bg-dot-1{
  position:absolute;top:10%;right:-100px;
  width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.1), transparent 70%);
  filter:blur(20px);pointer-events:none;z-index:0;
  animation:faqBgFloat 12s ease-in-out infinite;
}
.faq-bg-dot-2{
  position:absolute;bottom:5%;left:-120px;
  width:300px;height:300px;border-radius:50%;
  background:radial-gradient(circle, rgba(11,37,69,.06), transparent 70%);
  filter:blur(20px);pointer-events:none;z-index:0;
  animation:faqBgFloat 16s ease-in-out infinite -4s;
}
.faq-bg-pattern{
  position:absolute;top:20%;left:48%;
  width:140px;height:140px;
  background-image:radial-gradient(circle, var(--gold) 1.5px, transparent 1.5px);
  background-size:14px 14px;opacity:.25;
  pointer-events:none;z-index:0;
}
@keyframes faqBgFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(30px,-20px) scale(1.1)}
}

.faq .container{position:relative;z-index:1}

/* ---------- Enhanced FAQ image ---------- */
.faq-image{
  position:relative;
  border-radius:32px;
  isolation:isolate;
}
.faq-image img{
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1);
}
.faq-image:hover img{transform:scale(1.05)}

/* Image gradient overlay */
.faq-image::after{
  content:'';position:absolute;inset:0;border-radius:32px;
  background:linear-gradient(180deg, rgba(11,37,69,.1) 0%, transparent 30%, transparent 60%, rgba(11,37,69,.5) 100%);
  pointer-events:none;z-index:1;
}

/* Sparkles around image */
.faq-sparkle{
  position:absolute;width:8px;height:8px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 14px rgba(201,169,97,.7);
  pointer-events:none;z-index:3;
}
.faq-sparkle.s1{top:8%;left:-12px;animation:faqSparkle 3s ease-in-out infinite}
.faq-sparkle.s2{top:45%;right:-12px;width:6px;height:6px;animation:faqSparkle 3.5s ease-in-out infinite -1s}
.faq-sparkle.s3{bottom:30%;left:-8px;width:5px;height:5px;animation:faqSparkle 4s ease-in-out infinite -2s}
@keyframes faqSparkle{
  0%,100%{transform:scale(1);opacity:.6}
  50%{transform:scale(1.6);opacity:1}
}

/* 24/7 floating badge */
.faq-image-badge{
  position:absolute;top:24px;right:24px;z-index:4;
  width:96px;height:96px;border-radius:50%;
  background:var(--navy);
  display:grid;place-items:center;text-align:center;
  box-shadow:0 16px 32px -8px rgba(11,37,69,.4),
             0 0 0 6px #fff,
             0 0 0 7px rgba(201,169,97,.4);
  animation:faqBadgeFloat 5s ease-in-out infinite;
}
.faq-image-badge::before{
  content:'';position:absolute;inset:6px;
  border:1px dashed rgba(201,169,97,.5);border-radius:50%;
  animation:rotateSlow 14s linear infinite;
}
.faq-image-badge-inner{display:flex;flex-direction:column;align-items:center;gap:2px;line-height:1}
.faq-badge-num{
  font-family:'DM Serif Display',serif;font-size:24px;color:var(--gold);
}
.faq-badge-num sup{font-size:.5em;color:#fff;font-weight:300;margin-left:1px}
.faq-badge-lbl{
  font-size:9px;font-weight:600;letter-spacing:.1em;
  text-transform:uppercase;color:rgba(255,255,255,.85);
  margin-top:4px;line-height:1.2;
}
@keyframes faqBadgeFloat{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-8px) rotate(3deg)}
}

/* ---------- Bottom image card enhanced ---------- */
.faq-image-card{z-index:5;transition:transform .4s cubic-bezier(.2,.8,.2,1)}
.faq-image:hover .faq-image-card{transform:translateY(-4px)}
.faq-image-card::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:0;
  background:var(--gold);border-radius:var(--radius) 0 0 var(--radius);
  transition:width .4s ease;
}
.faq-image:hover .faq-image-card::before{width:4px}
.faq-image-card-icon{
  transition:all .4s cubic-bezier(.2,.8,.2,1);
}
.faq-image:hover .faq-image-card-icon{
  background:var(--primary);color:var(--navy);
  transform:rotate(-10deg) scale(1.05);
}

/* ---------- FAQ list — enhanced items ---------- */
.faq-content{position:relative}

.faq-list{display:flex;flex-direction:column;gap:14px}

.faq-item{
  background:#fff;border-radius:20px;
  border:1px solid var(--line);overflow:hidden;
  transition:all .4s cubic-bezier(.4,0,.2,1);
  position:relative;
  isolation:isolate;
}

/* Gradient left bar for open state */
.faq-item::before{
  content:'';position:absolute;left:0;top:0;bottom:0;width:0;
  background:linear-gradient(180deg, var(--primary), var(--navy));
  border-radius:20px 0 0 20px;
  transition:width .5s cubic-bezier(.7,0,.3,1);
  z-index:2;
}
.faq-item.open::before{width:4px}

/* Subtle gold gradient background when open */
.faq-item.open{
  border-color:transparent;
  background:linear-gradient(135deg, #fff 0%, var(--primary-soft) 100%);
  box-shadow:0 16px 32px -10px rgba(201,169,97,.2);
}

.faq-item:hover:not(.open){
  border-color:var(--primary-light);
  box-shadow:0 8px 20px -8px rgba(11,37,69,.1);
  transform:translateX(4px);
}

/* Shimmer effect on hover */
.faq-item::after{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(105deg, transparent 30%, rgba(201,169,97,.1) 50%, transparent 70%);
  pointer-events:none;z-index:1;
  transition:left .9s cubic-bezier(.2,.8,.2,1);
}
.faq-item:hover::after{left:100%}

/* Question button styling */
.faq-q{
  width:100%;padding:22px 26px;
  display:flex;align-items:center;gap:18px;
  font-family:'DM Serif Display',serif;font-size:18px;
  color:var(--navy);font-weight:400;
  text-align:left;line-height:1.35;
  background:none;border:none;cursor:pointer;
  transition:color .25s ease;
  position:relative;z-index:2;
}
.faq-q:hover{color:var(--primary-dark)}

/* Number badge on each question */
.faq-q-num{
  flex-shrink:0;
  width:36px;height:36px;border-radius:10px;
  background:var(--primary-soft);color:var(--primary-dark);
  display:grid;place-items:center;
  font-family:'DM Serif Display',serif;font-size:14px;
  font-weight:400;letter-spacing:.02em;
  transition:all .4s cubic-bezier(.4,0,.2,1);
}
.faq-item.open .faq-q-num{
  background:var(--navy);color:var(--gold);
  transform:rotate(-8deg) scale(1.05);
}
.faq-item:hover:not(.open) .faq-q-num{
  background:var(--primary);color:var(--navy);
  transform:scale(1.05);
}

.faq-q-text{flex:1}

/* Plus/X icon enhanced */
.faq-icon{
  width:38px;height:38px;border-radius:50%;flex-shrink:0;
  background:var(--primary-soft);color:var(--primary-dark);
  display:grid;place-items:center;position:relative;
  transition:all .4s cubic-bezier(.4,0,.2,1);
}
.faq-icon::before,.faq-icon::after{
  content:'';position:absolute;background:currentColor;
  transition:transform .35s cubic-bezier(.7,0,.3,1);
}
.faq-icon::before{
  width:14px;height:2px;left:50%;top:50%;
  transform:translate(-50%,-50%);border-radius:2px;
}
.faq-icon::after{
  width:2px;height:14px;left:50%;top:50%;
  transform:translate(-50%,-50%);border-radius:2px;
}
.faq-item.open .faq-icon{
  background:var(--navy);color:var(--gold);
  transform:rotate(135deg);
}
.faq-item.open .faq-icon::after{transform:translate(-50%,-50%) scaleY(0)}

/* Pulse ring on open state */
.faq-item.open .faq-icon::before{
  box-shadow:0 0 0 0 var(--gold);
}

/* Answer area */
.faq-a{
  max-height:0;opacity:0;overflow:hidden;
  transition:max-height .55s cubic-bezier(.4,0,.2,1), opacity .4s ease;
}
.faq-item.open .faq-a{max-height:400px;opacity:1}

.faq-a-inner{
  padding:0 26px 24px 80px;
  font-size:15px;color:var(--ink-soft);line-height:1.75;
  position:relative;
}
.faq-a-inner::before{
  content:'';position:absolute;left:42px;top:0;bottom:8px;
  width:1.5px;background:linear-gradient(180deg, var(--primary), transparent);
  border-radius:2px;
}

/* ---------- Bottom help banner ---------- */
.faq-help{
  margin-top:32px;
  display:flex;align-items:center;gap:16px;
  padding:20px 24px;border-radius:20px;
  background:linear-gradient(135deg, var(--navy) 0%, #102d5a 100%);
  color:#fff;
  position:relative;overflow:hidden;
  transition:transform .4s ease, box-shadow .4s ease;
}
.faq-help:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 32px -8px rgba(11,37,69,.4);
}
.faq-help::before{
  content:'';position:absolute;top:-60px;right:-60px;
  width:160px;height:160px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.25), transparent 70%);
  animation:helpGlow 6s ease-in-out infinite;
}
@keyframes helpGlow{
  0%,100%{transform:translate(0,0) scale(1);opacity:.7}
  50%{transform:translate(-15px,15px) scale(1.15);opacity:1}
}
.faq-help-icon{
  width:48px;height:48px;border-radius:14px;
  background:var(--primary);color:var(--navy);
  display:grid;place-items:center;flex-shrink:0;
  position:relative;z-index:1;
  animation:helpIconPulse 2s ease-in-out infinite;
}
@keyframes helpIconPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(201,169,97,.5)}
  50%{box-shadow:0 0 0 10px rgba(201,169,97,0)}
}
.faq-help-icon svg{width:22px;height:22px}
.faq-help-text{flex:1;position:relative;z-index:1}
.faq-help-text strong{
  display:block;font-family:'DM Serif Display',serif;
  font-size:18px;color:#fff;font-weight:400;line-height:1.2;
}
.faq-help-text span{
  font-size:13px;color:rgba(255,255,255,.7);
}
.faq-help-btn{
  display:inline-flex;align-items:center;gap:8px;
  padding:11px 18px;border-radius:var(--radius-pill);
  background:var(--primary);color:var(--navy);
  font-family:'Plus Jakarta Sans',sans-serif;
  font-weight:600;font-size:13.5px;
  text-decoration:none;flex-shrink:0;
  position:relative;z-index:1;
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.faq-help-btn svg{width:14px;height:14px;transition:transform .3s ease}
.faq-help-btn:hover{
  background:#fff;transform:translateX(-3px);
  box-shadow:0 8px 16px -4px rgba(201,169,97,.4);
}
.faq-help-btn:hover svg{transform:translateX(4px)}

@media (max-width:600px){
  .faq-help{flex-direction:column;text-align:center}
  .faq-q-num{width:32px;height:32px;font-size:13px}
  .faq-q{padding:18px 20px;font-size:16px;gap:14px}
  .faq-a-inner{padding-left:64px}
  .faq-a-inner::before{left:32px}
  .faq-image-badge{width:80px;height:80px;top:18px;right:18px}
  .faq-badge-num{font-size:20px}
}


/* ==========================================================================
   FAQ — LAYOUT FIXES (image height match, lighter overlay)
   ========================================================================== */

/* Stretch grid so image matches content height */
.faq-grid{
  align-items:stretch !important;
}

/* Remove fixed aspect-ratio - let image fill the grid row */
.faq-image{
  aspect-ratio:auto !important;
  min-height:600px;
  height:auto;
  align-self:stretch;
}

/* Lighten the bottom gradient overlay so it doesn't create a dark strip */
.faq-image::after{
  background:linear-gradient(180deg, rgba(11,37,69,.08) 0%, transparent 25%, transparent 70%, rgba(11,37,69,.25) 100%) !important;
}

/* Make sure image fills its container */
.faq-image > img{
  width:100%;height:100%;object-fit:cover;
  display:block;
}

/* Reposition the bottom "Have a Question?" card slightly higher and reduce shadow stack */
.faq-image-card{
  bottom:24px;
  left:24px;
  right:24px;
}

/* Mobile - reset image height */
@media (max-width:980px){
  .faq-image{
    min-height:auto !important;
    aspect-ratio:4/5 !important;
  }
}


/* ==========================================================================
   APPOINTMENT FORM — REDESIGNED LAYOUT & ENHANCED ANIMATIONS
   ========================================================================== */

.appointment{overflow:hidden}

/* ---------- Background decorations ---------- */
.appt-bg-dot-1{
  position:absolute;top:8%;left:-100px;
  width:280px;height:280px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.12), transparent 70%);
  filter:blur(20px);pointer-events:none;z-index:0;
  animation:apptBgFloat 14s ease-in-out infinite;
}
.appt-bg-dot-2{
  position:absolute;bottom:8%;right:-120px;
  width:320px;height:320px;border-radius:50%;
  background:radial-gradient(circle, rgba(11,37,69,.06), transparent 70%);
  filter:blur(20px);pointer-events:none;z-index:0;
  animation:apptBgFloat 18s ease-in-out infinite -5s;
}
.appt-bg-pattern{
  position:absolute;bottom:18%;left:36%;
  width:120px;height:120px;
  background-image:radial-gradient(circle, var(--gold) 1.5px, transparent 1.5px);
  background-size:14px 14px;opacity:.22;
  pointer-events:none;z-index:0;
}
@keyframes apptBgFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(20px,-30px) scale(1.1)}
}

.appointment .container{position:relative;z-index:1}

/* ---------- Grid layout fix ---------- */
.appt-grid{
  display:grid;
  grid-template-columns:1fr 1.1fr;gap:64px;
  align-items:start !important;
}

/* ---------- LEFT COLUMN — content + image ---------- */
.appt-info{
  display:flex;flex-direction:column;gap:40px;
}

/* Heading content at TOP (no padding, no margins) */
.appt-info-content{
  padding-top:0 !important;
}
.appt-info-content h2{
  margin-bottom:20px !important;
  font-size:clamp(32px,3.8vw,52px);
  line-height:1.1;
}
.appt-info-content p{
  font-size:16px;color:var(--ink-soft);
  line-height:1.75;margin-bottom:0;
  max-width:520px;
}

/* ---------- Image below the content ---------- */
.appt-info-img{
  position:relative;
  aspect-ratio:auto !important;
  height:auto;
  min-height:380px;
  border-radius:32px !important;
  overflow:visible !important;
  box-shadow:none !important;
}
.appt-info-img img{
  width:100%;height:100%;object-fit:cover;
  border-radius:32px;
  min-height:380px;
  box-shadow:0 24px 48px -12px rgba(11,37,69,.25);
  transition:transform 1.2s cubic-bezier(.2,.8,.2,1);
}
.appt-info-img:hover img{transform:scale(1.03)}

/* Gold accent border on hover */
.appt-info-img::before{
  content:'';position:absolute;inset:0;
  border:2px solid transparent;border-radius:32px;
  pointer-events:none;z-index:3;
  transition:border-color .4s ease;
}
.appt-info-img:hover::before{border-color:rgba(201,169,97,.5)}

/* ---------- Sparkles around image ---------- */
.appt-sparkle{
  position:absolute;width:8px;height:8px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 14px rgba(201,169,97,.7);
  pointer-events:none;z-index:5;
}
.appt-sparkle.s1{top:8%;right:-10px;animation:apptSparkle 3s ease-in-out infinite}
.appt-sparkle.s2{bottom:40%;left:-12px;width:6px;height:6px;animation:apptSparkle 3.5s ease-in-out infinite -1s}
.appt-sparkle.s3{bottom:14%;right:8%;width:5px;height:5px;animation:apptSparkle 4s ease-in-out infinite -2s}
@keyframes apptSparkle{
  0%,100%{transform:scale(1);opacity:.6}
  50%{transform:scale(1.6);opacity:1}
}

/* ---------- Floating badges on image ---------- */
.appt-floating-badge{
  position:absolute;background:#fff;
  border-radius:16px;padding:14px 18px;
  box-shadow:0 16px 32px -8px rgba(11,37,69,.2);
  display:flex;align-items:center;gap:12px;z-index:4;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.appt-floating-badge:hover{
  transform:translateY(-4px);
  box-shadow:0 20px 40px -10px rgba(11,37,69,.3);
}

.appt-fb-1{
  top:24px;left:-20px;
  animation:apptBadgeFloat1 5s ease-in-out infinite;
}
.appt-fb-2{
  bottom:24px;right:-20px;
  animation:apptBadgeFloat2 6s ease-in-out infinite -2s;
}
@keyframes apptBadgeFloat1{
  0%,100%{transform:translateY(0) rotate(-1deg)}
  50%{transform:translateY(-8px) rotate(1deg)}
}
@keyframes apptBadgeFloat2{
  0%,100%{transform:translateY(0) rotate(1deg)}
  50%{transform:translateY(8px) rotate(-1deg)}
}

.appt-fb-icon{
  width:42px;height:42px;border-radius:12px;flex-shrink:0;
  background:var(--primary-soft);color:var(--primary-dark);
  display:grid;place-items:center;
  transition:all .35s ease;
}
.appt-fb-icon.gold{
  background:var(--navy);color:var(--gold);
}
.appt-fb-icon svg{width:20px;height:20px}
.appt-floating-badge strong{
  display:block;font-family:'DM Serif Display',serif;
  font-size:15px;color:var(--navy);font-weight:400;
  line-height:1.2;
}
.appt-floating-badge small{
  font-size:11.5px;color:var(--ink-light);
  font-weight:500;
}

/* ---------- RIGHT COLUMN — enhanced form card ---------- */
.appt-form-card{
  position:relative;
  isolation:isolate;
}

/* Enhanced gold gradient top border */
.appt-form-card::before{
  content:''!important;position:absolute;top:0;left:36px;right:36px;height:3px;
  background:linear-gradient(90deg,var(--primary),var(--navy));
  border-radius:0 0 4px 4px;
}

/* Soft gold glow inside form card */
.appt-form-card::after{
  content:'';position:absolute;top:-2px;left:0;right:0;height:160px;
  background:radial-gradient(ellipse at top, rgba(201,169,97,.08), transparent 70%);
  pointer-events:none;z-index:-1;
  border-radius:var(--radius-xl) var(--radius-xl) 0 0;
}

.appt-form-head{margin-bottom:28px}
.appt-form-head h3{
  margin-bottom:6px;
  font-size:28px;
}

/* Enhanced form field animations */
.form-field{
  position:relative;
}
.form-field input,
.form-field select,
.form-field textarea{
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.form-field input:hover:not(:focus),
.form-field select:hover:not(:focus),
.form-field textarea:hover:not(:focus){
  background:#fff;border-color:var(--line);
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  transform:translateY(-1px);
}

/* Enhanced submit button with shine effect */
.form-submit{
  position:relative;overflow:hidden;
  isolation:isolate;
  background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color:#fff;
  font-weight:700;
  width:100%;padding:16px 24px;
  margin-top:8px;
  border-radius:var(--radius-pill);
  font-family:'Plus Jakarta Sans',sans-serif;font-size:14.5px;
  border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:10px;
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.form-submit:hover{
  background:linear-gradient(135deg, var(--primary-dark) 0%, var(--navy) 100%);
  transform:translateY(-2px);
  box-shadow:0 14px 28px -8px rgba(14,125,193,.45);
  color:#fff;
}
.form-submit::before{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.35) 50%, transparent 70%);
  z-index:1;
  transition:left .8s cubic-bezier(.2,.8,.2,1);
}
.form-submit:hover::before{left:100%}
.form-submit::after{
  content:'';position:absolute;inset:0;
  border-radius:inherit;
  box-shadow:0 0 0 0 rgba(14,125,193,.4);
  animation:submitPulse 2.5s ease-in-out infinite;
  pointer-events:none;
}
@keyframes submitPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(14,125,193,.4)}
  50%{box-shadow:0 0 0 12px rgba(14,125,193,0)}
}
.submit-shine{
  position:absolute;inset:0;z-index:0;pointer-events:none;
}
.submit-text{
  position:relative;z-index:2;
  color:#fff;font-weight:700;
  white-space:nowrap;
}
.submit-arrow{
  position:relative;z-index:2;
  width:16px;height:16px;
  flex-shrink:0;
  transition:transform .35s cubic-bezier(.4,0,.2,1);
  color:#fff;
}
.form-submit:hover .submit-arrow{transform:translateX(5px)}

/* ---------- Mobile ---------- */
@media (max-width:980px){
  .appt-grid{grid-template-columns:1fr;gap:48px}
  .appt-info{gap:32px}
  .appt-info-img{min-height:320px}
  .appt-info-img img{min-height:320px}
  .appt-fb-1{left:0;top:16px;padding:10px 14px}
  .appt-fb-2{right:0;bottom:16px;padding:10px 14px}
  .appt-floating-badge strong{font-size:13.5px}
  .appt-floating-badge small{font-size:11px}
  .appt-fb-icon{width:36px;height:36px}
  .appt-fb-icon svg{width:18px;height:18px}
}
@media (max-width:600px){
  .appt-fb-1,.appt-fb-2{
    position:relative;left:auto;right:auto;top:auto;bottom:auto;
    animation:none;
    margin:0 auto;
  }
  .appt-info-img{display:block}
  .appt-info-img > .appt-floating-badge{display:none}
}


/* ==========================================================================
   APPOINTMENT FORM — LAYOUT FIXES
   ========================================================================== */

/* Grid stretches both columns to same height so image doesn't overflow past form */
.appt-grid{
  align-items:stretch !important;
}

/* Left column flex layout pushes image to fill remaining space */
.appt-info{
  display:flex;
  flex-direction:column;
  gap:32px;
  height:100%;
}

/* Image fills remaining height of left column matching form card height */
.appt-info-img{
  flex:1;
  min-height:380px !important;
  height:auto !important;
}
.appt-info-img img{
  height:100% !important;
  min-height:380px;
}

/* Fix floating badges — keep them inside container so phone number doesn't get clipped */
.appt-fb-1{
  top:20px !important;
  left:20px !important;
}
.appt-fb-2{
  bottom:20px !important;
  right:20px !important;
  /* Allow content to size naturally so phone number doesn't clip */
  white-space:nowrap;
}

/* Make sure floating badge text doesn't overflow */
.appt-floating-badge{
  max-width:none;
}
.appt-floating-badge > div{
  min-width:0;
  white-space:nowrap;
}

/* On smaller screens reduce font size to keep badges compact */
@media (max-width:1100px){
  .appt-floating-badge{padding:10px 14px;gap:10px}
  .appt-floating-badge strong{font-size:13px}
  .appt-floating-badge small{font-size:11px}
  .appt-fb-icon{width:38px;height:38px}
  .appt-fb-icon svg{width:18px;height:18px}
}

@media (max-width:980px){
  .appt-info-img{min-height:340px !important}
  .appt-info-img img{min-height:340px}
}

/* ---------- Inline form field error messages ---------- */
.field-error-msg{
  display:block;
  font-size:12px;
  color:#EF4444;
  margin-top:4px;
  font-weight:500;
  opacity:0;
  transition:opacity .25s ease;
  min-height:16px;
}
.form-field.field-error label{color:#EF4444}

/* ---------- Form success card — better visibility ---------- */
.form-success{
  display:none;
  padding:16px 20px;
  margin-top:16px;
  border-radius:14px;
  background:linear-gradient(135deg, #ECFDF5, #D1FAE5);
  border:1px solid #10B981;
  color:#065F46;
  font-size:14px;
  font-weight:500;
  line-height:1.5;
}
.form-success.show{display:block}


/* ==========================================================================
   APPOINTMENT — FINAL LAYOUT FIX (no stretch, natural heights)
   ========================================================================== */

/* Both columns align at top, take natural content height (no stretching) */
.appt-grid{
  align-items:start !important;
}

/* Left column: stack content + image naturally */
.appt-info{
  display:flex !important;
  flex-direction:column !important;
  gap:32px !important;
  height:auto !important;
}

/* Image: fixed reasonable aspect ratio that roughly matches form height */
.appt-info-img{
  flex:0 0 auto !important;
  height:auto !important;
  min-height:auto !important;
  aspect-ratio:5/4 !important;
}
.appt-info-img img{
  height:100% !important;
  min-height:auto !important;
  width:100%;
  object-fit:cover;
}

/* Form card: take only its content height (no stretching) */
.appt-form-card{
  align-self:start !important;
  height:auto !important;
}

/* Mobile adjustments */
@media (max-width:980px){
  .appt-info-img{aspect-ratio:5/4 !important}
}
@media (max-width:600px){
  .appt-info-img{aspect-ratio:4/3 !important}
}


/* ==========================================================================
   APPOINTMENT — IMAGE MATCHES FORM HEIGHT (JS-driven)
   ========================================================================== */

/* Remove aspect ratio - JS will set the height to match form */
.appt-info-img{
  aspect-ratio:auto !important;
  height:auto !important;
  min-height:400px !important;
}
.appt-info-img img{
  height:100% !important;
}

/* Mobile - let image have natural ratio */
@media (max-width:980px){
  .appt-info-img{
    height:auto !important;
    min-height:340px !important;
    aspect-ratio:5/4 !important;
  }
}


/* ==========================================================================
   LOCATIONS — ENHANCED ANIMATIONS & EFFECTS
   ========================================================================== */

.locations{overflow:hidden;position:relative}

/* ---------- Background decorations ---------- */
.loc-bg-orb-1{
  position:absolute;top:10%;left:-150px;
  width:340px;height:340px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.1), transparent 70%);
  filter:blur(30px);pointer-events:none;z-index:0;
  animation:locBgFloat 14s ease-in-out infinite;
}
.loc-bg-orb-2{
  position:absolute;bottom:10%;right:-150px;
  width:380px;height:380px;border-radius:50%;
  background:radial-gradient(circle, rgba(11,37,69,.07), transparent 70%);
  filter:blur(30px);pointer-events:none;z-index:0;
  animation:locBgFloat 18s ease-in-out infinite -6s;
}
.loc-bg-pattern{
  position:absolute;top:40%;left:48%;
  width:160px;height:160px;
  background-image:radial-gradient(circle, var(--gold) 1.5px, transparent 1.5px);
  background-size:14px 14px;opacity:.2;
  pointer-events:none;z-index:0;
}
@keyframes locBgFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(30px,-25px) scale(1.1)}
}
.locations .container{position:relative;z-index:1}

/* ---------- Card enhanced ---------- */
.loc-card{
  background:#fff;
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:0 8px 24px -6px rgba(11,37,69,.08);
  transition:all .5s cubic-bezier(.2,.8,.2,1);
  position:relative;
  isolation:isolate;
}

/* Gold gradient bar grows from left on hover (already in CSS as ::after) - enhance */
.loc-card:hover{
  transform:translateY(-10px) !important;
  box-shadow:0 30px 60px -16px rgba(11,37,69,.2) !important;
}

/* Subtle gold border glow on hover */
.loc-card::before{
  content:'';position:absolute;inset:0;
  border:2px solid transparent;border-radius:var(--radius-lg);
  pointer-events:none;z-index:5;
  transition:border-color .4s ease;
}
.loc-card:hover::before{
  border-color:rgba(201,169,97,.3);
}

/* ---------- Image with overlay gradient ---------- */
.loc-card-img{
  position:relative;
  aspect-ratio:5/3;
  overflow:hidden;
}
.loc-card-img img{
  transition:transform 1.4s cubic-bezier(.2,.8,.2,1);
}
.loc-card:hover .loc-card-img img{
  transform:scale(1.1);
}

/* Image gradient overlay */
.loc-card-img::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg, rgba(11,37,69,.1) 0%, transparent 30%, transparent 60%, rgba(11,37,69,.4) 100%);
  pointer-events:none;z-index:1;
}

/* ---------- Branch tag enhanced ---------- */
.loc-card-tag{
  position:absolute;top:18px;right:18px;z-index:3;
  padding:6px 14px;border-radius:var(--radius-pill);
  background:#fff;color:var(--primary-dark);
  font-size:11px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  box-shadow:0 4px 12px rgba(11,37,69,.15);
  transition:all .4s cubic-bezier(.2,.8,.2,1);
}
.loc-card:hover .loc-card-tag{
  background:var(--primary);color:var(--navy);
  transform:scale(1.08);
}

/* ---------- Pin marker with pulsing rings ---------- */
.loc-pin-marker{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-65%);
  z-index:4;
  width:48px;height:48px;
  background:var(--gold);color:var(--navy);
  border-radius:50% 50% 50% 0;
  transform:translate(-50%,-65%) rotate(-45deg);
  display:grid;place-items:center;
  box-shadow:0 8px 24px -4px rgba(11,37,69,.4);
  animation:locPinBounce 2s ease-in-out infinite;
}
.loc-pin-marker svg{
  width:22px;height:22px;
  transform:rotate(45deg);
}
@keyframes locPinBounce{
  0%,100%{transform:translate(-50%,-65%) rotate(-45deg)}
  50%{transform:translate(-50%,-75%) rotate(-45deg)}
}

/* Expanding pulse rings under the pin */
.loc-pin-pulse{
  position:absolute;
  bottom:-8px;left:50%;transform:translateX(-50%);
  width:36px;height:14px;border-radius:50%;
  background:rgba(201,169,97,.4);
  z-index:-1;
  animation:locPinPulse 2s ease-out infinite;
  transform:translateX(-50%) rotate(45deg);
}
.loc-pin-pulse:nth-child(2){
  animation-delay:1s;
}
@keyframes locPinPulse{
  0%{transform:translateX(-50%) rotate(45deg) scale(.5);opacity:.8}
  100%{transform:translateX(-50%) rotate(45deg) scale(2.5);opacity:0}
}

/* ---------- Sparkles around image ---------- */
.loc-sparkle{
  position:absolute;width:6px;height:6px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 10px rgba(201,169,97,.7);
  pointer-events:none;z-index:3;
}
.loc-card .loc-sparkle.s1{top:18%;right:14%;animation:locSparkle 3s ease-in-out infinite}
.loc-card .loc-sparkle.s2{bottom:18%;left:14%;width:5px;height:5px;animation:locSparkle 3.5s ease-in-out infinite -1.5s}
@keyframes locSparkle{
  0%,100%{transform:scale(1);opacity:.6}
  50%{transform:scale(1.7);opacity:1}
}

/* ---------- Card body enhanced ---------- */
.loc-card-body{padding:32px 28px 28px}

.loc-card-body h3{
  font-family:'DM Serif Display',serif;
  font-size:26px;color:var(--navy);font-weight:400;
  margin-bottom:8px;line-height:1.2;
  transition:color .35s ease;
}
.loc-card:hover .loc-card-body h3{color:var(--primary-dark)}

.loc-card-area{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;color:var(--primary-dark);
  font-weight:600;text-transform:uppercase;
  letter-spacing:.06em;
  margin-bottom:16px;
  padding:5px 12px 5px 8px;
  background:var(--primary-soft);border-radius:var(--radius-pill);
  transition:all .35s ease;
}
.loc-card-area svg{
  width:14px;height:14px;color:var(--primary-dark);
  transition:transform .35s ease;
}
.loc-card:hover .loc-card-area{
  background:var(--primary);color:var(--navy);
}
.loc-card:hover .loc-card-area svg{
  color:var(--navy);
  transform:scale(1.15);
  animation:pinShake .5s ease-in-out;
}
@keyframes pinShake{
  0%,100%{transform:scale(1.15) rotate(0)}
  25%{transform:scale(1.15) rotate(-10deg)}
  75%{transform:scale(1.15) rotate(10deg)}
}

.loc-card-addr{
  font-size:14.5px;color:var(--ink-soft);
  line-height:1.7;margin-bottom:20px;
}

/* ---------- Meta box redesigned ---------- */
.loc-card-meta{
  display:flex;flex-direction:column;gap:12px;
  margin-bottom:24px;padding:18px;
  background:linear-gradient(135deg, var(--bg-soft) 0%, #fff 100%);
  border:1px solid var(--line-soft);
  border-radius:14px;
  transition:all .35s ease;
}
.loc-card:hover .loc-card-meta{
  background:linear-gradient(135deg, var(--primary-soft) 0%, #fff 100%);
  border-color:var(--primary-light);
}

.loc-card-meta-row{
  display:flex;align-items:center;gap:12px;
  font-size:14px;color:var(--ink);
}
.loc-meta-icon{
  width:32px;height:32px;border-radius:10px;
  background:#fff;color:var(--primary-dark);
  display:grid;place-items:center;flex-shrink:0;
  box-shadow:0 2px 8px rgba(11,37,69,.06);
  transition:all .35s ease;
}
.loc-meta-icon svg{width:14px;height:14px}
.loc-card-meta-row:hover .loc-meta-icon{
  background:var(--primary);color:var(--navy);
  transform:rotate(-10deg);
}

/* ---------- Action buttons enhanced ---------- */
.loc-card-actions{
  display:flex;gap:10px;
}
.loc-card-actions .btn{
  flex:1;padding:12px 16px;font-size:13px;
  position:relative;overflow:hidden;
}
.loc-card-actions .btn-primary svg{
  width:14px;height:14px;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.loc-card-actions .btn-primary:hover svg{
  transform:translateX(4px);
}
/* Shine sweep on primary button */
.loc-card-actions .btn-primary::before{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.3) 50%, transparent 70%);
  pointer-events:none;
  transition:left .8s cubic-bezier(.2,.8,.2,1);
}
.loc-card-actions .btn-primary:hover::before{left:100%}

/* ---------- Responsive ---------- */
@media (max-width:880px){
  .loc-grid{grid-template-columns:1fr}
  .loc-pin-marker{width:42px;height:42px}
  .loc-pin-marker svg{width:18px;height:18px}
}


/* ==========================================================================
   APPOINTMENT — PROFESSIONAL ANIMATIONS & EFFECTS
   ========================================================================== */

/* ---------- Floating decorative dental icons in background ---------- */
.appt-deco{
  position:absolute;pointer-events:none;z-index:0;
  width:64px;height:64px;
}
.appt-deco-1{
  top:12%;right:46%;color:var(--gold);opacity:.15;
  animation:apptDecoFloat1 9s ease-in-out infinite;
}
.appt-deco-2{
  bottom:18%;left:6%;color:var(--navy);opacity:.1;width:54px;height:54px;
  animation:apptDecoFloat2 11s ease-in-out infinite -3s;
}
.appt-deco-3{
  top:42%;right:2%;color:var(--gold);opacity:.12;width:46px;height:46px;
  animation:apptDecoFloat3 13s ease-in-out infinite -5s;
}
@keyframes apptDecoFloat1{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(20px,-30px) rotate(15deg)}
}
@keyframes apptDecoFloat2{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(-15px,20px) rotate(-12deg)}
}
@keyframes apptDecoFloat3{
  0%,100%{transform:translate(0,0) rotate(0) scale(1)}
  50%{transform:translate(-20px,-25px) rotate(180deg) scale(1.2)}
}

/* ---------- Form progress bar at top of form card ---------- */
.appt-form-progress{
  position:absolute;top:0;left:0;right:0;
  height:4px;
  background:var(--bg-soft);
  border-radius:var(--radius-xl) var(--radius-xl) 0 0;
  overflow:hidden;
  z-index:5;
}
.appt-form-progress-fill{
  position:absolute;top:0;left:0;height:100%;width:0%;
  background:linear-gradient(90deg, var(--primary), var(--gold), var(--primary));
  background-size:200% 100%;
  transition:width .6s cubic-bezier(.4,0,.2,1);
  animation:progressShimmer 2.5s linear infinite;
  border-radius:4px;
}
@keyframes progressShimmer{
  0%{background-position:0% 0%}
  100%{background-position:-200% 0%}
}
.appt-form-progress-label{
  position:absolute;
  top:8px;right:18px;
  font-size:11px;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;
  color:var(--primary-dark);
  background:#fff;
  padding:4px 10px;border-radius:10px;
  box-shadow:0 2px 8px rgba(11,37,69,.08);
  z-index:6;
  transition:all .4s ease;
}
.appt-form-progress-label .progress-percent{
  color:var(--navy);font-family:'DM Serif Display',serif;
  font-size:13px;font-weight:400;letter-spacing:0;
}

/* Hide label when 0% (no need to show empty state) */
.appt-form-card[data-progress="0"] .appt-form-progress-label{opacity:0;transform:translateY(-4px)}

/* When 100% complete, the label glows */
.appt-form-card[data-progress="100"] .appt-form-progress-label{
  background:linear-gradient(135deg, var(--primary), var(--primary-dark));
  color:#fff;
}
.appt-form-card[data-progress="100"] .appt-form-progress-label .progress-percent{color:#fff}

/* ---------- Form field success indicator (green checkmark) ---------- */
.form-field{
  position:relative;
}
.field-check{
  position:absolute;
  right:14px;top:38px;
  width:24px;height:24px;border-radius:50%;
  background:#10B981;color:#fff;
  display:grid;place-items:center;
  opacity:0;transform:scale(0) rotate(-90deg);
  transition:all .4s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
  z-index:2;
}
.field-check svg{width:13px;height:13px}

/* Show when field has 'field-valid' class */
.form-field.field-valid .field-check{
  opacity:1;transform:scale(1) rotate(0);
  animation:checkPop .5s cubic-bezier(.34,1.56,.64,1);
}
@keyframes checkPop{
  0%{transform:scale(0) rotate(-90deg)}
  60%{transform:scale(1.3) rotate(10deg)}
  100%{transform:scale(1) rotate(0)}
}

/* Make sure inputs have padding for the check icon */
.form-field input,
.form-field select{
  padding-right:46px !important;
}

/* Focused field gold glow */
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  box-shadow:0 0 0 4px rgba(201,169,97,.15),
             0 4px 12px rgba(201,169,97,.1) !important;
  border-color:var(--primary) !important;
}

/* Label floats up slightly on focus */
.form-field label{
  transition:all .3s cubic-bezier(.4,0,.2,1);
  display:block;
}
.form-field:focus-within label{
  color:var(--primary-dark);
  transform:translateY(-2px);
}

/* ---------- Submit button — professional with shine sweep ---------- */
.form-submit{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color:var(--navy);
  font-weight:700;font-size:15px;
  padding:16px 28px;
  border:none;border-radius:var(--radius-pill);
  cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:12px;
  width:100%;
  isolation:isolate;
  transition:all .4s cubic-bezier(.4,0,.2,1);
  margin-top:8px;
}

/* Constant pulsing ring */
.form-submit::after{
  content:'';position:absolute;inset:0;
  border-radius:inherit;
  box-shadow:0 0 0 0 rgba(201,169,97,.5);
  animation:submitPulse 2.5s ease-in-out infinite;
  pointer-events:none;
}
@keyframes submitPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(201,169,97,.5)}
  50%{box-shadow:0 0 0 14px rgba(201,169,97,0)}
}

.form-submit:hover{
  transform:translateY(-2px);
  box-shadow:0 16px 32px -8px rgba(201,169,97,.5);
}
.form-submit:active{transform:translateY(0)}

/* Shine sweep element */
.submit-shine{
  position:absolute;top:0;left:-100%;
  width:100%;height:100%;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.5) 50%, transparent 70%);
  pointer-events:none;z-index:1;
  transition:left .8s cubic-bezier(.2,.8,.2,1);
}
.form-submit:hover .submit-shine{left:100%}

.submit-text{position:relative;z-index:2}
.submit-arrow{
  position:relative;z-index:2;
  width:18px;height:18px;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.form-submit:hover .submit-arrow{
  transform:translateX(6px);
}

/* ---------- Confetti container ---------- */
.appt-confetti{
  position:absolute;top:0;left:0;right:0;bottom:0;
  pointer-events:none;
  overflow:visible;
  z-index:100;
}
.confetti-piece{
  position:absolute;
  width:8px;height:14px;
  border-radius:2px;
  pointer-events:none;
  opacity:1;
  will-change:transform,opacity;
}

/* ---------- Trust badges below submit ---------- */
.appt-trust{
  display:flex;
  gap:24px;
  margin-top:18px;
  padding-top:18px;
  border-top:1px solid var(--line-soft);
  justify-content:center;
}
.appt-trust-item{
  display:flex;align-items:center;gap:8px;
  font-size:12.5px;color:var(--ink-soft);
  font-weight:500;
}
.appt-trust-item svg{
  width:16px;height:16px;color:var(--primary-dark);
  flex-shrink:0;
}
.appt-trust-item:hover svg{
  animation:trustIconPulse .6s ease-out;
}
@keyframes trustIconPulse{
  0%,100%{transform:scale(1)}
  50%{transform:scale(1.25)}
}

/* ---------- Enhanced success message ---------- */
.form-success{
  display:none;
  margin-top:16px;
  padding:18px 22px;border-radius:14px;
  background:linear-gradient(135deg, #ECFDF5, #D1FAE5);
  border:1px solid #10B981;
  align-items:center;gap:14px;
}
.form-success.show{display:flex}
.success-check{
  width:38px;height:38px;border-radius:50%;
  background:#10B981;color:#fff;
  display:grid;place-items:center;flex-shrink:0;
  animation:successCheckPop .6s cubic-bezier(.34,1.56,.64,1);
}
.success-check svg{width:18px;height:18px}
.form-success strong{
  display:block;font-family:'DM Serif Display',serif;
  font-size:17px;color:#065F46;font-weight:400;
  line-height:1.2;margin-bottom:2px;
}
.form-success span{
  font-size:13.5px;color:#065F46;
  font-weight:500;line-height:1.5;
}
@keyframes successCheckPop{
  0%{transform:scale(0) rotate(-180deg)}
  60%{transform:scale(1.2) rotate(20deg)}
  100%{transform:scale(1) rotate(0)}
}

/* ---------- Form card top padding for progress bar ---------- */
.appt-form-card{
  position:relative;
  padding-top:46px;
}

/* ---------- Image hover effects — premium ---------- */
.appt-info-img{
  position:relative;
  isolation:isolate;
}

/* Animated gradient border that rotates */
.appt-info-img::after{
  content:'';position:absolute;
  inset:-3px;border-radius:35px;
  background:conic-gradient(from 0deg, transparent, var(--gold), transparent, transparent);
  z-index:-1;
  opacity:0;
  transition:opacity .5s ease;
  animation:imgBorderRotate 4s linear infinite;
}
.appt-info-img:hover::after{opacity:.6}
@keyframes imgBorderRotate{
  from{transform:rotate(0deg)}
  to{transform:rotate(360deg)}
}

/* Mobile adjustments */
@media (max-width:980px){
  .appt-deco{display:none}
  .appt-trust{flex-direction:column;gap:12px;align-items:center}
}


/* ==========================================================================
   APPOINTMENT — PROFESSIONAL ENHANCEMENTS
   ========================================================================== */

/* ---------- Floating decorative dental icons ---------- */
.appt-deco{
  position:absolute;width:42px;height:42px;
  pointer-events:none;z-index:0;
  color:var(--gold);opacity:.18;
}
.appt-deco-1{
  top:12%;right:14%;
  animation:apptDecoFloat1 9s ease-in-out infinite;
}
.appt-deco-2{
  bottom:18%;left:8%;
  width:38px;height:38px;
  color:var(--navy);opacity:.12;
  animation:apptDecoFloat2 11s ease-in-out infinite -3s;
}
.appt-deco-3{
  top:48%;right:6%;
  width:32px;height:32px;
  color:var(--gold);opacity:.15;
  animation:apptDecoFloat3 8s ease-in-out infinite -2s;
}
@keyframes apptDecoFloat1{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(-15px,-25px) rotate(15deg)}
}
@keyframes apptDecoFloat2{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(20px,-20px) rotate(-12deg)}
}
@keyframes apptDecoFloat3{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(-10px,15px) rotate(10deg)}
}

/* ---------- Form progress bar at top of card ---------- */
.appt-form-progress{
  position:absolute;top:0;left:0;right:0;
  height:4px;background:var(--line-soft);
  border-radius:var(--radius-xl) var(--radius-xl) 0 0;
  overflow:hidden;
  z-index:3;
}
.appt-form-progress-fill{
  height:100%;width:0%;
  background:linear-gradient(90deg, var(--primary), var(--navy));
  border-radius:0 4px 4px 0;
  transition:width .6s cubic-bezier(.7,0,.3,1);
  position:relative;
}
.appt-form-progress-fill::after{
  content:'';position:absolute;top:0;right:-4px;bottom:0;width:8px;
  background:radial-gradient(circle, var(--gold), transparent 70%);
  opacity:0;
  transition:opacity .4s ease;
}
.appt-form-progress-fill[data-active="true"]::after{opacity:1}

.appt-form-progress-label{
  position:absolute;top:10px;right:14px;
  font-size:11px;font-weight:600;
  color:var(--ink-light);letter-spacing:.04em;
  text-transform:uppercase;
  background:#fff;
  padding:3px 10px;border-radius:var(--radius-pill);
  border:1px solid var(--line-soft);
  z-index:4;
  transition:all .4s ease;
}
.appt-form-progress-label.complete{
  background:var(--primary-soft);
  color:var(--primary-dark);
  border-color:var(--primary);
}

/* Override form card to have extra top padding for progress bar */
.appt-form-card{
  padding-top:42px !important;
}

/* ---------- Field with check indicator ---------- */
.form-field{position:relative}

.field-check{
  position:absolute;top:38px;right:14px;
  width:24px;height:24px;border-radius:50%;
  background:#10B981;color:#fff;
  display:grid;place-items:center;
  opacity:0;transform:scale(0) rotate(-90deg);
  transition:all .35s cubic-bezier(.7,0,.3,1);
  pointer-events:none;z-index:2;
}
.field-check svg{width:12px;height:12px}
.form-field.field-valid .field-check{
  opacity:1;transform:scale(1) rotate(0);
}
.form-field.field-valid input,
.form-field.field-valid select,
.form-field.field-valid textarea{
  padding-right:46px !important;
  border-color:#10B981;
  background:rgba(16,185,129,.04);
}

/* Adjust check position for select elements (browser arrow takes some space) */
.form-field select ~ .field-check{
  right:38px;
}

/* ---------- Enhanced field focus halo ---------- */
.form-field input,
.form-field select,
.form-field textarea{
  position:relative;
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  box-shadow:0 0 0 4px rgba(201,169,97,.15) !important;
}

/* Label moves up on focus / when field has value */
.form-field label{
  transition:color .25s ease, transform .25s ease;
}
.form-field:focus-within label{
  color:var(--primary-dark);
  transform:translateY(-2px);
}

/* ---------- Enhanced submit button ---------- */
.form-submit{
  position:relative;overflow:hidden;
  isolation:isolate;
  display:flex !important;align-items:center;justify-content:center;
  gap:10px;
}

.submit-shine{
  position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.4) 50%, transparent 70%);
  pointer-events:none;z-index:1;
  transition:left .9s cubic-bezier(.2,.8,.2,1);
}
.form-submit:hover .submit-shine{left:100%}

.submit-text{position:relative;z-index:2}
.submit-arrow{
  position:relative;z-index:2;
  width:18px;height:18px;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.form-submit:hover .submit-arrow{transform:translateX(5px)}

/* Submit button loading state */
.form-submit.loading{
  pointer-events:none;
  background:linear-gradient(135deg, var(--ink-soft), var(--ink-light)) !important;
}
.form-submit.loading .submit-text{opacity:.5}
.form-submit.loading::after{
  content:'';position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:22px;height:22px;border-radius:50%;
  border:2.5px solid rgba(255,255,255,.3);
  border-top-color:#fff;
  animation:submitSpin .8s linear infinite;
  z-index:3;
}
@keyframes submitSpin{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* Submit button success state */
.form-submit.success{
  background:linear-gradient(135deg, #10B981, #059669) !important;
  color:#fff !important;
}
.form-submit.success .submit-arrow{display:none}

/* ---------- Trust badges row ---------- */
.appt-trust{
  display:flex;align-items:center;justify-content:space-around;
  margin-top:20px;padding:16px 0;
  border-top:1px solid var(--line-soft);
  gap:16px;
}
.appt-trust-item{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12.5px;font-weight:600;
  color:var(--ink-soft);
  transition:color .3s ease;
}
.appt-trust-item:hover{color:var(--primary-dark)}
.appt-trust-item svg{
  width:16px;height:16px;color:var(--primary);
  transition:transform .35s cubic-bezier(.7,0,.3,1);
}
.appt-trust-item:hover svg{transform:scale(1.2) rotate(-8deg)}

@media (max-width:600px){
  .appt-trust{flex-direction:column;gap:10px}
}

/* ---------- Enhanced success message ---------- */
.form-success{
  display:none !important;
  padding:16px 20px !important;
  margin-top:18px !important;
  border-radius:14px !important;
  background:linear-gradient(135deg, #ECFDF5, #D1FAE5) !important;
  border:1px solid #10B981 !important;
  color:#065F46 !important;
  font-size:14px !important;
  align-items:center;gap:14px;
}
.form-success.show{display:flex !important}

.success-check{
  width:36px;height:36px;border-radius:50%;
  background:#10B981;color:#fff;
  display:grid;place-items:center;flex-shrink:0;
  animation:successPop .5s cubic-bezier(.7,0,.3,1);
}
.success-check svg{width:18px;height:18px}
@keyframes successPop{
  0%{transform:scale(0) rotate(-180deg)}
  60%{transform:scale(1.15) rotate(0)}
  100%{transform:scale(1) rotate(0)}
}

.form-success strong{
  display:block;font-family:'DM Serif Display',serif;
  font-size:17px;color:#065F46;font-weight:400;
  margin-bottom:2px;
}
.form-success > div span{
  font-size:13.5px;color:#065F46;line-height:1.5;
}

/* ---------- Confetti container (for celebration on submit) ---------- */
.appt-confetti{
  position:absolute;top:0;left:0;right:0;bottom:0;
  pointer-events:none;z-index:10;
  overflow:hidden;border-radius:var(--radius-xl);
}
.confetti-piece{
  position:absolute;width:8px;height:8px;
  background:var(--gold);
  top:50%;left:50%;
  opacity:0;
  pointer-events:none;
}

/* ---------- Image hover quote overlay ---------- */
.appt-info-img{
  perspective:1500px;
}

.appt-info-img::after{
  content:'';position:absolute;inset:0;border-radius:32px;
  background:linear-gradient(180deg, transparent 60%, rgba(11,37,69,.85) 100%);
  opacity:0;
  pointer-events:none;z-index:2;
  transition:opacity .5s ease;
}
.appt-info-img:hover::after{opacity:1}

/* Subtle continuous gold gradient border on image */
.appt-info-img::before{
  content:'';position:absolute;inset:-2px;
  border-radius:34px;z-index:-1;
  background:conic-gradient(from var(--rotate, 0deg),
    var(--gold), transparent 30%, transparent 70%, var(--gold));
  opacity:0;
  animation:rotateBorder 6s linear infinite;
  transition:opacity .5s ease;
}
.appt-info-img:hover::before{opacity:.6}
@property --rotate{
  syntax:'<angle>';initial-value:0deg;inherits:false;
}
@keyframes rotateBorder{
  to{--rotate:360deg}
}


/* ==========================================================================
   APPOINTMENT — PROFESSIONAL ANIMATIONS & EFFECTS (Enhanced)
   ========================================================================== */

/* ---------- Floating decorative dental icons in background ---------- */
.appt-deco{
  position:absolute;color:var(--gold);
  pointer-events:none;z-index:0;opacity:.12;
}
.appt-deco-1{
  top:8%;left:6%;width:60px;height:60px;
  animation:apptDecoFloat1 12s ease-in-out infinite;
}
.appt-deco-2{
  bottom:14%;left:42%;width:50px;height:50px;color:var(--navy);
  animation:apptDecoFloat2 14s ease-in-out infinite -3s;
}
.appt-deco-3{
  top:14%;right:32%;width:44px;height:44px;
  animation:apptDecoFloat3 10s ease-in-out infinite -5s;
}
@keyframes apptDecoFloat1{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(20px,-30px) rotate(15deg)}
}
@keyframes apptDecoFloat2{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(-25px,20px) rotate(-12deg)}
}
@keyframes apptDecoFloat3{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(15px,25px) rotate(20deg)}
}

@media (max-width:980px){
  .appt-deco-2{display:none}
}

/* ---------- Form Progress Bar (top of form card) ---------- */
.appt-form-progress{
  position:absolute;top:0;left:0;right:0;
  height:48px;
  background:linear-gradient(180deg, rgba(201,169,97,.06), transparent);
  border-radius:var(--radius-xl) var(--radius-xl) 0 0;
  display:flex;align-items:center;justify-content:flex-end;
  padding:0 36px;
  z-index:3;pointer-events:none;
  overflow:hidden;
}
.appt-form-progress-fill{
  position:absolute;top:0;left:0;height:3px;
  width:0%;
  background:linear-gradient(90deg, var(--primary), var(--gold), var(--primary-dark));
  background-size:200% 100%;
  border-radius:0 4px 4px 0;
  transition:width .6s cubic-bezier(.4,0,.2,1);
  box-shadow:0 0 12px rgba(201,169,97,.4);
  animation:progressShimmer 3s linear infinite;
}
@keyframes progressShimmer{
  0%{background-position:0% center}
  100%{background-position:200% center}
}
.appt-form-progress-label{
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:11px;font-weight:600;
  color:var(--primary-dark);
  letter-spacing:.06em;
  text-transform:uppercase;
  opacity:0;
  transition:opacity .4s ease;
}
.appt-form-progress-label.show{opacity:1}
.progress-percent{
  font-family:'DM Serif Display',serif;
  font-size:14px;color:var(--navy);
  margin-right:4px;
  transition:color .3s ease;
}
.appt-form-progress-label.complete .progress-percent{color:var(--primary)}

/* Push form head down to make room for progress */
.appt-form-head{margin-top:24px}

/* ---------- Field check indicators (✓ when valid) ---------- */
.form-field{position:relative}
.field-check{
  position:absolute;right:16px;top:42px;
  width:22px;height:22px;border-radius:50%;
  background:var(--primary);color:var(--navy);
  display:grid;place-items:center;
  opacity:0;transform:scale(0) rotate(-90deg);
  transition:all .4s cubic-bezier(.7,0,.3,1);
  pointer-events:none;z-index:2;
  box-shadow:0 4px 12px rgba(201,169,97,.4);
}
.field-check svg{width:12px;height:12px}
.form-field.field-valid .field-check{
  opacity:1;transform:scale(1) rotate(0);
}
/* Make input space for the check icon */
.form-field.field-valid input,
.form-field.field-valid select{
  padding-right:48px;
  border-color:rgba(201,169,97,.5);
  background:rgba(201,169,97,.04);
}

/* ---------- Form field focus animations ---------- */
.form-field input,
.form-field select,
.form-field textarea{
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  border-color:var(--primary) !important;
  box-shadow:0 0 0 4px rgba(201,169,97,.12), 0 6px 18px -6px rgba(201,169,97,.25);
  transform:translateY(-1px);
}

/* Animated label - moves up slightly when input focused */
.form-field label{
  display:block;
  transition:color .3s ease, transform .3s ease;
  transform-origin:left center;
}
.form-field input:focus + .field-check,
.form-field select:focus + .field-check{
  /* Don't show check while focused */
}
.form-field:focus-within label{
  color:var(--primary-dark);
  transform:translateY(-2px);
}

/* ---------- Char count for message field ---------- */
.char-count{
  float:right;font-size:11px;color:var(--ink-light);
  font-weight:500;letter-spacing:.02em;
  transition:color .3s ease;
}
.char-count.near-limit{color:var(--primary-dark);font-weight:700}
.char-count.at-limit{color:#EF4444;font-weight:700}

/* ---------- Submit button — Premium design ---------- */
.form-submit{
  position:relative;overflow:hidden;
  isolation:isolate;
  background:linear-gradient(135deg, var(--primary) 0%, var(--primary-dark) 100%);
  color:var(--navy);
  font-weight:700;
  padding:18px 32px;
  border-radius:var(--radius-pill);
  border:none;cursor:pointer;
  display:flex;align-items:center;justify-content:center;gap:12px;
  width:100%;
  font-family:'Plus Jakarta Sans',sans-serif;
  font-size:15px;letter-spacing:.02em;
  margin-top:8px;
  transition:transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s ease;
}
.form-submit:hover{
  transform:translateY(-3px);
  box-shadow:0 16px 32px -8px rgba(201,169,97,.4);
}
.form-submit:active{transform:translateY(-1px)}

/* Submit shine sweep */
.submit-shine{
  position:absolute;top:0;left:-100%;width:60%;height:100%;
  background:linear-gradient(115deg, transparent 30%, rgba(255,255,255,.4) 50%, transparent 70%);
  z-index:1;pointer-events:none;
}
.form-submit:hover .submit-shine{
  animation:submitShineMove 0.9s ease-out;
}
@keyframes submitShineMove{
  0%{left:-100%}
  100%{left:200%}
}

.submit-text{position:relative;z-index:2}
.submit-arrow{
  position:relative;z-index:2;
  width:18px;height:18px;
  transition:transform .35s cubic-bezier(.2,.8,.2,1);
}
.form-submit:hover .submit-arrow{transform:translateX(6px)}

/* Pulse ring around submit when valid */
.form-submit::after{
  content:'';position:absolute;inset:0;
  border-radius:inherit;
  box-shadow:0 0 0 0 rgba(201,169,97,.5);
  animation:submitPulseRing 2.5s ease-in-out infinite;
  pointer-events:none;z-index:0;
}
@keyframes submitPulseRing{
  0%,100%{box-shadow:0 0 0 0 rgba(201,169,97,.5)}
  50%{box-shadow:0 0 0 12px rgba(201,169,97,0)}
}

/* ---------- Trust badges below submit ---------- */
.appt-trust{
  display:flex;justify-content:center;
  gap:24px;
  margin-top:24px;padding:16px;
  background:linear-gradient(135deg, var(--bg-soft), #fff);
  border-radius:14px;
  border:1px solid var(--line-soft);
  flex-wrap:wrap;
}
.appt-trust-item{
  display:flex;align-items:center;gap:8px;
  font-size:12.5px;color:var(--ink-soft);
  font-weight:600;
  letter-spacing:.01em;
}
.appt-trust-item svg{
  width:16px;height:16px;color:var(--primary-dark);
  flex-shrink:0;
  transition:transform .3s ease;
}
.appt-trust-item:hover svg{
  transform:scale(1.15) rotate(-5deg);
}

/* ---------- Image hover overlay with quote (optional decoration) ---------- */
.appt-info-img{position:relative;overflow:hidden}

/* Image breathing effect (subtle) */
.appt-info-img img{
  animation:imgBreath 7s ease-in-out infinite;
}
@keyframes imgBreath{
  0%,100%{filter:brightness(1) saturate(1)}
  50%{filter:brightness(1.04) saturate(1.05)}
}

/* ---------- Floating badges enhanced shine ---------- */
.appt-floating-badge{
  position:absolute;overflow:hidden;
}
.appt-floating-badge::before{
  content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;
  background:linear-gradient(115deg, transparent 30%, rgba(201,169,97,.2) 50%, transparent 70%);
  pointer-events:none;
  transition:left .9s cubic-bezier(.2,.8,.2,1);
}
.appt-floating-badge:hover::before{left:100%}

/* ---------- Success message enhanced ---------- */
.form-success{
  display:none;
  padding:18px 22px;
  margin-top:16px;
  border-radius:14px;
  background:linear-gradient(135deg, #ECFDF5, #D1FAE5);
  border:1px solid #10B981;
  align-items:center;gap:14px;
}
.form-success.show{
  display:flex;
  animation:successPop 0.6s cubic-bezier(.7,0,.3,1);
}
@keyframes successPop{
  0%{transform:scale(.9);opacity:0}
  50%{transform:scale(1.03)}
  100%{transform:scale(1);opacity:1}
}
.success-check{
  width:40px;height:40px;border-radius:50%;
  background:#10B981;color:#fff;
  display:grid;place-items:center;flex-shrink:0;
  animation:checkDraw 0.6s cubic-bezier(.7,0,.3,1) 0.2s both;
}
@keyframes checkDraw{
  0%{transform:scale(0) rotate(-180deg)}
  100%{transform:scale(1) rotate(0)}
}
.success-check svg{width:18px;height:18px}
.form-success strong{
  display:block;font-family:'DM Serif Display',serif;
  font-size:17px;color:#065F46;font-weight:400;
  margin-bottom:2px;
}
.form-success > div > span{
  font-size:13.5px;color:#065F46;line-height:1.5;
}

/* ---------- Confetti container ---------- */
.appt-confetti{
  position:absolute;top:0;left:0;right:0;
  height:200px;
  pointer-events:none;
  z-index:10;
  overflow:visible;
}
.confetti-piece{
  position:absolute;top:0;
  width:8px;height:8px;
  opacity:0;
}
.confetti-piece:nth-child(odd){background:var(--gold)}
.confetti-piece:nth-child(even){background:var(--navy)}
.confetti-piece:nth-child(3n){background:#10B981;border-radius:50%}
.confetti-piece:nth-child(5n){background:#fff;border:1.5px solid var(--gold)}

/* ---------- Form card enhancements ---------- */
.appt-form-card{
  position:relative;
}
.appt-form-card::after{
  content:'';position:absolute;top:-2px;left:0;right:0;height:140px;
  background:radial-gradient(ellipse at top, rgba(201,169,97,.1), transparent 70%);
  pointer-events:none;z-index:0;
  border-radius:var(--radius-xl) var(--radius-xl) 0 0;
}

/* ---------- Mobile ---------- */
@media (max-width:600px){
  .appt-trust{flex-direction:column;align-items:center;gap:12px}
  .appt-trust-item{font-size:13px}
  .form-submit{font-size:14px;padding:16px 24px}
  .field-check{right:12px;top:38px;width:20px;height:20px}
  .field-check svg{width:10px;height:10px}
}


/* ---------- Character count for message field ---------- */
.char-count{
  display:inline-block;margin-left:8px;
  font-size:11.5px;font-weight:600;
  color:var(--ink-light);letter-spacing:.04em;
  font-family:'Plus Jakarta Sans',sans-serif;
  text-transform:none;
  transition:color .3s ease;
}
.char-count.near-limit{color:#F59E0B}
.char-count.at-limit{color:#EF4444}


/* ==========================================================================
   HIDE THE LONELY ISOLATED BACKGROUND DOT PATTERNS
   (they were appearing in empty section gaps looking out of place)
   ========================================================================== */
.appt-bg-pattern,
.loc-bg-pattern,
.faq-bg-pattern{display:none !important}

/* Reduce section gap between appointment and locations */
.appointment{padding-bottom:60px !important}
.locations{padding-top:60px !important}


/* ==========================================================================
   WHY CHOOSE US BAND — visual transition between appointment & locations
   ========================================================================== */
.why-band{
  position:relative;
  background:linear-gradient(135deg, var(--navy) 0%, #102d5a 50%, #0a1d3b 100%);
  color:#fff;
  padding:80px 0;
  overflow:hidden;
  margin:0;
}

/* Curved top/bottom shape for visual interest */
.why-band::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}
.why-band::after{
  content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}

/* ---------- Soft glows in background ---------- */
.why-band-glow{
  position:absolute;border-radius:50%;
  filter:blur(60px);pointer-events:none;
}
.why-band-glow-1{
  top:-100px;left:-100px;
  width:400px;height:400px;
  background:radial-gradient(circle, rgba(201,169,97,.25), transparent 70%);
  animation:whyGlowFloat 12s ease-in-out infinite;
}
.why-band-glow-2{
  bottom:-100px;right:-100px;
  width:380px;height:380px;
  background:radial-gradient(circle, rgba(201,169,97,.18), transparent 70%);
  animation:whyGlowFloat 16s ease-in-out infinite -4s reverse;
}
@keyframes whyGlowFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(40px,-30px) scale(1.15)}
}

/* ---------- Floating sparkles ---------- */
.why-band-sparkle{
  position:absolute;width:8px;height:8px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 16px rgba(201,169,97,.7);
  pointer-events:none;
}
.why-band-sparkle.s1{top:20%;left:8%;animation:whyBandSparkle 3.5s ease-in-out infinite}
.why-band-sparkle.s2{top:30%;right:14%;width:6px;height:6px;animation:whyBandSparkle 4s ease-in-out infinite -1s}
.why-band-sparkle.s3{bottom:25%;left:22%;width:5px;height:5px;animation:whyBandSparkle 3s ease-in-out infinite -2s}
.why-band-sparkle.s4{bottom:18%;right:30%;width:7px;height:7px;animation:whyBandSparkle 4.5s ease-in-out infinite -1.5s}
@keyframes whyBandSparkle{
  0%,100%{transform:scale(1);opacity:.5}
  50%{transform:scale(1.7);opacity:1}
}

/* ---------- Inner grid layout ---------- */
.why-band-inner{
  display:grid;grid-template-columns:1.4fr 1fr;
  gap:64px;align-items:center;
  position:relative;z-index:2;
}

/* ---------- Quote side ---------- */
.why-band-quote{
  position:relative;
  padding-left:48px;
}
.why-quote-mark{
  position:absolute;top:-16px;left:-8px;
  font-family:'DM Serif Display',serif;
  font-size:120px;color:var(--gold);
  line-height:1;opacity:.6;
  animation:quoteFloat 4s ease-in-out infinite;
}
@keyframes quoteFloat{
  0%,100%{transform:translateY(0) rotate(0)}
  50%{transform:translateY(-6px) rotate(-3deg)}
}
.why-band-quote p{
  font-family:'DM Serif Display',serif;
  font-size:clamp(22px, 2.4vw, 30px);
  font-style:italic;
  font-weight:400;
  color:#fff;line-height:1.5;
  margin-bottom:24px;
}
.why-quote-author{
  display:inline-flex;align-items:center;gap:14px;
  font-size:13px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--gold);
  font-family:'Plus Jakarta Sans',sans-serif;
}
.why-quote-dash{
  display:inline-block;width:36px;height:1.5px;
  background:var(--gold);
  animation:dashGrow 2.5s ease-in-out infinite;
  transform-origin:left;
}
@keyframes dashGrow{
  0%,100%{transform:scaleX(1)}
  50%{transform:scaleX(1.5)}
}

/* ---------- Stats side ---------- */
.why-band-stats{
  display:flex;align-items:center;justify-content:center;
  gap:8px;
}
.why-stat{
  text-align:center;
  flex:1;
  padding:8px;
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
}
.why-stat:hover{transform:translateY(-6px) scale(1.05)}

.why-stat-num{
  font-family:'DM Serif Display',serif;
  font-size:clamp(40px, 4.2vw, 56px);
  line-height:1;
  color:var(--gold);
  font-weight:400;
  margin-bottom:10px;
  letter-spacing:-.01em;
  display:inline-flex;align-items:flex-start;
}
.why-stat-num sup{
  font-size:.5em;color:#fff;font-weight:300;
  margin-left:2px;margin-top:.1em;
}
.why-stat-label{
  font-size:11.5px;font-weight:600;
  letter-spacing:.12em;text-transform:uppercase;
  color:rgba(255,255,255,.75);
  line-height:1.5;
}
.why-stat-divider{
  width:1px;height:64px;
  background:linear-gradient(180deg, transparent, rgba(201,169,97,.4), transparent);
}

/* ---------- Mobile ---------- */
@media (max-width:980px){
  .why-band{padding:64px 0}
  .why-band-inner{grid-template-columns:1fr;gap:48px;text-align:center}
  .why-band-quote{padding-left:0;padding-top:60px}
  .why-quote-mark{left:50%;transform:translateX(-50%);top:0}
  .why-quote-author{flex-direction:row;justify-content:center}
}
@media (max-width:600px){
  .why-band-stats{gap:0;flex-wrap:wrap}
  .why-stat-divider{display:none}
  .why-stat{flex-basis:33%;padding:4px}
}


/* ==========================================================================
   MARQUEE BAND — between FAQ & Appointment sections
   ========================================================================== */
.marquee-band{
  background:var(--navy);
  color:var(--gold);
  padding:24px 0;
  overflow:hidden;
  position:relative;
  transform:rotate(-2deg);
  margin:40px -30px;
  z-index:1;
  box-shadow:0 12px 32px -8px rgba(11,37,69,.25);
}

/* Gold gradient line accents above and below */
.marquee-band::before,
.marquee-band::after{
  content:'';position:absolute;left:0;right:0;height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}
.marquee-band::before{top:0}
.marquee-band::after{bottom:0}

/* ---------- Scrolling track ---------- */
.marquee-track{
  display:flex;
  width:max-content;
  animation:marqueeScroll 35s linear infinite;
  will-change:transform;
}

.marquee-band:hover .marquee-track{
  animation-play-state:paused;
}

@keyframes marqueeScroll{
  0%{transform:translateX(0)}
  100%{transform:translateX(-50%)}
}

.marquee-group{
  display:flex;align-items:center;gap:36px;
  padding-right:36px;
  white-space:nowrap;
  flex-shrink:0;
}

/* ---------- Items ---------- */
.marquee-item{
  font-family:'DM Serif Display',serif;
  font-size:clamp(28px, 3.4vw, 44px);
  font-style:italic;
  color:var(--gold);
  letter-spacing:.01em;
  transition:color .3s ease, transform .3s ease;
}

.marquee-band:hover .marquee-item{
  color:#fff;
}

/* ---------- Star separators ---------- */
.marquee-star{
  font-family:'DM Serif Display',serif;
  font-size:clamp(20px, 2.4vw, 30px);
  color:rgba(201,169,97,.6);
  display:inline-block;
  animation:marqueeStarSpin 6s linear infinite;
}
@keyframes marqueeStarSpin{
  0%{transform:rotate(0)}
  100%{transform:rotate(360deg)}
}

/* ---------- Mobile ---------- */
@media (max-width:980px){
  .marquee-band{margin:32px -20px;padding:18px 0;transform:rotate(-2deg)}
  .marquee-group{gap:24px;padding-right:24px}
  .marquee-item{font-size:22px}
  .marquee-star{font-size:16px}
  .marquee-track{animation-duration:25s}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  .marquee-track{animation:none}
  .marquee-star{animation:none}
}


/* ==========================================================================
   LOCATIONS — PROFESSIONAL ENHANCEMENTS (more layers)
   ========================================================================== */

/* ---------- Floating decorative icons in background ---------- */
.loc-bg-icon{
  position:absolute;color:var(--gold);
  pointer-events:none;z-index:0;opacity:.1;
}
.loc-bg-icon-1{
  top:8%;left:5%;width:60px;height:60px;
  animation:locBgIconFloat1 14s ease-in-out infinite;
}
.loc-bg-icon-2{
  bottom:14%;left:45%;width:50px;height:50px;color:var(--navy);
  animation:locBgIconFloat2 16s ease-in-out infinite -3s;
}
.loc-bg-icon-3{
  top:20%;right:6%;width:46px;height:46px;
  animation:locBgIconFloat3 12s ease-in-out infinite -5s;
}
@keyframes locBgIconFloat1{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(20px,-25px) rotate(15deg)}
}
@keyframes locBgIconFloat2{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(-25px,20px) rotate(-12deg)}
}
@keyframes locBgIconFloat3{
  0%,100%{transform:translate(0,0) rotate(0)}
  50%{transform:translate(20px,25px) rotate(20deg)}
}
@media (max-width:880px){
  .loc-bg-icon-2,.loc-bg-icon-3{display:none}
}

/* ---------- Giant background branch number ---------- */
.loc-card{position:relative}
.loc-card-bignum{
  position:absolute;top:-30px;right:-12px;z-index:0;
  font-family:'DM Serif Display',serif;
  font-size:180px;font-weight:400;line-height:1;
  color:var(--primary-soft);
  pointer-events:none;
  letter-spacing:-.02em;
  transition:all .6s cubic-bezier(.2,.8,.2,1);
}
.loc-card:hover .loc-card-bignum{
  color:rgba(201,169,97,.18);
  transform:rotate(-4deg) translateY(-6px);
}

/* ---------- Gold corner brackets framing the image ---------- */
.loc-corner{
  position:absolute;width:24px;height:24px;
  z-index:5;pointer-events:none;
  transition:all .5s cubic-bezier(.2,.8,.2,1);
}
.loc-corner-tl{top:14px;left:14px;border-top:2.5px solid var(--gold);border-left:2.5px solid var(--gold);border-radius:6px 0 0 0}
.loc-corner-tr{top:14px;right:14px;border-top:2.5px solid var(--gold);border-right:2.5px solid var(--gold);border-radius:0 6px 0 0}
.loc-corner-bl{bottom:14px;left:14px;border-bottom:2.5px solid var(--gold);border-left:2.5px solid var(--gold);border-radius:0 0 0 6px}
.loc-corner-br{bottom:14px;right:14px;border-bottom:2.5px solid var(--gold);border-right:2.5px solid var(--gold);border-radius:0 0 6px 0}
.loc-card:hover .loc-corner{width:36px;height:36px}
.loc-card:hover .loc-corner-tl{top:10px;left:10px}
.loc-card:hover .loc-corner-tr{top:10px;right:10px}
.loc-card:hover .loc-corner-bl{bottom:10px;left:10px}
.loc-card:hover .loc-corner-br{bottom:10px;right:10px}

/* ---------- "Open Now" live status indicator ---------- */
.loc-status{
  position:absolute;top:18px;left:18px;z-index:4;
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 12px;border-radius:var(--radius-pill);
  background:rgba(11,37,69,.85);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.15);
}
.loc-status-dot{
  width:8px;height:8px;border-radius:50%;
  background:#10B981;
  box-shadow:0 0 0 0 rgba(16,185,129,.7);
  animation:locStatusPulse 1.8s ease-in-out infinite;
  position:relative;
}
.loc-status-dot::before{
  content:'';position:absolute;inset:-2px;border-radius:50%;
  background:#10B981;opacity:.4;
  animation:locStatusRing 1.8s ease-out infinite;
}
@keyframes locStatusPulse{
  0%,100%{box-shadow:0 0 0 0 rgba(16,185,129,.7)}
  50%{box-shadow:0 0 0 6px rgba(16,185,129,0)}
}
@keyframes locStatusRing{
  0%{transform:scale(1);opacity:.6}
  100%{transform:scale(2.4);opacity:0}
}
.loc-status-text{
  font-size:11px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;
  color:#fff;
}

/* ---------- Star rating ---------- */
.loc-card-rating{
  display:flex;align-items:center;gap:10px;
  margin-bottom:14px;
}
.loc-stars{
  display:inline-flex;gap:2px;color:var(--gold);
}
.loc-stars svg{
  width:14px;height:14px;
  filter:drop-shadow(0 0 4px rgba(201,169,97,.4));
  animation:starTwinkle 3s ease-in-out infinite;
}
.loc-stars svg:nth-child(1){animation-delay:0s}
.loc-stars svg:nth-child(2){animation-delay:.3s}
.loc-stars svg:nth-child(3){animation-delay:.6s}
.loc-stars svg:nth-child(4){animation-delay:.9s}
.loc-stars svg:nth-child(5){animation-delay:1.2s}
@keyframes starTwinkle{
  0%,100%{transform:scale(1);opacity:1}
  50%{transform:scale(1.15);opacity:.85}
}
.loc-rating-text{
  font-size:13px;color:var(--ink-soft);
  font-family:'Plus Jakarta Sans',sans-serif;
}
.loc-rating-text strong{
  color:var(--navy);font-weight:700;
}

/* ---------- Pin marker — third pulse ring ---------- */
.loc-pin-pulse:nth-child(3){
  animation-delay:2s !important;
}

/* ---------- Sparkle 3 (additional sparkle) ---------- */
.loc-card .loc-sparkle.s3{
  top:42%;left:35%;width:7px;height:7px;
  animation:locSparkle 4s ease-in-out infinite -2.8s;
}

/* ---------- Image hover overlay - "View on Map" ---------- */
.loc-img-overlay{
  position:absolute;inset:0;z-index:6;
  display:grid;place-items:center;
  background:linear-gradient(135deg, rgba(11,37,69,.85), rgba(11,37,69,.7));
  opacity:0;
  transition:opacity .45s cubic-bezier(.2,.8,.2,1);
  text-decoration:none;
  cursor:pointer;
}
.loc-card:hover .loc-img-overlay{opacity:1}

.loc-img-overlay-inner{
  display:flex;flex-direction:column;align-items:center;gap:10px;
  padding:14px 22px;
  background:var(--gold);color:var(--navy);
  border-radius:var(--radius-pill);
  font-weight:700;font-size:13px;
  letter-spacing:.06em;text-transform:uppercase;
  flex-direction:row;
  transform:translateY(20px) scale(.9);
  transition:all .5s cubic-bezier(.2,.8,.2,1);
  box-shadow:0 16px 32px -8px rgba(0,0,0,.4);
}
.loc-card:hover .loc-img-overlay-inner{
  transform:translateY(0) scale(1);
}
.loc-img-overlay-inner svg{width:18px;height:18px}

/* Ensure pin marker is hidden behind overlay when hovering */
.loc-card:hover .loc-pin-marker{opacity:.3;transition:opacity .3s ease}
.loc-card:hover .loc-sparkle,
.loc-card:hover .loc-corner{opacity:1 !important}

/* ---------- Card body padding adjustment for extra rating row ---------- */
.loc-card-body{padding:28px}

/* ---------- Responsive ---------- */
@media (max-width:880px){
  .loc-card-bignum{font-size:130px;top:-20px;right:-8px}
  .loc-corner{width:20px;height:20px}
  .loc-status{padding:5px 10px}
  .loc-status-text{font-size:10px}
}


/* ==========================================================================
   LOCATIONS — REMOVE OPEN NOW BADGE (was causing layout issues)
   ========================================================================== */
.loc-status{display:none !important}


/* ==========================================================================
   LOCATIONS — REMOVE FULL-COVERAGE HOVER OVERLAY (cleaner layout)
   ========================================================================== */

/* Hide the big dark "View on Map" overlay - it was darkening the whole image
   and making the BRANCH tag look like it sat on a dark strip */
.loc-img-overlay{display:none !important}

/* Lighten the image's bottom gradient overlay so it doesn't look heavy on hover */
.loc-card-img::after{
  background:linear-gradient(180deg, transparent 0%, transparent 70%, rgba(11,37,69,.25) 100%) !important;
}

/* Restore Pin marker to full opacity on hover (it was being dimmed for overlay) */
.loc-card:hover .loc-pin-marker{opacity:1 !important}


/* ==========================================================================
   LOCATIONS — REMOVE ZOOM/SCALE EFFECTS ON HOVER
   ========================================================================== */

/* Branch tag - no scale on hover (was scale 1.08) */
.loc-card:hover .loc-card-tag{
  transform:none !important;
}

/* Image - no zoom on hover (was scale 1.1) */
.loc-card:hover .loc-card-img img{
  transform:none !important;
}

/* Big background number - no rotation/translate on hover */
.loc-card:hover .loc-card-bignum{
  transform:none !important;
}

/* Corner brackets - no expansion on hover (stays at 24px) */
.loc-card:hover .loc-corner{
  width:24px !important;
  height:24px !important;
}
.loc-card:hover .loc-corner-tl{top:14px !important;left:14px !important}
.loc-card:hover .loc-corner-tr{top:14px !important;right:14px !important}
.loc-card:hover .loc-corner-bl{bottom:14px !important;left:14px !important}
.loc-card:hover .loc-corner-br{bottom:14px !important;right:14px !important}

/* Area pill - no shake animation on hover */
.loc-card:hover .loc-card-area svg{
  transform:none !important;
  animation:none !important;
}

/* Meta icon - no rotate on hover */
.loc-card-meta-row:hover .loc-meta-icon{
  transform:none !important;
}


/* ==========================================================================
   LOCATIONS — FIX BRANCH TAG STRETCH ISSUE + RESTORE HOVER EFFECTS
   ========================================================================== */

/* FIX: Branch tag was stretching full-width because original CSS had left:14px
   and override added right:18px. Force left:auto to fix it. */
.loc-card-tag{
  left:auto !important;
  right:18px !important;
  top:18px !important;
  width:auto !important;
  min-width:0 !important;
  display:inline-flex !important;
  align-self:flex-start;
}

/* Keep: NO zoom on Branch tag hover (user requested) */
.loc-card:hover .loc-card-tag{
  transform:none !important;
  background:var(--primary) !important;
  color:var(--navy) !important;
}

/* Keep: NO zoom on the h3 heading hover (user requested) */
.loc-card:hover .loc-card-body h3{
  transform:none !important;
  /* only color changes, no scale */
}

/* RESTORE: image zoom on hover (user wants this kept) */
.loc-card:hover .loc-card-img img{
  transform:scale(1.06) !important;
}

/* RESTORE: corner brackets expand on hover */
.loc-card:hover .loc-corner{
  width:34px !important;
  height:34px !important;
}
.loc-card:hover .loc-corner-tl{top:10px !important;left:10px !important}
.loc-card:hover .loc-corner-tr{top:10px !important;right:10px !important}
.loc-card:hover .loc-corner-bl{bottom:10px !important;left:10px !important}
.loc-card:hover .loc-corner-br{bottom:10px !important;right:10px !important}

/* RESTORE: big background number gentle rotation on hover */
.loc-card:hover .loc-card-bignum{
  transform:rotate(-4deg) translateY(-6px) !important;
  color:rgba(201,169,97,.18) !important;
}

/* RESTORE: meta icon rotation on hover */
.loc-card-meta-row:hover .loc-meta-icon{
  transform:rotate(-10deg) !important;
}

/* RESTORE: pin shake on area pill hover */
.loc-card:hover .loc-card-area svg{
  transform:scale(1.15) !important;
}


/* ==========================================================================
   FOOTER — REDESIGNED LAYOUT + RICH ANIMATIONS
   ========================================================================== */

.footer{
  background:linear-gradient(135deg, var(--navy) 0%, #102d5a 50%, var(--navy) 100%) !important;
  overflow:hidden;
  position:relative;
}

/* Top decorative gold gradient line */
.footer::before{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
}

/* ---------- Background glows ---------- */
.footer-bg-glow{
  position:absolute;border-radius:50%;
  filter:blur(60px);pointer-events:none;z-index:0;
}
.footer-bg-glow-1{
  top:-100px;left:-100px;width:400px;height:400px;
  background:radial-gradient(circle, rgba(201,169,97,.18), transparent 70%);
  animation:footerGlowFloat 14s ease-in-out infinite;
}
.footer-bg-glow-2{
  bottom:-100px;right:-100px;width:380px;height:380px;
  background:radial-gradient(circle, rgba(201,169,97,.12), transparent 70%);
  animation:footerGlowFloat 16s ease-in-out infinite -5s reverse;
}
@keyframes footerGlowFloat{
  0%,100%{transform:translate(0,0) scale(1)}
  50%{transform:translate(40px,-30px) scale(1.15)}
}

/* ---------- Floating sparkles ---------- */
.footer-sparkle{
  position:absolute;width:8px;height:8px;border-radius:50%;
  background:var(--gold);box-shadow:0 0 16px rgba(201,169,97,.7);
  pointer-events:none;z-index:1;
}
.footer-sparkle.s1{top:20%;left:30%;animation:footerSparkle 3.5s ease-in-out infinite}
.footer-sparkle.s2{top:50%;right:20%;width:6px;height:6px;animation:footerSparkle 4s ease-in-out infinite -1s}
.footer-sparkle.s3{bottom:30%;left:60%;width:5px;height:5px;animation:footerSparkle 3s ease-in-out infinite -2s}
.footer-sparkle.s4{top:30%;right:40%;width:7px;height:7px;animation:footerSparkle 4.5s ease-in-out infinite -1.5s}
@keyframes footerSparkle{
  0%,100%{transform:scale(1);opacity:.5}
  50%{transform:scale(1.7);opacity:1}
}

.footer .container{position:relative;z-index:2}

/* ---------- Footer grid ---------- */
.footer-grid{
  display:grid !important;
  grid-template-columns:1.4fr 1fr 1fr 1.2fr !important;
  gap:48px !important;
  margin-bottom:48px;
  align-items:start;
}

/* ---------- LEFT BRAND COLUMN — VERTICAL STACK ---------- */
.footer-col-brand{
  display:flex;
  flex-direction:column;
  gap:24px;
  align-items:flex-start;
}

/* 1. Logo — 150x150 with rotating ring */
.footer-logo{
  position:relative;
  width:150px;height:150px;
  border-radius:50%;
  background:#fff;
  display:grid;place-items:center;
  padding:18px;
  box-shadow:0 16px 32px -8px rgba(0,0,0,.3), 0 0 0 1px rgba(201,169,97,.2);
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
  isolation:isolate;
}
.footer-logo:hover{
  transform:translateY(-4px) rotate(-3deg);
}
.footer-logo img{
  width:100%;height:100%;
  object-fit:contain;
  max-width:114px;max-height:114px;
}

/* Rotating dashed gold ring around logo */
.footer-logo-ring{
  position:absolute;inset:-8px;
  border-radius:50%;
  border:1.5px dashed rgba(201,169,97,.4);
  animation:logoRingRotate 18s linear infinite;
  pointer-events:none;
}
@keyframes logoRingRotate{
  from{transform:rotate(0)}
  to{transform:rotate(360deg)}
}

/* Pulsing glow behind logo */
.footer-logo::after{
  content:'';position:absolute;inset:-6px;border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.3), transparent 70%);
  z-index:-1;
  animation:logoGlowPulse 3s ease-in-out infinite;
}
@keyframes logoGlowPulse{
  0%,100%{opacity:.5;transform:scale(1)}
  50%{opacity:.9;transform:scale(1.08)}
}

/* 2. Brand name */
.footer-brand-name{
  display:flex;flex-direction:column;gap:4px;
}
.footer-brand-title{
  font-family:'DM Serif Display',serif;
  font-size:26px;color:#fff;font-weight:400;
  line-height:1.1;
  letter-spacing:-.01em;
}
.footer-brand-sub{
  font-size:12px;font-weight:600;letter-spacing:.14em;
  text-transform:uppercase;color:var(--gold);
  font-family:'Plus Jakarta Sans',sans-serif;
}

/* 3. Bio paragraph */
.footer-bio{
  font-size:14px;line-height:1.75;
  color:rgba(255,255,255,.7);
  margin:0;
  max-width:340px;
}

/* 4. Social icons row */
.footer-social{
  display:flex;gap:10px;
}
.footer-social a{
  width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.1);
  color:#fff;
  display:grid;place-items:center;
  transition:all .4s cubic-bezier(.2,.8,.2,1);
  position:relative;overflow:hidden;
  isolation:isolate;
}
.footer-social a svg{
  width:16px;height:16px;
  position:relative;z-index:2;
  transition:transform .3s ease;
}
/* Gold fill on hover with sweep effect */
.footer-social a::before{
  content:'';position:absolute;inset:0;
  background:linear-gradient(135deg, var(--primary), var(--primary-dark));
  border-radius:50%;
  transform:scale(0);
  transition:transform .4s cubic-bezier(.2,.8,.2,1);
  z-index:1;
}
.footer-social a:hover{
  transform:translateY(-5px);
  border-color:var(--gold);
  box-shadow:0 12px 24px -6px rgba(201,169,97,.4);
  color:var(--navy);
}
.footer-social a:hover::before{transform:scale(1)}
.footer-social a:hover svg{transform:rotate(-10deg) scale(1.1)}

/* ---------- COLUMNS (Quick Links, Treatments, Contact) ---------- */
.footer-col h4{
  font-family:'DM Serif Display',serif;
  font-size:20px;color:#fff;font-weight:400;
  margin-bottom:24px;
  position:relative;
  padding-bottom:12px;
  display:inline-block;
}
.footer-col h4::after{
  content:'';position:absolute;bottom:0;left:0;
  width:30px;height:2px;
  background:linear-gradient(90deg, var(--gold), transparent);
  border-radius:2px;
  transition:width .4s cubic-bezier(.2,.8,.2,1);
}
.footer-col:hover h4::after{width:60px}

.footer-col ul{
  list-style:none;display:flex;flex-direction:column;gap:12px;
}
.footer-col ul a{
  color:rgba(255,255,255,.65);
  font-size:14px;text-decoration:none;
  display:inline-block;position:relative;
  padding-left:0;
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.footer-col ul a::before{
  content:'';position:absolute;left:0;top:50%;
  width:0;height:1px;
  background:var(--gold);
  transform:translateY(-50%);
  transition:width .35s cubic-bezier(.4,0,.2,1);
}
.footer-col ul a:hover{
  color:var(--gold);
  padding-left:18px;
}
.footer-col ul a:hover::before{width:12px}

/* ---------- Contact items ---------- */
.footer-contact-item{
  display:flex;align-items:flex-start;gap:14px;
  font-size:14px;color:rgba(255,255,255,.7);
  margin-bottom:18px;line-height:1.6;
  transition:transform .3s ease;
}
.footer-contact-item:hover{transform:translateX(4px)}

.footer-contact-icon{
  width:36px;height:36px;border-radius:10px;
  background:rgba(201,169,97,.1);
  border:1px solid rgba(201,169,97,.2);
  color:var(--gold);
  display:grid;place-items:center;flex-shrink:0;
  transition:all .4s cubic-bezier(.2,.8,.2,1);
}
.footer-contact-icon svg{width:16px;height:16px}
.footer-contact-item:hover .footer-contact-icon{
  background:var(--gold);color:var(--navy);
  transform:rotate(-8deg) scale(1.05);
}

.footer-contact-item a{
  color:rgba(255,255,255,.7);text-decoration:none;
  transition:color .3s ease;
}
.footer-contact-item:hover a{color:var(--gold)}

/* ---------- Divider — animated gold gradient line ---------- */
.footer-divider{
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(201,169,97,.3), transparent);
  margin-bottom:24px;
  position:relative;overflow:hidden;
}
.footer-divider::after{
  content:'';position:absolute;top:0;left:-30%;width:30%;height:100%;
  background:linear-gradient(90deg, transparent, var(--gold), transparent);
  animation:dividerSweep 4s ease-in-out infinite;
}
@keyframes dividerSweep{
  0%{left:-30%}
  100%{left:130%}
}

/* ---------- Footer bottom ---------- */
.footer-bottom{
  display:flex;justify-content:space-between;
  font-size:13px;color:rgba(255,255,255,.5);
  flex-wrap:wrap;gap:14px;
  padding-top:8px;
}
.footer-bottom a{
  color:rgba(255,255,255,.5);
  text-decoration:none;
  transition:color .3s ease;
}
.footer-bottom a:hover{color:var(--gold)}

/* ---------- Responsive ---------- */
@media (max-width:980px){
  .footer-grid{
    grid-template-columns:1fr 1fr !important;gap:40px !important;
  }
  .footer-col-brand{grid-column:1 / -1;align-items:center;text-align:center}
  .footer-bio{max-width:520px;text-align:center}
  .footer-social{justify-content:center}
}
@media (max-width:520px){
  .footer-grid{grid-template-columns:1fr !important;gap:32px !important}
  .footer-bottom{flex-direction:column;align-items:center;text-align:center}
}


/* ==========================================================================
   WHATSAPP FLOAT — Enhanced with cleaner icon and better pulse
   ========================================================================== */
.wa-float{
  position:fixed !important;bottom:28px !important;right:28px !important;z-index:90;
  width:62px !important;height:62px !important;border-radius:50% !important;
  background:linear-gradient(135deg, #25D366 0%, #128C7E 100%) !important;
  color:#fff !important;
  display:grid !important;place-items:center !important;
  text-decoration:none !important;
  box-shadow:0 8px 24px rgba(37,211,102,.4), 0 0 0 6px rgba(37,211,102,.08) !important;
  transition:all .35s cubic-bezier(.2,.8,.2,1) !important;
  isolation:isolate;
}

.wa-float:hover{
  transform:scale(1.1) rotate(-8deg) !important;
  box-shadow:0 12px 32px rgba(37,211,102,.55), 0 0 0 8px rgba(37,211,102,.15) !important;
}

.wa-float svg{
  width:32px !important;height:32px !important;
  position:relative;z-index:2;
  filter:drop-shadow(0 1px 2px rgba(0,0,0,.15));
}

/* Disable old single pulse ring */
.wa-float::before{display:none !important}

/* Double pulse rings */
.wa-float-pulse{
  position:absolute;inset:0;border-radius:50%;
  background:#25D366;
  pointer-events:none;z-index:0;
  opacity:0;
  animation:waPulseRing 2.4s ease-out infinite;
}
.wa-float-pulse:nth-of-type(2){
  animation-delay:1.2s;
}
@keyframes waPulseRing{
  0%{transform:scale(1);opacity:.5}
  100%{transform:scale(1.8);opacity:0}
}

/* Subtle bobbing animation */
.wa-float{
  animation:waFloatBob 3s ease-in-out infinite;
}
@keyframes waFloatBob{
  0%,100%{translate:0 0}
  50%{translate:0 -4px}
}

/* Pause bob on hover */
.wa-float:hover{animation-play-state:paused}

@media (max-width:600px){
  .wa-float{
    bottom:20px !important;right:20px !important;
    width:54px !important;height:54px !important;
  }
  .wa-float svg{width:28px !important;height:28px !important}
}
/* ==========================================================================
   CSS SCROLL REVEAL (replaces GSAP ScrollTrigger)
   ========================================================================== */
.reveal-ready {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.6s ease, transform 0.6s ease;
}
.reveal-ready:nth-child(2) { transition-delay: 0.1s; }
.reveal-ready:nth-child(3) { transition-delay: 0.2s; }
.reveal-ready:nth-child(4) { transition-delay: 0.3s; }
.reveal-ready.revealed {
  opacity: 1;
  transform: translateY(0);
}

/* Hero slide content fade */
.hero-slide-content { transition: opacity 0.3s ease; }
.hero-slide-content.fading { opacity: 0; }


/* ==========================================================================
   MOBILE OFFCANVAS MENU — Bootstrap Offcanvas full-screen nav
   ========================================================================== */
.mobile-offcanvas {
  width: 100vw !important;
  max-width: 100vw !important;
  background: #fff !important;
}
.mobile-offcanvas .offcanvas-header {
  padding: 24px 28px !important;
  border-bottom: none !important;
  justify-content: space-between;
  align-items: center;
}
.mobile-offcanvas .offcanvas-body {
  padding: 0 28px 28px !important;
  display: flex;
  flex-direction: column;
}
.mobile-nav-list {
  list-style: none !important;
  padding: 0 !important;
  margin: 0 0 auto !important;
  width: 100%;
}
.mobile-nav-list li {
  list-style: none !important;
}
.mobile-nav-list li a {
  display: block;
  font-family: 'DM Serif Display', serif !important;
  font-size: 26px;
  font-weight: 400;
  color: var(--navy) !important;
  padding: 16px 0;
  border-bottom: 1px solid rgba(0,0,0,.08);
  text-decoration: none !important;
  transition: color .25s ease, padding-left .25s ease;
}
.mobile-nav-list li a:hover,
.mobile-nav-list li a.active {
  color: var(--primary) !important;
  padding-left: 10px;
}
.mobile-offcanvas .drawer-foot {
  margin-top: 32px;
  padding-top: 24px;
  border-top: 1px solid rgba(0,0,0,.08);
  display: flex;
  flex-direction: column;
  gap: 14px;
}

/* Extra specificity to beat Bootstrap's ul reset inside offcanvas */
.mobile-offcanvas .offcanvas-body ul.mobile-nav-list,
.mobile-offcanvas .offcanvas-body ul.mobile-nav-list li {
  list-style: none !important;
  list-style-type: none !important;
  padding-left: 0 !important;
  margin-left: 0 !important;
}
.mobile-offcanvas .offcanvas-body ul.mobile-nav-list li::before,
.mobile-offcanvas .offcanvas-body ul.mobile-nav-list li::marker {
  display: none !important;
  content: none !important;
}

/* ==========================================================================
   MOBILE OFFCANVAS — drawer-foot layout fix (no empty gap)
   ========================================================================== */
.mobile-offcanvas .offcanvas-body {
  padding: 0 28px 36px !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  gap: 0;
}
.mobile-offcanvas .drawer-foot {
  margin-top: 32px !important;
  padding-top: 24px;
  border-top: 1px solid rgba(0,0,0,.08);
  display: flex;
  flex-direction: column;
  gap: 14px;
  /* No auto margin — sits directly below nav links */
}

/* ==========================================================================
   COMPREHENSIVE MOBILE FIXES
   ========================================================================== */

/* 1. TOPBAR — hide hours on mobile, keep only location */
@media (max-width: 767px) {
  .topbar-hours { display: none !important; }
  .topbar { padding: 8px 0; }
  .topbar-left { gap: 8px; }
}

/* 2. SERVICE ICON — remove completely from all views */
.service-icon { display: none !important; }

/* 3. NAV LOGO — bigger on mobile */
@media (max-width: 980px) {
  .brand-mark {
    width: 44px !important;
    height: 44px !important;
  }
  .brand-name { font-size: 16px !important; }
  .brand-tag  { font-size: 11px !important; }
  .nav-inner  { padding: 0 16px; }
  .nav        { padding: 12px 0 !important; }
}

/* 4. APPOINTMENT SECTION — full fix on mobile */
@media (max-width: 980px) {
  .appt-grid {
    grid-template-columns: 1fr !important;
    gap: 32px !important;
  }
  .appt-info-img {
    aspect-ratio: 16/9 !important;
    max-height: 280px;
  }
  .appt-form-card {
    padding: 24px 20px !important;
  }
  .appt-form-card::before {
    left: 20px !important;
    right: 20px !important;
  }
}
@media (max-width: 600px) {
  .appt-grid { gap: 24px !important; }
  .appt-info-img { display: none; }  /* hide image on small mobile, show only form */
  .appt-form-card { padding: 20px 16px !important; }
  .form-row { grid-template-columns: 1fr !important; gap: 12px; }
  .form-submit { font-size: 14px !important; padding: 14px 20px !important; }
}

/* 5. MOBILE MENU — fix empty gap, properly stack */
.mobile-offcanvas .offcanvas-body {
  padding: 0 24px 32px !important;
  flex-direction: column !important;
  justify-content: flex-start !important;
  overflow-y: auto;
}
.mobile-offcanvas .mobile-nav-list { margin-bottom: 0 !important; }
.mobile-offcanvas .drawer-foot {
  margin-top: 24px !important;
  padding-top: 20px !important;
  border-top: 1px solid rgba(0,0,0,.1);
  display: flex !important;
  flex-direction: column !important;
  gap: 12px !important;
}
/* Remove Bootstrap offcanvas min-height that causes gap */
.mobile-offcanvas { height: auto !important; min-height: 100vh; max-height: 100vh; overflow-y: auto !important; }

/* 6. FEATURES STRIP — fix overflow on mobile */
@media (max-width: 600px) {
  .features-strip {
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
    padding: 14px !important;
    margin-top: -16px !important;
  }
  .feat-strip-text strong { font-size: 12px !important; line-height: 1.2; }
  .feat-strip-text span   { font-size: 10px !important; }
  .feat-strip-icon { width: 36px !important; height: 36px !important; }
  .feat-strip-icon svg { width: 16px !important; height: 16px !important; }
}

/* 7. GENERAL — prevent any section overflow */
.appointment { overflow: hidden; }
.appt-info { overflow: hidden; }


/* ==========================================================================
   DEFINITIVE HORIZONTAL SCROLL FIX
   Force overflow:hidden on every section and the page wrapper
   ========================================================================== */

/* Every section clips its decorative pseudo-elements */
section,
.services,
.about,
.gallery,
.testimonials,
.faq,
.appointment,
.locations,
.doctors,
.stats-band,
.marquee,
.marquee-band,
.appointment-cta,
.hero,
.hero-dark,
.footer,
.topbar,
.features-strip,
.why-band {
  overflow-x: hidden !important;
  max-width: 100% !important;
}

/* Page-level lock */
html { overflow-x: hidden !important; }
body { overflow-x: hidden !important; max-width: 100vw !important; }

/* Clip all decorative floating elements */
.hero-float-1,
.hero-float-2,
.appt-deco,
.appt-bg-dot-1,
.appt-bg-dot-2 {
  overflow: hidden;
}

/* ==========================================================================
   FEATURES STRIP — FULL WIDTH, NO SIDE GAPS
   ========================================================================== */
.features-strip-wrapper {
  width: 100% !important;
  max-width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  overflow: hidden !important;
}
.features-strip {
  border-radius: 0 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
  box-sizing: border-box !important;
}
@media (max-width: 600px) {
  .features-strip { padding: 16px 12px !important; }
}

/* ==========================================================================
   FEATURES STRIP — REDESIGNED, ATTRACTIVE, FULL WIDTH
   ========================================================================== */
.features-strip-wrap {
  background: #fff;
  width: 100%;
  position: relative;
  z-index: 5;
  margin-top: -1px;
  box-shadow: 0 8px 32px rgba(11,37,69,.1);
  border-top: 3px solid var(--gold);
}
.features-strip {
  display: grid;
  grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
  align-items: center;
  gap: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
  width: 100%;
  border: none;
}
.feat-item {
  display: flex;
  align-items: center;
  gap: 20px;
  padding: 36px 32px;
  transition: background .3s ease;
}
.feat-item:hover { background: var(--primary-soft); }
.feat-icon {
  width: 64px;
  height: 64px;
  border-radius: 18px;
  background: var(--primary-soft);
  color: var(--primary);
  display: grid;
  place-items: center;
  flex-shrink: 0;
  transition: all .35s ease;
}
.feat-item:hover .feat-icon {
  background: var(--primary);
  color: #fff;
  transform: rotate(-8deg) scale(1.05);
}
.feat-icon svg { width: 28px; height: 28px; }
.feat-text strong {
  display: block;
  font-family: 'DM Serif Display', serif;
  font-size: 17px;
  color: var(--navy);
  font-weight: 400;
  line-height: 1.35;
}
.feat-text span {
  font-size: 14px;
  color: var(--ink-soft);
  font-weight: 500;
}
.feat-divider {
  width: 1px;
  height: 68px;
  background: linear-gradient(180deg, transparent, var(--line), transparent);
  flex-shrink: 0;
}

/* Tablet */
@media (max-width: 980px) {
  .features-strip {
    grid-template-columns: 1fr 1fr;
    gap: 0;
  }
  .feat-divider { display: none; }
  .feat-item {
    padding: 28px 24px;
    gap: 16px;
    border-bottom: 1px solid var(--line-soft);
  }
  .feat-icon { width: 54px; height: 54px; border-radius: 14px; }
  .feat-icon svg { width: 24px; height: 24px; }
  .feat-text strong { font-size: 15px; }
  .feat-text span { font-size: 13px; }
  .feat-item:nth-child(odd) { border-right: 1px solid var(--line-soft); }
  .feat-item:last-child, .feat-item:nth-last-child(2):nth-child(odd) {
    border-bottom: none;
  }
}

/* Mobile */
@media (max-width: 600px) {
  .features-strip-wrap { border-top-width: 2px; }
  .features-strip { grid-template-columns: 1fr 1fr; }
  .feat-item { padding: 20px 16px; gap: 12px; }
  .feat-icon { width: 48px; height: 48px; border-radius: 12px; }
  .feat-icon svg { width: 22px; height: 22px; }
  .feat-text strong { font-size: 13px; }
  .feat-text span { font-size: 12px; }
}

/* Override old classes to avoid conflicts */
.features-strip-wrapper,
.feat-strip-item,
.feat-strip-icon,
.feat-strip-text { display: none !important; }

/* ==========================================================================
   GLOBAL GOLD HOVER + ICON VISIBILITY FIXES
   ========================================================================== */

/* Nav: gold underline on active page links */
.nav-links a:hover,
.nav-links a.active {
  color: var(--navy);
}

/* Service cards: gold accent on hover link */
.service:hover .service-link {
  color: var(--gold);
}

/* Feature strip icons: ensure visible gold on hover */
.feat-item:hover .feat-icon {
  background: var(--gold);
  color: var(--navy);
}
.feat-item:hover .feat-text strong {
  color: var(--primary-dark);
}

/* About feat icon: gold on hover */
.about-feat:hover .about-feat-icon {
  background: var(--gold);
  color: var(--navy);
}

/* Stats band icon: gold on hover */
.stat-item:hover .stat-icon {
  background: rgba(201,169,97,.9);
  color: var(--navy);
}

/* Doctor cards: gold border on hover */
.doctor:hover {
  border-color: rgba(201,169,97,.35);
}

/* Testimonial card: gold left border on hover (was blue) */
.testi-card:hover::after {
  background: linear-gradient(180deg, var(--gold), var(--primary), var(--navy));
}

/* Footer social icons: gold bg on hover */
.footer-social a:hover {
  background: var(--gold);
  color: var(--navy);
}

/* Gallery filter buttons: gold on active */
.gf-btn.active {
  background: var(--navy);
  border-color: var(--navy);
}
.gf-btn:hover {
  border-color: var(--gold);
  color: var(--gold);
}

/* Back to top: gold on hover */
.back-to-top:hover {
  background: var(--gold);
  color: var(--navy);
  border-color: var(--gold);
}

/* Ensure feat-icon SVG stroke is always visible */
.feat-icon svg {
  stroke: currentColor;
}

/* Fix contact/info card icons: ensure color always shows */
.contact-info-card__icon,
.appt-side-icon,
.stat-strip-icon,
.branch-card__meta-item svg {
  color: var(--primary-dark);
}

/* Nav call button: gold accent on hover */
.nav-call:hover {
  background: rgba(201,169,97,.12);
  color: var(--navy);
}
.nav-call:hover .nav-call-icon {
  background: var(--gold);
  color: var(--navy);
}