/* ===================================================
   FAMILY DENTAL CLINIC — Complete Stylesheet
   Smile With Confidence | Ravet, Pune
=================================================== */

/* ---------- 1. VARIABLES ---------- */
:root {
  --navy:       #0f2744;
  --teal:       #e8762a;
  --cyan:       #c45e1a;
  --teal-50:    #fff7ed;
  --teal-100:   #ffedd5;
  --teal-200:   #fed7aa;
  --slate-50:   #f8fafc;
  --slate-100:  #f1f5f9;
  --slate-200:  #e2e8f0;
  --slate-300:  #cbd5e1;
  --slate-400:  #94a3b8;
  --slate-500:  #64748b;
  --slate-600:  #475569;
  --slate-700:  #334155;
  --slate-800:  #1e293b;
  --white:      #ffffff;
  --gradient:    linear-gradient(135deg, #0f2744 0%, #e8762a 55%, #f97316 100%);
  --gradient-teal: linear-gradient(135deg, #e8762a, #f97316);
  --shadow-sm:  0 2px 8px rgba(0,0,0,0.07);
  --shadow:     0 4px 20px rgba(0,0,0,0.10);
  --shadow-teal:0 8px 28px rgba(232,118,42,0.30);
  --shadow-lg:  0 20px 60px rgba(0,0,0,0.12);
  --r:   1.5rem;
  --r-sm: 1rem;
  --r-xs: .625rem;
  --transition: all .3s cubic-bezier(.4,0,.2,1);
}

/* ---------- 2. RESET ---------- */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; overflow-x:hidden; }
body {
  font-family:'Plus Jakarta Sans', -apple-system, sans-serif;
  background:#fff; color:var(--slate-800);
  line-height:1.6; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -webkit-text-size-adjust:100%;
}
img { max-width:100%; height:auto; display:block; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
button, a { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
button { cursor:pointer; border:none; background:none; font-family:inherit; }
input, select, textarea { font-family:inherit; }

/* ---------- 3. TYPOGRAPHY ---------- */
.font-display { font-family:'DM Serif Display', Georgia, serif; }
h1,h2,h3 { font-family:'DM Serif Display', Georgia, serif; line-height:1.2; }
h1 { font-size: clamp(2.2rem, 5vw, 4rem); }
h2 { font-size: clamp(1.8rem, 4vw, 3rem); }
h3 { font-size: clamp(1.15rem, 2.5vw, 1.5rem); }

/* ---------- 4. LAYOUT ---------- */
.container {
  max-width:1280px; margin:0 auto;
  padding:0 clamp(1rem, 4vw, 1.5rem);
}
.section { padding: clamp(3.5rem, 8vw, 6.5rem) 0; }
.section-alt { background: linear-gradient(135deg,#fff7ed,#fff3e0,#fff7ed); }

/* ---------- 5. HELPERS ---------- */
.gradient-text {
  background:var(--gradient-teal);
  -webkit-background-clip:text; -webkit-text-fill-color:transparent;
  background-clip:text;
}
.badge {
  display:inline-block; padding:.35rem 1rem;
  background:rgba(232,118,42,.1); color:var(--teal);
  border:1px solid rgba(232,118,42,.2);
  border-radius:999px; font-size:.75rem; font-weight:700;
  letter-spacing:.08em; text-transform:uppercase; margin-bottom:1rem;
}
.section-header { text-align:center; max-width:650px; margin:0 auto 3.5rem; }
.section-header p { color:var(--slate-500); margin-top:.75rem; font-size:1.05rem; }

/* ---------- 6. BUTTONS ---------- */
.btn {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.85rem 2rem; border-radius:999px;
  font-weight:700; font-size:.9rem;
  transition:var(--transition); cursor:pointer;
}
.btn-primary {
  background:var(--gradient-teal); color:#fff;
  box-shadow:var(--shadow-teal);
}
.btn-primary:hover { transform:translateY(-2px); box-shadow:0 14px 35px rgba(232,118,42,.45); }
.btn-outline {
  border:2px solid rgba(232,118,42,.4); color:var(--teal);
  background:rgba(13,148,136,.05);
}
.btn-outline:hover { background:rgba(13,148,136,.12); border-color:var(--teal); transform:translateY(-2px); }
.btn-white {
  background:#fff; color:var(--teal);
  box-shadow:var(--shadow-lg);
}
.btn-white:hover { transform:translateY(-2px); }

/* ---------- 7. PAGE LOADER ---------- */
#loader {
  position:fixed; inset:0; z-index:9999;
  background:#fff; display:flex; flex-direction:column;
  align-items:center; justify-content:center; gap:1rem;
  transition:opacity .5s, visibility .5s;
}
#loader.hidden { opacity:0; visibility:hidden; pointer-events:none; }
#loader img { height:4.5rem; width:auto; animation:loaderPop .6s cubic-bezier(.34,1.56,.64,1) both; }
#loader p { color:var(--slate-400); font-size:.9rem; font-weight:500; letter-spacing:.05em; }
.loader-bar { width:10rem; height:5px; background:var(--slate-100); border-radius:999px; overflow:hidden; }
.loader-bar-fill {
  height:100%; background:var(--gradient-teal); border-radius:999px;
  animation:loaderBar 1.6s ease-in-out forwards;
}
.loader-dots { display:flex; gap:.5rem; }
.loader-dots span {
  width:.5rem; height:.5rem; border-radius:50%; background:var(--teal-200);
  animation:dotPulse .9s ease-in-out infinite;
}
.loader-dots span:nth-child(2){ animation-delay:.2s; }
.loader-dots span:nth-child(3){ animation-delay:.4s; }
@keyframes loaderPop {
  from { transform:scale(.6) translateY(-15px); opacity:0; }
  to   { transform:scale(1) translateY(0);  opacity:1; }
}
@keyframes loaderBar { from{width:0} to{width:100%} }
@keyframes dotPulse {
  0%,100%{ transform:scale(1); opacity:.5; }
  50%    { transform:scale(1.5); opacity:1; }
}

/* ---------- 8. NAVBAR ---------- */
#navbar {
  position:fixed; top:0; left:0; right:0; z-index:1000;
  padding:1.1rem 0;
  transition:var(--transition);
}
#navbar.scrolled {
  background:rgba(255,255,255,.96);
  backdrop-filter:blur(20px);
  box-shadow:0 2px 20px rgba(0,0,0,.08);
  padding:.7rem 0;
}
.nav-inner {
  display:flex; align-items:center; justify-content:space-between; gap:1.5rem;
}
.nav-logo {
  flex-shrink:0;
}
.nav-logo .logo-wrap {
  display:inline-block; border-radius:.75rem;
  padding:.4rem .75rem;
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(8px);
  transition:var(--transition);
}
#navbar.scrolled .nav-logo .logo-wrap {
  background:transparent; padding:0;
}
.nav-logo img { height:2.6rem; width:auto; object-fit:contain; }

.nav-links {
  display:flex; align-items:center; gap:.25rem;
}
.nav-links a {
  padding:.5rem 1rem; border-radius:.5rem;
  font-size:.875rem; font-weight:600; color:rgba(255,255,255,.88);
  transition:var(--transition);
}
.nav-links a:hover, .nav-links a.active {
  color:#fff; background:rgba(255,255,255,.15);
}
#navbar.scrolled .nav-links a { color:var(--slate-600); }
#navbar.scrolled .nav-links a:hover,
#navbar.scrolled .nav-links a.active {
  color:var(--teal); background:var(--teal-50);
}
.nav-cta { display:flex; align-items:center; gap:.75rem; }
.nav-phone {
  font-size:.85rem; font-weight:600; color:rgba(255,255,255,.85);
  display:flex; align-items:center; gap:.4rem;
  transition:var(--transition);
}
#navbar.scrolled .nav-phone { color:var(--slate-600); }
.nav-phone:hover { color:#fff; }
#navbar.scrolled .nav-phone:hover { color:var(--teal); }

/* Mobile menu */
.nav-toggle {
  display:none; flex-direction:column; gap:5px;
  padding:.5rem; border-radius:.5rem;
  transition:var(--transition);
}
.nav-toggle span {
  display:block; width:22px; height:2px;
  background:#fff; border-radius:2px; transition:var(--transition);
}
#navbar.scrolled .nav-toggle span { background:var(--slate-700); }
.nav-toggle.open span:nth-child(1){ transform:translateY(7px) rotate(45deg); }
.nav-toggle.open span:nth-child(2){ opacity:0; transform:scaleX(0); }
.nav-toggle.open span:nth-child(3){ transform:translateY(-7px) rotate(-45deg); }

.mobile-menu {
  display:flex; flex-direction:column;
  position:fixed; top:0; right:0; bottom:0;
  width:min(300px, 88vw); background:#fff;
  box-shadow:-4px 0 40px rgba(0,0,0,.15); z-index:1200;
  padding:1.5rem; overflow-y:auto;
  transform:translateX(110%);
  visibility:hidden; pointer-events:none;
  transition:transform .35s cubic-bezier(.4,0,.2,1), visibility .35s;
}
.mobile-menu.open {
  transform:translateX(0);
  visibility:visible; pointer-events:auto;
}
.mobile-overlay {
  display:block; position:fixed; inset:0; z-index:1100;
  background:rgba(0,0,0,.45); backdrop-filter:blur(3px);
  opacity:0; visibility:hidden; pointer-events:none;
  transition:opacity .35s ease, visibility .35s ease;
}
.mobile-overlay.open { opacity:1; visibility:visible; pointer-events:auto; }
.mobile-menu-header {
  display:flex; align-items:center; justify-content:space-between;
  padding-bottom:1.25rem; border-bottom:1px solid var(--slate-100); margin-bottom:1rem;
}
.mobile-menu-header img { height:2.4rem; width:auto; }
.mobile-close {
  width:2.2rem; height:2.2rem; border-radius:.5rem;
  display:flex; align-items:center; justify-content:center;
  background:var(--slate-100); color:var(--slate-600); font-size:1.1rem;
}
.mobile-close:hover { background:var(--teal-50); color:var(--teal); }
.mobile-links { display:flex; flex-direction:column; gap:.25rem; flex:1; }
.mobile-links a {
  display:block; padding:.85rem 1rem;
  border-radius:.75rem; font-size:1rem; font-weight:600;
  color:var(--slate-700); transition:var(--transition);
}
.mobile-links a:hover, .mobile-links a.active {
  background:var(--teal-50); color:var(--teal);
}
.mobile-actions { border-top:1px solid var(--slate-100); padding-top:1rem; display:flex; flex-direction:column; gap:.75rem; }
.mobile-phone-btn {
  display:flex; align-items:center; gap:.75rem;
  padding:.85rem 1rem; border-radius:.75rem;
  background:var(--slate-50); font-weight:600; color:var(--slate-700);
}
.mobile-phone-icon {
  width:2rem; height:2rem; border-radius:50%;
  background:var(--gradient-teal); display:flex; align-items:center; justify-content:center;
  color:#fff; font-size:.9rem;
}

/* ---------- 9. HERO ---------- */
.hero {
  position:relative; min-height:100vh;
  display:flex; align-items:center;
  background:var(--gradient); overflow:hidden;
  padding-top:5rem;
}
.hero-blob {
  position:absolute; border-radius:50%; opacity:.18;
  background:radial-gradient(circle, #f97316, transparent);
  pointer-events:none;
}
.hero-blob-1 { width:600px; height:600px; top:-150px; left:-150px; animation:blobFloat 10s ease-in-out infinite; }
.hero-blob-2 { width:500px; height:500px; bottom:-150px; right:-100px; animation:blobFloat 12s ease-in-out infinite reverse; }
.hero-grid {
  position:absolute; inset:0; opacity:.05;
  background-image:
    linear-gradient(rgba(255,255,255,.4) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.4) 1px, transparent 1px);
  background-size:40px 40px;
}
.hero-inner {
  display:grid; grid-template-columns:1fr 1fr; gap:4rem;
  align-items:center; position:relative; z-index:1;
  padding:3rem 0 4rem;
}
.hero-badge {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.5rem 1rem; border-radius:999px;
  background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.25);
  backdrop-filter:blur(10px); color:rgba(255,255,255,.9);
  font-size:.8rem; font-weight:600; margin-bottom:1.5rem;
}
.hero-stars { display:flex; gap:2px; color:#fbbf24; font-size:.8rem; }
.hero-title { color:#fff; margin-bottom:1.25rem; }
.hero-title em { font-style:italic; background:linear-gradient(135deg,#fde68a,#fdba74); -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text; }
.hero-desc { color:rgba(255,255,255,.75); font-size:1.1rem; max-width:520px; margin-bottom:2rem; }
.hero-btns { display:flex; flex-wrap:wrap; gap:.75rem; margin-bottom:2.5rem; }
.hero-trust { display:flex; flex-wrap:wrap; gap:1.25rem; }

/* ---- Hero clinic name print + neon ---- */
@keyframes heroPrintLeft {
  0%   { clip-path:inset(0 100% 0 0); opacity:0; }
  2%   { opacity:1; }
  100% { clip-path:inset(0 0% 0 0); opacity:1; }
}
.hero-clinic-name {
  animation:heroPrintLeft 1.2s cubic-bezier(.4,0,.2,1) .5s both, clinicNeonPulse 2.5s ease-in-out 1.8s infinite;
}
.hero-trust-item { display:flex; align-items:center; gap:.4rem; color:rgba(255,255,255,.75); font-size:.85rem; }
.hero-trust-item svg { color:#fdba74; }
/* Hero image */
.hero-visual { position:relative; }
.hero-photo-wrap {
  position:relative; border-radius:var(--r); overflow:hidden;
  box-shadow:0 30px 80px rgba(0,0,0,.35);
}
.hero-photo-wrap img {
  width:100%; height:500px; object-fit:cover; object-position:top;
}
.hero-card {
  position:absolute; background:#fff; border-radius:var(--r-sm);
  box-shadow:var(--shadow-lg); padding:.85rem 1.1rem;
  display:flex; align-items:center; gap:.75rem;
}
.hero-card-1 { bottom:-1.25rem; left:-1.25rem; }
.hero-card-2 { top:-1.25rem; right:-1.25rem; }
.hero-card-icon { font-size:1.8rem; }
.hero-card-title { font-weight:700; font-size:.85rem; color:var(--slate-800); }
.hero-card-sub { font-size:.75rem; color:var(--teal); font-weight:600; }
/* Hero stats bar */
.hero-stats {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
  margin-top:2rem; position:relative; z-index:1;
}
.hero-stat {
  background:rgba(255,255,255,.18);
  backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.35);
  border-radius:var(--r-sm); padding:1.5rem 1rem; text-align:center;
  transition:transform .3s ease, background .3s ease;
}
.hero-stat:hover { background:rgba(255,255,255,.26); transform:translateY(-3px); }
.hero-stat-num { color:#fff; font-family:'DM Serif Display',serif; font-size:2rem; font-weight:700; display:block; line-height:1.1; }
.hero-stat-lbl { color:#fff; font-size:.82rem; margin-top:0; line-height:1.5; font-weight:500; letter-spacing:.03em; opacity:.92; }
.hero-wave {
  position:absolute; bottom:0; left:0; right:0; line-height:0;
}
@keyframes blobFloat {
  0%,100%{ transform:translate(0,0) scale(1); }
  50%{ transform:translate(30px,-30px) scale(1.05); }
}

/* ---------- 10. ABOUT PREVIEW ---------- */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
.about-img-wrap {
  position:relative; border-radius:var(--r); overflow:hidden;
  box-shadow:var(--shadow-lg);
}
.about-img-wrap img { width:100%; height:460px; object-fit:cover; object-position:top; }
.about-img-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(15,39,68,.7) 0%, transparent 50%);
}
.about-img-badge {
  position:absolute; bottom:1.5rem; left:1.5rem; right:1.5rem;
  background:rgba(255,255,255,.95); backdrop-filter:blur(10px);
  border-radius:var(--r-sm); padding:1rem 1.25rem;
  display:flex; align-items:center; gap:1rem;
}
.about-img-badge-icon { font-size:2rem; }
.about-img-badge-num { font-family:'DM Serif Display',serif; font-size:1.6rem; font-weight:700; }
.about-img-badge-lbl { font-size:.75rem; color:var(--slate-500); font-weight:500; }
.float-badge {
  position:absolute; background:#fff; border-radius:var(--r-sm);
  box-shadow:var(--shadow-lg); padding:.85rem 1rem;
  display:flex; align-items:center; gap:.6rem;
  animation:floatBadge 4s ease-in-out infinite;
}
.float-badge-top { top:-1rem; right:-1rem; animation-delay:.5s; }
.float-badge-bottom { bottom:5rem; right:-1rem; animation-direction:reverse; }
.float-badge-icon { font-size:1.5rem; }
.float-badge-text { font-weight:700; font-size:.8rem; color:var(--slate-800); }
.float-badge-sub  { font-size:.7rem; color:var(--teal); font-weight:600; }
@keyframes floatBadge {
  0%,100%{ transform:translateY(0); }
  50%{ transform:translateY(-8px); }
}
.about-checklist { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; margin-bottom:2rem; }
.about-check { display:flex; align-items:flex-start; gap:.6rem; font-size:.9rem; color:var(--slate-600); }
.about-check-icon { color:var(--teal); flex-shrink:0; margin-top:.1rem; font-size:1rem; }
.about-stats { display:grid; grid-template-columns:repeat(2,1fr); gap:1.25rem; padding-top:1.5rem; border-top:1px solid var(--slate-100); }
.about-stat-num { font-family:'DM Serif Display',serif; font-size:2rem; font-weight:700; }
.about-stat-lbl { font-size:.85rem; color:var(--slate-500); }

/* ---------- 11. SERVICE CARDS ---------- */
.services-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.service-card {
  background:#fff; border-radius:var(--r); overflow:hidden;
  box-shadow:var(--shadow); transition:var(--transition);
  display:flex; flex-direction:column; position:relative;
}
.service-card:hover { transform:translateY(-6px); box-shadow:0 20px 50px rgba(232,118,42,.15); }
.service-img { position:relative; height:200px; overflow:hidden; background:#fff7ed; }
.service-img img { width:100%; height:100%; object-fit:contain; object-position:center; transition:transform .6s ease; background:#fff7ed; }
.service-card:hover .service-img img { transform:scale(1.04); }
.service-img-overlay { position:absolute; inset:0; background:linear-gradient(to top, rgba(0,0,0,.55), transparent); }
.service-icon-badge {
  position:absolute; top:.85rem; right:.85rem;
  width:2.5rem; height:2.5rem; border-radius:.6rem;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 12px rgba(0,0,0,.2);
}
.service-icon-badge img { width:1.4rem; height:1.4rem; object-fit:contain; filter:brightness(0) invert(1); }
.service-price {
  position:absolute; bottom:.75rem; left:.75rem;
  background:rgba(255,255,255,.92); border-radius:999px;
  padding:.25rem .85rem; font-size:.75rem; font-weight:700; color:var(--teal);
}
.service-body { padding:1.25rem 1.4rem 1.4rem; flex:1; display:flex; flex-direction:column; }
.service-title { margin-bottom:.5rem; color:var(--slate-800); font-size:1.1rem; transition:color .3s; }
.service-card:hover .service-title { color:var(--teal); }
.service-desc { font-size:.875rem; color:var(--slate-500); margin-bottom:1rem; flex:1; }
.service-tags { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1rem; }
.service-tag { font-size:.72rem; padding:.25rem .65rem; border-radius:999px; background:var(--teal-50); color:var(--teal); font-weight:600; }
.service-link { display:flex; align-items:center; gap:.3rem; font-size:.85rem; font-weight:700; color:var(--teal); transition:gap .3s; }
.service-link:hover { gap:.6rem; }
.service-bar { height:3px; background:var(--gradient-teal); transform:scaleX(0); transform-origin:left; transition:transform .3s ease; }
.service-card:hover .service-bar { transform:scaleX(1); }
/* Category filter */
.filter-bar { display:flex; flex-wrap:wrap; gap:.6rem; justify-content:center; margin-bottom:2.5rem; }
.filter-btn {
  padding:.55rem 1.4rem; border-radius:999px;
  font-size:.85rem; font-weight:600; border:none;
  background:var(--slate-100); color:var(--slate-600);
  transition:var(--transition); cursor:pointer;
}
.filter-btn:hover { background:var(--teal-50); color:var(--teal); }
.filter-btn.active { background:var(--gradient-teal); color:#fff; box-shadow:0 4px 15px rgba(232,118,42,.3); }

/* ---------- 12. WHY CHOOSE US ---------- */
.why-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
.why-card {
  padding:2rem; border-radius:var(--r); border:1px solid transparent;
  transition:var(--transition); position:relative; overflow:hidden;
}
.why-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:rgba(232,118,42,.1); }
.why-card::after {
  content:''; position:absolute; bottom:0; left:0; right:0;
  height:3px; background:var(--gradient-teal);
  transform:scaleX(0); transform-origin:left; transition:transform .35s ease;
}
.why-card:hover::after { transform:scaleX(1); }
.why-icon {
  width:3rem; height:3rem; border-radius:.85rem;
  display:flex; align-items:center; justify-content:center;
  font-size:1.35rem; margin-bottom:1.25rem;
}
.why-title { margin-bottom:.6rem; font-size:1.15rem; }
.why-desc { font-size:.875rem; color:var(--slate-500); }

/* ---------- 13. DOCTOR SECTION ---------- */
.doctor-grid { display:grid; grid-template-columns:1fr 1.3fr; gap:3.5rem; align-items:center; }
.doctor-img-col { position:relative; }
.doctor-img-main {
  border-radius:var(--r); overflow:hidden; box-shadow:var(--shadow-lg);
}
.doctor-img-main img { width:100%; height:520px; object-fit:cover; object-position:top; }
.doctor-img-overlay {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(to top, rgba(15,39,68,.85), transparent);
  padding:2rem; border-radius:0 0 var(--r) var(--r);
}
.doctor-name-overlay { font-family:'DM Serif Display',serif; font-size:1.5rem; color:#fff; }
.doctor-title-overlay { color:#fdba74; font-size:.9rem; font-weight:600; margin-top:.2rem; }
.doctor-thumb {
  position:absolute; bottom:7rem; right:-1.5rem;
  width:5.5rem; height:5.5rem; border-radius:var(--r-sm);
  overflow:hidden; border:3px solid #fff; box-shadow:var(--shadow-lg);
}
.doctor-thumb img { width:100%; height:100%; object-fit:cover; }
.doctor-info h3 { margin-bottom:.75rem; }
.doctor-bio { color:var(--slate-500); margin-bottom:1.75rem; line-height:1.75; }
.doctor-tags { display:flex; flex-wrap:wrap; gap:.6rem; margin-bottom:1.75rem; }
.doctor-tag {
  padding:.45rem 1rem; border-radius:999px;
  background:var(--teal-50); color:var(--teal);
  font-size:.8rem; font-weight:600;
}
.doctor-quals { display:grid; gap:.75rem; margin-bottom:2rem; }
.doctor-qual { display:flex; align-items:center; gap:.75rem; }
.doctor-qual-check { color:var(--teal); font-size:1.1rem; flex-shrink:0; }
.doctor-qual-text { font-size:.9rem; color:var(--slate-600); font-weight:500; }
.doctor-langs { display:flex; align-items:center; gap:.75rem; }
.doctor-langs-label { font-size:.85rem; font-weight:600; color:var(--slate-500); }
.lang-pill { padding:.3rem .85rem; border-radius:999px; background:var(--slate-100); color:var(--slate-600); font-size:.8rem; font-weight:600; }
/* Action photos */
.action-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.25rem; margin-top:3rem; }
.action-card { border-radius:var(--r-sm); overflow:hidden; position:relative; height:240px; }
.action-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.action-card:hover img { transform:scale(1.05); }
.action-label {
  position:absolute; bottom:0; left:0; right:0;
  background:linear-gradient(to top, rgba(15,39,68,.8), transparent);
  padding:1.5rem .85rem .75rem;
  color:#fff; font-size:.85rem; font-weight:600;
}

/* ---------- 14. TESTIMONIALS CAROUSEL ---------- */
/* Outer wrapper: position:relative so arrows can be absolutely placed */
.carousel-outer { position:relative; }
/* The overflow:hidden viewport — NO padding so wrap.clientWidth = slide width */
.testimonials-wrap { overflow:hidden; }
.testimonials-track {
  display:flex; gap:1.5rem;
  transition:transform .5s cubic-bezier(.4,0,.2,1);
}
/* Desktop: 3 per view. Math: 3*(33.333%-1rem) + 2*1.5rem = 100% ✓ */
.testimonial-card {
  background:#fff; border-radius:var(--r); padding:1.75rem 2rem;
  box-shadow:var(--shadow); border:1px solid var(--slate-100);
  transition:box-shadow .3s ease, transform .3s ease;
  flex:0 0 calc(33.333% - 1rem); min-width:0;
}
.testimonial-card:hover { transform:translateY(-6px); box-shadow:0 24px 55px rgba(232,118,42,.14); }
.testimonial-stars { display:flex; gap:3px; color:#fbbf24; font-size:1rem; margin-bottom:1rem; }
.testimonial-text { font-size:.9rem; color:var(--slate-600); line-height:1.8; margin-bottom:1.25rem; }
.testimonial-author { display:flex; align-items:center; gap:.85rem; }
.testimonial-avatar {
  width:3rem; height:3rem; border-radius:50%; overflow:hidden;
  background:var(--gradient-teal); display:flex; align-items:center; justify-content:center;
  color:#fff; font-weight:700; font-size:1.1rem; flex-shrink:0;
  border:2px solid var(--teal-100);
}
.testimonial-avatar img { width:100%; height:100%; object-fit:cover; }
.testimonial-name { font-weight:700; font-size:.9rem; }
.testimonial-meta { font-size:.78rem; color:var(--slate-400); }
/* Carousel dots */
.carousel-dots { display:flex; justify-content:center; gap:.5rem; margin-top:1.75rem; }
.carousel-dot {
  width:.55rem; height:.55rem; border-radius:50%;
  background:var(--slate-200); cursor:pointer; transition:var(--transition);
}
.carousel-dot.active { background:var(--gradient-teal); width:1.75rem; border-radius:999px; }
/* Carousel arrows — positioned absolute on .carousel-outer */
.carousel-arrow {
  position:absolute; top:50%; transform:translateY(-50%); z-index:10;
  width:2.75rem; height:2.75rem; border-radius:50%;
  border:1.5px solid var(--slate-200); background:#fff;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; font-size:1.3rem; color:var(--slate-600);
  transition:var(--transition); box-shadow:var(--shadow-sm);
}
.carousel-arrow:hover { background:var(--gradient-teal); color:#fff; border-color:transparent; }
.carousel-arrow-prev { left:-3.25rem; }
.carousel-arrow-next { right:-3.25rem; }

/* ---------- 15. GALLERY ---------- */
.gallery-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.gallery-item {
  border-radius:var(--r-sm); overflow:hidden; position:relative;
  aspect-ratio:1; cursor:pointer;
}
.gallery-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s ease; }
.gallery-item:hover img { transform:scale(1.08); }
/* Lightbox */
#lightbox {
  display:none; position:fixed; inset:0; z-index:500;
  background:rgba(0,0,0,.92); align-items:center; justify-content:center;
}
#lightbox.open { display:flex; }

/* ---------- 16. CTA SECTION ---------- */
.cta-section {
  background:var(--gradient);
  padding:5rem 0; position:relative; overflow:hidden;
}
.cta-blob { position:absolute; width:500px; height:500px; border-radius:50%; opacity:.1; background:radial-gradient(circle,#f97316,transparent); }
.cta-blob-1 { top:-200px; right:-100px; }
.cta-blob-2 { bottom:-200px; left:-100px; }
.cta-inner {
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:space-between;
  gap:2rem; flex-wrap:wrap;
}
.cta-text h2 { color:#fff; margin-bottom:.5rem; }
.cta-text p { color:rgba(255,255,255,.75); }
.cta-actions { display:flex; gap:1rem; flex-wrap:wrap; }

/* ---------- 17. CONTACT PAGE ---------- */
.contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:3.5rem; }
.contact-card {
  display:flex; align-items:flex-start; gap:1rem;
  padding:1.1rem 1.25rem; border-radius:var(--r-sm);
  background:var(--slate-50); margin-bottom:.85rem;
  transition:var(--transition);
}
.contact-card:hover { background:var(--teal-50); }
.contact-card-icon {
  width:2.75rem; height:2.75rem; border-radius:.6rem; flex-shrink:0;
  display:flex; align-items:center; justify-content:center; font-size:1.1rem;
}
.contact-card-label { font-size:.75rem; font-weight:700; color:var(--slate-500); text-transform:uppercase; letter-spacing:.06em; margin-bottom:.2rem; }
.contact-card-info { font-size:.9rem; font-weight:600; color:var(--slate-800); }
.contact-card-sub { font-size:.78rem; color:var(--slate-400); }
.hours-box { background:var(--teal-50); border:1px solid var(--teal-100); border-radius:var(--r-sm); padding:1.25rem 1.4rem; margin-top:1.5rem; }
.hours-title { display:flex; align-items:center; gap:.5rem; font-weight:700; font-size:.9rem; color:var(--slate-700); margin-bottom:1rem; }
.hours-row { display:flex; justify-content:space-between; font-size:.875rem; padding:.4rem 0; border-bottom:1px solid var(--teal-100); }
.hours-row:last-child { border-bottom:none; }
.hours-day { color:var(--slate-500); }
.hours-time { font-weight:700; color:var(--slate-800); }
/* Form */
.form-box {
  background:#fff; border-radius:var(--r); padding:2.25rem;
  box-shadow:0 20px 60px rgba(232,118,42,.1); border:1px solid var(--teal-50);
}
.form-title { margin-bottom:1.5rem; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-bottom:1rem; }
.form-group { margin-bottom:1rem; }
.form-label { display:block; font-size:.8rem; font-weight:700; color:var(--slate-600); margin-bottom:.5rem; }
.form-input {
  width:100%; padding:.85rem 1rem; border-radius:.75rem;
  border:1.5px solid var(--slate-200); font-size:.9rem; color:var(--slate-800);
  transition:var(--transition); background:#fff;
}
.form-input:focus { outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(232,118,42,.1); }
.form-input::placeholder { color:var(--slate-400); }
.form-submit { width:100%; padding:1rem; margin-top:.5rem; font-size:.95rem; }
.form-note { font-size:.75rem; color:var(--slate-400); text-align:center; margin-top:.75rem; }
.map-wrap { border-radius:var(--r); overflow:hidden; height:22rem; margin-top:2rem; border:1px solid var(--slate-200); }
.map-wrap iframe { width:100%; height:100%; border:none; }
/* Form success */
.form-success { display:none; flex-direction:column; align-items:center; text-align:center; padding:3rem 1.5rem; }
.form-success-icon { font-size:4rem; margin-bottom:1rem; }
.form-success h3 { margin-bottom:.5rem; }
.form-success p { color:var(--slate-500); margin-bottom:1.5rem; }

/* ---------- 18. PAGE HERO ---------- */
.page-hero {
  padding:8rem 0 3.5rem;
  background:var(--gradient); position:relative; overflow:hidden; text-align:center;
}
.page-hero-blob { position:absolute; width:400px; height:400px; border-radius:50%; opacity:.1; background:radial-gradient(circle,#f97316,transparent); }
.page-hero-blob-1 { top:-150px; right:-50px; }
.page-hero-grid { position:absolute; inset:0; opacity:.05; background-image:linear-gradient(rgba(255,255,255,.4) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.4) 1px,transparent 1px); background-size:40px 40px; }
.page-hero-tag { display:inline-block; padding:.35rem 1rem; background:rgba(255,255,255,.2); border:1px solid rgba(255,255,255,.3); border-radius:999px; color:#fff; font-size:.8rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; margin-bottom:1rem; }
.page-hero h1 { color:#fff; margin-bottom:.85rem; }
.page-hero p { color:rgba(255,255,255,.75); font-size:1.05rem; max-width:min(550px,90%); margin:0 auto; }
.contact-card-info { word-break:break-word; }
.footer-contact-text { word-break:break-word; }
.page-hero-wave { margin-top:2.5rem; line-height:0; }

/* ---------- 19. ABOUT PAGE ---------- */
.about-story-grid { display:grid; grid-template-columns:1fr 1.1fr; gap:4rem; align-items:center; }
.values-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.value-card { padding:1.1rem; border-radius:var(--r-sm); background:var(--teal-50); border:1px solid var(--teal-100); }
.value-icon { width:2rem; height:2rem; border-radius:.5rem; background:var(--gradient-teal); display:flex; align-items:center; justify-content:center; margin-bottom:.6rem; font-size:.9rem; }
.value-title { font-size:.88rem; font-weight:700; color:var(--slate-800); margin-bottom:.3rem; }
.value-text { font-size:.78rem; color:var(--slate-500); line-height:1.6; }
.stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.stat-card { background:#fff; border-radius:var(--r-sm); padding:1.5rem; text-align:center; box-shadow:var(--shadow-sm); border:1px solid var(--teal-50); }
.stat-emoji { font-size:1.75rem; margin-bottom:.5rem; }
.stat-num { font-family:'DM Serif Display',serif; font-size:2.25rem; font-weight:700; margin-bottom:.25rem; }
.stat-lbl { font-size:.8rem; color:var(--slate-500); }

/* ---------- 20. FOOTER ---------- */
footer { background:var(--navy); color:#fff; }
.footer-top { background:var(--gradient-teal); padding:2.75rem 0; }
.footer-top-inner { display:flex; align-items:center; justify-content:space-between; gap:1.5rem; flex-wrap:wrap; }
.footer-top-text h3 { font-size:1.6rem; margin-bottom:.2rem; }
.footer-top-text p { color:rgba(255,255,255,.75); font-size:.9rem; }
.footer-top-btns { display:flex; gap:.75rem; flex-wrap:wrap; }
.btn-footer-white { background:#fff; color:var(--teal); font-weight:700; padding:.75rem 1.75rem; border-radius:999px; transition:var(--transition); }
.btn-footer-white:hover { background:var(--teal-50); }
.btn-footer-ghost { background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.4); color:#fff; font-weight:600; padding:.75rem 1.75rem; border-radius:999px; transition:var(--transition); }
.btn-footer-ghost:hover { background:rgba(255,255,255,.25); }
.footer-main { padding:4rem 0 2.5rem; display:grid; grid-template-columns:2fr 1fr 1fr 1.4fr; gap:2.5rem; }
.footer-brand-logo { height:2.75rem; width:auto; object-fit:contain; margin-bottom:1rem; background:rgba(255,255,255,.1); border-radius:.5rem; padding:.4rem .7rem; }
.footer-brand-desc { color:var(--slate-400); font-size:.875rem; line-height:1.75; margin-bottom:1.25rem; }
.footer-socials { display:flex; gap:.6rem; }
.footer-social { width:2.25rem; height:2.25rem; border-radius:50%; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; transition:var(--transition); font-size:.9rem; }
.footer-social:hover { background:var(--teal); }
.footer-col-title { font-size:.8rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#fff; margin-bottom:1.25rem; }
.footer-col-links { display:flex; flex-direction:column; gap:.6rem; }
.footer-col-links a { color:var(--slate-400); font-size:.875rem; transition:color .25s; display:flex; align-items:center; gap:.5rem; }
.footer-col-links a:hover { color:var(--teal-200); }
.footer-contact-list { display:flex; flex-direction:column; gap:.85rem; }
.footer-contact-item { display:flex; gap:.75rem; align-items:flex-start; }
.footer-contact-icon { color:var(--teal); margin-top:.1rem; flex-shrink:0; font-size:1rem; }
.footer-contact-text { font-size:.85rem; color:var(--slate-400); line-height:1.6; }
.footer-contact-text a { color:var(--slate-400); transition:color .25s; }
.footer-contact-text a:hover { color:var(--teal-200); }
.footer-bottom { border-top:1px solid rgba(255,255,255,.08); padding:1.25rem 0; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.75rem; font-size:.8rem; color:var(--slate-500); }
.footer-bottom a { color:var(--slate-400); transition:color .25s; }
.footer-bottom a:hover { color:var(--teal-200); }

/* ---------- 21. FLOATING ACTIONS ---------- */
.floating-actions { position:fixed; bottom:1.5rem; right:1.5rem; z-index:90; display:flex; flex-direction:column; align-items:flex-end; gap:.75rem; }
.scroll-top {
  width:2.75rem; height:2.75rem; border-radius:50%;
  background:var(--gradient-teal); color:#fff;
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-teal); cursor:pointer;
  opacity:0; visibility:hidden; transform:translateY(10px);
  transition:var(--transition);
}
.scroll-top.visible { opacity:1; visibility:visible; transform:translateY(0); }
.scroll-top:hover { transform:translateY(-2px); }
.whatsapp-btn {
  width:3.5rem; height:3.5rem; border-radius:50%;
  background:#25D366; display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 25px rgba(37,211,102,.4);
  transition:var(--transition);
}
.whatsapp-btn:hover { transform:scale(1.1); }
.whatsapp-btn svg { width:1.75rem; height:1.75rem; fill:#fff; }

/* Instagram floating button */
.instagram-btn {
  width:3.5rem; height:3.5rem; border-radius:50%;
  background:radial-gradient(circle at 30% 107%, #fdf497 0%, #fdf497 5%, #fd5949 45%, #d6249f 60%, #285AEB 90%);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 6px 25px rgba(214,36,159,.4);
  transition:var(--transition); color:#fff;
}
.instagram-btn:hover { transform:scale(1.1); box-shadow:0 8px 30px rgba(214,36,159,.55); }
.instagram-btn svg { width:1.6rem; height:1.6rem; fill:#fff; }

/* Call floating button */
.call-btn {
  width:3.5rem; height:3.5rem; border-radius:50%;
  background:var(--gradient-teal);
  display:flex; align-items:center; justify-content:center;
  box-shadow:var(--shadow-teal);
  transition:var(--transition); color:#fff;
  animation:callPulse 2s ease-in-out infinite;
}
.call-btn:hover { transform:scale(1.1); animation:none; }
.call-btn svg { width:1.5rem; height:1.5rem; fill:#fff; }
@keyframes callPulse {
  0%,100% { box-shadow:0 0 0 0 rgba(13,148,136,.5), var(--shadow-teal); }
  50%      { box-shadow:0 0 0 10px rgba(13,148,136,.0), var(--shadow-teal); }
}

/* ---------- 22. ANIMATIONS (scroll-reveal) ---------- */
.reveal { opacity:0; transform:translateY(30px); transition:opacity .6s ease, transform .6s ease; }
.reveal.revealed { opacity:1; transform:translateY(0); }
.reveal-left { opacity:0; transform:translateX(-40px); transition:opacity .7s ease, transform .7s ease; }
.reveal-left.revealed { opacity:1; transform:translateX(0); }
.reveal-right { opacity:0; transform:translateX(40px); transition:opacity .7s ease, transform .7s ease; }
.reveal-right.revealed { opacity:1; transform:translateX(0); }
.reveal-delay-1 { transition-delay:.1s; }
.reveal-delay-2 { transition-delay:.2s; }
.reveal-delay-3 { transition-delay:.3s; }
.reveal-delay-4 { transition-delay:.4s; }
.reveal-delay-5 { transition-delay:.5s; }
.reveal-delay-6 { transition-delay:.6s; }

/* ---------- 23. SERVICES FULL PAGE ---------- */
.services-full-grid {
  display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem;
}
.service-card-full {
  background:#fff; border-radius:var(--r); padding:0;
  box-shadow:var(--shadow); transition:var(--transition);
  display:flex; flex-direction:column; overflow:hidden;
  border:1px solid var(--slate-100);
}
.service-card-full:hover { transform:translateY(-6px); box-shadow:0 20px 50px rgba(232,118,42,.16); border-color:var(--teal-100); }
/* ---- Service card image header ---- */
.scf-img {
  width:100%; height:260px; position:relative; overflow:hidden;
  background:var(--teal-50);
}
.scf-img img {
  width:100%; height:100%; object-fit:contain; object-position:center center;
  transition:transform .65s ease; background:#fff7ed;
}
.service-card-full:hover .scf-img img { transform:scale(1.04); }
.scf-img-overlay {
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(15,39,68,.5) 0%, transparent 55%);
}
/* Icon badge floating on image */
.scf-icon-wrap {
  position:absolute; bottom:-.9rem; left:1.25rem;
  width:2.9rem; height:2.9rem; border-radius:.7rem;
  background:var(--gradient-teal);
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 4px 16px rgba(232,118,42,.4);
  z-index:3; border:2.5px solid #fff;
  font-size:1.2rem; padding:0;
}
.scf-icon-wrap img { display:none; } /* hide old SVG icons — emoji used */
/* Price badge on image */
.scf-price-badge {
  position:absolute; top:.7rem; right:.7rem;
  background:rgba(255,255,255,.92); backdrop-filter:blur(6px);
  border-radius:999px; padding:.22rem .85rem;
  font-size:.72rem; font-weight:700; color:var(--teal); z-index:3;
}
/* Card body with top padding for icon badge overlap */
.scf-body { padding:2rem 1.75rem 1.75rem; flex:1; display:flex; flex-direction:column; }
.scf-cat {
  font-size:.7rem; font-weight:800; letter-spacing:.1em;
  text-transform:uppercase; color:var(--teal);
  margin-bottom:.5rem;
}
.scf-title { font-size:1.15rem; margin-bottom:.65rem; color:var(--slate-800); }
.service-card-full:hover .scf-title { color:var(--teal); }
.scf-desc { font-size:.875rem; color:var(--slate-500); line-height:1.7; margin-bottom:1.1rem; flex:1; }
.scf-features {
  display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.25rem;
}
.scf-features span {
  font-size:.72rem; padding:.28rem .7rem; border-radius:999px;
  background:var(--teal-50); color:var(--teal); font-weight:600;
  border:1px solid var(--teal-100);
}
.scf-btn {
  display:inline-flex; align-items:center; gap:.35rem;
  font-size:.85rem; font-weight:700; color:var(--teal);
  transition:gap .25s; margin-top:auto;
}
.scf-btn:hover { gap:.6rem; }

/* ---------- 24. GALLERY OVERLAY ---------- */
.gallery-overlay {
  position:absolute; inset:0;
  background:rgba(15,39,68,.55); backdrop-filter:blur(2px);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  opacity:0; transition:opacity .3s;
}
.gallery-item:hover .gallery-overlay { opacity:1; }
.gallery-overlay-icon { font-size:1.75rem; margin-bottom:.4rem; }
.gallery-overlay-title { color:#fff; font-weight:700; font-size:.85rem; text-align:center; padding:0 .5rem; }
#lightbox-caption {
  position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
  color:rgba(255,255,255,.85); font-size:.9rem; font-weight:600;
  text-align:center; background:rgba(0,0,0,.4); padding:.4rem 1.2rem; border-radius:999px;
}
#lightbox-close {
  position:absolute; top:1.25rem; right:1.25rem;
  width:2.75rem; height:2.75rem; border-radius:50%;
  background:rgba(255,255,255,.15); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:1.4rem; cursor:pointer; transition:background .2s;
  border:none; font-family:inherit;
}
#lightbox-close:hover { background:rgba(255,255,255,.3); }
#lightbox-img { max-width:90vw; max-height:85vh; border-radius:var(--r-sm); object-fit:contain; }

/* ========================================
   26. CREATIVE DESIGN UPGRADES
   Inspired by Galaxy Diagnostic Centre
======================================== */

/* --- Ripple Effect on Buttons --- */
.btn { position:relative; overflow:hidden; }
.btn .ripple {
  position:absolute; border-radius:50%;
  background:rgba(255,255,255,.35);
  transform:scale(0); animation:rippleAnim .55s linear;
  pointer-events:none;
}
@keyframes rippleAnim { to { transform:scale(4); opacity:0; } }

/* --- Gradient Animated Text --- */
.gradient-text-anim {
  background:linear-gradient(90deg, #e8762a, #c45e1a, #0f2744, #e8762a);
  background-size:300% auto;
  -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
  animation:gradientShift 4s linear infinite;
}
@keyframes gradientShift { to { background-position:300% center; } }

/* --- Shimmer loading bar (page hero) --- */
.shimmer-line {
  height:3px; border-radius:999px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);
  background-size:200% 100%;
  animation:shimmer 1.5s infinite;
}
@keyframes shimmer { from{background-position:200% 0} to{background-position:-200% 0} }

/* --- Floating Particles in Hero --- */
.hero-particles { position:absolute; inset:0; pointer-events:none; overflow:hidden; z-index:0; }
.particle {
  position:absolute; border-radius:50%;
  background:rgba(255,255,255,.15);
  animation:particleFloat linear infinite;
}
.particle:nth-child(1)  { width:6px;  height:6px;  left:10%; top:20%; animation-duration:8s;  animation-delay:0s; }
.particle:nth-child(2)  { width:10px; height:10px; left:25%; top:60%; animation-duration:11s; animation-delay:1s; }
.particle:nth-child(3)  { width:4px;  height:4px;  left:50%; top:15%; animation-duration:7s;  animation-delay:2s; }
.particle:nth-child(4)  { width:8px;  height:8px;  left:70%; top:40%; animation-duration:12s; animation-delay:.5s; }
.particle:nth-child(5)  { width:5px;  height:5px;  left:85%; top:70%; animation-duration:9s;  animation-delay:3s; }
.particle:nth-child(6)  { width:12px; height:12px; left:40%; top:80%; animation-duration:14s; animation-delay:1.5s; }
.particle:nth-child(7)  { width:3px;  height:3px;  left:60%; top:25%; animation-duration:6s;  animation-delay:2.5s; }
.particle:nth-child(8)  { width:7px;  height:7px;  left:15%; top:85%; animation-duration:10s; animation-delay:4s; }
@keyframes particleFloat {
  0%   { transform:translateY(0)   rotate(0deg);   opacity:0; }
  10%  { opacity:1; }
  90%  { opacity:.7; }
  100% { transform:translateY(-120vh) rotate(360deg); opacity:0; }
}

/* --- Cursor Blink (hero tagline) --- */
.cursor-blink::after {
  content:'|'; color:#fdba74;
  animation:cursorBlink .8s step-end infinite;
}
@keyframes cursorBlink { 0%,100%{opacity:1} 50%{opacity:0} }

/* --- Pulse Ring on WhatsApp btn --- */
.whatsapp-btn::before {
  content:''; position:absolute; inset:-4px; border-radius:50%;
  background:#25D366; opacity:.4;
  animation:pulseRing 2s ease-out infinite;
}
.whatsapp-btn { position:relative; }
@keyframes pulseRing { 0%{transform:scale(1);opacity:.4} 100%{transform:scale(1.55);opacity:0} }

/* --- Glow on CTA buttons --- */
.btn-primary:hover {
  box-shadow:0 0 0 0 rgba(232,118,42,.4), 0 14px 35px rgba(232,118,42,.45);
  animation:glowPulse 1.5s ease-in-out infinite alternate;
}
@keyframes glowPulse {
  from { box-shadow:0 0 8px 2px rgba(232,118,42,.3), 0 14px 35px rgba(232,118,42,.3); }
  to   { box-shadow:0 0 16px 6px rgba(13,148,136,.5), 0 14px 35px rgba(13,148,136,.5); }
}

/* --- Card 3D tilt (why-card) --- */
.why-card { transform-style:preserve-3d; }
.why-card:hover { transform:translateY(-6px) perspective(800px) rotateX(3deg); }

/* --- Gradient border on service cards --- */
.service-card::before {
  content:''; position:absolute; inset:0; border-radius:var(--r);
  padding:2px; z-index:0;
  background:var(--gradient-teal);
  -webkit-mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask:linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude;
  opacity:0; transition:opacity .3s;
}
.service-card:hover::before { opacity:1; }

/* --- Testimonial quote mark --- */
.testimonial-card { position:relative; overflow:hidden; }
.testimonial-card::before {
  content:'\201C'; position:absolute; top:-.5rem; left:1rem;
  font-family:'DM Serif Display',serif; font-size:6rem;
  color:var(--teal-100); line-height:1; z-index:0; pointer-events:none;
}
.testimonial-stars, .testimonial-text, .testimonial-author { position:relative; z-index:1; }

/* --- Section divider wave --- */
.wave-divider { line-height:0; overflow:hidden; }
.wave-divider svg { display:block; width:100%; }

/* --- Number counter shimmer --- */
.stat-num, .hero-stat-num, .about-stat-num {
  position:relative; display:inline-block;
}

/* --- Decorative line under hero stat numbers --- */
.hero-stat-num::after {
  content:'';
  display:block;
  width:2.5rem;
  height:2px;
  background:linear-gradient(90deg,#fdba74,#f97316);
  border-radius:2px;
  margin:.5rem auto .4rem;
}

/* --- Image hover zoom with overlay slide-up --- */
.gallery-item .gallery-overlay { transition:opacity .35s ease; }
.gallery-item .gallery-overlay-title {
  transform:translateY(12px);
  transition:transform .35s ease .05s, opacity .35s ease;
  opacity:0;
}
.gallery-item:hover .gallery-overlay-title { transform:translateY(0); opacity:1; }
.gallery-item .gallery-overlay-icon {
  transform:scale(.7);
  transition:transform .3s cubic-bezier(.34,1.56,.64,1);
}
.gallery-item:hover .gallery-overlay-icon { transform:scale(1); }

/* ---- MASONRY GALLERY ---- */
.gallery-masonry {
  columns:4; column-gap:1rem;
}
.gallery-masonry .gallery-item {
  break-inside:avoid; margin-bottom:1rem;
  aspect-ratio:unset; display:block;
}
.gallery-masonry .gallery-item img { height:auto; width:100%; }
.gallery-masonry .gallery-item.tall img { aspect-ratio:3/4; object-fit:cover; }
.gallery-masonry .gallery-item.wide img { aspect-ratio:4/3; object-fit:cover; }
.gallery-masonry .gallery-item.square img { aspect-ratio:1/1; object-fit:cover; }

/* --- Lightbox v2: scale-in animation --- */
#lightbox { animation:none; }
#lightbox.open { animation:lbFadeIn .25s ease forwards; }
@keyframes lbFadeIn { from{opacity:0} to{opacity:1} }
#lightbox-img { animation:none; }
#lightbox.open #lightbox-img { animation:lbZoomIn .3s cubic-bezier(.34,1.56,.64,1) forwards; }
@keyframes lbZoomIn { from{transform:scale(.85);opacity:0} to{transform:scale(1);opacity:1} }

/* Lightbox nav arrows */
.lb-arrow {
  position:absolute; top:50%; transform:translateY(-50%);
  width:3rem; height:3rem; border-radius:50%;
  background:rgba(255,255,255,.15); color:#fff;
  display:flex; align-items:center; justify-content:center;
  font-size:1.5rem; cursor:pointer; border:none; font-family:inherit;
  transition:background .2s;
  user-select:none;
}
.lb-arrow:hover { background:rgba(255,255,255,.3); }
.lb-prev { left:1.25rem; }
.lb-next { right:4.5rem; }

/* --- Filter bar active pill slide --- */
.filter-bar { position:relative; }
.filter-btn { position:relative; z-index:1; }
.filter-btn.active::after {
  content:''; position:absolute; inset:0; border-radius:999px;
  background:var(--gradient-teal); z-index:-1;
}

/* --- Section number badges --- */
.section-num {
  display:inline-flex; align-items:center; justify-content:center;
  width:2.5rem; height:2.5rem; border-radius:50%;
  background:var(--gradient-teal); color:#fff;
  font-weight:800; font-size:.85rem; margin-bottom:.75rem;
}

/* --- Process step cards --- */
.process-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.5rem; position:relative; }
.process-grid::before {
  content:''; position:absolute; top:2.2rem; left:12.5%; right:12.5%;
  height:2px; background:linear-gradient(90deg,var(--teal),var(--cyan));
  z-index:0;
}
.process-card {
  background:#fff; border-radius:var(--r); padding:1.75rem 1.25rem 1.5rem;
  text-align:center; box-shadow:var(--shadow); position:relative; z-index:1;
  transition:var(--transition);
}
.process-card:hover { transform:translateY(-6px); box-shadow:var(--shadow-lg); }
.process-icon {
  width:4rem; height:4rem; border-radius:50%; margin:0 auto 1rem;
  background:var(--gradient-teal); display:flex; align-items:center;
  justify-content:center; font-size:1.5rem; color:#fff;
  box-shadow:var(--shadow-teal);
  transition:transform .35s cubic-bezier(.34,1.56,.64,1);
}
.process-card:hover .process-icon { transform:scale(1.15) rotate(-5deg); }
.process-step {
  position:absolute; top:-.6rem; right:-.6rem;
  width:1.6rem; height:1.6rem; border-radius:50%;
  background:var(--navy); color:#fff; font-size:.7rem;
  font-weight:800; display:flex; align-items:center; justify-content:center;
  border:2px solid #fff;
}
.process-title { font-size:1rem; font-weight:700; margin-bottom:.4rem; }
.process-desc { font-size:.8rem; color:var(--slate-500); line-height:1.6; }

/* --- Ticker / Marquee strip --- */
.ticker-wrap {
  overflow:hidden; background:var(--gradient-teal);
  padding:.6rem 0; position:relative;
}
.ticker-track {
  display:flex; gap:3rem;
  animation:tickerScroll 25s linear infinite;
  white-space:nowrap;
}
.ticker-item {
  display:flex; align-items:center; gap:.6rem;
  color:#fff; font-size:.85rem; font-weight:600;
  flex-shrink:0;
}
.ticker-dot { width:.4rem; height:.4rem; border-radius:50%; background:rgba(255,255,255,.5); }
@keyframes tickerScroll { from{transform:translateX(0)} to{transform:translateX(-50%)} }

/* --- Scroll progress bar at top --- */
#scroll-progress {
  position:fixed; top:0; left:0; height:3px; z-index:9999;
  background:var(--gradient-teal);
  width:0%; transition:width .1s linear;
}

/* ========================================
   25. RESPONSIVE — Full Mobile-First
   Breakpoints: 1024 | 768 | 480 | 374
======================================== */

/* ---- Tablet landscape / small laptop (≤1024px) ---- */
@media (max-width:1024px) {
  .hero-inner { grid-template-columns:1fr; text-align:center; gap:2rem; }
  .hero-visual { display:block; max-width:480px; margin:0 auto; }
  .hero-photo-wrap img { height:360px; }
  .hero-card { display:none; }
  .hero-badge { justify-content:center; }
  .hero-btns  { justify-content:center; }
  .hero-trust { justify-content:center; }
  .hero-stats { grid-template-columns:repeat(4,1fr); }
  .about-grid, .doctor-grid, .about-story-grid { grid-template-columns:1fr; gap:2.5rem; }
  .about-img-wrap img { height:360px; }
  .doctor-img-main img { height:360px; }
  .doctor-thumb { bottom:5rem; right:-1rem; width:4.5rem; height:4.5rem; }
  .services-grid { grid-template-columns:repeat(2,1fr); }
  .services-full-grid { grid-template-columns:repeat(2,1fr); }
  .why-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid { grid-template-columns:repeat(2,1fr); }
  .process-grid::before { display:none; }
  .gallery-grid { grid-template-columns:repeat(3,1fr); }
  .gallery-masonry { columns:3; }
  .footer-main { grid-template-columns:repeat(2,1fr); gap:2rem; }
  .contact-grid { grid-template-columns:1fr; gap:2.5rem; }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  /* Tablet: 2 per view. Math: 2*(50%-.75rem) + 1*1.5rem = 100% ✓ */
  .testimonial-card { flex:0 0 calc(50% - .75rem); }
  /* Arrows closer on tablet */
  .carousel-arrow-prev { left:-2.75rem; }
  .carousel-arrow-next { right:-2.75rem; }
  .about-story-grid > div:last-child > div:first-child { height:360px; }
}

/* ---- Tablet portrait / large phone (≤768px) ---- */
@media (max-width:768px) {
  /* --- Navbar --- */
  .nav-links, .nav-cta { display:none; }
  .nav-toggle { display:flex; }
  #navbar { padding:.8rem 0; }

  /* --- Hero --- */
  .hero { min-height:auto; padding:5.5rem 0 3.5rem; }
  .hero-inner { padding:1.5rem 0 2rem; }
  .hero-title { font-size:clamp(1.85rem,6vw,2.6rem); }
  .hero-desc { font-size:.95rem; margin:0 auto 1.75rem; max-width:90%; }
  .hero-btns { flex-wrap:wrap; justify-content:center; gap:.6rem; }
  .hero-trust { flex-wrap:wrap; justify-content:center; }
  .hero-stats { grid-template-columns:repeat(2,1fr); gap:.75rem; margin-top:1.5rem; }
  .hero-stat { padding:1.1rem .75rem; }
  .hero-stat-num { font-size:1.55rem; }
  .hero-stat-lbl { font-size:.75rem; }
  .hero-wave svg { height:40px; }
  .hero-card { display:none; }

  /* --- Sections --- */
  .section { padding:clamp(2.5rem,6vw,4rem) 0; }
  .section-header { margin-bottom:2.25rem; }

  /* --- About --- */
  .about-img-wrap img { height:270px; }
  .about-checklist { grid-template-columns:1fr; }
  .about-stats { grid-template-columns:repeat(2,1fr); gap:1rem; }
  .float-badge { display:none; }
  .action-grid { grid-template-columns:1fr; gap:.75rem; margin-top:1.75rem; }
  .action-card { height:190px; }

  /* --- Doctor --- */
  .doctor-img-main img { height:290px; }
  .doctor-thumb { display:none; }
  .doctor-bio { font-size:.875rem; line-height:1.7; }
  .doctor-tags { gap:.4rem; flex-wrap:wrap; }
  .doctor-tag { font-size:.75rem; padding:.35rem .75rem; }
  .doctor-langs { flex-wrap:wrap; gap:.5rem; }
  .doctor-quals { gap:.5rem; }
  .doctor-qual-text { font-size:.875rem; }

  /* --- Services --- */
  .services-grid { grid-template-columns:1fr; }
  .services-full-grid { grid-template-columns:1fr; }
  .scf-img { height:230px; }
  .service-img { height:200px; }

  /* --- Why --- */
  .why-grid { grid-template-columns:1fr; }
  .why-num { font-size:2.5rem; right:.75rem; }

  /* --- Process --- */
  .process-grid { grid-template-columns:repeat(2,1fr); gap:1rem; }
  .process-grid::before { display:none; }
  .process-card { padding:1.5rem 1.1rem; }

  /* --- Testimonials --- */
  /* Mobile: 1 per view. flex:0 0 100% → card = wrap width → translateX(wrap.clientWidth) is exact ✓ */
  .testimonial-card { flex:0 0 100%; }
  .testimonials-track { gap:0; }
  /* On mobile, move arrows inside the track edges so they don't go off-screen */
  .carousel-arrow-prev { left:.25rem; }
  .carousel-arrow-next { right:.25rem; }
  .carousel-arrow { width:2.2rem; height:2.2rem; font-size:.95rem; opacity:.85; }
  .rating-strip { flex-direction:column; text-align:center; gap:.5rem; padding:.9rem 1.25rem; border-radius:var(--r-sm); }

  /* --- Gallery --- */
  .gallery-grid { grid-template-columns:repeat(2,1fr); gap:.65rem; }
  .gallery-masonry { columns:2; column-gap:.65rem; }

  /* --- Stats --- */
  .stats-grid { grid-template-columns:repeat(2,1fr); }

  /* --- Values --- */
  .values-grid { grid-template-columns:1fr; }

  /* --- About story sub-thumbnails --- */
  .about-story-thumbnails { grid-template-columns:1fr !important; }

  /* --- Footer --- */
  .footer-main { grid-template-columns:1fr; gap:1.75rem; padding:2.5rem 0 1.5rem; }
  .footer-top-inner { flex-direction:column; text-align:center; }
  .footer-top-btns { justify-content:center; flex-wrap:wrap; }
  .footer-bottom { flex-direction:column; align-items:center; text-align:center; gap:.5rem; }

  /* --- CTA --- */
  .cta-inner { flex-direction:column; text-align:center; }
  .cta-actions { justify-content:center; flex-wrap:wrap; }

  /* --- Contact --- */
  .contact-grid { grid-template-columns:1fr; gap:2rem; }
  .form-grid { grid-template-columns:1fr; }
  .map-wrap { height:16rem; margin-top:1.25rem; }

  /* --- Page hero --- */
  .page-hero { padding:5rem 0 2.5rem; }
  .page-hero h1 { font-size:clamp(1.6rem,5.5vw,2.4rem); }
  .page-hero p { font-size:.95rem; }

  /* --- Filter bar: horizontally scrollable --- */
  .filter-bar {
    flex-wrap:nowrap; overflow-x:auto; justify-content:flex-start;
    padding-bottom:.5rem; -webkit-overflow-scrolling:touch;
    scrollbar-width:none; gap:.4rem;
  }
  .filter-bar::-webkit-scrollbar { display:none; }
  .filter-btn { white-space:nowrap; flex-shrink:0; font-size:.8rem; padding:.48rem 1rem; }

  /* --- Floating action buttons --- */
  .floating-actions { bottom:.9rem; right:.9rem; gap:.55rem; }
  .whatsapp-btn, .instagram-btn, .call-btn { width:3.1rem; height:3.1rem; }
  .whatsapp-btn svg, .instagram-btn svg { width:1.5rem; height:1.5rem; }
  .call-btn svg { width:1.35rem; height:1.35rem; }
  .scroll-top { width:2.4rem; height:2.4rem; }
}

/* ---- Small phones (≤480px) ---- */
@media (max-width:480px) {
  .hero-stats { grid-template-columns:repeat(2,1fr); gap:.5rem; }
  .hero-btns { flex-direction:column; align-items:stretch; }
  .hero-btns .btn { justify-content:center; width:100%; }
  .hero-trust { flex-direction:column; align-items:center; gap:.65rem; }
  .hero-title { font-size:clamp(1.65rem,7vw,2.2rem); }
  .about-stats { grid-template-columns:repeat(2,1fr); }
  .about-img-wrap img { height:230px; }
  .doctor-img-main img { height:250px; }
  .stats-grid { grid-template-columns:repeat(2,1fr); }
  .gallery-grid { grid-template-columns:repeat(2,1fr); gap:.5rem; }
  .gallery-masonry { columns:1; }
  .footer-bottom { gap:.4rem; font-size:.75rem; }
  .scf-features { gap:.3rem; }
  .form-grid { grid-template-columns:1fr; }
  .form-box { padding:1.5rem 1.25rem; }
  .process-grid { grid-template-columns:1fr; }
  .process-icon { width:3.25rem; height:3.25rem; font-size:1.25rem; }
  .process-card { padding:1.4rem 1rem; }
  .contact-card { padding:.85rem 1rem; }
  .page-hero { padding:4.5rem 0 2rem; }
  .page-hero h1 { font-size:clamp(1.5rem,7vw,2rem); }
  .why-card { padding:1.5rem; }
  .testimonial-card { padding:1.4rem 1.5rem; }
  .hero-badge { font-size:.72rem; }
  .ticker-item { font-size:.75rem; }
  .ticker-track { gap:2rem; }
  .btn { padding:.75rem 1.5rem; font-size:.85rem; }
  .footer-top { padding:2rem 0; }
  .scf-img { height:210px; }
  .service-img { height:185px; }
  .section-header { margin-bottom:2rem; }
  /* About story: stack sub-thumbnails vertically on small phones */
  .about-story-thumbnails { grid-template-columns:1fr !important; }
  /* Doctor action grid: already 1 col; make images taller on small phones */
  .action-card { height:170px; }
  /* Services CTA buttons full width */
  .cta-actions { flex-direction:column; align-items:stretch; gap:.65rem; }
  .cta-actions .btn { justify-content:center; width:100%; }
  /* Nav toggle touch target */
  .nav-toggle { padding:.6rem; }
  /* Mobile menu links bigger tap target */
  .mobile-links a { padding:1rem 1rem; }
}

/* ---- Tiny phones (≤374px) ---- */
@media (max-width:374px) {
  html { font-size:15px; }
  .container { padding:0 .85rem; }
  .section { padding:2.25rem 0; }
  .hero { padding:5rem 0 3rem; }
  .hero-stat-num { font-size:1.35rem; }
  .hero-stat-lbl { font-size:.7rem; }
  .gallery-grid { grid-template-columns:1fr 1fr; gap:.4rem; }
  .filter-btn { padding:.4rem .8rem; font-size:.74rem; }
  .btn { padding:.65rem 1.2rem; font-size:.82rem; }
  .hero-stats { gap:.4rem; }
  .hero-stat { padding:.7rem .5rem; }
  .footer-col-links a { font-size:.82rem; }
  .testimonial-card { padding:1.25rem 1.1rem; }
  .doctor-langs { gap:.35rem; }
  .lang-pill { font-size:.72rem; padding:.2rem .6rem; }
  .why-num { font-size:2rem; }
  .stat-num, .hero-stat-num, .about-stat-num { font-size:1.6rem; }
  .scf-title { font-size:1rem; }
  .scf-body { padding:1.35rem 1rem 1rem; }
  .about-stats { gap:.65rem; }
  .section-header h2 { font-size:clamp(1.4rem,7vw,1.9rem); }
}

/* ========================================
   27. EXTRA CREATIVE ANIMATIONS & POLISH
======================================== */

/* ---- Hero clinic name neon glow ---- */
.hero-clinic-name {
  display:block;
  font-family:'DM Serif Display', Georgia, serif;
  font-size:clamp(1.3rem, 3.5vw, 2.4rem);
  font-weight:700;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#fbbf24;
  -webkit-text-fill-color:#fbbf24;
  background:none;
  -webkit-background-clip:unset;
  background-clip:unset;
  margin-top:.2rem;
  margin-bottom:1rem;
}
@keyframes clinicNeonPulse {
  0%, 100% {
    text-shadow:
      0 0 6px rgba(251,191,36,.8),
      0 0 16px rgba(249,115,22,.7),
      0 0 32px rgba(249,115,22,.4),
      0 0 60px rgba(249,115,22,.2);
    letter-spacing:.22em;
    color:#fbbf24;
  }
  50% {
    text-shadow:
      0 0 12px rgba(255,255,255,1),
      0 0 24px rgba(251,191,36,1),
      0 0 50px rgba(249,115,22,.9),
      0 0 90px rgba(249,115,22,.5),
      0 0 120px rgba(249,115,22,.2);
    letter-spacing:.28em;
    color:#fff8e1;
  }
}

/* ---- Hero em gradient (frozen) ---- */

/* ---- Hero photo subtle float ---- */
.hero-photo-wrap {
  animation:heroPhotoFloat 7s ease-in-out infinite;
}
@keyframes heroPhotoFloat {
  0%,100%{ transform:translateY(0px); }
  50%    { transform:translateY(-14px); }
}

/* ---- Testimonials carousel arrows (defined in section 14, no overrides needed here) ---- */

/* ---- Service card shine sweep on hover ---- */
.service-card::after {
  content:''; position:absolute; top:0; left:-100%; width:55%; height:100%;
  background:linear-gradient(120deg, transparent, rgba(255,255,255,.18), transparent);
  transition:left .6s ease; z-index:2; pointer-events:none;
}
.service-card:hover::after { left:150%; }

/* ---- About / doctor image zoom on hover ---- */
.about-img-wrap img   { transition:transform .65s ease; }
.doctor-img-main img  { transition:transform .65s ease; }
.about-img-wrap:hover img  { transform:scale(1.04); }
.doctor-img-main:hover img { transform:scale(1.04); }

/* ---- Large ghost number in why-card ---- */
.why-num {
  position:absolute; top:.5rem; right:1rem;
  font-family:'DM Serif Display',serif; font-size:4rem; font-weight:700;
  color:rgba(13,148,136,.06); line-height:1; pointer-events:none;
  user-select:none;
}

/* ---- Rating strip below testimonials ---- */
.rating-strip {
  display:flex; align-items:center; justify-content:center; gap:1.25rem;
  margin-top:2.25rem; padding:1rem 2rem; border-radius:999px;
  background:var(--teal-50); border:1px solid var(--teal-100);
  flex-wrap:wrap;
}
.rating-strip-stars { color:#fbbf24; font-size:1.1rem; letter-spacing:1px; }
.rating-strip-text  { font-size:.9rem; color:var(--slate-600); font-weight:500; }
.rating-strip-link  { font-size:.85rem; font-weight:700; color:var(--teal); }
.rating-strip-link:hover { text-decoration:underline; }

/* ---- Process icon bounce on hover ---- */
@keyframes iconBounce {
  0%,100%{ transform:translateY(0) scale(1); }
  35%    { transform:translateY(-12px) scale(1.12); }
  65%    { transform:translateY(-5px) scale(1.06); }
}
.process-card:hover .process-icon {
  animation:iconBounce .55s ease forwards;
}

/* ---- Staggered reveal for grid items ---- */
.services-grid .service-card:nth-child(1) { transition-delay:.05s; }
.services-grid .service-card:nth-child(2) { transition-delay:.12s; }
.services-grid .service-card:nth-child(3) { transition-delay:.19s; }
.services-grid .service-card:nth-child(4) { transition-delay:.26s; }
.services-grid .service-card:nth-child(5) { transition-delay:.33s; }
.services-grid .service-card:nth-child(6) { transition-delay:.40s; }
.why-grid .why-card:nth-child(1) { transition-delay:.05s; }
.why-grid .why-card:nth-child(2) { transition-delay:.12s; }
.why-grid .why-card:nth-child(3) { transition-delay:.19s; }
.why-grid .why-card:nth-child(4) { transition-delay:.26s; }
.why-grid .why-card:nth-child(5) { transition-delay:.33s; }
.why-grid .why-card:nth-child(6) { transition-delay:.40s; }

/* ---- Why card bottom bar on hover ---- */
.why-card { position:relative; overflow:hidden; }

/* ---- Hero stat card subtle shimmer ---- */
.hero-stat:hover {
  background:rgba(255,255,255,.18);
  transform:translateY(-2px);
  transition:var(--transition);
}

/* ---- Floating badge rotation on hover ---- */
.float-badge:hover { transform:rotate(-3deg) scale(1.05) !important; transition:transform .3s ease; }

/* ---- CTA section text glow ---- */
.cta-text h2 { text-shadow:0 4px 30px rgba(255,255,255,.12); }

/* ---- Gallery masonry: hover lift ---- */
.gallery-masonry .gallery-item:hover {
  transform:translateY(-4px);
  box-shadow:0 16px 40px rgba(232,118,42,.2);
  transition:transform .3s ease, box-shadow .3s ease;
}

/* Carousel responsive rules are in section 25 above */
