/* ============================================================================
   DESIGN SYSTEM v3 - "Clear Care"
   A sterile, clinical-but-warm visual language shared across the hub landing
   page and both specialist mini-sites.

   Structure (modular):
     01. Tokens & clinic themes         06. Page hero & trust strip
     02. Reset & base type              07. Home sections (dept, why, services,
     03. Buttons, chips, eyebrows           stats, testimonials, faq, blogs...)
     04. Utility nav + topbar           08. Banner & breadcrumbs
     05. Shared nav (sticky)            09. About / timeline / contact / forms
                                        10. Detail pages (services, blogs, sidebar)
                                        11. Footer + WhatsApp float
                                        12. Landing page (hub) components
                                        13. Reveal, responsive, reduced motion

   The <html data-clinic="..."> attribute selects the theme:
     - (none) / "hub"   -> neutral clinical (landing)
     - "gynec"          -> warm rose, serif display
     - "ortho"          -> cool teal, grotesk display
   All legacy CSS variable names used by page inline styles are preserved.
   ============================================================================ */

/* ============================================================================
   01. TOKENS
   ============================================================================ */
:root{
  /* shared neutral tokens - same ink, paper, line & shadows for the whole family */
  --ink:            #162a33;
  --paper:          #ffffff;
  --paper-2:        #f4f8fa;
  --line:           rgba(22,42,51,.12);
  --rose:           #0e7490;          /* accent alias - hub default (teal)      */
  --rose-deep:      #0a4d62;
  --rose-soft:      #e1f0f5;
  --gold:           #c08a3e;
  --wa:             #1fad57;
  --wa-dark:        #158a43;

  /* fonts - one body sans across the whole family; the DISPLAY voice is what
     tells each theme apart (see clinic blocks below):
       hub   -> Fraunces, neutral editorial
       gynec -> Fraunces italic, warm & soft
       ortho -> Space Grotesk, precise & clinical (single voice - no serif
               accents, so the orthopedic site never mixes in the gynec font) */
  --font-sans:      'Manrope','Inter',system-ui,-apple-system,sans-serif;
  --font-display:   'Fraunces',Georgia,'Times New Roman',serif;
  --font-serif:     'Fraunces',Georgia,'Times New Roman',serif;
  --font-body:      var(--font-sans);
  --font-display-style: normal;
  --font-display-weight: 560;

  /* shape + motion */
  --radius-sm: 10px;
  --radius:    18px;
  --radius-lg: 28px;
  --ease:      cubic-bezier(.22,.61,.36,1);
  --ease-soft: cubic-bezier(.33,0,.12,1);
  --maxw: 1200px;
  --shadow-1: 0 1px 2px rgba(22,42,51,.06), 0 12px 32px -14px rgba(22,42,51,.16);
  --shadow-2: 0 22px 52px -20px rgba(22,42,51,.28);
}

/* ---------- GYNAECOLOGIST - rose accent, soft serif voice ---------- */
[data-clinic="gynec"]{
  --paper:          #fffdfc;
  --paper-2:        #fbf0f4;
  --rose:           #a9415f;
  --rose-deep:      #7c2b46;
  --rose-soft:      #f3dbe3;
  --font-display:        'Fraunces',Georgia,'Times New Roman',serif;
  --font-serif:          'Fraunces',Georgia,'Times New Roman',serif;
  --font-display-style:  italic;
  --font-display-weight: 520;
}

/* ---------- ORTHOPEDIC - teal accent, grotesk voice (single font) ---------- */
[data-clinic="ortho"]{
  --paper:          #ffffff;
  --paper-2:        #eef6f9;
  --rose:           #0e7490;
  --rose-deep:      #0a4f63;
  --rose-soft:      #d3e8ef;
  --font-display:        'Space Grotesk','Manrope',system-ui,sans-serif;
  --font-serif:          'Space Grotesk','Manrope',system-ui,sans-serif;
  --font-display-style:  normal;
  --font-display-weight: 600;
}
/* ortho stays single-voice - accent words & quotes keep its own grotesk,
   never the gynec serif, and never a fake slanted italic. */
[data-clinic="ortho"] .hero h1 em,
[data-clinic="ortho"] .about-quote p{ font-style: normal; }

/* ---------- HUB (LANDING) - sterile clinical typography ---------- */
[data-clinic="hub"]{
  --font-sans:           'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --font-display:        'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --font-serif:          'Inter',system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --font-body:           var(--font-sans);
  --font-display-style:  normal;
  --font-display-weight: 700;
  letter-spacing:        -0.011em;
}

/* ============================================================================
   02. RESET & BASE
   ============================================================================ */
*,*::before,*::after{ margin:0; padding:0; box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.65;
  color: var(--ink);
  background: var(--paper);
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}
img{ max-width:100%; display:block; }
a{ text-decoration:none; color:inherit; transition: color .25s var(--ease); }
ul,ol{ list-style:none; }
button{ font:inherit; color:inherit; background:none; border:none; cursor:pointer; }
input,textarea,select{ font:inherit; }
svg{ display:block; }
::selection{ background: var(--rose); color:#fff; }

h1,h2,h3,h4,h5{
  font-family: var(--font-display);
  font-weight: var(--font-display-weight);
  font-style: var(--font-display-style);
  color: var(--ink);
  line-height: 1.15;
  letter-spacing: -.012em;
}
h1{ font-size: clamp(2.1rem,5vw,3.6rem); }
h2{ font-size: clamp(1.6rem,3.2vw,2.4rem); }
h3{ font-size: 1.2rem; }
h4{ font-size: 1.02rem; }
em{ font-style: italic; }

.container{ max-width: var(--maxw); margin:0 auto; padding:0 24px; }
.section{ padding: 92px 0; position:relative; }
.section-sm{ padding: 54px 0; }
.section.alt{ background: var(--paper-2); }

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

/* ---------- shared type helpers ---------- */
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-family: var(--font-sans);
  font-size: 12.5px; font-weight:700;
  letter-spacing: .14em; text-transform: uppercase;
  color: var(--rose-deep);
}
.eyebrow::before{
  content:''; width:26px; height:2px; border-radius:2px;
  background: currentColor; opacity:.5;
}
.section-head{ max-width:680px; margin:0 auto 54px; text-align:center; }
.section-head h2{ margin-top:14px; }
.section-head p{ margin-top:16px; font-size:16.5px; line-height:1.75; color: color-mix(in srgb, var(--ink) 64%, transparent); }
.section-head.left{ margin-left:0; text-align:left; }

/* ============================================================================
   03. BUTTONS / CHIPS
   ============================================================================ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:10px;
  padding: 14px 26px;
  border-radius: 12px;
  font-family: var(--font-sans);
  font-size: 14.5px; font-weight:700; line-height:1;
  white-space: nowrap;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease),
              background-color .3s var(--ease), border-color .3s var(--ease),
              color .3s var(--ease);
}
.btn svg{ transition: transform .3s var(--ease); }
.btn:hover svg.arrow, .btn:hover svg[data-arrow]{ transform: translateX(4px); }
.btn-fill{
  background: var(--rose); color:#fff;
  box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--rose) 60%, transparent);
}
.btn-fill:hover{
  background: var(--rose-deep); color:#fff;
  transform: translateY(-2px);
  box-shadow: 0 16px 30px -12px color-mix(in srgb, var(--rose) 70%, transparent);
}
.btn-ghost{
  background: transparent; color: var(--ink);
  border: 1.5px solid var(--line);
}
.btn-ghost:hover{
  border-color: color-mix(in srgb, var(--rose) 60%, transparent);
  color: var(--rose-deep);
  background: color-mix(in srgb, var(--rose-soft) 35%, transparent);
  transform: translateY(-2px);
}
.btn-wa{
  background: var(--wa); color:#fff;
  box-shadow: 0 10px 24px -10px rgba(31,173,87,.55);
}
.btn-wa:hover{
  background: var(--wa-dark); color:#fff;
  transform: translateY(-2px);
  box-shadow: 0 16px 32px -12px rgba(31,173,87,.6);
}
.btn-fill,.btn-wa{ position:relative; overflow:hidden; }
.btn-fill::after,.btn-wa::after{
  content:''; position:absolute; top:0; bottom:0; left:-80%;
  width:46%; transform: skewX(-20deg); pointer-events:none;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.35), transparent);
  opacity:0;
  transition: left .7s var(--ease), opacity .3s var(--ease);
}
.btn-fill:hover::after,.btn-wa:hover::after{ left:140%; opacity:1; }
.btn-lg{ padding:17px 32px; font-size:15.5px; border-radius:14px; }
.btn-sm{ padding:10px 18px; font-size:13px; border-radius:10px; }

/* pill tags / chips */
.chip{
  display:inline-flex; align-items:center; gap:8px;
  padding:8px 16px; border-radius:100px;
  border:1px solid var(--line);
  background: var(--paper);
  font-size:12.5px; font-weight:600;
  color: color-mix(in srgb, var(--ink) 78%, transparent);
}
.chip svg{ width:14px; height:14px; stroke: var(--rose); }
.chip-solid{
  background: color-mix(in srgb, var(--rose-soft) 55%, var(--paper));
  border-color: transparent;
  color: var(--rose-deep);
}

/* ============================================================================
   04. TOP UTILITY BAR  (inside header include)
   ============================================================================ */
.utilbar{
  background: var(--ink);
  color: color-mix(in srgb, var(--paper) 82%, transparent);
  font-size: 12.5px;
}
.utilbar-inner{
  max-width: var(--maxw); margin:0 auto; padding:8px 24px;
  display:flex; align-items:center; gap:26px; flex-wrap:wrap;
}
.utilbar a{ color: var(--paper); display:inline-flex; align-items:center; gap:7px; }
.utilbar a:hover{ opacity:.85; }
.utilbar svg{ width:14px; height:14px; stroke: currentColor; }
.utilbar .util-loc{ margin-right:auto; display:inline-flex; align-items:center; gap:7px; }
.utilbar .util-timing{ display:inline-flex; align-items:center; gap:7px; opacity:.9; }
.utilbar .util-cta{
  margin-left:auto; font-weight:700; letter-spacing:.02em;
  background: rgba(255,255,255,.1); padding:4px 14px; border-radius:100px;
}
@media (max-width:760px){
  .utilbar .util-timing{ display:none; }
  .utilbar-inner{ padding:6px 18px; }
}

/* ============================================================================
   05. SHARED NAV (sticky)
   ============================================================================ */
.nav{
  position: sticky; top:0; z-index:900;
  background: color-mix(in srgb, var(--paper) 86%, transparent);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-bottom:1px solid var(--line);
  transition: box-shadow .3s var(--ease), background-color .3s var(--ease);
}
.nav.is-scrolled{
  background: color-mix(in srgb, var(--paper) 96%, transparent);
  box-shadow: 0 10px 30px -18px color-mix(in srgb, var(--ink) 30%, transparent);
}
.nav-row{
  max-width: var(--maxw); margin:0 auto;
  padding:14px 24px;
  display:flex; align-items:center; gap:28px;
}
.nav-brand{
  display:flex; align-items:center; gap:12px;
  margin-right:auto; min-width:0;
}
.nav-mark{
  width:44px; height:44px; border-radius:13px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(140deg, color-mix(in srgb,var(--rose) 85%, #fff), var(--rose-deep));
  color:#fff;
  box-shadow: 0 8px 18px -8px color-mix(in srgb, var(--rose) 70%, transparent);
}
.nav-mark svg{ width:24px; height:24px; stroke:#fff; fill:none; }
/* Letter monograms - each clinic voices its initial in its own display type:
   ortho "A" = Space Grotesk (precise, upright); gynec "N" = Fraunces italic (warm, soft). */
.nav-mark svg text{ fill:#fff; stroke:none; }
/* Letter monogram voices - global so every tile (nav, footer, hero-card,
   address cards) speaks in the clinic's own display type. */
.brand-letter-ortho{ font-family:'Space Grotesk','Manrope',system-ui,sans-serif; font-weight:700; font-style:normal; }
.brand-letter-gynec{ font-family:'Fraunces',Georgia,'Times New Roman',serif; font-weight:600; font-style:italic; }
/* hero-card tiles are light: letters take the clinic's deep accent there. */
.hero-card .ic svg text{ fill:var(--rose-deep); stroke:none; }
.hero-card .ic svg .brand-accent{ fill:var(--rose-deep); opacity:.4; stroke:none; }
.nav-name{ display:flex; flex-direction:column; line-height:1.15; min-width:0; }
.nav-name strong{
  font-family: var(--font-display);
  font-weight: var(--font-display-weight);
  font-style: var(--font-display-style);
  font-size: 17px; color: var(--ink); white-space:nowrap;
}
.nav-name span{
  font-size: 11px; letter-spacing:.1em; text-transform:uppercase;
  color: color-mix(in srgb, var(--ink) 55%, transparent);
  font-family: var(--font-sans); font-weight:600;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}

/* links */
.nav-links{ display:flex; align-items:center; gap:6px; }
.nav-links > li{ position:relative; }
.nav-links > li > a{
  display:inline-flex; align-items:center; gap:6px;
  padding:9px 13px; border-radius:9px;
  font-size:14px; font-weight:600;
  color: color-mix(in srgb, var(--ink) 72%, transparent);
}
.nav-links > li > a:hover{ color: var(--ink); background: color-mix(in srgb, var(--paper-2) 80%, transparent); }
.nav-links > li > a.active{ color: var(--rose-deep); }
.nav-links > li > a::after{
  content:''; position:absolute; left:13px; right:13px; bottom:2px; height:2px;
  border-radius:2px; background: var(--rose); opacity:.85;
  transform: scaleX(0); transform-origin: left center;
  transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.nav-links > li > a:hover::after{ transform: scaleX(1); opacity:.5; }
.nav-links > li > a.active::after{ transform: scaleX(1); opacity:.85; }
.nav-dropdown{
  position:absolute; top:calc(100% + 8px); left:0; z-index:40;
  min-width:190px; padding:8px;
  background: var(--paper); border:1px solid var(--line); border-radius:14px;
  box-shadow: var(--shadow-2);
  opacity:0; visibility:hidden; transform: translateY(8px);
  transition: opacity .25s var(--ease), transform .25s var(--ease), visibility .25s;
}
.nav-drop:hover .nav-dropdown, .nav-drop:focus-within .nav-dropdown{
  opacity:1; visibility:visible; transform:none;
}
.nav-dropdown a{
  display:block; padding:9px 13px; border-radius:9px;
  font-size:13.5px; font-weight:600; color: var(--ink);
}
.nav-dropdown a:hover, .nav-dropdown a.active{ background: var(--paper-2); color: var(--rose-deep); }
.nav-drop-caret{ transition: transform .25s var(--ease); }
.nav-drop:hover .nav-drop-caret{ transform: rotate(180deg); }

/* actions on the right */
.nav-actions{ display:flex; align-items:center; gap:12px; flex:0 0 auto; }
.nav-phone{
  display:inline-flex; align-items:center; gap:8px;
  font-size:13.5px; font-weight:700; color: var(--ink);
}
.nav-phone svg{ width:17px; height:17px; stroke: var(--rose); }
.nav-phone small{ display:block; font-size:10.5px; font-weight:600; color: color-mix(in srgb,var(--ink) 52%, transparent); letter-spacing:.05em; }
.nav-burger{ display:none; }
.nav-burger span{
  display:block; width:22px; height:2px; border-radius:2px;
  background: var(--ink); transition: transform .3s var(--ease), opacity .3s var(--ease);
}
.nav-burger span + span{ margin-top:5px; }

/* All Specialists cross-link chip */
.nav-links > li > a.nav-all, .nav-links > li > a.nav-all:visited{
  margin:0 0 0 6px;
  display:inline-flex; align-items:center; gap:7px;
  padding:8px 15px; border-radius:100px;
  border:1px solid var(--line);
  font-size:12.5px; font-weight:700; color: var(--rose-deep);
  background: var(--paper);
  transition: all .25s var(--ease);
}
.nav-links > li > a.nav-all:hover{ border-color: var(--rose); background: var(--rose-soft); color: var(--rose-deep); }
.nav-all svg{ width:13px; height:13px; stroke: currentColor; }
/* pill button, not a text link - never show the nav underline on it */
.nav-links > li > a.nav-all::after{ display:none; }

/* mobile nav */
@media (max-width: 1024px){
  .nav-links{
    position:fixed; inset:0 0 0 auto; z-index:1100;
    width:min(340px,88vw); height:100dvh;
    flex-direction:column; align-items:stretch; gap:4px;
    padding:90px 22px 30px;
    background: var(--paper);
    box-shadow:-20px 0 60px -20px rgba(0,0,0,.25);
    transform:translateX(105%); visibility:hidden;
    transition: transform .4s var(--ease-soft), visibility .4s;
    overflow-y:auto;
  }
  .nav-links.show{ transform:none; visibility:visible; }
  .nav-links > li > a{ padding:12px 12px; font-size:15px; border-radius:10px; width:100%; }
  .nav-links > li > a.active::after{ display:none; }
  .nav-links > li > a.active{ background: color-mix(in srgb, var(--rose-soft) 60%, var(--paper)); }
  .nav-links > li > a.nav-all{
    margin:10px 0 0; width:100%; padding:12px; border-radius:10px;
    border:1.5px solid var(--line); justify-content:center; font-size:14.5px;
  }
  .nav-dropdown{
    position:static; opacity:1; visibility:visible; transform:none;
    box-shadow:none; border:none; padding:0 0 0 12px; min-width:0;
  }
  .nav-drop-caret{ display:none; }
  .nav-burger{
    display:flex; flex-direction:column; justify-content:center;
    width:40px; height:40px; border-radius:10px;
    border:1px solid var(--line); align-items:center;
  }
  /* turn burger into x when open (uses .show on sibling .nav-links) */
  .nav-links.show ~ .nav-actions .nav-burger span:nth-child(1){ transform: translateY(3.5px) rotate(45deg); }
  .nav-links.show ~ .nav-actions .nav-burger span:nth-child(2){ opacity:0; }
  .nav-links.show ~ .nav-actions .nav-burger span:nth-child(3){ transform: translateY(-3.5px) rotate(-45deg); }
}
@media (max-width:720px){
  .nav-name span{ display:none; }
  .nav-row{ padding:10px 16px; }
  .nav-phone{ display:none; }
  .nav-actions .btn{ padding:10px 16px; font-size:13px; }
  .nav-all{ display:none; }
}


/* ============================================================================
   06. PAGE HERO
   ============================================================================ */
/* entrance + ambient motion for every clinic hero (pure CSS, no JS needed) */
@keyframes riseIn{ from{ opacity:0; transform: translateY(26px); } to{ opacity:1; transform:none; } }
@keyframes floatY{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-9px); } }
@keyframes blobDrift{
  0%,100%{ transform: rotate(3deg) translate(0,0); }
  50%{ transform: rotate(4.5deg) translate(-9px,13px); }
}
@keyframes tagPulse{ 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-6px); } }
.hero .eyebrow{ animation: riseIn .7s var(--ease) backwards; }
.hero h1{ animation: riseIn .75s var(--ease) .08s backwards; }
.hero-lede{ animation: riseIn .75s var(--ease) .16s backwards; }
.hero-actions{ animation: riseIn .75s var(--ease) .24s backwards; }
.hero-stats{ animation: riseIn .75s var(--ease) .32s backwards; }
.hero-art{ animation: riseIn .8s var(--ease) .15s backwards; }
.hero-art::before{ animation: blobDrift 18s ease-in-out 1.4s infinite; }
.hero-card{ animation: floatY 6s ease-in-out 1.8s infinite; }
.float-tag{ animation: tagPulse 6.5s ease-in-out 2.2s infinite; }
.hero{
  position:relative; overflow:hidden;
  padding: clamp(40px,6vw,84px) 0 0;
  background:
    radial-gradient(1100px 480px at 88% -10%, color-mix(in srgb, var(--rose-soft) 55%, transparent), transparent 60%),
    linear-gradient(180deg, color-mix(in srgb, var(--paper-2) 55%, var(--paper)), var(--paper) 70%);
}
.hero-grid{
  display:grid; grid-template-columns: 1.06fr .94fr; gap: clamp(36px,5vw,72px);
  align-items:center; padding-bottom: 64px;
}
.hero h1{ margin:22px 0 20px; font-size: clamp(2.3rem,5.4vw,4rem); line-height:1.06; }
.hero h1 em{
  color: var(--rose);
  font-family: var(--font-serif);
  font-style: italic;
  font-weight: 500;
}
.hero-lede{
  font-size: 17.5px; line-height:1.8; max-width:520px;
  color: color-mix(in srgb, var(--ink) 68%, transparent);
  margin-bottom: 30px;
}
.hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }
.hero-stats{
  display:flex; gap:0; margin-top:44px; padding-top:26px;
  border-top:1px solid var(--line); max-width:520px;
}
.hero-stat{ flex:1; }
.hero-stat + .hero-stat{ padding-left:26px; border-left:1px solid var(--line); }
.hero-stat .num{
  font-family: var(--font-display);
  font-size: clamp(1.6rem,2.6vw,2.1rem);
  font-weight:700; color: var(--ink); line-height:1;
}
.hero-stat .label{ font-size:12.5px; margin-top:7px; color: color-mix(in srgb,var(--ink) 58%, transparent); }

/* legacy marquee (kept for any page still using old home markup) */
.marquee-wrap{ border-top:1px solid var(--line); border-bottom:1px solid var(--line); background: var(--paper); overflow:hidden; }
.marquee{ display:flex; gap:48px; white-space:nowrap; padding:16px 24px; width:max-content; animation: marqueeX 30s linear infinite; }
.marquee span{ font-size:13.5px; font-weight:600; color: color-mix(in srgb,var(--ink) 60%, transparent); display:inline-flex; align-items:center; gap:12px; }
.marquee span::after{ content:''; width:5px; height:5px; border-radius:50%; background: color-mix(in srgb,var(--rose) 45%, transparent); }
@keyframes marqueeX{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* hero artwork */
.hero-art{ position:relative; }
.hero-blob{ display:none; } /* legacy empty element kept for old templates */
.hero-frame{
  position:relative; overflow:hidden;
  border-radius: var(--radius-lg);
  box-shadow: var(--shadow-2);
  aspect-ratio: 4/4.9;
}
.hero-frame img{ width:100%; height:100%; object-fit:cover; }
.hero-frame::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(200deg, transparent 55%, color-mix(in srgb, var(--ink) 42%, transparent));
  pointer-events:none;
}
.hero-art::before{
  content:''; position:absolute; z-index:-1; inset:-6% -4% auto auto;
  width:108%; height:104%; border-radius: 50% 50% 44% 56%/ 62% 52% 48% 38%;
  background: linear-gradient(150deg, color-mix(in srgb, var(--rose-soft) 72%, var(--paper)), color-mix(in srgb, var(--paper-2) 90%, var(--paper)));
  transform: rotate(3deg);
}
.hero-card{
  position:absolute; left:-20px; bottom:26px;
  display:flex; align-items:center; gap:13px;
  background: var(--paper); border:1px solid var(--line);
  border-radius: 16px; padding:14px 18px;
  box-shadow: var(--shadow-1);
  max-width: 250px;
}
@media (max-width:1080px){ .hero-card{ left:0; } }
.hero-card .ic{
  width:42px; height:42px; border-radius:12px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(140deg, var(--rose-soft), color-mix(in srgb, var(--rose-soft) 55%, var(--paper)));
}
.hero-card .ic svg{ width:21px; height:21px; stroke: var(--rose-deep); }
.hero-card strong{ display:block; font-family:var(--font-sans); font-size:13px; line-height:1.35; }
.hero-card span{ font-size:11.5px; color: color-mix(in srgb,var(--ink) 55%, transparent); }

/* service ticker / trust strip - infinite marquee on clinic homepages */
.ticker-wrap{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background: var(--paper);
}
.ticker{
  max-width:var(--maxw); margin:0 auto;
  padding:15px 24px;
  display:flex; align-items:center; gap:24px;
}
.ticker .ticker-label{
  flex:0 0 auto;
  font-size:11.5px; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  color: var(--rose-deep); display:inline-flex; align-items:center; gap:10px;
}
.ticker .ticker-label::after{ content:''; width:1px; height:16px; background: var(--line); }
.ticker-scroll{
  flex:1; min-width:0; overflow:hidden;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 28px), transparent);
          mask-image: linear-gradient(90deg, transparent, #000 28px, #000 calc(100% - 28px), transparent);
}
.ticker-track{
  display:flex; width:max-content;
  animation: marqueeX 32s linear infinite;
}
.ticker-wrap:hover .ticker-track{ animation-play-state: paused; }
.ticker-row{ display:flex; flex-wrap:nowrap; align-items:center; }
.ticker-row span{
  font-size:13.5px; font-weight:600; color: color-mix(in srgb, var(--ink) 72%, transparent);
  display:inline-flex; align-items:center; gap:10px; white-space:nowrap;
  margin-right:38px;
}
.ticker-row span::before{
  content:''; width:5px; height:5px; border-radius:50%;
  background: color-mix(in srgb, var(--rose) 55%, transparent);
}
@media (max-width:560px){
  .ticker{ flex-wrap:wrap; gap:8px 24px; }
  .ticker-scroll{ flex-basis:100%; }
}

/* ============================================================================
   07. HOME SECTIONS
   ============================================================================ */

/* ----- focus / department strip ----- */
.dept-strip{
  display:grid; grid-template-columns: repeat(4,1fr); gap:16px;
}
.dept-cell{
  position:relative;
  background: var(--paper);
  border:1px solid var(--line);
  border-radius: var(--radius);
  padding:34px 24px 30px;
  overflow:hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.dept-cell:hover{
  transform: translateY(-6px);
  box-shadow: var(--shadow-2);
  border-color: color-mix(in srgb, var(--rose) 35%, transparent);
}
.dept-cell .ic{
  width:52px; height:52px; border-radius:14px; margin-bottom:20px;
  display:flex; align-items:center; justify-content:center;
  background: color-mix(in srgb, var(--rose-soft) 65%, var(--paper));
}
.dept-cell .ic svg{ width:25px; height:25px; stroke: var(--rose-deep); }
.dept-cell h4{ font-size:16.5px; margin-bottom:7px; }
.dept-cell span{ font-size:13px; color: color-mix(in srgb, var(--ink) 58%, transparent); }
.dept-cell .idx{
  position:absolute; top:18px; right:20px;
  font-family: var(--font-sans); font-size:12px; font-weight:700;
  color: color-mix(in srgb, var(--ink) 28%, transparent);
}
.dept-cell .ic svg,.hub-value .v-ic svg{ transition: transform .4s var(--ease); }
.dept-cell:hover .ic svg{ transform: scale(1.12) rotate(-4deg); }

/* ----- why choose us ----- */
.why-grid{ display:grid; grid-template-columns: 1fr 1fr; gap: clamp(40px,6vw,80px); align-items:center; }
.why-list{ display:flex; flex-direction:column; }
.why-item{
  display:grid; grid-template-columns: 56px 1fr; gap:22px;
  padding:26px 0; border-bottom:1px solid var(--line);
}
.why-item:first-child{ padding-top:0; }
.why-item:last-child{ border-bottom:none; }
.why-item .num-badge{
  width:48px; height:48px; border-radius:14px;
  display:flex; align-items:center; justify-content:center;
  font-family: var(--font-display); font-size:16px; font-weight:700;
  color: var(--rose-deep);
  background: color-mix(in srgb, var(--rose-soft) 70%, var(--paper));
}
.why-item h4{ font-size:17px; margin-bottom:7px; }
.why-item p{ font-size:14.5px; line-height:1.75; color: color-mix(in srgb, var(--ink) 62%, transparent); }
.why-photo{ position:relative; }
.why-photo .img-tile{
  position:relative; border-radius: var(--radius-lg); overflow:hidden;
  box-shadow: var(--shadow-2);
}
.why-photo .img-tile img, .why-photo > img{ width:100%; aspect-ratio: 4/3.4; object-fit:cover; }
.why-photo > img{ border-radius: var(--radius-lg); box-shadow: var(--shadow-2); }
.float-tag{
  position:absolute; bottom:-20px; right:-14px;
  background: var(--ink); color: var(--paper);
  border-radius: 16px; padding:16px 20px; min-width:170px;
  box-shadow: var(--shadow-2);
}
.float-tag strong{
  display:block; font-family: var(--font-display);
  font-size: 24px; line-height:1; margin-bottom:4px;
  color: var(--paper);
}
.float-tag span{ font-size:12px; opacity:.75; }
@media (max-width:760px){
  .float-tag{ right:0; bottom:-18px; }
  .why-photo{ margin-bottom:26px; }
}

/* ----- services: card grid (ortho flavour) ----- */
.services-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:22px; }
.service-card{
  position:relative; display:flex; flex-direction:column;
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius);
  padding:26px; overflow:hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.service-card:hover{
  transform: translateY(-6px);
  box-shadow: var(--shadow-2);
  border-color: color-mix(in srgb, var(--rose) 32%, transparent);
}
.service-card .thumb{
  aspect-ratio: 16/10; border-radius: 12px; overflow:hidden; margin-bottom:20px;
}
.service-card .thumb img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.service-card:hover .thumb img{ transform: scale(1.06); }
/* shared fallback tile when a service image is missing - same on both clinics */
.service-card .thumb-fallback{
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(150deg, color-mix(in srgb, var(--rose-soft) 70%, var(--paper)), var(--paper-2));
  color: var(--rose-deep);
}
.service-card .thumb-fallback svg{ width:34%; height:auto; opacity:.75; }
.service-card .num{
  font-family: var(--font-sans); font-size:11.5px; font-weight:800; letter-spacing:.14em;
  color: var(--rose); margin-bottom:8px;
}
.service-card h3{ font-size:19px; margin-bottom:9px; }
.service-card p{ font-size:13.8px; line-height:1.7; color: color-mix(in srgb,var(--ink) 62%, transparent); flex:1; }
.service-card .more{
  margin-top:20px; display:inline-flex; align-items:center; gap:8px;
  font-size:13.5px; font-weight:700; color: var(--rose-deep);
}
.service-card .more svg{ width:15px; height:15px; stroke: currentColor; transition: transform .3s var(--ease); }
.service-card:hover .more svg{ transform: translateX(4px); }

/* ----- services: numbered list (gynec flavour) ----- */
.services-list{ display:flex; flex-direction:column; border-top:1px solid var(--line); }
.service-row{
  display:grid; grid-template-columns: 64px 240px 1fr 46px; align-items:center; gap:20px;
  padding:26px 8px; border-bottom:1px solid var(--line);
  transition: background-color .3s var(--ease), padding .3s var(--ease);
}
.service-row:hover{ background: color-mix(in srgb, var(--paper-2) 80%, var(--paper)); padding-left:20px; }
.service-num{ font-family: var(--font-display); font-size:15px; color: var(--rose); font-weight:600; }
.service-name{ font-family: var(--font-display); font-size:19px; font-weight:600; }
.service-desc{ font-size:13.5px; color: color-mix(in srgb,var(--ink) 58%, transparent); }
.service-arrow{
  width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); transition: all .3s var(--ease);
}
.service-arrow svg{ width:16px; height:16px; stroke: var(--ink); transition: transform .3s var(--ease); }
.service-row:hover .service-arrow{ background: var(--rose); border-color: var(--rose); }
.service-row:hover .service-arrow svg{ stroke:#fff; transform: translateX(2px); }

/* ----- stats band ----- */
.stats-band{
  display:grid; grid-template-columns: repeat(4,1fr); gap:28px;
  background: var(--ink);
  border-radius: var(--radius-lg);
  padding: 54px 48px;
  position:relative; overflow:hidden;
}
.stats-band::before{
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(600px 240px at 12% 0%, color-mix(in srgb, var(--rose) 35%, transparent), transparent 65%),
    radial-gradient(600px 240px at 90% 100%, color-mix(in srgb, var(--gold) 20%, transparent), transparent 60%);
}
.stats-band .stat{ position:relative; z-index:1; }
.stats-band .stat .num{
  font-family: var(--font-display);
  font-size: clamp(2rem,3.4vw,2.9rem); font-weight:700; line-height:1; color: var(--paper);
}
.stats-band .stat .lbl{
  margin-top:10px; font-size:13.5px; line-height:1.5;
  color: color-mix(in srgb, var(--paper) 70%, transparent);
}
@media (max-width:760px){ .stats-band{ grid-template-columns: repeat(2,1fr); padding:40px 26px; } }

/* ----- testimonials ----- */
.testi-head-row{ margin-bottom:42px; }
.testi-wrap{ position:relative; }
.testi-track{
  display:grid; grid-auto-flow:column; grid-auto-columns:min(430px,88vw);
  gap:22px; overflow-x:auto; scroll-snap-type:x mandatory;
  padding:8px 4px 22px; scrollbar-width:none;
}
.testi-track::-webkit-scrollbar{ display:none; }
.testi-card{
  scroll-snap-align:start;
  position:relative; display:flex; flex-direction:column;
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius);
  padding:36px 32px 30px;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.testi-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-2); }
.testi-mark{
  position:absolute; top:12px; right:24px;
  font-family: var(--font-serif);
  font-size: 92px; line-height:1; color: var(--rose); opacity:.14;
  pointer-events:none;
}
.testi-stars{ display:flex; gap:3px; margin-bottom:16px; }
.testi-stars svg{ width:15px; height:15px; fill: var(--gold); }
.testi-quote{
  font-family: var(--font-display);
  font-style: var(--font-display-style);
  font-size: 16.5px; line-height:1.65; margin-bottom:24px; flex:1;
}
.testi-who{ display:flex; align-items:center; gap:13px; }
.testi-who img{ width:46px; height:46px; border-radius:50%; object-fit:cover; border:2px solid var(--paper); box-shadow: 0 0 0 1px var(--line); }
.testi-who strong{ display:block; font-family: var(--font-sans); font-size:14px; }
.testi-who span{ font-size:12px; color: color-mix(in srgb,var(--ink) 55%, transparent); }
.testi-nav{ display:flex; gap:10px; justify-content:center; margin-top:6px; }
.testi-nav button{
  width:44px; height:44px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); background: var(--paper);
  transition: all .3s var(--ease);
}
.testi-nav button svg{ width:17px; height:17px; stroke: var(--ink); }
.testi-nav button:hover{ background: var(--rose); border-color: var(--rose); }
.testi-nav button:hover svg{ stroke:#fff; }

/* ----- blog cards ----- */
.blog-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
.blog-card{
  display:flex; flex-direction:column;
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius);
  overflow:hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.blog-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-2); border-color: color-mix(in srgb,var(--rose) 30%, transparent); }
.blog-thumb{ aspect-ratio: 16/10.5; overflow:hidden; }
.blog-thumb img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.blog-card:hover .blog-thumb img{ transform: scale(1.06); }
.blog-body{ padding:24px 24px 26px; display:flex; flex-direction:column; flex:1; }
.blog-tag{
  font-size:11px; font-weight:800; letter-spacing:.14em; text-transform:uppercase;
  color: var(--rose); margin-bottom:10px;
}
.blog-card h3{ font-size:18px; line-height:1.4; margin-bottom:9px; }
.blog-card p{ font-size:13.6px; line-height:1.72; color: color-mix(in srgb,var(--ink) 60%, transparent); flex:1; }
.blog-meta-row{
  display:flex; gap:9px; align-items:center;
  font-size:12px; color: color-mix(in srgb,var(--ink) 50%, transparent); margin-top:14px;
}
.blog-link{
  margin-top:16px; display:inline-flex; align-items:center; gap:7px;
  font-size:13px; font-weight:700; color: var(--rose-deep);
}
.blog-link svg{ width:14px; height:14px; stroke: currentColor; transition: transform .3s var(--ease); }
.blog-card:hover .blog-link svg{ transform: translateX(4px); }

/* ----- video ----- */
.video-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
.video-card{
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius);
  overflow:hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.video-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-2); }
.video-frame{ position:relative; aspect-ratio:16/9; background: var(--ink); }
.video-frame iframe{ position:absolute; inset:0; width:100%; height:100%; border:0; }
.video-meta{ padding:18px 22px; }
.video-meta h4{ font-size:15px; line-height:1.4; }
.video-meta p{ font-size:12.5px; margin-top:6px; color: color-mix(in srgb,var(--ink) 55%, transparent); }

/* ----- gallery ----- */
.gallery-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:16px; }
.g-item{
  position:relative; break-inside:avoid;
  border-radius: var(--radius-sm); overflow:hidden; cursor:zoom-in;
  aspect-ratio: 4 / 3;
}
.g-item img{ width:100%; height:100%; object-fit:cover; display:block; transition: transform .5s var(--ease); }
.g-item:hover img{ transform: scale(1.05); }
.g-item::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 62%, color-mix(in srgb, var(--ink) 45%, transparent));
  opacity:0; transition: opacity .35s var(--ease);
}
.g-item:hover::after{ opacity:1; }
.g-zoom{
  position:absolute; right:12px; bottom:12px; z-index:2;
  width:34px; height:34px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,.92);
  opacity:0; transform: scale(.6); transition: all .3s var(--ease);
}
.g-item:hover .g-zoom{ opacity:1; transform:none; }
.g-zoom svg{ width:15px; height:15px; stroke: var(--ink); }

/* ----- awards ----- */
.awards-strip{ display:grid; grid-template-columns: repeat(4,1fr); gap:18px; }
.award-card{
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius);
  padding:28px 20px; text-align:center;
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.award-card:hover{ transform: translateY(-4px); box-shadow: var(--shadow-1); }
.award-card .ic{
  width:48px; height:48px; margin:0 auto 14px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: color-mix(in srgb, var(--rose-soft) 65%, var(--paper));
}
.award-card .ic svg{ width:22px; height:22px; stroke: var(--rose-deep); }
.award-card h4{ font-size:14.5px; margin-bottom:5px; }
.award-card span{ font-size:12px; color: color-mix(in srgb,var(--ink) 55%, transparent); }

/* ----- insurance band ----- */
.insurance-band{
  position:relative; overflow:hidden;
  background: linear-gradient(120deg, var(--ink), color-mix(in srgb, var(--ink) 70%, var(--rose-deep)));
  border-radius: var(--radius-lg);
  padding: 52px 52px;
  display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
}
.insurance-band::before{
  content:''; position:absolute; top:-120px; right:-80px; width:340px; height:340px;
  border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--rose) 45%, transparent), transparent 70%);
}
.insurance-band::after{
  content:''; position:absolute; bottom:-80px; left:-60px; width:260px; height:260px;
  border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--gold) 30%, transparent), transparent 70%);
}
.insurance-text{ position:relative; z-index:1; max-width:460px; color: var(--paper); }
.insurance-text h3{ color: var(--paper); font-size:24px; margin-bottom:10px; }
.insurance-text p{ color: color-mix(in srgb, var(--paper) 78%, transparent); font-size:14.5px; line-height:1.75; }
.insurance-icon{
  width:50px; height:50px; border-radius:14px; margin-bottom:18px;
  display:flex; align-items:center; justify-content:center;
  background: color-mix(in srgb, var(--paper) 14%, transparent);
  border:1px solid color-mix(in srgb, var(--paper) 22%, transparent);
}
.insurance-icon svg{ width:23px; height:23px; stroke: var(--paper); }
.insurance-logos{ position:relative; z-index:1; display:flex; gap:12px; flex-wrap:wrap; }
.insurance-logos span{
  display:inline-flex; align-items:center; gap:8px;
  padding:12px 18px; border-radius:12px;
  background: color-mix(in srgb, var(--paper) 12%, transparent);
  border:1px solid color-mix(in srgb, var(--paper) 25%, transparent);
  color: var(--paper); font-size:13.5px; font-weight:700;
}
.insurance-logos span::before{
  content:''; width:8px; height:8px; border-radius:50%;
  background: var(--gold);
}

/* ----- FAQ ----- */
.faq-card{
  max-width:820px; margin:0 auto;
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius);
  padding: 8px 34px;
}
.faq-item{ border-bottom:1px solid var(--line); }
.faq-item:last-child{ border-bottom:none; }
.faq-q{
  width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px;
  padding:24px 0; text-align:left;
  font-family: var(--font-display); font-weight:600;
  font-size:16px; line-height:1.4; color: var(--ink);
}
.faq-q .plus{
  flex:0 0 auto; position:relative; width:26px; height:26px; border-radius:50%;
  border:1px solid var(--line);
  transition: background-color .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease);
}
.faq-q .plus::before,.faq-q .plus::after{
  content:''; position:absolute; top:50%; left:50%;
  background: var(--rose); border-radius:2px;
  transform:translate(-50%,-50%);
}
.faq-q .plus::before{ width:12px; height:2px; }
.faq-q .plus::after{ width:2px; height:12px; transition: transform .3s var(--ease); }
.faq-item.open .plus{ background: var(--rose); transform: rotate(180deg); }
.faq-item.open .plus::after{ transform: translate(-50%,-50%) scaleY(0); }
.faq-item.open .plus::before{ background:#fff; }
.faq-a{ display:grid; grid-template-rows:0fr; transition: grid-template-rows .4s var(--ease); }
.faq-item.open .faq-a{ grid-template-rows:1fr; }
.faq-a > div{ overflow:hidden; }
.faq-a > p{ min-height:0; }
.faq-a p{
  padding:0 0 24px; font-size:14.5px; line-height:1.8;
  color: color-mix(in srgb, var(--ink) 66%, transparent); max-width:680px;
}

/* ----- CTA block ----- */
.cta{
  position:relative; overflow:hidden;
  background: linear-gradient(125deg, var(--rose-deep), var(--rose));
  border-radius: var(--radius-lg);
  padding: clamp(40px,6vw,64px) clamp(28px,5vw,60px);
  display:flex; align-items:center; justify-content:space-between; gap:36px; flex-wrap:wrap;
  color:#fff;
}
.cta::before{
  content:''; position:absolute; top:-60%; right:-10%; width:420px; height:420px; border-radius:50%;
  border:1px dashed color-mix(in srgb, #fff 22%, transparent);
}
.cta::after{
  content:''; position:absolute; bottom:-70%; left:20%; width:340px; height:340px; border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, #fff 16%, transparent), transparent 70%);
}
.cta h2{ color:#fff; max-width:560px; position:relative; z-index:1; }
.cta p{ margin-top:10px; color: color-mix(in srgb, #fff 80%, transparent); font-size:15px; position:relative; z-index:1; }
.cta .btn{ position:relative; z-index:1; background:#fff; color: var(--rose-deep); }
.cta .btn:hover{ background: color-mix(in srgb, #fff 88%, var(--rose-soft)); transform: translateY(-2px); }
.cta .btn-fill{ background:#fff; color: var(--rose-deep); }
.cta .btn-fill:hover{ background: var(--paper-2); }

/* ============================================================================
   08. PAGE BANNER (inner pages)
   ============================================================================ */
.banner{
  position:relative; overflow:hidden;
  padding: clamp(52px,7vw,84px) 0 clamp(34px,4vw,52px);
  text-align:center;
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(720px 300px at 18% -40%, color-mix(in srgb, var(--rose-soft) 55%, transparent), transparent 65%),
    radial-gradient(760px 320px at 86% -30%, color-mix(in srgb, var(--rose-soft) 42%, transparent), transparent 62%),
    var(--paper);
}
.banner .eyebrow{ justify-content:center; }
.banner .eyebrow::before{ display:none; }
.banner h1{ margin:14px auto 0; max-width:860px; }
.banner .crumb{
  margin-top:20px;
  display:inline-flex; align-items:center; justify-content:center; gap:10px; flex-wrap:wrap;
  font-size:13px; color: color-mix(in srgb, var(--ink) 60%, transparent);
}
.banner .crumb a{ color: color-mix(in srgb, var(--ink) 60%, transparent); }
.banner .crumb a:hover{ color: var(--rose-deep); }
.banner .crumb b,.banner .crumb .crumb-current{ color: var(--rose-deep); font-weight:700; }
.crumb-sep{
  width:5px; height:5px; flex:0 0 auto;
  transform: rotate(45deg);
  background: color-mix(in srgb, var(--ink) 30%, transparent);
}
.banner .crumb p{ display:contents; }

/* ============================================================================
   09. ABOUT / TIMELINE / CONTACT
   ============================================================================ */
.about-grid{ display:grid; grid-template-columns: .9fr 1.1fr; gap: clamp(44px,6vw,80px); align-items:center; }
.about-quote{
  position:relative; margin:28px 0 30px;
  padding:24px 0 24px 28px;
  border-left:2px solid var(--rose);
}
.about-quote p{
  font-family: var(--font-serif);
  font-size: clamp(1.2rem,2.4vw,1.55rem);
  line-height:1.5; font-style:italic; color: var(--ink);
}
.about-quote span{
  display:block; margin-top:10px;
  font-family: var(--font-sans); font-style:normal;
  font-size:11.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase;
  color: var(--rose-deep);
}
.cred-strip{ display:flex; flex-wrap:wrap; gap:0; margin-top:6px; border-top:1px solid var(--line); padding-top:22px; }
.cred{
  display:inline-flex; align-items:center; gap:9px;
  padding:4px 22px 4px 0; margin-right:22px;
  font-size:13.5px; font-weight:700; color: var(--ink);
  border-right:1px solid var(--line);
}
.cred:last-child{ border-right:none; margin-right:0; padding-right:0; }
.cred svg{ width:17px; height:17px; stroke: var(--rose); flex:0 0 auto; }

/* journey timeline */
.timeline{ display:flex; flex-direction:column; max-width:860px; margin:0 auto; }
.tl-item{ display:flex; gap:22px; }
.tl-marker-col{ display:flex; flex-direction:column; align-items:center; flex:0 0 auto; }
.tl-marker{
  width:52px; height:52px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: var(--paper); border:1.5px solid var(--line);
  box-shadow: var(--shadow-1);
  transition: all .3s var(--ease);
}
.tl-marker svg{ width:22px; height:22px; stroke: var(--rose-deep); transition: stroke .3s var(--ease); }
.tl-item:hover .tl-marker{ background: var(--rose); border-color: var(--rose); }
.tl-item:hover .tl-marker svg{ stroke:#fff; }
.tl-line{ width:2px; flex:1; min-height:26px; margin:8px 0; background: var(--line); }
.tl-item:last-child .tl-line{ display:none; }
.tl-card{
  flex:1; margin-bottom:34px;
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius);
  padding:24px 28px;
  transition: box-shadow .3s var(--ease), transform .3s var(--ease);
}
.tl-item:hover .tl-card{ box-shadow: var(--shadow-1); transform: translateX(6px); }
.tl-tag{
  display:inline-block;
  font-size:11px; font-weight:800; letter-spacing:.13em; text-transform:uppercase;
  color: var(--rose-deep);
  background: color-mix(in srgb, var(--rose-soft) 60%, var(--paper));
  border-radius: 100px; padding:5px 13px; margin-bottom:12px;
}
.tl-card h4{ font-size:17px; margin-bottom:6px; }
.tl-card p{ font-size:14px; line-height:1.7; color: color-mix(in srgb, var(--ink) 62%, transparent); }

/* contact & appointment */
.contact-grid{ display:grid; grid-template-columns: .92fr 1.08fr; gap:26px; align-items:start; }
.contact-card{
  background: var(--ink);
  color: color-mix(in srgb, var(--paper) 82%, transparent);
  border-radius: var(--radius-lg);
  padding: 38px 34px;
  position:relative; overflow:hidden;
}
.contact-card::before{
  content:''; position:absolute; top:-70px; right:-70px; width:220px; height:220px; border-radius:50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--rose) 40%, transparent), transparent 70%);
}
.contact-card h3{ color: var(--paper); margin-bottom:8px; position:relative; }
.contact-card > p{ font-size:14px; line-height:1.7; margin-bottom:28px; position:relative; opacity:.85; }
.c-row{ position:relative; display:flex; gap:14px; padding:15px 0; border-bottom:1px solid rgba(255,255,255,.12); }
.c-row:last-of-type{ border-bottom:none; }
.c-row .ic{
  width:42px; height:42px; border-radius:12px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  background: rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
}
.c-row .ic svg{ width:18px; height:18px; stroke: color-mix(in srgb, var(--paper) 85%, transparent); }
.c-row strong{ display:block; color: var(--paper); font-size:14px; margin-bottom:2px; }
.c-row span{ font-size:13px; line-height:1.5; display:block; }
.form-card{
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius-lg);
  padding: 38px 34px; box-shadow: var(--shadow-1);
}
.f-group{ margin-bottom:18px; }
.f-group label{ display:block; font-size:13px; font-weight:700; margin-bottom:8px; color: var(--ink); }
.f-group input,.f-group textarea,.f-group select{
  width:100%; padding:13px 16px;
  border:1.5px solid var(--line); border-radius:12px;
  background: var(--paper); color: var(--ink);
  transition: border-color .25s var(--ease), box-shadow .25s var(--ease);
  appearance:none; -webkit-appearance:none;
}
.f-group input:focus,.f-group textarea:focus,.f-group select:focus{
  outline:none; border-color: var(--rose);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--rose-soft) 70%, transparent);
}
.f-group textarea{ resize:vertical; min-height:110px; }
.f-group select{
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%230c2b39' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position: right 16px center; padding-right:44px;
}
.f-row2{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.perk-list{ position:relative; }
.perk-list li{
  display:flex; align-items:flex-start; gap:13px;
  padding:13px 0; border-bottom:1px solid rgba(255,255,255,.12);
  font-size:14px; line-height:1.6; color: color-mix(in srgb, var(--paper) 88%, transparent);
}
.perk-list li:last-child{ border-bottom:none; }
.perk-list svg{ width:19px; height:19px; flex:0 0 auto; stroke: color-mix(in srgb, var(--paper) 88%, transparent); margin-top:2px; }
.map-frame{ margin-top:28px; border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow-1); }
.map-frame iframe{ width:100%; height:340px; border:0; display:block; }
.contact-card .foot-social{ position:relative; margin-top:24px; }

/* ============================================================================
   10. DETAIL PAGES (services listing / service & blog details)
   ============================================================================ */
.sv-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap:24px; }
.sv-card{
  display:flex; flex-direction:column;
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius);
  overflow:hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.sv-card:hover{ transform: translateY(-6px); box-shadow: var(--shadow-2); border-color: color-mix(in srgb, var(--rose) 32%, transparent); }
.sv-thumb{ aspect-ratio:16/10; overflow:hidden; }
.sv-thumb img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.sv-card:hover .sv-thumb img{ transform: scale(1.06); }
.sv-body{ padding:22px 24px 26px; display:flex; flex-direction:column; flex:1; }
.sv-num{ font-size:11px; font-weight:800; letter-spacing:.14em; color: var(--rose); margin-bottom:10px; }
.sv-body h3{ font-size:18px; margin-bottom:8px; }
.sv-body p{ font-size:13.6px; line-height:1.72; color: color-mix(in srgb,var(--ink) 60%, transparent); flex:1; }
.sv-body .blog-link{ margin-top:16px; }

/* detail layout (service-details + blog-details) */
.detail-grid{ display:grid; grid-template-columns: 1fr 330px; gap: clamp(32px,4vw,52px); align-items:start; }
.detail-hero{ border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-1); margin-bottom:32px; }
.detail-hero img{ width:100%; aspect-ratio:16/8.5; object-fit:cover; }
.detail-body{ max-width:760px; }
.detail-body p{
  font-size:16px; line-height:1.9; margin-bottom:20px;
  color: color-mix(in srgb, var(--ink) 74%, transparent);
}
.detail-body h2,.detail-body h3{ margin:34px 0 14px; }
.detail-body ul,.detail-body ol{ margin:0 0 22px; padding-left:6px; }
.detail-body li{
  position:relative; padding-left:26px; margin-bottom:9px;
  font-size:15px; line-height:1.75; color: color-mix(in srgb, var(--ink) 72%, transparent);
}
.detail-body ul li::before{
  content:''; position:absolute; left:2px; top:11px;
  width:8px; height:8px; border-radius:2px;
  background: color-mix(in srgb, var(--rose) 70%, transparent);
}
.detail-body a{ color: var(--rose-deep); text-decoration:underline; text-underline-offset:3px; }
.detail-body strong{ color: var(--ink); font-weight:700; }
.detail-body table{ width:100%; border-collapse:collapse; margin-bottom:22px; }
.detail-body th,.detail-body td{ border:1px solid var(--line); padding:10px 14px; font-size:14.5px; text-align:left; }
.detail-body th{ background: var(--paper-2); }
.detail-points{
  background: color-mix(in srgb, var(--rose-soft) 40%, var(--paper));
  border:1px solid color-mix(in srgb, var(--rose) 18%, transparent);
  border-radius: var(--radius);
  padding:30px 30px;
  margin-top:34px;
}
.detail-points h3{ font-size:17px; margin-bottom:16px; }
.detail-points ul{ display:grid; grid-template-columns:1fr 1fr; gap:13px 26px; margin:0; }
.detail-points li{ display:flex; gap:10px; align-items:flex-start; font-size:14.5px; line-height:1.6; padding:0; color: var(--ink); }
.detail-points li::before{ display:none; }
.detail-points svg{ width:18px; height:18px; flex:0 0 auto; stroke: var(--rose); margin-top:2px; }

/* sidebar */
.detail-side{ display:flex; flex-direction:column; gap:22px; position:sticky; top:110px; }
.side-card{
  background: var(--paper); border:1px solid var(--line); border-radius: var(--radius);
  padding:26px 24px;
}
.side-card h4{ font-size:15.5px; margin-bottom:14px; }
.side-links a{
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:12px 2px; font-size:14px; font-weight:600; color: var(--ink);
  border-bottom:1px solid var(--line);
  transition: color .2s var(--ease), padding .2s var(--ease);
}
.side-links li:last-child a{ border-bottom:none; }
.side-links a svg{ width:15px; height:15px; stroke: color-mix(in srgb, var(--ink) 35%, transparent); flex:0 0 auto; }
.side-links a:hover,.side-links a.active{ color: var(--rose-deep); padding-left:6px; }
.side-links a.active{ color: var(--rose); }
.side-posts li{ border-bottom:1px solid var(--line); padding:11px 0; }
.side-posts li:last-child{ border-bottom:none; padding-bottom:0; }
.side-posts a{ display:flex; gap:13px; align-items:center; }
.side-posts img{ width:70px; height:56px; border-radius:10px; object-fit:cover; flex:0 0 auto; }
.side-posts strong{ display:block; font-size:13px; line-height:1.45; margin-bottom:3px; }
.side-posts span{ font-size:11.5px; color: color-mix(in srgb, var(--ink) 50%, transparent); }
.side-posts a:hover strong{ color: var(--rose-deep); }
.side-cta{
  background: linear-gradient(150deg, color-mix(in srgb, var(--rose-soft) 70%, var(--paper)), var(--paper));
  border-color: color-mix(in srgb, var(--rose) 22%, transparent);
}
.side-cta p{ font-size:13.5px; line-height:1.7; color: color-mix(in srgb, var(--ink) 68%, transparent); margin-bottom:18px; }
.side-cta .btn{ width:100%; }

/* author box on blog details */
.author-box{
  display:flex; gap:20px; align-items:flex-start;
  background: var(--paper-2);
  border-radius: var(--radius);
  padding: 24px 26px;
  margin-top:36px;
}
.author-box img{ width:64px; height:64px; border-radius:50%; object-fit:cover; flex:0 0 auto; border:2px solid var(--paper); box-shadow: 0 0 0 1px var(--line); }
.author-box strong{ display:block; font-size:15px; margin-bottom:2px; }
.author-box span{ font-size:12px; color: color-mix(in srgb, var(--ink) 55%, transparent); display:block; margin-bottom:8px; }
.author-box p{ font-size:13.5px; line-height:1.7; color: color-mix(in srgb, var(--ink) 62%, transparent); }

/* ============================================================================
   11. FOOTER
   ============================================================================ */
.foot{
  position:relative; overflow:hidden;
  background: var(--ink);
  color: color-mix(in srgb, var(--paper) 74%, transparent);
  padding: 76px 0 0;
}
.foot-glow{
  position:absolute; top:-140px; left:50%; transform:translateX(-50%);
  width:700px; height:340px;
  background: radial-gradient(ellipse at center, color-mix(in srgb, var(--rose) 28%, transparent), transparent 70%);
  filter: blur(12px); pointer-events:none;
}
.foot::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background: linear-gradient(90deg, transparent, var(--rose), color-mix(in srgb, var(--gold) 80%, var(--rose)), transparent);
  opacity:.8;
}
.foot-quickbar{
  position:relative; z-index:1;
  display:grid; grid-template-columns:repeat(auto-fit, minmax(240px, 1fr)); gap:14px;
  margin-bottom:64px;
}
.fq-item{
  display:flex; align-items:center; gap:14px;
  background: color-mix(in srgb, var(--paper) 5%, transparent);
  border:1px solid color-mix(in srgb, var(--paper) 12%, transparent);
  border-radius: 16px;
  padding:20px 18px;
  transition: background .3s var(--ease), transform .3s var(--ease), border-color .3s var(--ease);
}
.fq-item:hover{
  background: color-mix(in srgb, var(--paper) 9%, transparent);
  border-color: color-mix(in srgb, var(--rose) 55%, transparent);
  transform: translateY(-3px);
}
.fq-ic{
  width:46px; height:46px; border-radius:13px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(140deg, var(--rose), var(--rose-deep));
  color:#fff;
}
.fq-ic svg{ width:20px; height:20px; stroke:#fff; fill:none; }
.fq-label{ display:block; font-size:10.5px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; opacity:.55; margin-bottom:3px; }
.fq-item strong{ display:block; font-size:14px; font-weight:600; line-height:1.45; color: var(--paper); }
.foot-top{
  position:relative; z-index:1;
  display:grid; grid-template-columns: 1.7fr 1fr 1fr 1.1fr; gap:44px;
  padding-bottom:52px; border-bottom:1px solid color-mix(in srgb, var(--paper) 12%, transparent);
}
.foot-brand{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.foot-brand .nav-mark{ width:42px; height:42px; }
.foot-brand strong{
  font-family: var(--font-display); font-weight:600;
  font-size:19px; color: var(--paper); line-height:1.15;
  font-style: var(--font-display-style);
}
.foot-brand span{ display:block; font-size:11px; letter-spacing:.1em; text-transform:uppercase; opacity:.55; }
.foot-brand .nav-mark svg{ width:22px; height:22px; }
.foot p.tagline{ font-size:14px; line-height:1.85; max-width:340px; opacity:.75; }
.foot-social{ display:flex; gap:10px; margin-top:22px; }
.foot-social a{
  width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background: color-mix(in srgb, var(--paper) 8%, transparent);
  border:1px solid color-mix(in srgb, var(--paper) 14%, transparent);
  color: color-mix(in srgb, var(--paper) 85%, transparent);
  transition: all .3s var(--ease);
}
.foot-social a svg{ width:17px; height:17px; fill: currentColor; }
.foot-social a:hover{ background: var(--rose); border-color: var(--rose); color:#fff; transform: translateY(-3px); }
.foot h4{
  font-family: var(--font-sans);
  font-size: 12px; font-weight:800; letter-spacing:.16em; text-transform:uppercase;
  color: var(--paper); margin-bottom:20px; opacity:.95;
}
.foot ul li{ margin-bottom:11px; }
.foot ul li a{
  font-size:13.8px; color: color-mix(in srgb, var(--paper) 72%, transparent);
  display:inline-flex; align-items:center; gap:8px;
  transition: color .25s var(--ease), transform .25s var(--ease);
}
.foot ul li a::before{ content:'\2192'; font-size:12px; opacity:0; transform:translateX(-6px); transition:all .25s var(--ease); }
.foot ul li a:hover{ color: var(--paper); }
.foot ul li a:hover::before{ opacity:.8; transform:none; }
.foot-contact-item{ display:flex; gap:12px; margin-bottom:16px; align-items:flex-start; }
.foot-contact-item svg{ width:17px; height:17px; flex:0 0 auto; stroke: var(--rose); margin-top:3px; }
.foot-contact-item span{ font-size:13.5px; line-height:1.65; color: color-mix(in srgb, var(--paper) 74%, transparent); display:block; }
.foot-contact-item strong{ display:block; font-size:13.5px; color: var(--paper); margin-bottom:2px; }
.foot-bottom{
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:22px 0 24px;
  font-size:12.5px; opacity:.6;
}
.foot-credit{
  padding:5px 14px; border-radius:100px;
  background: color-mix(in srgb, var(--paper) 8%, transparent);
}
.foot-disclaimer{ font-size:12px; line-height:1.7; opacity:.55; max-width:640px; padding:18px 0; border-bottom:1px solid color-mix(in srgb,var(--paper) 10%, transparent); }

/* Clinic Address Panel in Footer */
.foot-clinic-panel{
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
  background: color-mix(in srgb, var(--paper) 6%, transparent);
  border: 1px solid color-mix(in srgb, var(--paper) 14%, transparent);
  border-radius: var(--radius);
  padding: 26px 30px;
  margin: 36px 0 24px;
}
.fcp-body{ flex:1; min-width:280px; }
.fcp-tag{
  display:inline-block; font-size:11.5px; font-weight:700;
  letter-spacing:.12em; text-transform:uppercase;
  color: var(--rose-soft); margin-bottom:6px;
}
.fcp-body h4{
  font-family: var(--font-display);
  font-size: 20px; font-weight:700; color: var(--paper);
  margin-bottom:8px; line-height:1.2;
}
.fcp-addr, .fcp-timing{
  display:flex; align-items:flex-start; gap:10px;
  font-size:14px; line-height:1.6; color: color-mix(in srgb, var(--paper) 80%, transparent);
  margin-top:6px;
}
.fcp-addr svg, .fcp-timing svg{
  width:16px; height:16px; stroke: var(--rose); flex:0 0 auto; margin-top:4px;
}
.fcp-actions{ display:flex; gap:12px; flex-wrap:wrap; align-items:center; }
.fcp-btn{
  display:inline-flex; align-items:center; gap:8px;
  padding: 10px 18px; border-radius:100px;
  font-size: 13.5px; font-weight:700;
  transition: all .25s var(--ease);
}
.fcp-maps{
  background: var(--rose); color:#fff;
  box-shadow: 0 6px 16px -6px rgba(14,116,144,.6);
}
.fcp-maps svg{ width:15px; height:15px; stroke:currentColor; }
.fcp-maps:hover{ background: var(--rose-deep); transform: translateY(-2px); color:#fff; }
.fcp-contact{
  background: color-mix(in srgb, var(--paper) 12%, transparent);
  color: var(--paper);
  border: 1px solid color-mix(in srgb, var(--paper) 20%, transparent);
}
.fcp-contact:hover{
  background: color-mix(in srgb, var(--paper) 22%, transparent);
  color:#fff;
}

/* Location & Schedule Page Section */
.location-box{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  padding: clamp(34px, 5vw, 52px);
  box-shadow: var(--shadow-1);
}
.location-header{ max-width: 680px; margin-bottom: 32px; }
.location-header h2{ font-size: clamp(26px, 3.8vw, 34px); margin-bottom: 10px; }
.location-header p{ font-size: 15px; color: color-mix(in srgb, var(--ink) 65%, transparent); }
.location-panels{ display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.loc-panel{
  display: flex; align-items: flex-start; gap: 18px;
  padding: 26px 24px;
  background: var(--paper-2);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  transition: transform .3s var(--ease), box-shadow .3s var(--ease);
}
.loc-panel:hover{ transform: translateY(-3px); box-shadow: var(--shadow-1); }
.loc-icon{
  width: 48px; height: 48px; border-radius: 14px; flex: 0 0 auto;
  display: flex; align-items: center; justify-content: center;
  background: linear-gradient(140deg, var(--rose), var(--rose-deep));
  color: #fff;
}
.loc-icon svg{ width: 22px; height: 22px; stroke: #fff; fill: none; }
.loc-content{ flex: 1; }
.loc-content h4{ font-size: 17px; font-weight: 700; margin-bottom: 8px; color: var(--ink); }
.loc-content p{ font-size: 14.5px; line-height: 1.65; color: color-mix(in srgb, var(--ink) 72%, transparent); margin-bottom: 12px; }
.loc-content .loc-schedule span{ display: block; margin-bottom: 6px; }
.loc-content .loc-schedule strong{ color: var(--ink); }
.loc-map-link{
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 14px; font-weight: 700; color: var(--rose);
  transition: gap .2s var(--ease);
}
.loc-map-link svg{ width: 15px; height: 15px; stroke: currentColor; }
.loc-map-link:hover{ gap: 10px; }
@media (max-width: 768px){
  .location-panels{ grid-template-columns: 1fr; }
}

/* WhatsApp float */
.wa-float{
  position:fixed; bottom:26px; right:26px; z-index:950;
  width:60px; height:60px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:#25d366; color:#fff;
  box-shadow: 0 14px 30px -8px rgba(18,140,76,.55);
  transition: transform .3s var(--ease);
}
.wa-float:hover{ transform: scale(1.07) translateY(-2px); }
.wa-float svg{ width:28px; height:28px; fill:#fff; position:relative; z-index:1; }
.wa-pulse{ position:absolute; inset:0; border-radius:50%; background:#25d366; animation: waPulse 2.4s ease-out infinite; }
@keyframes waPulse{
  0%{ transform:scale(1); opacity:.55; }
  100%{ transform:scale(1.85); opacity:0; }
}

/* ============================================================================
   12. LANDING (hub) PAGE
   ============================================================================ */
html[data-clinic="hub"] body{ background: var(--paper); }
.hub-nav{
  position:sticky; top:0; z-index:900;
  background: color-mix(in srgb, var(--paper) 88%, transparent);
  backdrop-filter: blur(16px);
  border-bottom:1px solid var(--line);
}
.hub-nav-inner{
  max-width:var(--maxw); margin:0 auto; padding:15px 24px;
  display:flex; align-items:center; gap:24px;
}
.hub-logo{
  display:flex; align-items:center; gap:13px; margin-right:auto;
}
.hub-logo .mark{
  width:46px; height:46px; border-radius:14px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(140deg,#0e7490,#0a4d62);
  color:#fff;
  box-shadow: 0 10px 22px -10px rgba(14,116,144,.7);
}
.hub-logo .mark svg{ width:26px; height:26px; stroke:#fff; fill:none; }
.hub-logo .name{ line-height:1.2; }
.hub-logo .name strong{
  display:block; font-family: var(--font-display); font-style:normal;
  font-size: 21px; color: var(--ink); font-weight:700; letter-spacing:-.02em;
}
.hub-logo .name span{ font-size:11px; letter-spacing:.18em; text-transform:uppercase; font-weight:700; color: color-mix(in srgb, var(--ink) 52%, transparent); }
.hub-nav-links{ display:flex; align-items:center; gap:6px; }
.hub-nav-links a{
  padding:9px 15px; border-radius:10px;
  font-size:14px; font-weight:600; color: color-mix(in srgb, var(--ink) 74%, transparent);
}
.hub-nav-links a:hover{ color: var(--ink); background: var(--paper-2); }
.hub-nav-actions{ display:flex; align-items:center; gap:12px; }
@media (max-width:900px){
  .hub-nav-links{ display:none; }
}

/* hero split */
.hub-hero{
  position:relative; overflow:hidden;
  background:
    radial-gradient(1000px 460px at 85% -20%, color-mix(in srgb, #0e7490 12%, transparent), transparent 60%),
    radial-gradient(900px 420px at 0% 110%, color-mix(in srgb, #a9415f 10%, transparent), transparent 55%),
    var(--paper);
}
.hub-hero::after{
  content:''; position:absolute; inset:0; pointer-events:none;
  background:
    linear-gradient(rgba(12,43,57,.028) 1px, transparent 1px),
    linear-gradient(90deg, rgba(12,43,57,.028) 1px, transparent 1px);
  background-size:48px 48px;
  -webkit-mask-image: radial-gradient(900px 500px at 70% 20%, #000, transparent);
          mask-image: radial-gradient(900px 500px at 70% 20%, #000, transparent);
}
.hub-hero-inner{
  position:relative; z-index:1;
  max-width:var(--maxw); margin:0 auto;
  padding: clamp(56px,8vw,104px) 24px clamp(44px,6vw,76px);
  display:grid; grid-template-columns: 1.02fr .98fr; gap: clamp(44px,6vw,72px);
  align-items:center;
}
.hub-eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  padding:8px 16px 8px 10px; border-radius:100px;
  background: var(--paper);
  border:1px solid var(--line);
  box-shadow: var(--shadow-1);
  font-size:12px; font-weight:700; letter-spacing:.06em;
  color: var(--ink);
}
.hub-eyebrow .dot{ width:22px; height:22px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; color:#fff; }
.hub-eyebrow .dot svg{ width:12px; height:12px; stroke:#fff; }
.hub-eyebrow .dot.teal{ background:#0e7490; }
.hub-eyebrow .dot.rose{ background:#a9415f; }
.hub-hero h1{ font-family: var(--font-display);
  font-size: clamp(2.4rem,5.6vw,4.15rem);
  line-height:1.04; margin:26px 0 22px;
  letter-spacing:-.03em;
  font-weight:750;
}
.hub-hero h1 em{
  color:#0e7490; position:relative;
  font-family: var(--font-display); font-style:normal; font-weight:750;
  letter-spacing:-.03em;
}
.hub-hero h1 em.rose{ color:#a9415f; }
.hub-sec-head h2 em{ font-family:var(--font-display); font-style:normal; font-weight:inherit; color:#0e7490; }
.hub-hero .lede{
  font-size:17.5px; line-height:1.85; max-width:540px;
  color: color-mix(in srgb, var(--ink) 70%, transparent);
}
.hub-hero .cta-row{ display:flex; gap:14px; flex-wrap:wrap; margin:34px 0 0; }
.hub-hero .chip-row{ display:flex; gap:10px; flex-wrap:wrap; margin-top:34px; }
.hub-hero .chip-row .chip{ background: var(--paper); }
.hub-hero-art{ position:relative; }
.hub-stack{ position:relative; display:flex; flex-direction:column; gap:20px; }
.hub-stat-strip{
  display:flex; gap:0; margin-top:34px; padding-top:24px;
  border-top:1px solid var(--line); max-width:560px;
}
.hub-stat-strip .st{ flex:1; }
.hub-stat-strip .st + .st{ padding-left:22px; border-left:1px solid var(--line); }
.hub-stat-strip .st b{ display:block; font-family:var(--font-display); font-size:24px; color: var(--ink); line-height:1; }
.hub-stat-strip .st span{ font-size:12px; color: color-mix(in srgb, var(--ink) 55%, transparent); }

/* pathway cards */
.path-cards{ display:flex; flex-direction:column; gap:18px; }
.path-card{
  position:relative; display:block;
  background: var(--paper);
  border:1px solid var(--line);
  border-radius: 20px;
  padding:24px 26px;
  box-shadow: var(--shadow-1);
  overflow:hidden;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.path-card::before{
  content:''; position:absolute; top:0; left:0; right:0; height:4px;
  border-radius: 20px 20px 0 0;
}
.path-card.pc-ortho::before{ background: linear-gradient(90deg,#0e7490,#38a6c0); }
.path-card.pc-gynec::before{ background: linear-gradient(90deg,#a9415f,#cf7c95); }
.path-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-2); }
.path-card .pc-top{ display:flex; align-items:center; gap:16px; margin-bottom:14px; }
.path-card .pc-ic{
  width:56px; height:56px; border-radius:16px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
}
.path-card.pc-ortho .pc-ic{ background: linear-gradient(140deg,#0e7490,#0a4d62); box-shadow: 0 10px 20px -10px rgba(14,116,144,.7); }
.path-card.pc-gynec .pc-ic{ background: linear-gradient(140deg,#a9415f,#7c2b46); box-shadow: 0 10px 20px -10px rgba(169,65,95,.7); }
.path-card .pc-ic svg{ width:27px; height:27px; stroke:#fff; fill:none; }
.path-card h3{ font-size:19px; }
.path-card .pc-sub{ font-size:12.5px; color: color-mix(in srgb, var(--ink) 56%, transparent); font-weight:600; }
.path-card p.pc-desc{ font-size:14px; line-height:1.75; color: color-mix(in srgb, var(--ink) 66%, transparent); margin-bottom:16px; }
.path-card .pc-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.path-card .pc-tags span{
  font-size:12px; font-weight:600; padding:5px 12px; border-radius:100px;
  background: var(--paper-2); color: color-mix(in srgb, var(--ink) 68%, transparent);
}
.path-card .pc-go{
  display:inline-flex; align-items:center; gap:9px;
  font-size:14px; font-weight:800; color:#0e7490;
}
.path-card.pc-gynec .pc-go{ color:#a9415f; }
.path-card .pc-go svg{ width:16px; height:16px; stroke:currentColor; transition: transform .3s var(--ease); }
.path-card:hover .pc-go svg{ transform: translateX(5px); }

/* shared hub sections */
.hub-sec{ padding: clamp(64px,9vw,104px) 0; position:relative; }
.hub-sec.alt{ background: var(--paper-2); }
.hub-sec-head{ max-width:720px; margin:0 auto 56px; text-align:center; }
.hub-sec-head h2{ margin-top:14px; }
.hub-sec-head h2 em{ color:#0e7490; font-style:normal; }
.hub-sec-head p{ margin-top:16px; color: color-mix(in srgb,var(--ink) 64%, transparent); font-size:16px; }

/* value cards */
.hub-values{ display:grid; grid-template-columns: repeat(3,1fr); gap:22px; }
.hub-value{
  background: var(--paper); border:1px solid var(--line);
  border-radius: var(--radius);
  padding:34px 30px;
  transition: transform .35s var(--ease), box-shadow .35s var(--ease);
}
.hub-value:hover{ transform: translateY(-6px); box-shadow: var(--shadow-2); }
.hub-value .v-ic{
  width:52px; height:52px; border-radius:15px; margin-bottom:20px;
  display:flex; align-items:center; justify-content:center;
  background: color-mix(in srgb, #0e7490 10%, var(--paper));
  border:1px solid color-mix(in srgb, #0e7490 22%, transparent);
}
.hub-value .v-ic svg{ width:24px; height:24px; stroke:#0e7490; }
.hub-value:nth-child(2) .v-ic{ background: color-mix(in srgb, #a9415f 10%, var(--paper)); border-color: color-mix(in srgb, #a9415f 22%, transparent); }
.hub-value:nth-child(2) .v-ic svg{ stroke:#a9415f; }
.hub-value h3{ font-size:17.5px; margin-bottom:10px; }
.hub-value p{ font-size:14.2px; line-height:1.8; color: color-mix(in srgb, var(--ink) 62%, transparent); }

/* "not sure" routing band */
.hub-route{
  display:grid; grid-template-columns: 1fr 1fr; gap:0;
  border:1px solid var(--line); border-radius: var(--radius-lg);
  overflow:hidden; background: var(--paper);
}
.route-card{ padding: clamp(30px,4vw,46px); position:relative; }
.route-card + .route-card{ border-left:1px solid var(--line); }
.route-card .r-ic{
  width:48px; height:48px; border-radius:14px; margin-bottom:18px;
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.route-card.rc-ortho .r-ic{ background:#0e7490; }
.route-card.rc-gynec .r-ic{ background:#a9415f; }
.route-card .r-ic svg{ width:22px; height:22px; stroke:#fff; }
.route-card h3{ font-size:20px; margin-bottom:10px; }
.route-card p{ font-size:14.5px; line-height:1.8; color: color-mix(in srgb, var(--ink) 64%, transparent); margin-bottom:6px; }
.route-card ul{ margin:14px 0 22px; }
.route-card li{
  padding:7px 0; font-size:14px; color: color-mix(in srgb, var(--ink) 68%, transparent);
  display:flex; gap:10px; align-items:flex-start;
}
.route-card li::before{
  content:'\2713'; flex:0 0 auto; width:20px; height:20px; border-radius:50%;
  display:inline-flex; align-items:center; justify-content:center;
  font-size:11px; font-weight:800; margin-top:1px;
  color:#fff;
}
.rc-ortho li::before{ background:#0e7490; }
.rc-gynec li::before{ background:#a9415f; }
.route-card a.go{ font-size:14px; font-weight:800; display:inline-flex; gap:8px; align-items:center; }
.rc-ortho a.go{ color:#0e7490; } .rc-gynec a.go{ color:#a9415f; }
.route-card a.go svg{ width:15px; height:15px; stroke:currentColor; transition:transform .3s var(--ease); }
.route-card a.go:hover svg{ transform:translateX(4px); }

/* final CTA */
.hub-cta{
  position:relative; overflow:hidden;
  background: linear-gradient(125deg,#0a4d62,#0e7490 60%,#1593ad);
  border-radius: var(--radius-lg);
  padding: clamp(44px,6vw,72px) clamp(28px,5vw,64px);
  display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;
  color:#fff;
}
.hub-cta::before{
  content:''; position:absolute; top:-120px; right:-60px; width:360px; height:360px;
  border-radius:50%; border:1.5px dashed rgba(255,255,255,.2);
}
.hub-cta h2{ color:#fff; max-width:560px; position:relative; }
.hub-cta p{ margin-top:10px; color: rgba(255,255,255,.8); position:relative; }
.hub-cta .btns{ position:relative; display:flex; gap:12px; flex-wrap:wrap; }
.hub-cta .btn{ background:#fff; color:#0a4d62; }
.hub-cta .btn:hover{ transform:translateY(-2px); }
.hub-cta .btn.wa{ background:#25d366; color:#fff; }
.hub-cta .btn.wa:hover{ background:#1db355; }

/* hub footer */
.hub-foot{
  background: var(--ink); color: color-mix(in srgb, var(--paper) 70%, transparent);
  padding: 64px 0 0;
}
.hub-foot-inner{ max-width: var(--maxw); margin:0 auto; padding:0 24px; }
.hub-foot-grid{ display:grid; grid-template-columns: 1.5fr 1fr 1fr; gap:44px; padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.1); }
.hub-foot h4{ color: var(--paper); font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-family:var(--font-sans); margin-bottom:18px; }
.hub-foot p{ font-size:13.5px; line-height:1.85; opacity:.72; }
.hub-foot a.fl{ display:block; margin-bottom:12px; font-size:14px; color: color-mix(in srgb, var(--paper) 80%, transparent); }
.hub-foot a.fl:hover{ color:#fff; }
.hub-foot-bottom{
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding: 22px 0 26px; font-size:12.5px; opacity:.55;
}

/* ============================================================================
   13. REVEAL / RESPONSIVE / MISC
   ============================================================================ */
/* Hide-before-reveal only applies when JS is running (html.js added inline in <head>),
   so content is never stuck invisible if main.js fails to load or is stale-cached. */
html.js .rv{ opacity:0; transform: translateY(26px); transition: opacity .75s var(--ease), transform .75s var(--ease); }
html.js .rv.in{ opacity:1; transform:none; }
html.js .rv-stagger > *{ opacity:0; transform: translateY(22px); transition: opacity .6s var(--ease), transform .6s var(--ease); }
html.js .rv-stagger.in > *{ opacity:1; transform:none; }
.rv-stagger.in > *:nth-child(1){ transition-delay:.05s; }
.rv-stagger.in > *:nth-child(2){ transition-delay:.12s; }
.rv-stagger.in > *:nth-child(3){ transition-delay:.19s; }
.rv-stagger.in > *:nth-child(4){ transition-delay:.26s; }
.rv-stagger.in > *:nth-child(5){ transition-delay:.33s; }
.rv-stagger.in > *:nth-child(6){ transition-delay:.40s; }

a.service-row,a.sv-card,a.blog-card,a.service-card{ text-decoration:none; color:inherit; }

/* responsive groups */
@media (max-width:1080px){
  .dept-strip{ grid-template-columns:repeat(2,1fr); }
  .services-grid,.blog-grid,.video-grid,.sv-grid,.gallery-grid{ grid-template-columns:repeat(2,1fr); }
  .awards-strip{ grid-template-columns:repeat(2,1fr); }
  .foot-top{ grid-template-columns:1fr 1fr; }
  .foot-quickbar{ grid-template-columns:repeat(2,1fr); }
  .why-grid,.about-grid,.contact-grid{ grid-template-columns:1fr; gap:44px; }
  .hub-hero-inner{ grid-template-columns:1fr; }
  .hub-values{ grid-template-columns:1fr; }
  .hub-route{ grid-template-columns:1fr; }
  .route-card + .route-card{ border-left:none; border-top:1px solid var(--line); }
  .detail-grid{ grid-template-columns:1fr; }
  .detail-side{ position:static; }
  .hero-grid{ grid-template-columns:1fr; }
  .hero-art{ order:-1; max-width:520px; margin:0 auto; }
  .hero-card{ left:12px; }
  .hub-foot-grid{ grid-template-columns:1fr 1fr; }
}
@media (max-width:860px){
  .detail-points ul{ grid-template-columns:1fr; }
  .stats-band{ grid-template-columns:repeat(2,1fr); }
}
@media (max-width:760px){
  .container{ padding:0 18px; }
  .section{ padding:64px 0; }
  .dept-strip,.services-grid,.blog-grid,.video-grid,.sv-grid,.gallery-grid{ grid-template-columns:1fr; }
  .awards-strip{ grid-template-columns:1fr 1fr; }
  .hero-grid{ gap:40px; padding-bottom:46px; }
  .hero{ padding-top:30px; }
  .hero-frame{ aspect-ratio:4/4.4; }
  .hero-actions .btn{ width:100%; }
  .hero-actions .btn + .btn{ margin-top:0; }
  .why-grid,.about-grid,.contact-grid{ gap:36px; }
  .contact-card,.form-card{ padding:30px 22px; }
  .insurance-band{ padding:38px 24px; flex-direction:column; align-items:flex-start; }
  .foot-top{ grid-template-columns:1fr; gap:36px; }
  .foot-quickbar{ grid-template-columns:1fr; }
  .cta{ flex-direction:column; align-items:flex-start; }
  .f-row2{ grid-template-columns:1fr; }
  .stats-band{ grid-template-columns:repeat(2,1fr); padding:38px 24px; }
  .service-row{ grid-template-columns: 44px 1fr 40px; grid-template-areas:"num name arrow" ". desc desc"; }
  .service-num{ grid-area:num; } .service-name{ grid-area:name; } .service-arrow{ grid-area:arrow; }
  .service-desc{ grid-area:desc; margin-top:6px; }
  .hub-value{ padding:28px 24px; }
  .hub-stat-strip{ flex-wrap:wrap; gap:16px; }
  .hub-stat-strip .st{ flex:1 1 40%; }
  .hub-stat-strip .st + .st{ padding-left:0; border-left:none; }
  .hub-foot-grid{ grid-template-columns:1fr; gap:32px; }
  .author-box{ flex-direction:column; }
  .ticker-row{ justify-content:flex-start; }
  .cta .btn{ width:100%; justify-content:center; }
  .hub-hero .cta-row .btn{ width:100%; justify-content:center; }
  .hub-doc .d-actions .btn{ width:100%; justify-content:center; }
}
@media (max-width:520px){
  .awards-strip{ grid-template-columns:1fr; }
  .wa-float{ width:54px; height:54px; bottom:18px; right:18px; }
  .hero-stats{ flex-direction:column; gap:18px; }
  .hero-stat + .hero-stat{ padding-left:0; border-left:none; }
  .dept-cell{ padding:26px 20px; }
  .foot-bottom{ flex-direction:column; align-items:flex-start; }
}

/* lightbox (created by JS) is intentionally inline-styled; ensure stacking */
body:has(.nav-links.show), body:has(.hub-nav-links.show), body:has(.lp-nav-links.show){ overflow:hidden; }

/* Mobile nav drawer overlay and fixes */
body:has(.nav-links.show)::before,
body:has(.hub-nav-links.show)::before,
body:has(.lp-nav-links.show)::before {
  content: ''; position: fixed; inset: 0; z-index: 850;
  background: rgba(0,0,0,0.4);
  backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
body:has(.nav-links.show) .nav,
body:has(.hub-nav-links.show) .hub-nav,
body:has(.lp-nav-links.show) .lp-nav {
  backdrop-filter: none; -webkit-backdrop-filter: none;
}

/* anchor offset below sticky navs */
[id]{ scroll-margin-top: 90px; }

/* ============================================================================
   14. HUB - PHOTO HERO, DOCTOR SHOWCASE, MOBILE DRAWER  (landing page)
   ============================================================================ */

/* --- photographic hero backdrop -------------------------------- */
.hub-hero{ background:#eef5f7; }
.hub-hero::after{ opacity:.38; }
.hub-hero-photo{ position:absolute; inset:0; z-index:0; }
.hub-hero-photo img{
  width:100%; height:100%; object-fit:cover; object-position:center right;
}
.hub-hero-shade{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(255,255,255,.985) 2%, rgba(255,255,255,.95) 32%, rgba(255,255,255,.66) 56%, rgba(244,249,250,.32) 80%, rgba(238,245,247,.16) 100%),
    linear-gradient(0deg, #ffffff 0%, rgba(255,255,255,.6) 12%, transparent 46%);
}
.hub-hero-inner{ position:relative; z-index:3; }

/* --- "meet both doctors" mini stack (hero art) ------------------ */
.hub-doc-stack{ position:relative; display:flex; flex-direction:column; gap:18px; }
.hub-doc-stack::before{
  content:''; position:absolute; z-index:-1;
  top:-12%; right:-14%; width:86%; aspect-ratio:1;
  border-radius:50%; filter: blur(10px);
  background:
    radial-gradient(circle at 30% 40%, rgba(14,116,144,.16), transparent 60%),
    radial-gradient(circle at 72% 60%, rgba(169,65,95,.15), transparent 62%);
}
.hs-card{
  position:relative; display:flex; align-items:center; gap:16px;
  background: color-mix(in srgb, var(--paper) 90%, transparent);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  border:1px solid rgba(255,255,255,.9);
  border-radius:20px; padding:14px 18px;
  box-shadow: var(--shadow-1);
  transition: transform .35s var(--ease), box-shadow .35s var(--ease), border-color .35s var(--ease);
}
.hs-card:nth-child(1){ animation: riseIn .8s var(--ease) .15s backwards, floatY 6.5s ease-in-out 2.2s infinite; }
.hs-card:nth-child(2){ animation: riseIn .8s var(--ease) .3s backwards, floatY 7.5s ease-in-out 3.2s infinite; }
.hs-card:hover{ transform: translateY(-5px); box-shadow: var(--shadow-2); }
.hs-card .hs-pic{
  position:relative; width:68px; height:68px; border-radius:18px; flex:0 0 auto;
  overflow:hidden; box-shadow: 0 0 0 3px var(--paper), 0 0 0 4.5px var(--line);
}
.hs-card.hs-ortho .hs-pic{ box-shadow: 0 0 0 3px var(--paper), 0 0 0 4.5px rgba(14,116,144,.5); }
.hs-card.hs-gynec .hs-pic{ box-shadow: 0 0 0 3px var(--paper), 0 0 0 4.5px rgba(169,65,95,.5); }
.hs-card .hs-pic img{ width:100%; height:100%; object-fit:cover; object-position:50% 15%; transition: transform .6s var(--ease); }
.hs-card:hover .hs-pic img{ transform: scale(1.08); }
.hs-card .hs-body{ min-width:0; }
.hs-card .hs-tag{
  display:block; font-size:10.5px; font-weight:800; letter-spacing:.13em;
  text-transform:uppercase; margin-bottom:2px;
}
.hs-card.hs-ortho .hs-tag{ color:#0e7490; }
.hs-card.hs-gynec .hs-tag{ color:#a9415f; }
.hs-card .hs-body b{
  display:block; font-family: var(--font-sans);
  font-size:17px; font-weight:800; color: var(--ink); line-height:1.2;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.hs-card .hs-body i{
  display:block; font-style:normal; margin-top:3px;
  font-size:12.5px; font-weight:600; color: color-mix(in srgb, var(--ink) 58%, transparent);
}
.hs-card .hs-go{
  margin-left:auto; flex:0 0 auto;
  width:40px; height:40px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); color: var(--ink); background: var(--paper);
  transition: all .3s var(--ease);
}
.hs-card .hs-go svg{ width:16px; height:16px; stroke: currentColor; transition: transform .3s var(--ease); }
.hs-card.hs-ortho:hover .hs-go{ background:#0e7490; border-color:#0e7490; color:#fff; }
.hs-card.hs-gynec:hover .hs-go{ background:#a9415f; border-color:#a9415f; color:#fff; }
.hs-card:hover .hs-go svg{ transform: translateX(3px); }

/* --- Our Specialists showcase (cards below the hero) ------------- */
.hub-docs{ display:grid; grid-template-columns:1fr 1fr; gap:26px; align-items:stretch; }
.hub-doc{
  position:relative; display:flex; flex-direction:column;
  background: var(--paper); border:1px solid var(--line); border-radius:22px;
  overflow:hidden; box-shadow: var(--shadow-1);
  transition: transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.hub-doc:hover{ transform: translateY(-7px); box-shadow: var(--shadow-2); border-color: color-mix(in srgb, var(--rose) 30%, transparent); }
.hub-doc::before{
  content:''; position:absolute; top:0; left:0; right:0; height:5px; z-index:3;
}
.hub-doc.doc-ortho::before{ background: linear-gradient(90deg,#0e7490,#3aa9c6); }
.hub-doc.doc-gynec::before{ background: linear-gradient(90deg,#a9415f,#cd7c97); }
.hub-doc .d-media{ position:relative; display:block; aspect-ratio:16/8.2; overflow:hidden; }
.hub-doc .d-media img{
  width:100%; height:100%; object-fit:cover; object-position:50% 16%;
  transition: transform .8s var(--ease);
}
.hub-doc:hover .d-media img{ transform: scale(1.06); }
.hub-doc .d-media::after{
  content:''; position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 52%, rgba(13,28,36,.34));
  opacity:.5; transition: opacity .4s var(--ease);
}
.hub-doc:hover .d-media::after{ opacity:.75; }
.hub-doc .d-chip{
  position:absolute; left:16px; top:14px; z-index:2;
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 14px; border-radius:100px;
  background: rgba(255,255,255,.93); backdrop-filter: blur(6px);
  font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  box-shadow: var(--shadow-1);
}
.hub-doc .d-chip svg{ width:13px; height:13px; stroke: currentColor; fill:none; }
.hub-doc.doc-ortho .d-chip{ color:#0e7490; }
.hub-doc.doc-gynec .d-chip{ color:#a9415f; }
.hub-doc .d-body{ padding:24px 26px 26px; display:flex; flex-direction:column; flex:1; }
.hub-doc .d-body h3{ font-size:23px; line-height:1.15; }
.hub-doc .d-cred{
  margin-top:8px; font-size:12.5px; font-weight:600;
  color: color-mix(in srgb, var(--ink) 56%, transparent); line-height:1.55;
}
.hub-doc .d-quote{
  margin:16px 0 0; padding-left:16px; border-left:2px solid var(--rose);
  font-family: var(--font-sans); font-style:italic;
  font-size:14.5px; line-height:1.7; color: color-mix(in srgb, var(--ink) 76%, transparent);
}
.hub-doc .d-points{
  display:grid; grid-template-columns:1fr 1fr; gap:8px 18px;
  margin:18px 0 0;
}
.hub-doc .d-points li{
  position:relative; padding-left:21px;
  font-size:13.5px; line-height:1.6; color: color-mix(in srgb, var(--ink) 70%, transparent);
}
.hub-doc .d-points li::before{
  content:''; position:absolute; left:1px; top:7px;
  width:9px; height:9px; border-radius:3px; transform: rotate(45deg);
}
.hub-doc.doc-ortho .d-points li::before{ background: rgba(14,116,144,.35); }
.hub-doc.doc-gynec .d-points li::before{ background: rgba(169,65,95,.35); }
.hub-doc .d-actions{
  margin-top:auto; padding-top:22px;
  display:flex; gap:10px; flex-wrap:wrap;
}
.hub-doc .d-actions .btn{ padding:11px 20px; font-size:13.5px; border-radius:11px; }
.hub-doc .d-actions .btn svg{ width:14px; height:14px; }
.hub-doc.doc-gynec .btn-fill{ background:#a9415f; box-shadow: 0 10px 24px -10px rgba(169,65,95,.55); }
.hub-doc.doc-gynec .btn-fill:hover{ background:#7c2b46; }
.hub-doc.doc-gynec .btn-ghost:hover{ border-color: rgba(169,65,95,.5); color:#7c2b46; }
.hub-doc.doc-gynec .d-quote{ border-color: rgba(169,65,95,.55); }

/* hub mobile drawer */
.hub-burger{ display:none; }
@media (max-width:900px){
  .hub-nav-links{
    position:fixed; inset:0 0 0 auto; z-index:1100;
    width:min(320px,86vw); height:100dvh;
    display:flex; flex-direction:column; align-items:stretch; gap:6px;
    padding:88px 20px 28px;
    background: var(--paper);
    box-shadow:-20px 0 60px -20px rgba(0,0,0,.25);
    transform:translateX(105%); visibility:hidden;
    transition: transform .4s var(--ease-soft), visibility .4s;
    overflow-y:auto;
  }
  .hub-nav-links.show{ transform:none; visibility:visible; }
  .hub-nav-links a{ padding:13px 14px; border-radius:10px; font-size:15px; }
  .hub-burger{
    display:flex; flex-direction:column; justify-content:center; align-items:center;
    width:42px; height:42px; border-radius:11px;
    border:1px solid var(--line);
  }
  .hub-burger span{
    display:block; width:20px; height:2px; border-radius:2px;
    background: var(--ink);
    transition: transform .3s var(--ease), opacity .3s var(--ease);
  }
  .hub-burger span + span{ margin-top:5px; }
  body:has(.hub-nav-links.show) .hub-burger span:nth-child(1){ transform: translateY(3.5px) rotate(45deg); }
  body:has(.hub-nav-links.show) .hub-burger span:nth-child(2){ opacity:0; }
  body:has(.hub-nav-links.show) .hub-burger span:nth-child(3){ transform: translateY(-3.5px) rotate(-45deg); }
}
@media (max-width:1080px){
  .hub-doc-stack{ max-width:520px; }
}
@media (max-width:900px){
  .hub-docs{ grid-template-columns:1fr; }
  .hub-doc-stack{ max-width:480px; }
  .hub-hero-shade{
    background:
      linear-gradient(180deg, rgba(255,255,255,.985) 0%, rgba(255,255,255,.94) 34%, rgba(255,255,255,.78) 60%, rgba(247,250,251,.5) 100%),
      linear-gradient(0deg, #fff 0%, transparent 40%);
  }
  .hub-doc-stack::before{ display:none; }
}
@media (max-width:560px){
  .hub-doc .d-points{ grid-template-columns:1fr; }
  .hs-card{ padding:12px 14px; }
  .hs-card .hs-pic{ width:58px; height:58px; }
}

/* --- hub fine-tune --------------------------------------------- */
.hub-hero-copy .hub-eyebrow{ animation: riseIn .7s var(--ease) backwards; }
.hub-hero-copy h1{ animation: riseIn .75s var(--ease) .08s backwards; }
.hub-hero-copy .lede{ animation: riseIn .75s var(--ease) .16s backwards; }
.hub-hero-copy .cta-row{ animation: riseIn .75s var(--ease) .24s backwards; }
.hub-hero-copy .chip-row{ animation: riseIn .75s var(--ease) .32s backwards; }
.hub-hero-copy .hub-stat-strip{ animation: riseIn .75s var(--ease) .4s backwards; }
.hub-doc.doc-gynec:hover{ border-color: rgba(169,65,95,.32); }
.hub-value:hover .v-ic svg{ transform: scale(1.1) rotate(-4deg); }
.route-card{ transition: background-color .35s var(--ease); }
.route-card:hover{ background: color-mix(in srgb, var(--paper-2) 45%, var(--paper)); }

/* ---- HUB: Sterile clinical typography (Inter across all elements) ---- */
.hs-card.hs-ortho .hs-body b,
.hs-card.hs-gynec .hs-body b,
.hub-doc.doc-ortho .d-body h3,
.hub-doc.doc-gynec .d-body h3,
.route-card.rc-ortho h3,
.route-card.rc-gynec h3,
.hub-hero .nm-ortho,
.hub-hero .nm-gynec{
  font-family: var(--font-display);
  font-weight: 700;
  font-style: normal;
  letter-spacing: -.02em;
}
.hub-hero .nm-ortho, .hub-hero .nm-gynec{ color: var(--ink); }
.hub-hero .nm-ortho{ white-space:nowrap; }
.hub-hero .nm-gynec{ white-space:nowrap; }

/* hero headline - clean, authoritative sterile clinical typography */
.hub-hero h1{
  font-family: var(--font-display);
  font-weight: 750;
  letter-spacing: -.03em;
}
.hub-hero h1 em{
  font-family: var(--font-display);
  font-style: normal;
  font-weight: 750;
  letter-spacing: -.03em;
}
.hub-hero h1 em.rose{ font-weight: 750; }

/* hub footer - sterile clinical links */
.hub-foot a.fl-ortho,
.hub-foot a.fl-gynec{
  font-family: var(--font-sans);
  font-weight: 500;
  font-style: normal;
  letter-spacing: 0;
}
.hub-foot a.fl-ortho:hover, .hub-foot a.fl-gynec:hover{ color:#fff; }

/* stat numbers - uniform precision clinical font */
.hub-stat-strip .st:nth-child(odd) b,
.hub-stat-strip .st:nth-child(even) b{
  font-family: var(--font-display);
  font-weight: 750;
  letter-spacing: -.025em;
}

/* hub footer - clinic address cards */
.hub-addresses{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr 1fr; gap:18px;
  margin:-26px 0 46px;
}
.hub-addr{
  display:flex; align-items:flex-start; gap:16px;
  background: color-mix(in srgb, var(--paper) 6%, transparent);
  border:1px solid color-mix(in srgb, var(--paper) 13%, transparent);
  border-radius:16px; padding:20px 22px;
  transition: background .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.hub-addr:hover{
  background: color-mix(in srgb, var(--paper) 9%, transparent);
  border-color: color-mix(in srgb, var(--rose) 60%, transparent);
  transform: translateY(-3px);
}
.hub-addr .a-ic{
  width:46px; height:46px; border-radius:13px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center; color:#fff;
}
.hub-addr.addr-ortho .a-ic{ background: linear-gradient(140deg,#0e7490,#0a4d62); box-shadow: 0 8px 18px -8px rgba(14,116,144,.7); }
.hub-addr.addr-gynec .a-ic{ background: linear-gradient(140deg,#a9415f,#7c2b46); box-shadow: 0 8px 18px -8px rgba(169,65,95,.7); }
.hub-addr .a-ic svg{ width:21px; height:21px; stroke:#fff; fill:none; }
.hub-addr .a-tag{
  display:block; font-size:10.5px; font-weight:800; letter-spacing:.13em; text-transform:uppercase;
  margin-bottom:3px;
}
.hub-addr.addr-ortho .a-tag{ color:#74c9dc; }
.hub-addr.addr-gynec .a-tag{ color:#e2a6b9; }
.hub-addr h4{
  font-family: var(--font-sans); color: var(--paper);
  font-size:16.5px; font-weight:700; margin-bottom:6px; line-height:1.25;
}
.hub-addr.addr-ortho h4{ font-family:'Space Grotesk','Manrope',system-ui,sans-serif; font-weight:600; }
.hub-addr.addr-gynec h4{ font-family:'Fraunces',Georgia,'Times New Roman',serif; font-style:italic; font-weight:560; }
.hub-addr .a-addr{
  font-size:13.5px; line-height:1.7; max-width:400px;
  color: color-mix(in srgb, var(--paper) 76%, transparent);
  margin-bottom:11px;
}
.hub-addr .a-addr em{ font-style:italic; color: color-mix(in srgb, var(--paper) 55%, transparent); }
.hub-addr .a-link{
  display:inline-flex; align-items:center; gap:7px;
  font-size:12.5px; font-weight:700;
}
.hub-addr.addr-ortho .a-link{ color:#8fd9e9; }
.hub-addr.addr-gynec .a-link{ color:#efbccb; }
.hub-addr .a-link svg{ width:13px; height:13px; stroke:currentColor; transition: transform .3s var(--ease); }
.hub-addr:hover .a-link svg{ transform: translateX(3px); }
@media (max-width:900px){
  .hub-addresses{ grid-template-columns:1fr; margin:-14px 0 40px; }
}

/* ============================================================================
   15. LANDING HUB PAGE
   Colors: Ortho teal #0e7490 / Gynec rose #a9415f
   ============================================================================ */

/* --- Nav --- */
.lp-nav{
  position:sticky; top:0; z-index:900;
  background: color-mix(in srgb, var(--paper) 90%, transparent);
  backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px);
  border-bottom:1px solid var(--line);
}
.lp-nav-inner{
  max-width:var(--maxw); margin:0 auto; padding:14px 24px;
  display:flex; align-items:center; gap:24px;
}
.lp-logo{ display:flex; align-items:center; gap:12px; margin-right:auto; text-decoration:none; }
.lp-logo-mark{
  width:44px; height:44px; border-radius:13px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  background: linear-gradient(140deg, #0e7490, #a9415f);
  color:#fff; box-shadow: 0 8px 18px -8px rgba(14,116,144,.65);
}
.lp-logo-mark svg{ width:24px; height:24px; stroke:#fff; fill:none; }
.lp-logo-mark svg text, .lp-addr-icon svg text{ fill:#fff; stroke:none; }
.brand-letter-hub{ font-family:'Inter','Manrope',system-ui,sans-serif; font-weight:800; font-style:normal; }
.lp-logo-text{ line-height:1.2; }
.lp-logo-text strong{
  display:block; font-family:var(--font-sans); font-size:18px;
  font-weight:800; color:var(--ink); letter-spacing:-.02em;
}
.lp-logo-text span{
  display:block; font-size:11px; letter-spacing:.12em;
  text-transform:uppercase; font-weight:600;
  color: color-mix(in srgb, var(--ink) 50%, transparent);
}
.lp-nav-links{ display:flex; align-items:center; gap:6px; }
.lp-nav-links a{
  padding:9px 15px; border-radius:10px; text-decoration:none;
  font-size:14px; font-weight:600;
  color: color-mix(in srgb, var(--ink) 72%, transparent);
}
.lp-nav-links a:hover{ color:var(--ink); background:var(--paper-2); }
.lp-nav-cta{ margin-left:auto; }
.lp-burger{
  display:none; flex-direction:column; justify-content:center; align-items:center;
  width:42px; height:42px; border-radius:11px;
  border:1px solid var(--line); background:none; cursor:pointer;
}
.lp-burger span{
  display:block; width:20px; height:2px; border-radius:2px;
  background:var(--ink); transition:transform .3s var(--ease), opacity .3s var(--ease);
}
.lp-burger span+span{ margin-top:5px; }

@media(max-width:900px){
  .lp-nav-links{
    position:fixed; inset:0 0 0 auto; z-index:1100;
    width:min(300px,85vw); height:100dvh;
    flex-direction:column; align-items:stretch; gap:4px;
    padding:84px 20px 28px;
    background:var(--paper);
    box-shadow:-20px 0 60px -20px rgba(0,0,0,.25);
    transform:translateX(105%); visibility:hidden;
    transition:transform .4s var(--ease-soft), visibility .4s;
    overflow-y:auto;
  }
  .lp-nav-links.show{ transform:none; visibility:visible; }
  .lp-nav-links a{ padding:13px 14px; border-radius:10px; font-size:15px; }
  .lp-burger{ display:flex; }
  .lp-nav-cta{ display:none; }
  body:has(.lp-nav-links.show) .lp-burger span:nth-child(1){ transform:translateY(3.5px) rotate(45deg); }
  body:has(.lp-nav-links.show) .lp-burger span:nth-child(2){ opacity:0; }
  body:has(.lp-nav-links.show) .lp-burger span:nth-child(3){ transform:translateY(-3.5px) rotate(-45deg); }
}
@media(max-width:720px){
  .lp-logo-text span{ display:none; }
}

/* --- Hero --- */
@keyframes lpRiseIn{ from{ opacity:0; transform:translateY(24px); } to{ opacity:1; transform:none; } }
@keyframes lpFloat{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-8px); } }
.lp-hero{
  position:relative; overflow:hidden;
  background: linear-gradient(135deg, #fef7f9 0%, #eef5f7 50%, #f0f4f8 100%);
}
.lp-hero-photo{ position:absolute; inset:0; z-index:0; }
.lp-hero-photo img{ width:100%; height:100%; object-fit:cover; object-position:center right; }
.lp-hero-shade{
  position:absolute; inset:0; z-index:1; pointer-events:none;
  background:
    linear-gradient(90deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.92) 28%, rgba(255,255,255,.58) 52%, rgba(252,240,244,.15) 100%),
    linear-gradient(0deg, #fff 0%, rgba(255,255,255,.5) 15%, transparent 50%);
}
.lp-hero-inner{
  position:relative; z-index:3;
  padding: clamp(52px,8vw,100px) 24px clamp(44px,6vw,72px);
}
.lp-hero-copy{ max-width:620px; }
.lp-eyebrow{
  display:inline-flex; align-items:center; gap:9px;
  padding:7px 16px 7px 10px; border-radius:100px;
  background:var(--paper); border:1px solid var(--line);
  box-shadow:var(--shadow-1);
  font-size:12px; font-weight:700; letter-spacing:.06em;
  color:var(--ink);
}
.lp-eyebrow-dot{
  width:8px; height:8px; border-radius:50%;
  background:linear-gradient(135deg, #0e7490, #a9415f);
}
.lp-hero h1{
  font-family:var(--font-display); font-weight:750;
  font-size:clamp(2.3rem,5.5vw,4rem);
  line-height:1.05; margin:22px 0 20px;
  letter-spacing:-.03em; color:var(--ink);
}
.lp-hero h1 em{
  color:#a9415f; font-style:normal; position:relative;
}
.lp-hero h1 em::after{
  content:''; position:absolute; bottom:2px; left:0; right:0; height:8px;
  background:linear-gradient(90deg, rgba(169,65,95,.2), rgba(14,116,144,.15));
  border-radius:4px; z-index:-1;
}
.lp-lede{
  font-size:17px; line-height:1.85; max-width:520px;
  color:color-mix(in srgb, var(--ink) 68%, transparent);
  margin-bottom:28px;
}
.lp-hero-actions{ display:flex; gap:14px; flex-wrap:wrap; }
.lp-hero-stats{
  display:flex; gap:0; margin-top:36px; padding-top:22px;
  border-top:1px solid var(--line); max-width:520px;
}
.lp-hero-stat{ flex:1; }
.lp-hero-stat+.lp-hero-stat{ padding-left:22px; border-left:1px solid var(--line); }
.lp-hero-stat strong{
  display:block; font-family:var(--font-display);
  font-size:clamp(1.5rem,2.4vw,2rem); font-weight:700;
  color:var(--ink); line-height:1;
}
.lp-hero-stat span{ font-size:12.5px; margin-top:6px; color:color-mix(in srgb,var(--ink) 55%,transparent); }

.lp-hero-copy .lp-eyebrow{ animation:lpRiseIn .7s var(--ease) backwards; }
.lp-hero-copy h1{ animation:lpRiseIn .75s var(--ease) .08s backwards; }
.lp-hero-copy .lp-lede{ animation:lpRiseIn .75s var(--ease) .16s backwards; }
.lp-hero-copy .lp-hero-actions{ animation:lpRiseIn .75s var(--ease) .24s backwards; }
.lp-hero-copy .lp-hero-stats{ animation:lpRiseIn .75s var(--ease) .32s backwards; }

/* Gynec-themed ghost button */
.btn-gynec{
  background:transparent; color:#a9415f;
  border:1.5px solid rgba(169,65,95,.35);
}
.btn-gynec:hover{
  background:rgba(169,65,95,.08);
  border-color:#a9415f;
  color:#7c2b46;
  transform:translateY(-2px);
}

@media(max-width:900px){
  .lp-hero-shade{
    background:
      linear-gradient(180deg, rgba(255,255,255,.97) 0%, rgba(255,255,255,.88) 30%, rgba(255,255,255,.6) 60%, rgba(252,240,244,.3) 100%);
  }
}

/* --- Doctor Profiles --- */
.lp-doctors{
  padding:clamp(60px,9vw,100px) 0;
  background: linear-gradient(180deg, var(--paper-2) 0%, #fdf6f8 100%);
}
.lp-sec-head{ max-width:680px; margin:0 auto 52px; text-align:center; }
.lp-sec-head h2{ margin-top:14px; font-size:clamp(1.6rem,3.2vw,2.4rem); }
.lp-sec-head h2 em{ color:#a9415f; font-style:normal; }
.lp-sec-head p{ margin-top:14px; color:color-mix(in srgb,var(--ink) 62%,transparent); font-size:16px; }

.lp-doc-grid{ display:grid; grid-template-columns:1fr 1fr; gap:26px; align-items:stretch; }
.lp-doc-card{
  position:relative; display:flex; flex-direction:column;
  background:var(--paper); border:1px solid var(--line); border-radius:22px;
  overflow:hidden; box-shadow:var(--shadow-1);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
}
.lp-doc-card:hover{ transform:translateY(-7px); box-shadow:var(--shadow-2); }
.lp-doc-card::before{ content:''; position:absolute; top:0; left:0; right:0; height:5px; z-index:3; }
.lp-doc-ortho::before{ background:linear-gradient(90deg,#0e7490,#3aa9c6); }
.lp-doc-gynec::before{ background:linear-gradient(90deg,#a9415f,#cd7c97); }

.lp-doc-img{ position:relative; aspect-ratio:16/8.5; overflow:hidden; }
.lp-doc-img img{ width:100%; height:100%; object-fit:cover; object-position:50% 16%; transition:transform .8s var(--ease); }
.lp-doc-card:hover .lp-doc-img img{ transform:scale(1.06); }
.lp-doc-img::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, transparent 50%, rgba(13,28,36,.3));
  opacity:.5; transition:opacity .4s var(--ease);
}
.lp-doc-card:hover .lp-doc-img::after{ opacity:.75; }

.lp-doc-badge{
  position:absolute; left:16px; top:14px; z-index:2;
  display:inline-flex; align-items:center; gap:7px;
  padding:7px 14px; border-radius:100px;
  background:rgba(255,255,255,.93); backdrop-filter:blur(6px);
  font-size:11px; font-weight:800; letter-spacing:.09em; text-transform:uppercase;
  box-shadow:var(--shadow-1);
}
.lp-badge-ortho{ color:#0e7490; }
.lp-badge-gynec{ color:#a9415f; }

.lp-doc-body{ padding:26px 28px 28px; display:flex; flex-direction:column; flex:1; }
.lp-doc-body h3{ font-size:24px; line-height:1.15; font-family:var(--font-sans); font-weight:800; letter-spacing:-.02em; }
.lp-doc-qual{
  margin-top:6px; font-size:12.5px; font-weight:600;
  color:color-mix(in srgb, var(--ink) 54%, transparent); line-height:1.5;
}
.lp-doc-desc{
  margin-top:14px; font-size:14.5px; line-height:1.75;
  color:color-mix(in srgb, var(--ink) 66%, transparent);
}

.lp-doc-metrics{
  display:grid; grid-template-columns:repeat(3,1fr); gap:12px;
  margin:20px 0 22px;
  padding-top:18px; border-top:1px solid var(--line);
}
.lp-metric{ text-align:center; }
.lp-metric strong{
  display:block; font-family:var(--font-display);
  font-size:18px; font-weight:700; color:var(--ink); line-height:1;
}
.lp-metric span{
  display:block; font-size:11.5px; margin-top:5px;
  color:color-mix(in srgb, var(--ink) 52%, transparent);
  line-height:1.3;
}

.lp-doc-btn{ margin-top:auto; width:100%; justify-content:center; }
.lp-doc-ortho .lp-doc-card:hover .lp-doc-badge{ color:#0e7490; }
.lp-doc-gynec .lp-doc-card:hover .lp-doc-badge{ color:#a9415f; }
.lp-btn-gynec{ background:#a9415f; box-shadow:0 10px 24px -10px rgba(169,65,95,.55); }
.lp-btn-gynec:hover{ background:#7c2b46; }

@media(max-width:900px){
  .lp-doc-grid{ grid-template-columns:1fr; max-width:520px; margin:0 auto; }
}
@media(max-width:560px){
  .lp-hero-inner{ padding: 44px 20px 44px; }
  .lp-hero-actions{ flex-direction:column; gap:12px; }
  .lp-hero-actions .btn{ width:100%; justify-content:center; }
  .lp-hero-stats{ flex-direction:column; gap:20px; padding-top:20px; }
  .lp-hero-stat + .lp-hero-stat{ padding-left:0; border-left:none; padding-top:20px; border-top:1px solid var(--line); }

  .lp-doc-metrics{ grid-template-columns:1fr; gap:14px; text-align:left; }
  .lp-doc-metrics .lp-metric{ text-align:left; display:flex; align-items:center; gap:12px; }
  .lp-doc-metrics .lp-metric strong{ font-size:20px; }
  .lp-doc-metrics .lp-metric span{ margin-top:0; font-size:13px; }
  .lp-doc-body{ padding:22px 22px 24px; }
}

/* --- Address Cards (Footer) ---
   Matches the shared footer's dark quickbar cards (see .foot-quickbar / .fq-item)
   so the two clinics read as part of the footer, not cards floating over it. */
.lp-addr-cards{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1fr 1fr; gap:18px;
  margin:0 0 52px;
}
.lp-addr-card{
  display:flex; align-items:flex-start; gap:16px;
  background:color-mix(in srgb, var(--paper) 5%, transparent);
  border:1px solid color-mix(in srgb, var(--paper) 13%, transparent);
  border-radius:16px;
  padding:20px 22px;
  transition:background .3s var(--ease), border-color .3s var(--ease), transform .3s var(--ease);
}
.lp-addr-card:hover{
  background:color-mix(in srgb, var(--paper) 9%, transparent);
  border-color:color-mix(in srgb, var(--paper) 60%, transparent);
  transform:translateY(-3px);
}

.lp-addr-icon{
  width:46px; height:46px; border-radius:13px; flex:0 0 auto;
  display:flex; align-items:center; justify-content:center;
  color:#fff;
}
.lp-addr-ortho .lp-addr-icon{ background:linear-gradient(140deg,#0e7490,#0a4d62); box-shadow:0 8px 18px -8px rgba(14,116,144,.7); }
.lp-addr-gynec .lp-addr-icon{ background:linear-gradient(140deg,#a9415f,#7c2b46); box-shadow:0 8px 18px -8px rgba(169,65,95,.7); }
.lp-addr-icon svg{ width:21px; height:21px; stroke:#fff; fill:none; }

.lp-addr-info{ flex:1; min-width:0; }
.lp-addr-tag{
  display:block; font-size:10.5px; font-weight:800;
  letter-spacing:.13em; text-transform:uppercase; margin-bottom:3px;
}
.lp-addr-tag-ortho{ color:#74c9dc; }
.lp-addr-tag-gynec{ color:#e2a6b9; }
.lp-addr-info h4{
  font-family:var(--font-sans); font-size:16.5px; font-weight:700;
  color:var(--paper); margin-bottom:6px; line-height:1.25;
}
.lp-addr-text{
  display:flex; align-items:flex-start; gap:8px;
  font-size:13.5px; line-height:1.7;
  color:color-mix(in srgb, var(--paper) 76%, transparent);
  margin-bottom:11px;
}
.lp-addr-text svg{ width:15px; height:15px; flex:0 0 auto; stroke:#0e7490; margin-top:3px; }
.lp-addr-gynec .lp-addr-text svg{ stroke:#a9415f; }
.lp-addr-timing{
  display:flex; align-items:center; gap:8px;
  font-size:12.5px; color:color-mix(in srgb, var(--paper) 60%, transparent);
  margin-bottom:16px;
}
.lp-addr-timing svg{ width:14px; height:14px; flex:0 0 auto; stroke:#0e7490; }
.lp-addr-gynec .lp-addr-timing svg{ stroke:#a9415f; }

.lp-addr-actions{ display:flex; gap:8px; flex-wrap:wrap; }
.lp-addr-btn{
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 14px; border-radius:100px;
  font-size:12.5px; font-weight:700; text-decoration:none;
  transition:all .25s var(--ease);
}
.lp-addr-btn svg{ width:14px; height:14px; }
.lp-addr-btn-phone{
  background:color-mix(in srgb, var(--paper) 12%, transparent);
  color:var(--paper);
  border:1px solid color-mix(in srgb, var(--paper) 20%, transparent);
}
.lp-addr-btn-phone:hover{ background:color-mix(in srgb, var(--paper) 22%, transparent); color:#fff; border-color:#0e7490; }
.lp-addr-gynec .lp-addr-btn-phone:hover{ border-color:#a9415f; }
.lp-addr-btn-wa{
  background:#25d366; color:#fff;
}
.lp-addr-btn-wa:hover{ background:#1db355; transform:translateY(-2px); }
.lp-addr-btn-more{
  background:#0e7490; color:#fff;
}
.lp-addr-btn-more:hover{ background:#0a4d62; transform:translateY(-2px); }
.lp-addr-btn-more-rose{ background:#a9415f; }
.lp-addr-btn-more-rose:hover{ background:#7c2b46; }

@media(max-width:900px){
  .lp-addr-cards{ grid-template-columns:1fr; margin:0 0 44px; }
}
@media(max-width:560px){
  .lp-addr-card{ flex-direction:column; gap:16px; }
  .lp-addr-actions{ flex-direction:column; }
  .lp-addr-btn{ justify-content:center; }
}

/* --- Footer --- */
.lp-foot{
  position:relative; overflow:hidden;
  background:var(--ink);
  color:color-mix(in srgb, var(--paper) 72%, transparent);
  padding:68px 0 0;
}
.lp-foot-glow{
  position:absolute; top:-120px; left:30%; transform:translateX(-50%);
  width:500px; height:280px;
  background:radial-gradient(ellipse at center, color-mix(in srgb, #0e7490 28%, transparent), transparent 70%);
  filter:blur(12px); pointer-events:none;
}
.lp-foot-glow-rose{
  position:absolute; top:-80px; right:15%; transform:translateX(50%);
  width:400px; height:240px;
  background:radial-gradient(ellipse at center, color-mix(in srgb, #a9415f 22%, transparent), transparent 70%);
  filter:blur(14px); pointer-events:none;
}
.lp-foot::before{
  content:''; position:absolute; top:0; left:0; right:0; height:3px;
  background:linear-gradient(90deg, transparent, #0e7490, #a9415f, transparent);
  opacity:.85;
}
.lp-foot-grid{
  position:relative; z-index:1;
  display:grid; grid-template-columns:1.5fr 1fr 1.1fr; gap:44px;
  padding-bottom:44px; border-bottom:1px solid rgba(255,255,255,.1);
}
.lp-foot-logo{ display:flex; align-items:center; gap:12px; margin-bottom:16px; text-decoration:none; }
.lp-foot-logo .lp-logo-mark{ width:40px; height:40px; }
.lp-foot-logo .lp-logo-mark svg{ width:20px; height:20px; }
.lp-foot-logo strong{
  font-family:var(--font-sans); font-size:18px; font-weight:800;
  color:var(--paper); letter-spacing:-.02em;
}
.lp-foot-tagline{ font-size:14px; line-height:1.85; max-width:320px; opacity:.72; }
.lp-foot-social{ display:flex; gap:10px; margin-top:20px; }
.lp-foot-social a{
  width:38px; height:38px; border-radius:50%;
  display:flex; align-items:center; justify-content:center;
  background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.12);
  color:color-mix(in srgb, var(--paper) 85%, transparent);
  transition:all .3s var(--ease);
}
.lp-foot-social a svg{ width:16px; height:16px; fill:currentColor; }
.lp-foot-social a:nth-child(2):hover{ background:#a9415f; border-color:#a9415f; }
.lp-foot-social a:hover{ background:#0e7490; border-color:#0e7490; color:#fff; transform:translateY(-3px); }

.lp-foot-col h4{
  font-family:var(--font-sans); font-size:12px; font-weight:800;
  letter-spacing:.16em; text-transform:uppercase;
  color:var(--paper); margin-bottom:18px; opacity:.95;
}
.lp-foot-col ul{ list-style:none; }
.lp-foot-col li{ margin-bottom:11px; }
.lp-foot-col a{
  font-size:13.8px; text-decoration:none;
  color:color-mix(in srgb, var(--paper) 72%, transparent);
  display:inline-flex; align-items:center; gap:8px;
  transition:color .25s var(--ease);
}
.lp-foot-col a::before{ content:'\2192'; font-size:12px; opacity:0; transform:translateX(-6px); transition:all .25s var(--ease); }
.lp-foot-col a:hover{ color:var(--paper); }
.lp-foot-col a:hover::before{ opacity:.8; transform:none; }

.lp-fc-item{ display:flex; gap:12px; margin-bottom:16px; align-items:flex-start; }
.lp-fc-item svg{ width:17px; height:17px; flex:0 0 auto; stroke:#a9415f; margin-top:3px; }
.lp-fc-item span{ font-size:13.5px; line-height:1.65; color:color-mix(in srgb, var(--paper) 74%, transparent); display:block; }

.lp-foot-bottom{
  position:relative; z-index:1;
  display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap;
  padding:22px 0 26px; font-size:12.5px; opacity:.55;
}
.lp-foot-credit{
  padding:5px 14px; border-radius:100px;
  background:rgba(255,255,255,.08);
}

@media(max-width:900px){
  .lp-foot-grid{ grid-template-columns:1fr 1fr; }
}
@media(max-width:640px){
  .lp-foot-grid{ grid-template-columns:1fr; gap:32px; }
  .lp-foot-bottom{ flex-direction:column; align-items:flex-start; }
}
