/* ==========================================================================
   NEW LIFE HOSPITAL — DESIGN SYSTEM
   Palette derived from the hospital logo: magenta/rose figure + green leaf hand.
   Display type: Fraunces (editorial serif) · Body/UI: Manrope (clean geometric sans)
   Signature motif: a marigold-garland dot divider, echoing the floral garlands
   photographed at the hospital's own entrance.
   ========================================================================== */

:root{
  --primary: #C8125F;
  --primary-dark: #8E0C46;
  --primary-light: #F6D4E3;
  --secondary: #5C9E0A;
  --secondary-dark: #3E6E07;
  --secondary-light: #E4F1D2;
  --accent: #D99A2B;
  --bg: #FBF9F6;
  --surface: #FFFFFF;
  --ink: #201B21;
  --ink-soft: #3A333B;
  --muted: #766D74;
  --border: #E9E1E3;

  --font-display: "Fraunces", Georgia, serif;
  --font-body: "Manrope", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --container: 1240px;
  --radius-sm: 6px;
  --radius-md: 14px;
  --radius-lg: 26px;

  --shadow-sm: 0 2px 10px rgba(32, 27, 33, 0.06);
  --shadow-md: 0 12px 32px rgba(32, 27, 33, 0.10);
  --shadow-lg: 0 24px 60px rgba(32, 27, 33, 0.16);

  --ease: cubic-bezier(.22,1,.36,1);
}

/* ---------- Reset ---------- */
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; }
body{
  margin:0;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--bg);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
h1,h2,h3,h4{ font-family: var(--font-display); margin:0; font-weight:600; color: var(--ink); }
p{ margin:0; }
button{ font-family:inherit; cursor:pointer; }
input,select,textarea{ font-family:inherit; font-size:1rem; }

:focus-visible{
  outline: 2.5px solid var(--primary);
  outline-offset: 3px;
  border-radius: 4px;
}

@media (prefers-reduced-motion: reduce){
  *{ animation-duration: 0.001ms !important; animation-iteration-count: 1 !important; transition-duration: 0.001ms !important; scroll-behavior: auto !important; }
}

/* ---------- Utility ---------- */
.eyebrow{
  font-family: var(--font-body);
  font-weight: 700;
  font-size: 0.78rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--primary);
  margin-bottom: 14px;
  display:inline-block;
}
.eyebrow-light{ color: var(--accent); }
.eyebrow-center{ display:block; text-align:center; }

.section-title{
  font-size: clamp(1.9rem, 3.4vw, 2.7rem);
  line-height: 1.16;
  letter-spacing: -0.01em;
  max-width: 640px;
}
.section-title-center{ margin: 0 auto 48px; text-align:center; max-width: 700px; }
.section-title-light{ color: var(--surface); }

.lead-text{
  font-size: 1.06rem;
  line-height: 1.65;
  color: var(--muted);
  margin-top: 18px;
  max-width: 520px;
}
.lead-text-light{ color: rgba(255,255,255,0.78); }

.reveal-up{
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.7s var(--ease), transform 0.7s var(--ease);
}
.reveal-up.is-visible{ opacity:1; transform: translateY(0); }

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  font-weight: 700; font-size: 0.92rem;
  padding: 13px 26px;
  border-radius: 999px;
  border: 1.5px solid transparent;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), background 0.25s var(--ease), color 0.25s var(--ease);
  white-space: nowrap;
}
.btn-primary{ background: var(--primary); color:#fff; box-shadow: var(--shadow-sm); }
.btn-primary:hover{ background: var(--primary-dark); transform: translateY(-2px); box-shadow: var(--shadow-md); }
.btn-outline{ background: transparent; border-color: var(--border); color: var(--ink); }
.btn-outline:hover{ border-color: var(--primary); color: var(--primary); transform: translateY(-2px); }
.btn-ghost-light{ background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.5); color:#fff; backdrop-filter: blur(6px); }
.btn-ghost-light:hover{ background: rgba(255,255,255,0.22); transform: translateY(-2px); }
.btn-large{ padding: 15px 30px; font-size: 0.98rem; }
.btn-small{ padding: 9px 18px; font-size: 0.84rem; }
.btn-full{ width:100%; }

.text-link{
  display:inline-flex; align-items:center; gap:6px;
  font-weight:700; color: var(--primary);
  margin-top: 22px;
  transition: gap 0.25s var(--ease);
}
.text-link:hover{ gap:11px; }

/* ==========================================================================
   HEADER / NAV
   ========================================================================== */
.site-header{
  position: fixed; top:0; left:0; right:0; z-index: 500;
  background: rgba(251,249,246,0.7);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid transparent;
  transition: background 0.35s var(--ease), border-color 0.35s var(--ease), padding 0.35s var(--ease);
}
.site-header.scrolled{
  background: rgba(251,249,246,0.94);
  border-bottom-color: var(--border);
  box-shadow: var(--shadow-sm);
}
.nav-wrap{
  max-width: var(--container); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between;
  padding: 18px 28px;
  transition: padding 0.35s var(--ease);
}
.site-header.scrolled .nav-wrap{ padding: 11px 28px; }

.brand{ display:flex; align-items:center; gap:11px; }
.brand-mark{ width:42px; height:42px; object-fit:contain; transition: width 0.3s var(--ease), height 0.3s var(--ease); }
.site-header.scrolled .brand-mark{ width:34px; height:34px; }
.brand-text{ display:flex; flex-direction:column; line-height:1.15; }
.brand-name{ font-family: var(--font-display); font-weight:600; font-size:1.06rem; color: var(--ink); }
.brand-loc{ font-size:0.72rem; color: var(--muted); letter-spacing:0.03em; }

.main-nav{ display:flex; align-items:center; gap:30px; }
.main-nav a{
  font-size:0.92rem; font-weight:600; color: var(--ink-soft);
  position:relative; padding: 4px 0;
}
.main-nav a::after{
  content:""; position:absolute; left:0; bottom:-2px; width:0; height:2px;
  background: var(--primary); transition: width 0.28s var(--ease);
}
.main-nav a:hover::after{ width:100%; }
.main-nav a:hover{ color: var(--primary); }

.nav-actions{ display:flex; align-items:center; gap:16px; }
.nav-phone{ display:flex; align-items:center; gap:7px; font-weight:700; font-size:0.86rem; color: var(--ink-soft); }
.nav-phone:hover{ color: var(--primary); }

.hamburger{
  display:none; flex-direction:column; justify-content:center; gap:5px;
  width:38px; height:38px; background:none; border:none; padding:0;
}
.hamburger span{ display:block; width:22px; height:2px; background: var(--ink); border-radius:2px; transition: transform 0.3s var(--ease), opacity 0.3s var(--ease); margin:0 auto; }
.hamburger.open span:nth-child(1){ transform: translateY(7px) rotate(45deg); }
.hamburger.open span:nth-child(2){ opacity:0; }
.hamburger.open span:nth-child(3){ transform: translateY(-7px) rotate(-45deg); }

.mobile-menu-backdrop{
  position: fixed; inset:0; z-index: 590;
  background: rgba(20,10,16,0.45);
  opacity:0; pointer-events:none;
  transition: opacity 0.35s var(--ease);
}
.mobile-menu-backdrop.open{ opacity:1; pointer-events:auto; }

.mobile-menu{
  position: fixed; top:0; right:0; height:100vh; width: min(78vw, 320px);
  background: var(--surface); z-index: 600;
  display:flex; flex-direction:column; gap:22px;
  padding: 90px 30px 40px;
  transform: translateX(100%);
  transition: transform 0.4s var(--ease);
  box-shadow: var(--shadow-lg);
}
.mobile-menu.open{ transform: translateX(0); }
.mobile-menu a{ font-size:1.05rem; font-weight:700; color: var(--ink); }
.mobile-menu .btn{ margin-top:10px; }
.mobile-menu-phones{ margin-top:auto; display:flex; flex-direction:column; gap:8px; }
.mobile-menu-phones a{ font-size:0.9rem; color: var(--primary); }

.mobile-menu-close{
  position:absolute; top:22px; right:24px;
  width:40px; height:40px; border-radius:50%;
  background: var(--bg); border:1px solid var(--border); color: var(--ink);
  display:flex; align-items:center; justify-content:center;
  transition: background 0.25s var(--ease), color 0.25s var(--ease), transform 0.25s var(--ease);
}
.mobile-menu-close:hover{ background: var(--primary); color:#fff; transform: rotate(90deg); }

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  position: relative; min-height: 100vh;
  display:flex; flex-direction:column; justify-content:center;
  overflow:hidden;
  padding: 140px 28px 130px;
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; object-position: center 30%; }
.hero-scrim{
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(20,10,16,0.55) 0%, rgba(20,10,16,0.55) 30%, rgba(20,10,16,0.78) 100%),
              linear-gradient(90deg, rgba(20,10,16,0.55) 0%, rgba(20,10,16,0.15) 55%);
}
.hero-content{ position:relative; z-index:2; max-width: 720px; }
.hero-title{
  font-size: clamp(2.4rem, 5.4vw, 4.1rem);
  line-height: 1.08; letter-spacing: -0.015em;
  color: #fff; margin: 0 0 22px;
}
.hero-title em{ font-style: italic; font-weight:500; color: #F7D9E4; }
.hero-sub{ color: rgba(255,255,255,0.86); font-size: 1.08rem; line-height:1.6; max-width: 520px; margin-bottom: 34px; }
.hero-actions{ display:flex; gap:16px; flex-wrap:wrap; }

.hero-float-card{
  position:relative; z-index:2; margin-top: 56px;
  background: rgba(255,255,255,0.94); backdrop-filter: blur(10px);
  border-radius: var(--radius-md);
  padding: 20px 26px;
  max-width: 430px;
  box-shadow: var(--shadow-lg);
}
.hero-float-row{ display:flex; align-items:flex-start; gap:12px; }
.hero-float-row strong{ display:block; font-size:0.92rem; color: var(--ink); }
.hero-float-row span{ display:block; font-size:0.82rem; color: var(--muted); margin-top:2px; }
.hero-float-icon{ color: var(--primary); flex-shrink:0; margin-top:2px; }
.hero-float-divider{ height:1px; background: var(--border); margin: 14px 0; }

.garland{
  position:absolute; left:0; right:0; bottom:0; height:14px; z-index:2;
  background-image: radial-gradient(circle, var(--accent) 3px, transparent 3.5px),
                     radial-gradient(circle, var(--primary) 3px, transparent 3.5px),
                     radial-gradient(circle, var(--secondary) 3px, transparent 3.5px);
  background-size: 46px 14px, 46px 14px, 46px 14px;
  background-position: 0 0, 16px 4px, 32px 0;
  background-repeat: repeat-x;
  opacity: 0.9;
}

/* ==========================================================================
   TRUST BAR
   ========================================================================== */
.trust-bar{
  background: var(--surface);
  border-bottom: 1px solid var(--border);
  display:flex; flex-wrap:wrap; justify-content:center;
  gap: 20px 52px;
  padding: 34px 28px;
}
.trust-item{ display:flex; align-items:center; gap:12px; color: var(--ink-soft); }
.trust-item svg{ color: var(--secondary); flex-shrink:0; }
.trust-item span{ font-weight:700; font-size:0.9rem; }

/* ==========================================================================
   ABOUT
   ========================================================================== */
.about{
  max-width: var(--container); margin: 0 auto;
  padding: 110px 28px 90px;
  display:grid; grid-template-columns: 1.05fr 1fr; gap: 76px; align-items:center;
}
.about-media{ position:relative; }
.about-img-main{
  border-radius: var(--radius-lg);
  width:100%; height: 520px; object-fit:cover;
  box-shadow: var(--shadow-md);
}
.about-img-float{
  position:absolute; width: 46%; border-radius: var(--radius-md);
  box-shadow: var(--shadow-lg);
  bottom: -42px; right: -34px;
  border: 6px solid var(--surface);
}
.about-copy .lead-text{ max-width:none; }
.about-copy p + p{ margin-top: 16px; color: var(--ink-soft); line-height:1.7; }

/* ==========================================================================
   OUR APPROACH
   ========================================================================== */
.approach{ background: var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding: 100px 28px; }
.approach-inner{ max-width: var(--container); margin:0 auto; display:grid; grid-template-columns: 0.8fr 1.2fr; gap: 70px; align-items:start; }
.approach-copy .lead-text{ max-width:none; }
.approach-list{ display:flex; flex-direction:column; gap:34px; }
.approach-item{ display:flex; gap:22px; align-items:flex-start; }
.approach-num{ font-family: var(--font-display); font-size:1.7rem; font-weight:600; color: var(--primary-light); flex-shrink:0; line-height:1; }
.approach-item h3{ font-size:1.1rem; margin-bottom:8px; }
.approach-item p{ color: var(--muted); line-height:1.65; font-size:0.95rem; max-width:440px; }

/* ==========================================================================
   CTA BAND
   ========================================================================== */
.cta-band{ background: var(--secondary-light); padding: 44px 28px; }
.cta-band-inner{
  max-width: var(--container); margin:0 auto;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
}
.cta-band-inner h3{ font-size:1.2rem; margin-bottom:4px; }
.cta-band-inner p{ color: var(--muted); font-size:0.92rem; }

/* ==========================================================================
   WELLNESS TIPS
   ========================================================================== */
.wellness{ max-width: var(--container); margin: 0 auto; padding: 100px 28px; }
.wellness-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.wellness-card{ background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-md); padding: 28px 24px; transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease); }
.wellness-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); }
.wellness-card svg{ color: var(--primary); margin-bottom:16px; }
.wellness-card h3{ font-size:1.02rem; margin-bottom:8px; }
.wellness-card p{ color: var(--muted); font-size:0.88rem; line-height:1.55; }

/* ==========================================================================
   FAQ
   ========================================================================== */
.faq{ max-width: 820px; margin: 0 auto; padding: 100px 28px; }
.faq-list{ display:flex; flex-direction:column; gap:14px; }
.faq-item{ background: var(--surface); border:1px solid var(--border); border-radius: var(--radius-md); overflow:hidden; }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between;
  background:none; border:none; padding: 20px 24px; text-align:left;
  font-family: var(--font-display); font-size:1.04rem; font-weight:600; color: var(--ink);
}
.faq-q svg{ color: var(--primary); flex-shrink:0; transition: transform 0.3s var(--ease); }
.faq-item.open .faq-q svg{ transform: rotate(45deg); }
.faq-a{ max-height:0; overflow:hidden; transition: max-height 0.35s var(--ease); }
.faq-a p{ padding: 0 24px 22px; color: var(--muted); line-height:1.65; font-size:0.94rem; }

.section-divider{ height: 90px; }
.garland-divider{
  background-image: radial-gradient(circle, var(--primary) 3px, transparent 3.5px),
                     radial-gradient(circle, var(--accent) 3px, transparent 3.5px),
                     radial-gradient(circle, var(--secondary) 3px, transparent 3.5px);
  background-size: 46px 14px, 46px 14px, 46px 14px;
  background-position: 0 44px, 16px 48px, 32px 44px;
  background-repeat: repeat-x;
  opacity:0.55;
}

/* ==========================================================================
   DOCTORS
   ========================================================================== */
.doctors{ max-width: var(--container); margin:0 auto; padding: 20px 28px 100px; }
.doctors-intro{ max-width: 640px; margin: 0 auto 70px; text-align:center; }
.doctors-intro .section-title{ margin: 0 auto; }
.doctors-intro .lead-text{ margin: 18px auto 0; }

.doctor-block{
  display:grid; grid-template-columns: 0.85fr 1fr; gap: 64px; align-items:center;
  margin-bottom: 100px;
}
.doctor-block:last-child{ margin-bottom:0; }
.doctor-block-reverse{ grid-template-columns: 1fr 0.85fr; }
.doctor-block-reverse .doctor-portrait{ order:2; }
.doctor-block-reverse .doctor-info{ order:1; }

.doctor-portrait{ position:relative; }
.doctor-portrait img{
  position:relative; z-index:2;
  width: 100%; aspect-ratio: 4/5; object-fit:cover; object-position: top center;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-lg);
}
.doctor-portrait-panel{
  position:absolute; z-index:1; width:88%; height:88%;
  background: var(--primary-light);
  border-radius: var(--radius-lg);
  top: -22px; left: -22px;
}
.doctor-portrait-panel-alt{ background: var(--secondary-light); top:-22px; left:auto; right:-22px; }

.doctor-index{ font-size:0.8rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color: var(--secondary-dark); }
.doctor-info h3{ font-size: clamp(1.6rem, 2.6vw, 2.1rem); margin: 10px 0 6px; }
.doctor-quals{ color: var(--muted); font-weight:600; font-size:0.95rem; margin-bottom:16px; }
.doctor-tags{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; }
.doctor-tags span{
  background: var(--surface); border:1.5px solid var(--border);
  padding: 6px 14px; border-radius:999px; font-size:0.8rem; font-weight:700; color: var(--ink-soft);
}
.doctor-bio{ color: var(--ink-soft); line-height:1.7; margin-bottom:24px; max-width:440px; }

/* ==========================================================================
   EXPERTISE
   ========================================================================== */
.expertise{ background: var(--surface); border-top:1px solid var(--border); border-bottom:1px solid var(--border); padding: 100px 28px; }
.expertise-grid{
  max-width: var(--container); margin: 0 auto;
  display:grid; grid-template-columns: repeat(3, 1fr); gap: 22px;
}
.expertise-card{
  background: var(--bg); border:1px solid var(--border); border-radius: var(--radius-md);
  padding: 32px 28px; transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s var(--ease);
}
.expertise-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-md); border-color: var(--primary-light); }
.expertise-card-large{ grid-column: span 2; grid-row: span 2; background: linear-gradient(160deg, var(--primary) 0%, var(--primary-dark) 100%); border:none; }
.expertise-card-large *{ color:#fff; }
.expertise-card-large .expertise-tag{ color: rgba(255,255,255,0.8); }
.expertise-card-large h3{ font-size: 1.7rem; margin: 14px 0 12px; }
.expertise-tag{ font-size:0.74rem; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; color: var(--primary); }
.expertise-card h3{ font-size:1.2rem; margin: 12px 0 8px; }
.expertise-card p{ color: var(--muted); line-height:1.6; font-size:0.94rem; }

/* ==========================================================================
   FACILITIES
   ========================================================================== */
.facilities{ max-width: var(--container); margin:0 auto; padding: 100px 28px; }
.facilities-intro{ max-width:600px; margin-bottom: 50px; }
.facilities-grid{
  display:grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 190px; gap:18px;
}
.fac-item{
  position:relative; border-radius: var(--radius-md); overflow:hidden; margin:0;
  box-shadow: var(--shadow-sm);
}
.fac-tall{ grid-row: span 2; }
.fac-item img{ width:100%; height:100%; object-fit:cover; transition: transform 0.6s var(--ease); }
.fac-item:hover img{ transform: scale(1.06); }
.fac-item figcaption{
  position:absolute; left:0; right:0; bottom:0;
  padding: 16px 18px 14px;
  background: linear-gradient(0deg, rgba(20,10,16,0.72), transparent);
  color:#fff; font-weight:700; font-size:0.88rem;
}

/* ==========================================================================
   WHY
   ========================================================================== */
.why{ background: var(--secondary-light); padding: 100px 28px; }
.why-grid{
  max-width: var(--container); margin:0 auto;
  display:grid; grid-template-columns: repeat(5, 1fr); gap: 20px;
}
.why-item{ background: var(--surface); border-radius: var(--radius-md); padding: 28px 22px; box-shadow: var(--shadow-sm); }
.why-item svg{ color: var(--secondary-dark); margin-bottom: 16px; }
.why-item h3{ font-size:1.02rem; margin-bottom:8px; }
.why-item p{ color: var(--muted); font-size:0.88rem; line-height:1.55; }

/* ==========================================================================
   JOURNEY
   ========================================================================== */
.journey{ max-width: var(--container); margin: 0 auto; padding: 100px 28px; }
.journey-track{
  display:grid; grid-template-columns: repeat(4, 1fr); gap: 30px;
  position: relative;
}
.journey-track::before{
  content:""; position:absolute; top:7px; left: 6%; right:6%; height:2px;
  background: repeating-linear-gradient(90deg, var(--border) 0 8px, transparent 8px 16px);
}
.journey-step{ position:relative; padding-top: 34px; }
.journey-dot{
  position:absolute; top:0; left:0; width:16px; height:16px; border-radius:50%;
  background: var(--primary); border: 3px solid var(--primary-light);
}
.journey-step h3{ font-size:1.12rem; margin-bottom:8px; }
.journey-step p{ color: var(--muted); font-size:0.92rem; line-height:1.6; }

/* ==========================================================================
   GALLERY
   ========================================================================== */
.gallery{ background: var(--ink); padding: 100px 28px; }
.gallery .eyebrow-center{ color: var(--accent); }
.gallery .section-title-center{ color: #fff; }
.gallery-grid{
  max-width: var(--container); margin:0 auto;
  display:grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 200px; gap: 14px;
}
.g-item{
  border:none; padding:0; border-radius: var(--radius-sm); overflow:hidden; background:none;
  position:relative;
}
.g-tall{ grid-row: span 2; }
.g-item img{ width:100%; height:100%; object-fit:cover; transition: transform 0.5s var(--ease), filter 0.5s var(--ease); }
.g-item:hover img{ transform: scale(1.07); }
.g-item::after{
  content:"\2922"; position:absolute; top:12px; right:12px; color:#fff;
  width:32px; height:32px; border-radius:50%; background: rgba(0,0,0,0.4);
  display:flex; align-items:center; justify-content:center; font-size:1rem;
  opacity:0; transition: opacity 0.3s var(--ease);
}
.g-item:hover::after{ opacity:1; }

.lightbox{
  position: fixed; inset:0; z-index: 900;
  background: rgba(10,6,9,0.92);
  display:flex; align-items:center; justify-content:center;
  opacity:0; pointer-events:none; transition: opacity 0.3s var(--ease);
  padding: 40px;
}
.lightbox.open{ opacity:1; pointer-events:auto; }
.lightbox img{ max-width: 90vw; max-height: 86vh; border-radius: 10px; box-shadow: var(--shadow-lg); }
.lightbox-close{
  position:absolute; top:26px; right:30px; background:none; border:none; color:#fff;
  font-size: 2.2rem; line-height:1; cursor:pointer;
}

/* ==========================================================================
   TESTIMONIALS
   ========================================================================== */
.testimonials{ max-width: var(--container); margin: 0 auto; padding: 100px 28px; }
.testimonial-empty{
  max-width: 560px; margin: 0 auto; text-align:center;
  background: var(--surface); border: 1.5px dashed var(--border);
  border-radius: var(--radius-lg); padding: 50px 40px;
}
.testimonial-empty svg{ color: var(--primary-light); margin-bottom: 18px; }
.testimonial-empty p{ color: var(--ink-soft); line-height:1.7; }

/* ==========================================================================
   INSTAGRAM CTA
   ========================================================================== */
.instagram-cta{ padding: 20px 28px 100px; }
.instagram-inner{
  max-width: 560px; margin: 0 auto; text-align:center;
  background: linear-gradient(160deg, var(--primary-light), var(--secondary-light));
  border-radius: var(--radius-lg); padding: 54px 40px;
}
.instagram-inner svg{ color: var(--primary-dark); margin-bottom:16px; }
.instagram-inner h2{ font-size:1.6rem; margin-bottom:10px; }
.instagram-inner p{ color: var(--ink-soft); margin-bottom: 24px; }

/* ==========================================================================
   APPOINTMENT
   ========================================================================== */
.appointment{
  background: var(--ink);
  padding: 100px 28px;
  display:grid; grid-template-columns: 0.9fr 1.1fr; gap: 70px;
  max-width: var(--container); margin: 0 auto; border-radius: var(--radius-lg);
}
.appointment-phones{ display:flex; flex-direction:column; gap:14px; margin-top: 30px; }
.appointment-phones a{ display:flex; align-items:center; gap:10px; color:#fff; font-weight:700; font-size:1.05rem; }
.appointment-phones a:hover{ color: var(--accent); }

.appointment-form{ background: var(--surface); border-radius: var(--radius-md); padding: 36px; box-shadow: var(--shadow-lg); }
.form-row{ display:grid; grid-template-columns: 1fr 1fr; gap:18px; }
.form-field{ margin-bottom: 18px; }
.form-field label{ display:block; font-weight:700; font-size:0.85rem; margin-bottom:7px; color: var(--ink-soft); }
.optional{ font-weight:500; color: var(--muted); }
.form-field input, .form-field select, .form-field textarea{
  width:100%; padding: 12px 14px; border-radius: var(--radius-sm);
  border: 1.5px solid var(--border); background: var(--bg); color: var(--ink);
  transition: border-color 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-light); outline:none;
}
.field-error{ display:none; color: var(--primary-dark); font-size:0.78rem; margin-top:6px; }
.form-field.invalid input, .form-field.invalid select, .form-field.invalid textarea{ border-color: var(--primary); }
.form-field.invalid .field-error{ display:block; }
.form-note{ margin-top:16px; font-size:0.9rem; font-weight:600; text-align:center; color: var(--secondary-dark); min-height: 1.2em; }

/* ==========================================================================
   CONTACT
   ========================================================================== */
.contact{
  max-width: var(--container); margin:0 auto; padding: 100px 28px;
  display:grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items:stretch;
}
.contact-list{ margin-top: 26px; display:flex; flex-direction:column; gap:18px; }
.contact-list li{ display:flex; align-items:flex-start; gap:14px; }
.contact-list svg{ color: var(--primary); flex-shrink:0; margin-top:2px; }
.contact-list a{ color: var(--primary); font-weight:700; }
.contact-list a:hover{ text-decoration:underline; }
.contact-ctas{ display:flex; gap:14px; margin-top: 30px; flex-wrap:wrap; }
.contact-map{ border-radius: var(--radius-lg); overflow:hidden; min-height: 340px; box-shadow: var(--shadow-md); }
.contact-map iframe{ width:100%; height:100%; border:0; min-height:340px; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{ background: var(--ink); color: rgba(255,255,255,0.75); padding: 80px 28px 30px; }
.footer-grid{
  max-width: var(--container); margin: 0 auto;
  display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 50px;
  padding-bottom: 50px; border-bottom: 1px solid rgba(255,255,255,0.12);
}
.footer-brand img{ width:46px; height:46px; object-fit:contain; margin-bottom:16px; filter: brightness(0) invert(1); opacity:0.92; }
.footer-brand p{ font-size:0.9rem; line-height:1.65; max-width:280px; }
.footer-col h4{ color:#fff; font-family: var(--font-body); font-size:0.82rem; letter-spacing:0.08em; text-transform:uppercase; margin-bottom:18px; }
.footer-col{ display:flex; flex-direction:column; gap:11px; }
.footer-col a{ font-size:0.9rem; }
.footer-col a:hover{ color:#fff; }
.footer-address{ font-size:0.85rem; line-height:1.6; margin-top:4px; opacity:0.8; }
.footer-bottom{ max-width: var(--container); margin: 0 auto; padding-top: 26px; font-size:0.82rem; }

/* ==========================================================================
   MOBILE STICKY BAR / BACK TO TOP
   ========================================================================== */
.mobile-sticky-bar{
  display:none; position: fixed; bottom:0; left:0; right:0; z-index: 400;
  background: var(--surface); border-top: 1px solid var(--border);
  box-shadow: 0 -6px 20px rgba(32,27,33,0.08);
}
.mobile-sticky-bar a{
  flex:1; display:flex; flex-direction:column; align-items:center; gap:4px;
  padding: 11px 0 9px; font-size:0.72rem; font-weight:700; color: var(--ink-soft);
}
.mobile-sticky-bar .sticky-primary{ background: var(--primary); color:#fff; }

.back-to-top{
  position: fixed; right: 22px; bottom: 22px; z-index: 400;
  width:44px; height:44px; border-radius:50%; background: var(--ink); color:#fff;
  border:none; display:flex; align-items:center; justify-content:center;
  box-shadow: var(--shadow-md);
  opacity:0; pointer-events:none; transform: translateY(8px);
  transition: opacity 0.3s var(--ease), transform 0.3s var(--ease);
}
.back-to-top.visible{ opacity:1; pointer-events:auto; transform:translateY(0); }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1200px){
  .why-grid{ grid-template-columns: repeat(3, 1fr); }
  .facilities-grid{ grid-template-columns: repeat(3, 1fr); }
  .wellness-grid{ grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 1024px){
  .main-nav{ display:none; }
  .nav-phone{ display:none; }
  .hamburger{ display:flex; }
  .about{ grid-template-columns: 1fr; gap: 90px; }
  .about-img-float{ width:52%; right:0; }
  .doctor-block, .doctor-block-reverse{ grid-template-columns: 1fr; gap:36px; }
  .doctor-block-reverse .doctor-portrait{ order:1; }
  .doctor-block-reverse .doctor-info{ order:2; }
  .doctor-portrait{ max-width: 420px; margin: 0 auto; }
  .expertise-grid{ grid-template-columns: repeat(2, 1fr); }
  .expertise-card-large{ grid-column: span 2; grid-row: span 1; }
  .journey-track{ grid-template-columns: repeat(2, 1fr); row-gap: 40px; }
  .journey-track::before{ display:none; }
  .appointment{ grid-template-columns: 1fr; border-radius: 0; }
  .contact{ grid-template-columns: 1fr; }
  .approach-inner{ grid-template-columns: 1fr; gap:40px; }
}

@media (max-width: 768px){
  .why-grid{ grid-template-columns: repeat(2, 1fr); }
  .facilities-grid{ grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; }
  .gallery-grid{ grid-template-columns: repeat(2, 1fr); grid-auto-rows: 170px; }
  .hero{ padding: 120px 20px 150px; min-height: 96vh; }
  .hero-float-card{ max-width: 100%; }
  .trust-bar{ gap: 16px 30px; padding: 26px 20px; }
  .mobile-sticky-bar{ display:flex; }
  .back-to-top{ bottom: 78px; }
  body{ padding-bottom: 0; }
}

@media (max-width: 640px){
  .about, .doctors, .expertise, .facilities, .why, .journey, .gallery, .testimonials, .instagram-cta, .appointment, .contact, .approach, .wellness, .faq{ padding-left: 20px; padding-right: 20px; }
  .wellness-grid{ grid-template-columns: 1fr; }
  .cta-band-inner{ flex-direction: column; align-items:flex-start; }
  .cta-band-inner .btn{ width:100%; justify-content:center; }
  .form-row{ grid-template-columns: 1fr; }
  .expertise-grid{ grid-template-columns: 1fr; }
  .expertise-card-large{ grid-column: span 1; }
  .why-grid{ grid-template-columns: 1fr; }
  .journey-track{ grid-template-columns: 1fr; }
  .about-img-main{ height: 360px; }
  .about-img-float{ width:60%; bottom:-26px; }
  .doctor-portrait-panel{ display:none; }
  .hero-actions{ flex-direction: column; align-items: stretch; }
  .hero-actions .btn{ width:100%; }
  .section-title{ font-size: clamp(1.6rem, 6vw, 2.2rem); }
}

@media (max-width: 480px){
  .facilities-grid, .gallery-grid{ grid-template-columns: 1fr; grid-auto-rows: 220px; }
  .fac-tall, .g-tall{ grid-row: span 1; }
  .appointment-form{ padding: 26px 20px; }
  .footer-grid{ grid-template-columns: 1fr; gap: 34px; }
  .nav-wrap{ padding: 14px 18px; }
}
