/* =========================================================
   J.K Hospital, Tanuku — styles
   Palette sampled from the logo: blue #003FB0, red #E40514
   Motion rule: animate transform + opacity only.
   ========================================================= */
/* Self-hosted variable fonts (SIL Open Font License, via Fontsource) */
@font-face { font-family: "Inter"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(../fonts/inter-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Bricolage Grotesque"; font-style: normal; font-weight: 200 800; font-display: swap; src: url(../fonts/bricolage-grotesque-latin.woff2) format("woff2"); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: "Noto Sans Telugu"; font-style: normal; font-weight: 100 900; font-display: swap; src: url(../fonts/noto-sans-telugu.woff2) format("woff2"); unicode-range: U+0951-0952, U+0964-0965, U+0C00-0C7F, U+1CDA, U+1CF2, U+200C-200D, U+25CC; }

:root {
  /* colour */
  --blue: #003FB0;          /* logo blue — primary */
  --blue-soft: #4F86F7;
  --navy: #14246B;          /* primary dark */
  --red: #E40514;           /* logo red — emergency / call only */
  --red-dark: #B5030F;
  --red-tint: #FDECEE;
  --mint: #EAF6F4;
  --ice: #EEF3FD;
  --ice-2: #DCE6FA;
  --white: #FFFFFF;
  --text: #1E293B;
  --muted: #64748B;
  --line: #E1E8F5;
  --line-hover: #B9CBF0;
  --star: #F5B301;
  --ok: #15803D;

  /* type scale */
  --font-display: "Bricolage Grotesque", "Noto Sans Telugu", system-ui, sans-serif;
  --font-body: "Inter", "Noto Sans Telugu", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fs-h2: clamp(1.85rem, 1.3rem + 1.8vw, 2.6rem);
  --fs-h3: 1.375rem;   /* card titles */
  --fs-h4: 1.0625rem;  /* small titles */
  --fs-lead: 1.125rem;
  --fs-body: 1rem;
  --fs-sm: .9375rem;
  --fs-xs: .8125rem;

  /* radius system */
  --r-sm: 12px;   /* icon tiles, chips, small boxes */
  --r-md: 20px;   /* cards */
  --r-lg: 28px;   /* panels, photo frames */
  --r-pill: 999px;

  /* shadows — layered, low opacity, large blur */
  --shadow-sm: 0 1px 2px rgba(20, 36, 107, .04), 0 4px 14px rgba(20, 36, 107, .05);
  --shadow: 0 2px 6px rgba(20, 36, 107, .04), 0 18px 44px -14px rgba(20, 36, 107, .14);
  --shadow-lg: 0 4px 12px rgba(20, 36, 107, .05), 0 36px 72px -28px rgba(20, 36, 107, .26);
  --shadow-hover: 0 4px 12px rgba(0, 63, 176, .06), 0 26px 50px -18px rgba(0, 63, 176, .24);

  /* motion */
  --ease: cubic-bezier(.22, 1, .36, 1);
  --ease-io: cubic-bezier(.45, 0, .55, 1);
  --t-fast: .25s;
  --t: .6s;

  /* layout */
  --container: 1200px;
  --gutter: 16px;
  --section-y: 56px;
  --header-h: 64px;
}
@media (min-width: 768px) { :root { --gutter: 24px; --section-y: 64px; --header-h: 72px; } }
@media (min-width: 1024px) { :root { --section-y: 72px; --header-h: 76px; } }
@media (min-width: 1280px) { :root { --gutter: 32px; } }

*, *::before, *::after { box-sizing: border-box; }
html {
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--header-h) + 8px);
  -webkit-text-size-adjust: 100%;
  overflow-x: clip;
}
body {
  margin: 0;
  font-family: var(--font-body);
  font-size: var(--fs-body);
  line-height: 1.65;
  color: var(--text);
  background: var(--white);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
html.nav-locked, html.nav-locked body { overflow: hidden; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--blue); transition: color var(--t-fast) var(--ease); }
a:hover { color: var(--navy); }
button { font: inherit; cursor: pointer; }
ul, ol { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4, p, figure, blockquote, dl, dd { margin: 0; }
:focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; border-radius: 6px; }
.site-footer :focus-visible, .about-card :focus-visible, .hours-head :focus-visible, .contact-head :focus-visible, .er-head :focus-visible { outline-color: #fff; }

/* One icon set (Lucide-style), one stroke weight, sizes per component */
.ic { width: 20px; height: 20px; flex: none; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ic-star { width: 20px; height: 20px; fill: var(--star); flex: none; }
.ic-star.off { fill: #D7DEEA; }

.container { width: 100%; max-width: calc(var(--container) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter); }
.center { display: flex; justify-content: center; }
.muted { color: var(--muted); }
.top-sentinel { position: absolute; top: 0; left: 0; width: 1px; height: 24px; pointer-events: none; }

.skip-link { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--navy); color: #fff; padding: 10px 16px; border-radius: var(--r-sm); }
.skip-link:focus { top: 12px; color: #fff; }

/* Icon tiles */
.sc-ic, .sq-ic, .fc-ic, .chip-ic, .ring-ic, .row-ic, .note-ic, .head-ic { display: grid; place-items: center; flex: none; }
.sc-ic, .sq-ic { width: 56px; height: 56px; border-radius: 16px; background: var(--ice); color: var(--blue); }
.sc-ic .ic, .sq-ic .ic { width: 24px; height: 24px; }
.ring-ic, .row-ic { width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--ice-2); color: var(--blue); background: #fff; }

/* ---------- Typography ---------- */
.h2 {
  font-family: var(--font-display);
  font-weight: 800;
  font-size: var(--fs-h2);
  line-height: 1.08;
  letter-spacing: -.035em;
  color: var(--navy);
  text-wrap: balance;
}
.h2 em { font-style: normal; color: var(--blue); }
.eyebrow {
  display: inline-flex; align-items: center; gap: 14px;
  font-size: var(--fs-xs); font-weight: 700; letter-spacing: .2em; text-transform: uppercase;
  color: var(--blue); margin-bottom: 14px; line-height: 1.4;
}
.eyebrow::before { content: ""; width: 30px; height: 2px; background: currentColor; border-radius: 2px; flex: none; }
.section-head { margin-bottom: clamp(28px, 3vw, 40px); max-width: 760px; }
.section-head--split { max-width: none; display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; }
.section-lead { margin-top: 16px; font-size: var(--fs-lead); color: var(--muted); max-width: 640px; }
.lead { font-size: var(--fs-lead); color: var(--text); margin-top: 20px; }
.about-copy .muted { margin-top: 14px; }

/* ---------- Buttons ---------- */
.btn {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: 48px; padding: 12px 26px;
  border-radius: var(--r-pill); border: 2px solid transparent;
  font-weight: 700; font-size: var(--fs-body); line-height: 1.25; text-align: center; text-decoration: none;
  transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), transform .15s var(--ease);
  -webkit-tap-highlight-color: transparent;
}
.btn:active { transform: scale(.98); }
.btn-red { background: var(--red); color: #fff; box-shadow: 0 10px 22px -12px rgba(228, 5, 20, .55); }
.btn-red:hover { background: var(--red-dark); color: #fff; }
.btn-blue { background: var(--blue); color: #fff; box-shadow: 0 10px 22px -12px rgba(0, 63, 176, .55); }
.btn-blue:hover { background: var(--navy); color: #fff; }
.btn-outline { background: #fff; color: var(--blue); border-color: var(--blue); }
.btn-outline:hover { background: var(--ice); color: var(--navy); border-color: var(--navy); }
.btn-ghost-light { color: #fff; border-color: rgba(255, 255, 255, .7); }
.btn-ghost-light:hover { background: rgba(255, 255, 255, .1); color: #fff; border-color: #fff; }
.btn-sm { min-height: 44px; padding: 10px 20px; font-size: var(--fs-sm); white-space: nowrap; }
.btn-xs { min-height: 44px; padding: 8px 20px; font-size: var(--fs-sm); }
.btn-lg { min-height: 56px; padding: 12px 14px 12px 28px; font-size: 1.0625rem; }
.btn-lg.btn-outline { padding: 12px 28px; }
.btn-block { width: 100%; }
.btn-arrow { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #fff; color: var(--red); margin-left: 4px; transition: transform var(--t-fast) var(--ease); flex: none; }
.btn-arrow .ic { width: 18px; height: 18px; }
.btn:hover .btn-arrow { transform: translateX(3px); }
.btn-row { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 36px; }
.btn-row--center { justify-content: center; }
.link-arrow { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700; text-decoration: none; color: var(--blue); }
.link-arrow .ic { width: 18px; height: 18px; transition: transform var(--t-fast) var(--ease); }
.link-arrow:hover .ic { transform: translateX(4px); }

/* Emergency badges — soft breathing glow (opacity only) */
.tag-247 {
  position: relative;
  display: inline-flex; align-items: center; justify-content: center;
  background: var(--red); color: #fff; font-weight: 800; font-family: var(--font-display);
  border-radius: var(--r-pill); padding: 4px 14px; font-size: 1rem; line-height: 1.4; letter-spacing: .02em;
}
.tag-247--light { background: #fff; color: var(--red); }
.tag-247--sm { font-size: .75rem; padding: 1px 9px; }
.tag-247:not(.tag-247--sm)::after, .pill-emergency::after {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  box-shadow: 0 0 0 5px rgba(228, 5, 20, .10), 0 0 22px rgba(228, 5, 20, .28);
  opacity: 0; animation: breathe 3.6s var(--ease-io) infinite;
}
.tag-247--light::after { box-shadow: 0 0 0 5px rgba(255, 255, 255, .18), 0 0 22px rgba(255, 255, 255, .45) !important; }
@keyframes breathe { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }

/* Dot patterns */
.dots { position: absolute; pointer-events: none; background-image: radial-gradient(rgba(0, 63, 176, .2) 1.6px, transparent 1.8px); background-size: 18px 18px; }
.dots-tr { top: 40px; right: 40px; width: 150px; height: 110px; }
.dots-bl { bottom: 30px; left: 20px; width: 90px; height: 70px; }

/* ---------- Shared card hover: lift + shadow layer + blue border tint ---------- */
.lift { position: relative; transition: transform var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease); }
.lift::after {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  box-shadow: var(--shadow-hover); opacity: 0; transition: opacity var(--t-fast) var(--ease);
}
@media (hover: hover) {
  .lift:hover, .js .reveal.in.lift:hover { transform: translateY(-4px); border-color: var(--line-hover); }
  .lift:hover::after { opacity: 1; }
}

/* ---------- Header ---------- */
.site-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 50;
  transition: transform .4s var(--ease);
}
.site-header::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: rgba(255, 255, 255, .96);
  backdrop-filter: saturate(160%) blur(14px);
  -webkit-backdrop-filter: saturate(160%) blur(14px);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 10px 30px -18px rgba(20, 36, 107, .28);
  opacity: 0; transition: opacity .4s var(--ease);
}
.site-header.scrolled::before, html.nav-locked .site-header::before { opacity: 1; }
/* slightly shorter bar once scrolled: shift up 8px, keep contents centred */
.site-header.scrolled { transform: translateY(-8px); }
.header-inner { display: flex; align-items: center; gap: 20px; height: var(--header-h); transition: transform .4s var(--ease); }
.site-header.scrolled .header-inner { transform: translateY(4px); }
.js .site-header > .container { animation: fadeIn .6s var(--ease) both; }
.brand { display: flex; align-items: center; gap: 10px; text-decoration: none; flex: none; }
.brand img { width: 48px; height: 48px; transition: transform .4s var(--ease); }
.site-header.scrolled .brand img { transform: scale(.9); }
.brand-text { display: flex; flex-direction: column; line-height: 1.15; }
.brand-name { font-family: var(--font-display); font-weight: 800; font-size: 1.2rem; color: var(--navy); letter-spacing: -.02em; }
.brand-sub { font-size: .75rem; color: var(--muted); font-weight: 500; }
.main-nav { display: flex; gap: 2px; margin: 0 auto; }
.main-nav a { position: relative; padding: 8px 9px; font-weight: 500; font-size: .9375rem; color: var(--text); text-decoration: none; border-radius: 8px; white-space: nowrap; }
.main-nav a::after { content: ""; position: absolute; left: 9px; right: 9px; bottom: 3px; height: 2px; border-radius: 2px; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .3s var(--ease); }
.main-nav a:hover, .main-nav a.active { color: var(--blue); }
.main-nav a:hover::after, .main-nav a.active::after { transform: scaleX(1); }
.header-actions { display: flex; align-items: center; gap: 10px; flex: none; }
.lang-toggle { display: inline-flex; padding: 3px; border: 1.5px solid var(--ice-2); border-radius: var(--r-pill); background: #fff; }
.lang-toggle button { border: 0; background: none; min-height: 36px; min-width: 44px; padding: 4px 12px; border-radius: var(--r-pill); font-weight: 700; font-size: .85rem; color: var(--navy); transition: background-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease); }
.lang-toggle button[lang="te"] { font-family: "Noto Sans Telugu", var(--font-body); font-weight: 600; }
.lang-toggle button[aria-pressed="true"] { background: var(--blue); color: #fff; }
.nav-toggle { display: none; width: 44px; height: 44px; border-radius: var(--r-sm); border: 1.5px solid var(--ice-2); background: #fff; color: var(--navy); place-items: center; }
.nav-toggle .ic { width: 22px; height: 22px; }
.nav-backdrop { display: none; }

/* ---------- Hero ---------- */
.hero {
  position: relative; overflow: hidden;
  background:
    radial-gradient(900px 500px at 85% 20%, rgba(0, 63, 176, .08), transparent 60%),
    radial-gradient(600px 400px at 0% 100%, rgba(0, 63, 176, .06), transparent 60%),
    linear-gradient(180deg, #F2F6FE 0%, #FFFFFF 100%);
  padding: calc(var(--header-h) + var(--section-y) * .75) 0 var(--section-y);
}
/* signature diagonal band, from the printed OP card */
.hero-band { position: absolute; right: -12%; bottom: 8%; width: 72%; height: 120px; background: linear-gradient(90deg, rgba(0, 63, 176, 0), rgba(0, 63, 176, .09) 30%, rgba(0, 63, 176, .14)); transform: rotate(-14deg); transform-origin: right bottom; pointer-events: none; }
.hero-band::after { content: ""; position: absolute; left: 30%; right: 0; bottom: -10px; height: 4px; background: linear-gradient(90deg, rgba(228, 5, 20, 0), rgba(228, 5, 20, .35)); }
.hero-grid { position: relative; display: grid; grid-template-columns: 1fr 1.08fr; gap: clamp(32px, 5vw, 72px); align-items: center; }
.pill-emergency {
  position: relative;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 7px 16px; border: 1.5px solid rgba(228, 5, 20, .35); border-radius: var(--r-pill); background: #fff;
  color: var(--red-dark); font-size: var(--fs-xs); font-weight: 700; letter-spacing: .1em; text-transform: uppercase; line-height: 1.4;
}
.pulse-dot { position: relative; width: 9px; height: 9px; border-radius: 50%; background: var(--red); flex: none; }
.pulse-dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid var(--red); animation: pulse 2.4s ease-out infinite; }
@keyframes pulse { from { transform: scale(.6); opacity: .8; } to { transform: scale(1.8); opacity: 0; } }
.hero-title { margin-top: 22px; font-family: var(--font-display); font-weight: 800; font-size: clamp(3.25rem, 1.6rem + 6vw, 6rem); line-height: .95; letter-spacing: -.045em; }
.hero-title span { display: block; }
.hero-title .t1 { color: var(--navy); }
.hero-title .t2 { color: var(--blue); }
.hero-sub { margin-top: 20px; font-family: var(--font-display); font-weight: 700; font-size: clamp(1.5rem, 1rem + 1.6vw, 2.3rem); line-height: 1.2; letter-spacing: -.02em; color: var(--navy); text-wrap: balance; }
.hero-desc { margin-top: 18px; font-size: var(--fs-lead); color: var(--muted); max-width: 470px; }
.stat-card { display: flex; align-items: center; gap: 22px; margin-top: 28px; padding: 18px 26px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-sm); max-width: 400px; }
.stat-num { display: flex; flex-direction: column-reverse; align-items: center; padding-right: 22px; border-right: 1px solid var(--line); }
.stat-num strong { font-family: var(--font-display); font-size: 2.7rem; line-height: 1; font-weight: 800; color: var(--blue); letter-spacing: -.04em; }
.stat-num small { margin-top: 6px; font-size: .72rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: var(--navy); }
.stat-text strong { display: block; color: var(--navy); font-size: var(--fs-h4); line-height: 1.35; }
.stat-text span { font-size: var(--fs-sm); color: var(--muted); }
.hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.hero-chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.hero-chips li { display: inline-flex; align-items: center; gap: 10px; padding: 6px 16px 6px 6px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-pill); font-weight: 600; font-size: var(--fs-sm); color: var(--navy); line-height: 1.3; }
.chip-ic { width: 32px; height: 32px; border-radius: 50%; background: var(--ice); color: var(--blue); }
.chip-ic .ic { width: 18px; height: 18px; }

.hero-visual { position: relative; padding: 28px 0; }
.hero-frame-outline { position: absolute; inset: 0 -14px; border: 1.5px dashed rgba(0, 63, 176, .2); border-radius: 40px; }
.hero-photo {
  position: relative; border: 10px solid #fff; border-radius: var(--r-lg); overflow: hidden; background: var(--ice);
  box-shadow: var(--shadow-lg);
  transform: perspective(1400px) rotateY(-7deg) rotateX(2deg);
  transition: transform .8s var(--ease);
  aspect-ratio: 1400 / 1036;
}
.hero-visual:hover .hero-photo { transform: perspective(1400px) rotateY(-3deg) rotateX(1deg); }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; transform-origin: 60% 40%; animation: heroZoom 12s var(--ease-io) infinite alternate; }
@keyframes heroZoom { from { transform: scale(1); } to { transform: scale(1.05); } }
.hero-badge-round { position: absolute; top: 2px; right: 9%; z-index: 2; display: grid; place-items: center; width: 64px; height: 64px; border-radius: 50%; background: var(--red); color: #fff; border: 5px solid #fff; box-shadow: var(--shadow); }
.hero-badge-round .ic { width: 26px; height: 26px; }
.float-card {
  position: absolute; z-index: 2; display: flex; align-items: center; gap: 12px;
  padding: 12px 18px 12px 12px; background: #fff; border-radius: 16px; box-shadow: var(--shadow);
  animation: float 7s var(--ease-io) infinite;
}
.float-card strong { display: block; font-size: .9rem; color: var(--navy); line-height: 1.3; }
.float-card small { display: block; font-size: .78rem; color: var(--muted); line-height: 1.4; }
.fc-1 { top: 15%; left: -28px; }
.fc-2 { bottom: 9%; right: -24px; animation-delay: -3.5s; }
.fc-ic { width: 40px; height: 40px; border-radius: var(--r-sm); background: var(--ice); color: var(--blue); }
.fc-ic.red { background: var(--red-tint); color: var(--red-dark); }
@keyframes float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

/* Page-load stagger */
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes fadeUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
.js .hero-anim { animation: fadeUp .7s var(--ease) both; animation-delay: calc(.15s + var(--i, 0) * .1s); }
.js .hero-anim--visual { animation-duration: .9s; }

/* ---------- Sections ---------- */
.section { position: relative; padding: var(--section-y) 0; }
.tint-mint { background: var(--mint); --muted: #536176; }
.tint-ice { background: var(--ice); --muted: #536176; }

/* ---------- About ---------- */
.about-grid { display: grid; grid-template-columns: .95fr 1.15fr; gap: clamp(36px, 6vw, 88px); align-items: center; }
.about-card {
  position: relative; overflow: hidden; border-radius: 32px; padding: 18px;
  background: linear-gradient(140deg, #0B4CC7 0%, var(--blue) 40%, var(--navy) 100%);
  color: #fff; box-shadow: var(--shadow-lg);
}
.about-card-inner { position: relative; z-index: 1; border: 1px solid rgba(255, 255, 255, .2); border-radius: 22px; padding: clamp(22px, 3.5vw, 34px); }
.about-card-head { display: flex; align-items: center; gap: 16px; padding-bottom: 26px; }
.about-card-head img { width: 64px; height: 64px; background: #fff; border-radius: 50%; padding: 4px; flex: none; }
.about-card-head strong { display: block; font-family: var(--font-display); font-size: 1.7rem; letter-spacing: -.02em; line-height: 1.1; }
.about-card-head span { font-family: "Noto Sans Telugu", var(--font-body); color: rgba(255, 255, 255, .85); }
.about-stats > div { display: grid; grid-template-columns: 112px 1fr; align-items: center; padding: 18px 0; border-top: 1px solid rgba(255, 255, 255, .18); }
.about-stats dt { font-family: var(--font-display); font-weight: 800; font-size: 2.75rem; line-height: 1; letter-spacing: -.03em; }
.about-stats dd { font-size: var(--fs-h4); color: rgba(255, 255, 255, .92); line-height: 1.4; }
.about-card-foot { display: flex; align-items: center; gap: 10px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, .18); color: rgba(255, 255, 255, .92); }
.about-card-foot .ic { color: #9CC0FF; }
.about-watermark { position: absolute; right: -30px; bottom: -40px; font-family: var(--font-display); font-weight: 800; font-size: 15rem; line-height: 1; letter-spacing: -.06em; color: rgba(255, 255, 255, .06); pointer-events: none; }
.feature-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 32px; margin-top: 30px; }
.feature-grid li { display: flex; align-items: flex-start; gap: 16px; padding: 20px 0; border-top: 1px solid var(--line); }
.feature-grid strong { display: block; color: var(--navy); font-size: var(--fs-h4); line-height: 1.35; margin-bottom: 4px; }
.feature-grid span:not(.ring-ic) { color: var(--muted); font-size: var(--fs-sm); }

/* ---------- Services ---------- */
.services .dots-tr { top: 60px; right: 4%; width: 300px; height: 230px; opacity: .7; }
.service-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 1fr; gap: 24px; }
.service-card {
  display: flex; flex-direction: column;
  background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); padding: 28px;
}
/* top accent bar: a full-size layer, so the card's radius clips it; fades in */
.service-card::before {
  content: ""; position: absolute; inset: -1px; border-radius: inherit; pointer-events: none;
  background: linear-gradient(90deg, var(--blue), var(--blue-soft)) 0 0 / 55% 4px no-repeat;
  opacity: 0; transition: opacity var(--t-fast) var(--ease);
}
.service-card:hover::before { opacity: 1; }
.service-card--emergency { border-color: rgba(228, 5, 20, .28); }
.service-card--emergency::before { background-image: linear-gradient(90deg, var(--red), #F26B75); opacity: 1; }
.service-card--emergency:hover { border-color: rgba(228, 5, 20, .5) !important; }
.sc-top { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 22px; }
.sc-ic { transition: transform .35s var(--ease); }
.sc-ic.red { background: var(--red-tint); color: var(--red-dark); }
.service-card:hover .sc-ic { transform: rotate(-6deg) scale(1.05); }
.sc-num { font-family: var(--font-display); font-weight: 800; font-size: 2.5rem; line-height: 1; color: #CAD7F2; letter-spacing: -.03em; transition: color var(--t-fast) var(--ease); }
.service-card:hover .sc-num { color: var(--blue); }
.service-card h3 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h3); line-height: 1.25; letter-spacing: -.02em; color: var(--navy); }
.service-card > p { margin-top: 10px; margin-bottom: 24px; color: #56657A; }
.service-card > p + .checks { margin-top: -4px; }
.checks { display: grid; gap: 10px; margin-top: 20px; }
.service-card .checks { margin-bottom: 24px; }
.checks li { position: relative; padding-left: 30px; }
.checks li::before { content: ""; position: absolute; left: 2px; top: .5em; width: 15px; height: 8px; border-left: 2px solid var(--blue); border-bottom: 2px solid var(--blue); transform: rotate(-45deg); }
.sc-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); }
.sc-foot-note { font-weight: 700; color: var(--red-dark); }

/* ---------- Doctors ---------- */
.doctor { display: grid; grid-template-columns: .9fr 1.3fr; gap: clamp(36px, 6vw, 80px); align-items: center; }
.doctor + .doctor { margin-top: clamp(72px, 8vw, 112px); }
.doctor--flip .doctor-photo { order: 2; }
.doctor-photo { position: relative; isolation: isolate; max-width: 440px; width: 100%; justify-self: center; }
.doctor-photo-frame { position: absolute; inset: 22px -22px -22px 22px; border: 1.5px solid rgba(0, 63, 176, .28); border-radius: var(--r-lg); }
.doctor--flip .doctor-photo-frame { inset: 22px 22px -22px -22px; }
.doctor-photo-card { position: relative; border: 12px solid #fff; border-radius: var(--r-lg); overflow: hidden; background: var(--ice); box-shadow: var(--shadow-lg); transform: rotate(-1.5deg); transition: transform .6s var(--ease); aspect-ratio: 4 / 5; }
.doctor--flip .doctor-photo-card { transform: rotate(1.5deg); }
.doctor:hover .doctor-photo-card { transform: rotate(0); }
.doctor-photo-card img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 18%; }
.degree-badge { position: absolute; z-index: 2; bottom: 48px; left: -22px; display: inline-flex; align-items: center; gap: 10px; padding: 6px 18px 6px 6px; background: #fff; border-radius: var(--r-pill); box-shadow: var(--shadow); font-weight: 700; color: var(--navy); line-height: 1.3; }
.doctor--flip .degree-badge { left: auto; right: -22px; }
.degree-badge .ic { width: 36px; height: 36px; padding: 8px; border-radius: 50%; background: var(--blue); color: #fff; }
.dots-doc { left: -24px; bottom: -28px; width: 160px; height: 120px; z-index: -1; }
.doctor--flip .dots-doc { left: auto; right: -24px; }
.doctor-name { font-family: var(--font-display); font-weight: 800; font-size: clamp(1.9rem, 1.3rem + 2vw, 2.6rem); line-height: 1.12; letter-spacing: -.03em; color: var(--navy); text-wrap: balance; }
.doctor-deg { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.qual { display: inline-flex; align-items: center; padding: 5px 14px; border-radius: var(--r-pill); background: var(--ice); color: var(--blue); font-weight: 700; font-size: var(--fs-sm); line-height: 1.35; border: 1px solid var(--ice-2); }
.doctor-role { margin-top: 22px; padding: 18px 24px; background: var(--ice); border-left: 4px solid var(--blue); border-radius: 0 16px 16px 0; font-size: var(--fs-h4); color: var(--navy); font-weight: 600; }
.doctor-role span { display: block; }
.doctor-role-te { margin-top: 6px; font-weight: 500; font-size: var(--fs-body); color: #3D4C66; }
.doctor-role-te:empty { display: none; }
.doctor-role-te[lang="te"] { font-family: "Noto Sans Telugu", var(--font-body); }
.reg { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-top: 20px; color: var(--muted); }
.reg .ic { color: var(--blue); width: 18px; height: 18px; }
.reg-pill { padding: 2px 14px; border: 1.5px dashed var(--blue); border-radius: var(--r-pill); font-weight: 700; color: var(--navy); letter-spacing: .06em; font-variant-numeric: tabular-nums; }
.doctor-sub { margin-top: 26px; font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h4); color: var(--navy); }
.checks-lined { gap: 0; margin-top: 8px; margin-bottom: 28px; }
.checks-lined li { padding-top: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--line); }
.checks-lined li::before { top: calc(12px + .5em); }

/* ---------- Facilities ---------- */
/* Justified gallery: each photo keeps its own aspect ratio, rows share one height */
.gallery { display: flex; flex-wrap: wrap; gap: 14px; --base: 250px; }
.gallery::after { content: ""; flex: 1.5 1 0; }  /* keeps a short last row from stretching too far */
.gallery-item {
  position: relative; flex: var(--r) 1 calc(var(--r) * var(--base)); aspect-ratio: var(--r);
  padding: 0; border: 0; border-radius: 18px; overflow: hidden; background: var(--ice); isolation: isolate;
  cursor: zoom-in; -webkit-tap-highlight-color: transparent;
}
.gallery-item[hidden] { display: none; }
.gallery-item img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease), opacity .6s var(--ease); }
/* soft shade + zoom icon on hover, no captions */
.gallery-item::before {
  content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(180deg, rgba(20, 36, 107, 0) 45%, rgba(20, 36, 107, .45));
  opacity: 0; transition: opacity .5s var(--ease);
}
.gallery-zoom {
  position: absolute; right: 14px; bottom: 14px; z-index: 2; display: grid; place-items: center;
  width: 44px; height: 44px; border-radius: 50%; background: rgba(255, 255, 255, .92); color: var(--blue);
  opacity: 0; transform: translateY(8px) scale(.9); transition: opacity .4s var(--ease), transform .4s var(--ease);
}
.gallery-zoom .ic { width: 18px; height: 18px; }
@media (hover: hover) {
  .gallery-item:hover img { transform: scale(1.06); }
  .gallery-item:hover::before, .gallery-item:focus-visible::before { opacity: 1; }
  .gallery-item:hover .gallery-zoom, .gallery-item:focus-visible .gallery-zoom { opacity: 1; transform: none; }
}
.gallery-feature { display: grid; grid-template-columns: 1.03fr 1fr 1fr; gap: 14px; }
.gallery-feature .gallery-item { aspect-ratio: 3 / 2; }
.gallery-feature .gallery-item:first-child { grid-row: span 2; aspect-ratio: auto; }
.gallery-rest { margin-top: 14px; }
.gallery-rest[hidden] { display: none; }
.gallery-feature + .gallery-rest + .center, .gallery + .center { margin-top: 28px; }
#gallery-toggle .ic { transition: transform .3s var(--ease); }
#gallery-toggle[aria-expanded="true"] .ic { transform: rotate(180deg); }

/* ---------- Insurance ---------- */
.pillars { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(20px, 3vw, 40px); }
.pillars li { padding-top: 26px; border-top: 2px solid var(--navy); }
.pillar-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 20px; }
.pillar-num { font-family: var(--font-display); font-weight: 800; font-size: 1.1rem; color: var(--navy); }
.pillars h3 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h3); line-height: 1.25; letter-spacing: -.015em; color: var(--navy); text-wrap: balance; }
.pillars p { margin-top: 10px; color: var(--muted); }
.partners { margin-top: clamp(44px, 5vw, 64px); padding: clamp(24px, 4vw, 40px); background: var(--ice); border-radius: var(--r-lg); }
.partners-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 8px 24px; margin-bottom: 22px; }
.partners-head h3 { font-family: var(--font-display); font-weight: 700; font-size: var(--fs-h3); color: var(--navy); letter-spacing: -.015em; }
.partners-head p { color: #4A5870; font-size: var(--fs-sm); }
.partner-list { display: grid; grid-template-columns: repeat(5, 1fr); grid-auto-rows: 1fr; gap: 12px; }
.partner-list li { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 64px; padding: 12px; background: #fff; border: 1px solid var(--ice-2); border-radius: var(--r-sm); font-weight: 700; color: var(--navy); line-height: 1.3; }

/* ---------- Timings ---------- */
.timing-grid { display: grid; grid-template-columns: 1.35fr 1fr; gap: 24px; align-items: stretch; }
.hours-card, .er-card, .contact-card { display: flex; flex-direction: column; background: #fff; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--shadow); border: 1px solid var(--line); }
.hours-head, .contact-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 26px 30px; color: #fff; background: linear-gradient(120deg, var(--blue), var(--navy)); }
.hours-head p, .contact-head p { color: rgba(255, 255, 255, .88); }
.hours-head h3 { font-family: var(--font-display); font-weight: 800; font-size: 2rem; line-height: 1.15; letter-spacing: -.025em; }
.head-ic { width: 56px; height: 56px; border-radius: 50%; background: #fff; color: var(--blue); }
.head-ic .ic { width: 24px; height: 24px; }
.hours-body { padding: 22px 30px 28px; flex: 1; }
.hours-status-row { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; padding-bottom: 14px; }
.hours-status-row strong { color: var(--navy); font-size: var(--fs-h4); }
.status-pill { margin-left: auto; display: inline-flex; align-items: center; gap: 8px; padding: 5px 14px; border-radius: var(--r-pill); background: var(--ice); color: var(--navy); font-weight: 700; font-size: var(--fs-xs); line-height: 1.4; }
.status-pill:empty { display: none; }
.status-pill::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--muted); flex: none; }
.status-pill.open { background: #E7F6EC; color: #14532D; }
.status-pill.open::before { background: var(--ok); }
.hours-row { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 14px; padding: 14px; margin: 0 -14px; border-radius: var(--r-sm); }
.hours-row + .hours-row { margin-top: 4px; }
.hours-row.is-today { background: var(--ice); }
.day { font-size: var(--fs-h4); color: var(--text); font-weight: 600; }
.today-tag { display: none; margin-left: 8px; padding: 2px 10px; border-radius: var(--r-pill); background: #fff; color: var(--blue); font-size: .75rem; font-weight: 700; vertical-align: 2px; }
.is-today .today-tag { display: inline-block; }
.leader { border-bottom: 2px dotted #C9D5EC; height: 1px; align-self: center; }
.slots { display: flex; flex-direction: column; align-items: flex-end; font-weight: 700; font-size: var(--fs-h4); color: var(--navy); text-align: right; font-variant-numeric: tabular-nums; }
.hours-note { display: flex; gap: 10px; align-items: flex-start; margin-top: 18px; padding-top: 18px; border-top: 1px solid var(--line); color: var(--muted); font-size: var(--fs-sm); }
.hours-note .ic { margin-top: 2px; color: var(--blue); width: 18px; height: 18px; }
.er-head { padding: 28px 30px; background: linear-gradient(130deg, #EE1C2B, var(--red) 45%, #B5030F); color: #fff; }
.er-head h3 { margin-top: 16px; font-family: var(--font-display); font-weight: 800; font-size: 1.75rem; line-height: 1.2; letter-spacing: -.02em; }
.er-head p { margin-top: 6px; font-weight: 600; font-size: var(--fs-h4); }
.er-body { display: flex; flex-direction: column; flex: 1; padding: 24px 30px 30px; }
.er-body .checks { margin: 0 0 26px; }
.er-body .btn { margin-top: auto; }
.er-body .checks li::before { border-color: var(--red-dark); }

/* ---------- Patient notes ---------- */
.notes-grid { display: grid; grid-template-columns: .85fr 1.2fr; gap: clamp(32px, 6vw, 88px); align-items: start; }
.notes-head .muted { margin-top: 20px; font-size: var(--fs-lead); }
.strong-link { font-weight: 800; text-decoration: none; white-space: nowrap; }
.note-list { display: grid; grid-auto-rows: 1fr; gap: 16px; }
.note-card { display: flex; gap: 20px; align-items: flex-start; padding: 24px 26px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); }
.note-ic { width: 48px; height: 48px; border-radius: 50%; background: var(--blue); color: #fff; }
.note-card h3 { font-family: var(--font-display); font-weight: 700; font-size: 1.25rem; line-height: 1.3; letter-spacing: -.015em; color: var(--navy); }
.note-card p { margin-top: 6px; color: var(--muted); }

/* ---------- Reviews ---------- */
.rating-card { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: clamp(20px, 4vw, 48px); padding: clamp(24px, 4vw, 40px); background: #fff; border-radius: var(--r-lg); box-shadow: var(--shadow); border: 1px solid var(--line); }
.rating-main { display: flex; flex-direction: column; gap: 8px; padding-right: clamp(20px, 4vw, 48px); border-right: 1px solid var(--line); }
.rating-num { font-family: var(--font-display); font-weight: 800; font-size: clamp(3.5rem, 2.5rem + 3vw, 4.75rem); line-height: 1; letter-spacing: -.04em; color: var(--navy); }
.stars { display: inline-flex; gap: 5px; }
.rating-text strong { display: block; font-size: var(--fs-h3); color: var(--navy); line-height: 1.3; }
.rating-text span { color: var(--muted); }
.review-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 32px; }
.review-card { display: flex; flex-direction: column; padding: 28px; background: #fff; border: 1px solid var(--line); border-radius: var(--r-md); }
.review-card .ic-star { width: 18px; height: 18px; }
.review-text { margin-top: 18px; margin-bottom: 22px; font-size: 1.0625rem; color: var(--text); }
.review-text.clamp { display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.read-more { align-self: flex-start; padding: 6px 0; border: 0; background: none; color: var(--blue); font-weight: 700; min-height: 44px; }
.read-more:not([hidden]) { margin-top: -18px; margin-bottom: 12px; }
.read-more:hover { color: var(--navy); text-decoration: underline; }
.review-foot { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--line); }
.avatar { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; background: var(--blue); color: #fff; font-weight: 800; font-size: 1.05rem; flex: none; }
.reviewer { font-weight: 700; color: var(--navy); line-height: 1.3; }
.reviewer small { display: block; font-weight: 500; color: var(--muted); font-size: var(--fs-xs); }
.g-link { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; font-weight: 700; font-size: var(--fs-sm); color: #475569; text-decoration: none; }
.g-link .ic { width: 16px; height: 16px; }
.g-link:hover { color: var(--blue); }
.carousel-dots { display: none; }
.reviews .btn-row { margin-top: 40px; }

/* ---------- Contact ---------- */
.contact-grid { display: grid; grid-template-columns: 1fr 1.1fr; gap: 24px; align-items: stretch; }
.contact-big { display: block; font-family: var(--font-display); font-weight: 800; font-size: clamp(1.9rem, 1.2rem + 2vw, 2.5rem); line-height: 1.15; color: #fff; text-decoration: none; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.contact-big:hover { color: #fff; text-decoration: underline; text-underline-offset: 6px; }
.call-circle { display: grid; place-items: center; flex: none; width: 60px; height: 60px; border-radius: 50%; background: var(--red); color: #fff; box-shadow: 0 10px 24px -10px rgba(0, 0, 0, .4); transition: transform var(--t-fast) var(--ease), background-color var(--t-fast); }
.call-circle:hover { transform: scale(1.05); background: var(--red-dark); color: #fff; }
.call-circle:active { transform: scale(.98); }
.call-circle .ic { width: 24px; height: 24px; }
.contact-body { padding: 8px 30px 30px; }
.c-row { display: flex; gap: 18px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.c-row h3 { font-size: var(--fs-h4); font-weight: 700; color: var(--navy); margin-bottom: 4px; line-height: 1.4; }
.c-link { color: var(--text); text-decoration: none; }
.c-link:hover { color: var(--blue); text-decoration: underline; }
.er-inline { display: inline-block; margin-top: 4px; font-weight: 700; color: var(--red-dark); }
.phone-list { display: flex; flex-wrap: wrap; gap: 0 18px; }
.phone-list a { display: inline-flex; align-items: center; min-height: 40px; font-weight: 700; font-size: 1.0625rem; text-decoration: none; font-variant-numeric: tabular-nums; }
.phone-list a:hover { text-decoration: underline; }
.contact-body .btn-row { margin-top: 26px; }
.map-card { position: relative; min-height: 480px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); }
.map-frame { position: absolute; inset: 8px; border-radius: var(--r-md); overflow: hidden; background: var(--ice); }
.map-frame iframe { width: 100%; height: 100%; border: 0; display: block; }
.map-pill { position: absolute; top: 20px; left: 20px; display: inline-flex; align-items: center; gap: 10px; min-height: 44px; padding: 10px 20px; background: #fff; border-radius: var(--r-pill); box-shadow: var(--shadow); font-weight: 700; text-decoration: none; transition: transform .15s var(--ease), color var(--t-fast); }
.map-pill:active { transform: scale(.98); }

/* ---------- Footer ---------- */
.site-footer { position: relative; background: var(--navy); color: rgba(255, 255, 255, .86); padding-top: var(--section-y); }
.site-footer::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, var(--blue), var(--blue-soft) 55%, var(--red)); }
.footer-grid { display: grid; grid-template-columns: 1.35fr .8fr 1.1fr 1.25fr; gap: 40px; }
.footer-logo { display: flex; align-items: center; gap: 16px; color: #fff; text-decoration: none; }
.logo-disc { display: grid; place-items: center; width: 88px; height: 88px; border-radius: 50%; background: #fff; flex: none; }
.logo-disc img { width: 78px; height: 78px; }
.footer-logo strong { display: block; font-family: var(--font-display); font-size: 1.6rem; letter-spacing: -.02em; line-height: 1.15; }
.footer-logo small { font-family: "Noto Sans Telugu", var(--font-body); font-size: 1rem; color: rgba(255, 255, 255, .85); }
.footer-reg { margin-top: 22px; font-weight: 700; color: #fff; }
.footer-addr { display: block; margin-top: 10px; color: rgba(255, 255, 255, .86); text-decoration: none; line-height: 1.75; }
.footer-addr:hover { color: #fff; text-decoration: underline; }
.footer-col { display: flex; flex-direction: column; align-items: flex-start; }
.footer-col h2 { font-family: var(--font-display); font-weight: 800; font-size: 1.2rem; color: #fff; margin-bottom: 12px; }
.footer-col a { padding: 8px 0; color: rgba(255, 255, 255, .86); text-decoration: none; line-height: 1.4; }
.footer-col a:hover { color: #fff; text-decoration: underline; }
.footer-contact .footer-phone { font-family: var(--font-display); font-weight: 800; font-size: 1.65rem; color: #fff; padding-top: 0; }
.footer-hours { margin-top: 12px; line-height: 1.9; }
.footer-btns { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.footer-btns .btn { padding: 10px 22px; color: #fff; }
.footer-btns .btn:hover { text-decoration: none; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 24px; margin-top: clamp(40px, 5vw, 56px); padding-top: 24px; padding-bottom: 28px; border-top: 1px solid rgba(255, 255, 255, .16); font-size: var(--fs-sm); }

/* ---------- Floating call button (mobile) ---------- */
.fab-call {
  position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 60;
  display: none; align-items: center; gap: 10px; isolation: isolate;
  min-height: 52px; padding: 12px 22px 12px 18px; border-radius: var(--r-pill);
  background: var(--red); color: #fff; font-weight: 800; text-decoration: none; line-height: 1.25;
  box-shadow: 0 14px 28px -12px rgba(228, 5, 20, .6);
  transition: background-color var(--t-fast) var(--ease), transform .15s var(--ease);
}
.fab-call::before {
  content: ""; position: absolute; inset: 0; border-radius: inherit; z-index: -1;
  background: var(--red); opacity: 0; animation: ring-pulse 3.6s ease-out 1.5s infinite;
}
.fab-call:hover, .fab-call:focus-visible { color: #fff; background: var(--red-dark); }
.fab-call:hover::before, .fab-call:focus-visible::before { animation: none; opacity: 0; }
.fab-call:active { transform: scale(.98); }
.fab-call .ic { width: 22px; height: 22px; }
@keyframes ring-pulse { 0% { transform: scale(1); opacity: .35; } 45%, 100% { transform: scale(1.25, 1.55); opacity: 0; } }

/* ---------- Back to top ---------- */
.to-top {
  position: fixed; right: 16px; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 59;
  display: grid; place-items: center; width: 48px; height: 48px; border-radius: 50%;
  background: #fff; color: var(--blue); border: 1px solid var(--line); box-shadow: var(--shadow);
  opacity: 0; visibility: hidden; transform: translateY(12px);
  transition: opacity .35s var(--ease), transform .35s var(--ease), visibility .35s, color var(--t-fast);
}
.to-top .ic { transform: rotate(180deg); width: 22px; height: 22px; }
.to-top.show { opacity: 1; visibility: visible; transform: none; }
.to-top:hover { color: var(--navy); }

/* ---------- Lightbox ---------- */
.lightbox {
  width: 100vw; height: 100dvh; max-width: none; max-height: none; margin: 0; padding: 72px 76px 40px;
  border: 0; background: transparent; color: #fff; overflow: hidden;
}
.lightbox[open] { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; animation: fadeIn .35s var(--ease) both; }
.lightbox::backdrop { background: rgba(8, 15, 48, .9); backdrop-filter: blur(6px); }
.lightbox img {
  display: block; max-width: 100%; max-height: calc(100dvh - 150px); width: auto; height: auto; object-fit: contain;
  border-radius: 16px; box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
  animation: lbIn .5s var(--ease) both; transition: opacity .25s var(--ease), transform .35s var(--ease);
}
@keyframes lbIn { from { opacity: 0; transform: scale(.96); } to { opacity: 1; transform: none; } }
.lightbox img.swap { opacity: 0; transform: scale(.98); }
.lightbox-count { font-weight: 600; font-size: var(--fs-sm); color: rgba(255, 255, 255, .8); font-variant-numeric: tabular-nums; }
.lightbox-nav, .lightbox-close {
  position: absolute; display: grid; place-items: center; border-radius: 50%; border: 0;
  background: rgba(255, 255, 255, .92); color: var(--navy); transition: transform .2s var(--ease), background-color .2s;
}
.lightbox-nav { top: 50%; width: 52px; height: 52px; margin-top: -26px; }
.lightbox-nav:hover, .lightbox-close:hover { background: #fff; transform: scale(1.06); }
.lightbox-nav:active, .lightbox-close:active { transform: scale(.96); }
.lightbox-nav .ic { width: 22px; height: 22px; }
.lightbox-prev { left: 14px; } .lightbox-prev .ic { transform: rotate(90deg); }
.lightbox-next { right: 14px; } .lightbox-next .ic { transform: rotate(-90deg); }
.lightbox-close { top: 16px; right: 16px; width: 46px; height: 46px; }
@media (max-width: 767px) {
  .lightbox { padding: 64px 12px 92px; }
  .lightbox-nav { top: auto; bottom: 22px; margin-top: 0; }
  .lightbox-prev { left: calc(50% - 64px); } .lightbox-next { right: calc(50% - 64px); }
  .lightbox-count { position: absolute; top: 26px; left: 20px; }
}

/* ---------- Image fade-in (frames have fixed ratios, so no layout shift) ---------- */
.js img.is-loading { opacity: 0; }
.hero-photo img, .doctor-photo-card img { transition: opacity .6s var(--ease); }

/* ---------- Scroll reveals (transform + opacity only) ---------- */
.js .reveal {
  opacity: 0;
  transform: translate3d(var(--rx, 0px), var(--ry, 24px), 0) scale(var(--rs, 1));
  transition: opacity .8s var(--ease), transform 1s var(--ease);
  transition-delay: var(--d, 0s);
}
.reveal--left { --rx: -48px; --ry: 0px; }
.reveal--right { --rx: 48px; --ry: 0px; }
.reveal--zoom { --ry: 18px; --rs: .96; }
.js .reveal.in { opacity: 1; transform: none; }
.js .reveal.in.revealed { transition-delay: 0s; }
.js .reveal.revealed.lift { transition: transform var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), opacity var(--t) var(--ease); }

/* Staggered children: section headings, copy columns, lists */
.js .stagger > * {
  opacity: 0; transform: translate3d(0, 18px, 0);
  transition: opacity .7s var(--ease), transform .9s var(--ease);
  transition-delay: calc(var(--i, 0) * 80ms);
}
.js .stagger.in > * { opacity: 1; transform: none; }
.js .stagger.revealed > * { transition-delay: 0s; }
.js .stagger.revealed > .lift { transition: transform var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), opacity .7s var(--ease); }
@media (hover: hover) { .js .stagger.in > .lift:hover { transform: translateY(-4px); } }
/* the eyebrow rule draws in */
.js .stagger .eyebrow::before { transform: scaleX(0); transform-origin: left; transition: transform .9s var(--ease) .2s; }
.js .stagger.in .eyebrow::before { transform: none; }

/* Photo wipe: a tinted panel slides away while the photo settles from a slight zoom */
.js .wipe::after {
  content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none;
  background: linear-gradient(120deg, #F2F6FE, #DCE6FA);
  transform-origin: right center; transition: transform 1.1s var(--ease) var(--d, 0s);
}
.js .wipe.in::after { transform: scaleX(0); }
.js .wipe img { transform: scale(1.14); transition: transform 1.6s var(--ease) var(--d, 0s), opacity .6s var(--ease); }
.js .wipe.in img { transform: none; }
.js .wipe.revealed img { transition: transform 1.1s var(--ease), opacity .6s var(--ease); }
@media (hover: hover) { .js .gallery-item.wipe.in:hover img { transform: scale(1.06); } }

/* Insurance pillars: the top rule draws across */
.pillars li { position: relative; border-top: 0 !important; }
.pillars li::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: var(--navy); transform-origin: left; }
.js .pillars li.reveal::before { transform: scaleX(0); transition: transform 1.1s var(--ease) calc(var(--d, 0s) + .15s); }
.js .pillars li.reveal.in::before { transform: none; }

/* Rating stars light up one by one */
.js .rating-card .stars .ic-star { opacity: 0; transform: scale(.5); transition: opacity .5s var(--ease), transform .6s var(--ease); }
.js .rating-card.in .stars .ic-star { opacity: 1; transform: none; }
.js .rating-card.in .stars .ic-star:nth-child(2) { transition-delay: .08s; }
.js .rating-card.in .stars .ic-star:nth-child(3) { transition-delay: .16s; }
.js .rating-card.in .stars .ic-star:nth-child(4) { transition-delay: .24s; }
.js .rating-card.in .stars .ic-star:nth-child(5) { transition-delay: .32s; }

/* Primary buttons: a soft light sweep on hover */
.btn-red, .btn-blue { overflow: hidden; isolation: isolate; }
.btn-red::after, .btn-blue::after {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  background: linear-gradient(110deg, transparent 30%, rgba(255, 255, 255, .26) 50%, transparent 70%);
  transform: translateX(-120%); transition: transform .9s var(--ease);
}
.btn-red:hover::after, .btn-blue:hover::after { transform: translateX(120%); }

/* Calm depth on decorative layers, driven by scroll position in the compositor (no JS) */
@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    .dots, .doctor-photo-frame { animation: drift linear both; animation-timeline: view(); }
    .about-watermark { animation: drift-lg linear both; animation-timeline: view(); }
    @keyframes drift { from { transform: translateY(28px); } to { transform: translateY(-28px); } }
    @keyframes drift-lg { from { transform: translateY(50px); } to { transform: translateY(-50px); } }
  }
}

/* ---------- Language crossfade ---------- */
[data-i18n] { transition: opacity .18s var(--ease); }
html.lang-switching [data-i18n] { transition: opacity .18s var(--ease) !important; transition-delay: 0s !important; }
html.lang-fading [data-i18n] { opacity: 0 !important; }

/* ---------- Compact fit: each section sized to sit within one screen where its content allows ---------- */
.hero { padding: calc(var(--header-h) + clamp(20px, 3vw, 40px)) 0 clamp(40px, 5vw, 64px); }
.hero-grid { align-items: start; }
.hero-visual { padding: 18px 0; margin-top: clamp(0px, 2vw, 28px); }
.hero-title { margin-top: 18px; font-size: clamp(3rem, 1.6rem + 4.2vw, 4.75rem); }
.hero-sub { margin-top: 14px; font-size: clamp(1.4rem, 1rem + 1.2vw, 1.9rem); }
.hero-desc { margin-top: 12px; }
.stat-card { margin-top: 20px; padding: 14px 22px; }
.stat-num strong { font-size: 2.4rem; }
.hero-ctas { margin-top: 22px; }
.hero-chips { margin-top: 20px; }
.btn-lg { min-height: 52px; }

.about-card-head { padding-bottom: 18px; }
.about-stats > div { padding: 14px 0; }
.about-stats dt { font-size: 2.4rem; }
.lead { margin-top: 16px; }
.feature-grid { margin-top: 22px; }
.feature-grid li { padding: 16px 0; }
.btn-row { margin-top: 28px; }

.service-grid { gap: 20px; }
.service-card { padding: 22px 24px; }
.sc-top { margin-bottom: 14px; }
.sc-ic { width: 48px; height: 48px; border-radius: 14px; }
.sc-ic .ic { width: 22px; height: 22px; }
.sc-num { font-size: 2rem; }
.service-card h3 { font-size: 1.25rem; }
.service-card > p { margin-top: 6px; margin-bottom: 16px; }
.service-card .checks { gap: 6px; margin-bottom: 16px; }
.sc-foot { padding-top: 12px; }

.doctor { gap: clamp(32px, 5vw, 64px); }
.doctor + .doctor { margin-top: clamp(56px, 6vw, 80px); }
.doctor-photo { max-width: 370px; }
.doctor-name { font-size: clamp(1.8rem, 1.3rem + 1.4vw, 2.3rem); }
.doctor-deg { margin-top: 10px; }
.doctor-role { margin-top: 16px; padding: 14px 20px; }
.reg { margin-top: 14px; }
.doctor-sub { margin-top: 18px; }
.checks-lined { margin-bottom: 20px; }
.checks-lined li { padding-top: 9px; padding-bottom: 9px; }
.checks-lined li::before { top: calc(9px + .5em); }

.pillars li { padding-top: 22px; }
.pillar-top { margin-bottom: 14px; }
.sq-ic { width: 48px; height: 48px; border-radius: 14px; }
.sq-ic .ic { width: 22px; height: 22px; }
.partners { margin-top: 36px; padding: clamp(22px, 3vw, 30px); }
.partner-list li { min-height: 56px; }

.hours-head, .contact-head { padding: 22px 28px; }
.hours-body { padding: 18px 28px 22px; }
.er-head { padding: 22px 28px; }
.er-head h3 { margin-top: 12px; }
.er-body { padding: 20px 28px 26px; }

.rating-card { padding: clamp(22px, 3vw, 30px); }
.review-grid { margin-top: 24px; }
.review-card { padding: 24px; }
.reviews .btn-row { margin-top: 28px; }

.c-row { padding: 11px 0; }
.contact-body { padding: 4px 28px 26px; }
.contact-body .btn-row { margin-top: 18px; }
.map-card { min-height: 400px; }

@media (max-width: 767px) {
  .gallery-feature { grid-template-columns: 1fr 1fr; gap: 10px; }
  .hero-visual { margin-top: 4px; }
  .map-card { min-height: 340px; }
}

/* ---------- Telugu ---------- */
html[lang="te"] body { line-height: 1.8; }
html[lang="te"] p, html[lang="te"] li, html[lang="te"] dd { line-height: 1.8; }
html[lang="te"] .h2, html[lang="te"] .hero-title, html[lang="te"] .hero-sub, html[lang="te"] .doctor-name,
html[lang="te"] .service-card h3, html[lang="te"] .pillars h3, html[lang="te"] .note-card h3, html[lang="te"] .hours-head h3,
html[lang="te"] .er-head h3, html[lang="te"] .partners-head h3 { letter-spacing: 0; line-height: 1.45; }
html[lang="te"] .h2 { font-size: clamp(1.75rem, 1.15rem + 2vw, 2.6rem); }
html[lang="te"] .hero-title .t2 { font-size: .78em; line-height: 1.35; }
html[lang="te"] .hero-sub { font-size: clamp(1.35rem, 1rem + 1.2vw, 2rem); }
html[lang="te"] .service-card h3, html[lang="te"] .pillars h3 { font-size: 1.25rem; }
html[lang="te"] .hours-head h3 { font-size: 1.75rem; }
html[lang="te"] .stat-num small, html[lang="te"] .pill-emergency, html[lang="te"] .eyebrow { letter-spacing: 0; text-transform: none; }
html[lang="te"] .eyebrow { font-size: .9rem; }
html[lang="te"] .pill-emergency { font-size: .85rem; }
html[lang="te"] .main-nav a { font-size: .9rem; padding: 8px 7px; }
html[lang="te"] .main-nav a::after { left: 7px; right: 7px; }
html[lang="te"] .btn { line-height: 1.45; }

/* ---------- Responsive ---------- */
@media (max-width: 1279px) {
  .nav-toggle { display: grid; }
  .header-inner { justify-content: space-between; }
  .main-nav {
    position: absolute; top: 100%; left: 0; right: 0; margin: 0;
    flex-direction: column; gap: 0; padding: 8px var(--gutter) 20px;
    max-height: calc(100dvh - var(--header-h)); overflow-y: auto; overscroll-behavior: contain;
    background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 24px 40px -24px rgba(20, 36, 107, .3);
    opacity: 0; visibility: hidden; transform: translateY(-10px);
    transition: opacity .3s var(--ease), transform .35s var(--ease), visibility .35s;
  }
  .main-nav.open { opacity: 1; visibility: visible; transform: none; }
  .main-nav a, html[lang="te"] .main-nav a { padding: 14px 4px; font-size: 1.0625rem; border-bottom: 1px solid var(--line); border-radius: 0; }
  .main-nav a:last-child { border-bottom: 0; }
  .main-nav a::after, html[lang="te"] .main-nav a::after { left: 4px; right: auto; width: 28px; bottom: 8px; }
  .nav-backdrop {
    display: block; position: fixed; inset: 0; z-index: 40;
    background: rgba(20, 36, 107, .32); opacity: 0; visibility: hidden;
    transition: opacity .35s var(--ease), visibility .35s;
  }
  html.nav-locked .nav-backdrop { opacity: 1; visibility: visible; }
}
@media (max-width: 1100px) {
  .service-grid { grid-template-columns: repeat(2, 1fr); }
  .partner-list { grid-template-columns: repeat(3, 1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 960px) {
  .gallery { --base: 200px; }
  .hero-grid, .about-grid, .doctor, .timing-grid, .notes-grid, .contact-grid { grid-template-columns: 1fr; }
  .hero-visual { max-width: 640px; width: 100%; margin: 12px auto 0; }
  .doctor--flip .doctor-photo { order: 0; }
  .doctor-photo { max-width: 380px; }
  .rating-card { grid-template-columns: auto 1fr; }
  .rating-card .btn { grid-column: 1 / -1; justify-self: start; }
  .pillars { grid-template-columns: 1fr; }

  /* Reviews: swipeable carousel */
  .review-grid {
    display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth;
    margin: 32px calc(var(--gutter) * -1) 0; padding: 4px var(--gutter) 24px; scroll-padding: 0 var(--gutter);
    scrollbar-width: none; overscroll-behavior-x: contain;
  }
  .review-grid::-webkit-scrollbar { display: none; }
  .review-card { flex: 0 0 min(560px, 72%); scroll-snap-align: start; }
  .carousel-dots { display: flex; justify-content: center; gap: 4px; margin-top: 4px; }
  .carousel-dots button { position: relative; width: 28px; height: 28px; padding: 0; border: 0; background: none; }
  .carousel-dots button::before { content: ""; position: absolute; top: 50%; left: 50%; width: 8px; height: 8px; margin: -4px 0 0 -4px; border-radius: 50%; background: #9FB1D6; transition: transform .3s var(--ease), background-color .3s var(--ease); }
  .carousel-dots button[aria-current="true"]::before { background: var(--blue); transform: scale(1.35); }
  .reviews .btn-row { margin-top: 28px; }
}
@media (max-width: 767px) {
  .gallery { --base: 105px; gap: 10px; }
  .gallery-item { border-radius: 14px; }
  .brand img { width: 42px; height: 42px; }
  .brand-name { font-size: 1.05rem; }
  .brand-sub { display: none; }
  .header-actions { gap: 8px; }
  .header-call { width: 44px; padding: 0; }
  .header-call span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .lang-toggle button { padding: 4px 9px; }
  .fab-call { display: inline-flex; }
  .to-top { bottom: calc(80px + env(safe-area-inset-bottom)); width: 44px; height: 44px; }
  .site-footer { padding-bottom: 72px; }
  .hero-ctas .btn { flex: 1 1 100%; }
  .stat-card { padding: 16px 18px; gap: 16px; }
  .stat-num { padding-right: 16px; }
  .fc-1 { left: -6px; top: 4%; }
  .fc-2 { right: -6px; bottom: 2%; }
  .hero-frame-outline { inset: 0 -6px; }
  .float-card { padding: 9px 14px 9px 9px; }
  .fc-ic { width: 34px; height: 34px; }
  .fc-ic .ic { width: 18px; height: 18px; }
  .hero-badge-round { width: 54px; height: 54px; }
  .service-grid { grid-template-columns: 1fr; grid-auto-rows: auto; }
  .service-card { padding: 24px; }
  .partner-list { grid-template-columns: 1fr 1fr; }
  .feature-grid { grid-template-columns: 1fr; }
  .about-stats > div { grid-template-columns: 96px 1fr; }
  .about-stats dt { font-size: 2.3rem; }
  .degree-badge { left: -8px; bottom: 30px; }
  .doctor--flip .degree-badge { right: -8px; }
  .doctor-photo-frame { inset: 14px -10px -14px 10px; }
  .doctor--flip .doctor-photo-frame { inset: 14px 10px -14px -10px; }
  .dots-doc, .doctor--flip .dots-doc { left: -8px; right: auto; bottom: -24px; }
  .hours-head, .contact-head, .er-head { padding: 22px; }
  .hours-body, .er-body { padding: 20px 22px 24px; }
  .contact-body { padding: 4px 22px 24px; }
  .hours-row { grid-template-columns: 1fr auto; }
  .leader { display: none; }
  .status-pill { margin-left: 0; }
  .rating-card { grid-template-columns: 1fr; }
  .rating-main { border-right: 0; padding-right: 0; flex-direction: row; align-items: center; gap: 16px; flex-wrap: wrap; }
  .rating-card .btn { justify-self: stretch; }
  .review-card { flex-basis: 86%; padding: 24px; }
  .map-card { min-height: 360px; }
  .footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .contact-body .btn-row .btn, .reviews .btn-row .btn { flex: 1 1 100%; }
  .c-link br, .footer-addr br { display: none; }
}
@media (max-width: 380px) {
  .brand-text { display: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .js .reveal, .js .hero-anim, .js .stagger > *, .js .wipe img, .js .rating-card .stars .ic-star { opacity: 1; transform: none; }
  .js .wipe::after, .js .stagger .eyebrow::before, .js .pillars li.reveal::before { transform: none; }
  .js .wipe::after { display: none; }
  .hero-photo { transform: none; }
  .review-grid { scroll-behavior: auto; }
}

@media print {
  .site-header, .fab-call, .to-top, .map-card, .hero-band, .dots { display: none !important; }
  .js .reveal, .js .hero-anim { opacity: 1; transform: none; animation: none; }
}
