/* ==========================================================================
   Public website — colourful, warm medical design (mobile first).
   The facility's brand colours lead (--p primary, --accent from Website settings);
   a fixed set of friendly tones (teal, blue, violet, pink, orange, green …) gives
   every card, icon and department its own colour.
   Everything is prefixed "hs-" so it never clashes with Bootstrap.
   ========================================================================== */

:root {
    --p: #0E9F8E;
    --accent: #2563EB;
    --p-900: color-mix(in srgb, var(--p) 40%, #04121F);
    --p-800: color-mix(in srgb, var(--p) 62%, #001018);
    --p-700: color-mix(in srgb, var(--p) 78%, #000);
    --p-600: color-mix(in srgb, var(--p) 88%, #000);
    --p-300: color-mix(in srgb, var(--p) 45%, #fff);
    --p-200: color-mix(in srgb, var(--p) 26%, #fff);
    --p-100: color-mix(in srgb, var(--p) 14%, #fff);
    --p-50: color-mix(in srgb, var(--p) 7%, #fff);
    --accent-700: color-mix(in srgb, var(--accent) 75%, #000);
    --accent-50: color-mix(in srgb, var(--accent) 8%, #fff);
    --grad: linear-gradient(135deg, var(--p) 0%, color-mix(in srgb, var(--p) 50%, var(--accent)) 100%);
    --grad-deep: linear-gradient(135deg, var(--p-800) 0%, var(--p-700) 45%, color-mix(in srgb, var(--accent) 62%, #1E1B4B) 100%);
    --rainbow: linear-gradient(90deg, var(--p), #3B82F6, #8B5CF6, #EC4899, #F97316, #EAB308);
    /* Glows on the deep bands and the second deep colour: follow the brand, tuned per facility type below. */
    --glow-1: color-mix(in srgb, var(--accent) 60%, transparent);
    --glow-2: rgba(236, 72, 153, .32);
    --deep-2: color-mix(in srgb, var(--accent) 62%, #1E1B4B);

    --ink: #0B2540;
    --text: #334457;
    --muted: #5F6F84;
    --line: #E3E9F1;
    --soft: #F3F6FB;
    --bg: #F6F8FC;
    --white: #fff;
    --red: #E11D48;
    --red-600: #BE123C;
    --red-50: #FFF0F3;
    --amber: #F59E0B;
    --amber-50: #FFF8E8;
    --green: #16A34A;
    --gold: #F5B301;

    /* Default tone = the brand; .hs-t1…8 and .hs-tones children override it. */
    --c: var(--p);
    --c2: color-mix(in srgb, var(--p) 70%, #fff);
    --c-ink: var(--p-800);
    --c-soft: var(--p-50);

    --r-sm: 10px;
    --r: 18px;
    --r-lg: 26px;
    --sh-sm: 0 1px 2px rgba(11, 37, 64, .05), 0 2px 8px rgba(11, 37, 64, .05);
    --sh: 0 14px 34px -16px rgba(11, 37, 64, .22);
    --sh-lg: 0 30px 60px -26px rgba(11, 37, 64, .35);
    --font: 'Inter', 'Hind Siliguri', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
    --font-head: 'Inter', 'Hind Siliguri', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --header-h: 62px;
    --ease: cubic-bezier(.2, .7, .2, 1);

    --bs-body-font-family: var(--font);
    --bs-body-color: var(--text);
    --bs-body-bg: var(--bg);
    --bs-primary: var(--p);
    --bs-link-color: var(--p-700);
    --bs-link-hover-color: var(--p-800);
    --bs-border-color: var(--line);
    --bs-border-radius: var(--r-sm);
    --bs-emphasis-color: var(--ink);
    --bs-heading-color: var(--ink);
}
@media (min-width: 992px) { :root { --header-h: 76px; } }

/* ---------- Friendly tones ---------- */
.hs-t1, .hs-tones > :nth-child(8n+1) { --c: #0D9488; --c2: #2DD4BF; --c-ink: #115E59; --c-soft: #E7FAF6; }
.hs-t2, .hs-tones > :nth-child(8n+2) { --c: #2563EB; --c2: #60A5FA; --c-ink: #1E3A8A; --c-soft: #EBF2FF; }
.hs-t3, .hs-tones > :nth-child(8n+3) { --c: #7C3AED; --c2: #A78BFA; --c-ink: #4C1D95; --c-soft: #F3EEFF; }
.hs-t4, .hs-tones > :nth-child(8n+4) { --c: #DB2777; --c2: #F472B6; --c-ink: #831843; --c-soft: #FDEEF6; }
.hs-t5, .hs-tones > :nth-child(8n+5) { --c: #EA580C; --c2: #FB923C; --c-ink: #7C2D12; --c-soft: #FFF2E8; }
.hs-t6, .hs-tones > :nth-child(8n+6) { --c: #16A34A; --c2: #4ADE80; --c-ink: #14532D; --c-soft: #EAF8EF; }
.hs-t7, .hs-tones > :nth-child(8n+7) { --c: #0891B2; --c2: #22D3EE; --c-ink: #164E63; --c-soft: #E6F7FB; }
.hs-t8, .hs-tones > :nth-child(8n+8) { --c: #C026D3; --c2: #E879F9; --c-ink: #701A75; --c-soft: #FCEEFE; }
.hs-t-red, .hs-tones > .hs-t-red { --c: #E11D48; --c2: #FB7185; --c-ink: #881337; --c-soft: #FFF0F3; }
.hs-t-brand { --c: var(--p); --c2: color-mix(in srgb, var(--p) 55%, var(--accent)); --c-ink: var(--p-800); --c-soft: var(--p-50); }

html[lang="bn"] {
    --font: 'Hind Siliguri', 'Inter', system-ui, sans-serif;
    --font-head: 'Hind Siliguri', 'Inter', system-ui, sans-serif;
}

/* ---------- Base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--header-h) + 16px); }
html, body { overflow-x: clip; }
@supports not (overflow: clip) { html, body { overflow-x: hidden; } }
body.hs-body { font-family: var(--font); color: var(--text); background: var(--bg); font-size: 16px; line-height: 1.65; -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-wrap: break-word; -webkit-tap-highlight-color: transparent; }
html[lang="bn"] body.hs-body { font-size: 16.5px; line-height: 1.75; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-head); color: var(--ink); font-weight: 700; letter-spacing: -.015em; line-height: 1.25; }
html[lang="bn"] h1, html[lang="bn"] h2, html[lang="bn"] h3, html[lang="bn"] h4 { letter-spacing: 0; line-height: 1.4; }
a { color: var(--p-700); text-decoration: none; }
a:hover { color: var(--p-800); }
img, iframe, video { max-width: 100%; }
:focus-visible { outline: 3px solid #F59E0B; outline-offset: 2px; border-radius: 8px; }
.hs-skip { position: absolute; left: -999px; top: 8px; z-index: 2000; background: var(--ink); color: #fff; padding: .5rem 1rem; border-radius: 8px; }
.hs-skip:focus { left: 8px; color: #fff; }
.hs-wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 16px; }
@media (min-width: 768px) { .hs-wrap { padding: 0 24px; } }
.hs-muted { color: var(--muted); }
.hs-ink { color: var(--ink); }
.hs-nowrap { white-space: nowrap; }
.min-w-0 { min-width: 0; }
.visually-hidden-focusable:not(:focus) { position: absolute !important; width: 1px !important; height: 1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; }

/* ---------- Buttons ---------- */
.hs-btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; padding: .74rem 1.35rem; border-radius: 999px; font-weight: 700; font-size: .95rem; line-height: 1.2; border: 1.5px solid transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s, box-shadow .2s, transform .2s var(--ease); white-space: nowrap; text-decoration: none; }
.hs-btn:hover { transform: translateY(-2px); }
.hs-btn:active { transform: translateY(0); }
.hs-btn-primary { background: var(--grad); color: #fff; box-shadow: 0 10px 22px -10px color-mix(in srgb, var(--p) 80%, transparent); }
.hs-btn-primary:hover { color: #fff; box-shadow: 0 16px 28px -12px color-mix(in srgb, var(--p) 90%, transparent); filter: saturate(1.15) brightness(1.03); }
.hs-btn-danger { background: linear-gradient(135deg, #F43F5E, #BE123C); color: #fff; box-shadow: 0 10px 22px -10px rgba(225, 29, 72, .8); }
.hs-btn-danger:hover { color: #fff; box-shadow: 0 16px 28px -12px rgba(225, 29, 72, .9); }
.hs-btn-tone { background: linear-gradient(135deg, var(--c), var(--c-ink)); color: #fff; box-shadow: 0 10px 22px -12px var(--c); }
.hs-btn-tone:hover { color: #fff; box-shadow: 0 16px 28px -12px var(--c); }
.hs-btn-light { background: #fff; color: var(--ink); border-color: var(--line); }
.hs-btn-light:hover { border-color: var(--p-200); color: var(--p-700); background: var(--p-50); }
.hs-btn-ghost { background: rgba(255, 255, 255, .14); color: #fff; border-color: rgba(255, 255, 255, .4); backdrop-filter: blur(6px); }
.hs-btn-ghost:hover { background: rgba(255, 255, 255, .26); color: #fff; }
.hs-btn-outline { background: #fff; color: var(--p-700); border-color: var(--p-200); }
.hs-btn-outline:hover { background: var(--grad); color: #fff; border-color: transparent; box-shadow: 0 12px 24px -12px var(--p); }
.hs-btn-sm { padding: .5rem 1rem; font-size: .87rem; }
.hs-btn-lg { padding: .95rem 1.65rem; font-size: 1.02rem; }
.hs-btn-block { width: 100%; }
.hs-btn[disabled], .hs-btn.disabled { opacity: .5; pointer-events: none; }
.hs-link-arrow { font-weight: 700; display: inline-flex; align-items: center; gap: .35rem; }
.hs-link-arrow i { transition: transform .2s; }
.hs-link-arrow:hover i { transform: translateX(4px); }

/* ---------- Header (one clean bar) ---------- */
.hs-header { position: sticky; top: 0; z-index: 1030; background: rgba(255, 255, 255, .95); backdrop-filter: saturate(180%) blur(14px); -webkit-backdrop-filter: saturate(180%) blur(14px); transition: box-shadow .25s; }
.hs-header::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--rainbow); }
.hs-header.is-scrolled { box-shadow: 0 10px 30px -16px rgba(11, 37, 64, .35); }
.hs-header .hs-wrap { display: flex; align-items: center; gap: .6rem; min-height: var(--header-h); padding-bottom: 3px; }
.hs-brand { display: flex; align-items: center; gap: .65rem; color: var(--ink); min-width: 0; flex: 0 1 auto; margin-right: auto; }
.hs-brand:hover { color: var(--ink); }
.hs-brand-mark { position: relative; width: 44px; height: 44px; flex: 0 0 44px; border-radius: 14px; display: grid; place-items: center; background: var(--grad); color: #fff; font-size: 1.4rem; box-shadow: 0 8px 18px -8px var(--p); overflow: hidden; }
.hs-brand-mark img { width: 100%; height: 100%; object-fit: contain; background: #fff; }
.hs-brand-text { min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.hs-brand-text strong { font-size: clamp(.98rem, 4.2vw, 1.12rem); font-weight: 800; letter-spacing: -.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: linear-gradient(90deg, var(--ink), var(--p-700)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; padding-bottom: 1px; }
.hs-brand-text small { color: var(--muted); font-size: .74rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hs-nav { display: none; align-items: center; gap: .1rem; }
.hs-navlink { position: relative; display: inline-flex; align-items: center; gap: .25rem; padding: .55rem .7rem; border-radius: 12px; color: var(--ink); font-weight: 600; font-size: .94rem; background: none; border: 0; white-space: nowrap; transition: background .2s, color .2s; }
.hs-navlink::after { content: ''; position: absolute; left: .7rem; right: .7rem; bottom: .25rem; height: 3px; border-radius: 3px; background: var(--grad); transform: scaleX(0); transition: transform .25s var(--ease); }
.hs-navlink:hover, .hs-navlink[aria-expanded="true"] { color: var(--p-700); background: var(--p-50); }
.hs-navlink.active { color: var(--p-700); }
.hs-navlink.active::after, .hs-navlink:hover::after { transform: scaleX(1); }
.hs-navlink .bi-chevron-down { font-size: .7rem; transition: transform .2s; }
.hs-navlink[aria-expanded="true"] .bi-chevron-down { transform: rotate(180deg); }

.hs-actions { display: flex; align-items: center; gap: .45rem; flex: 0 0 auto; }
.hs-iconbtn { display: none; align-items: center; justify-content: center; gap: .35rem; height: 42px; min-width: 42px; padding: 0 .7rem; border-radius: 999px; border: 1.5px solid var(--line); background: #fff; color: var(--ink); font-weight: 700; font-size: .85rem; transition: border-color .2s, color .2s, background .2s; }
.hs-iconbtn i { font-size: 1.1rem; }
.hs-iconbtn:hover { border-color: var(--p-300); color: var(--p-700); background: var(--p-50); }
.hs-login { padding: 0; width: 42px; }
.hs-sospill { display: inline-flex; align-items: center; gap: .45rem; height: 42px; padding: 0; width: 42px; justify-content: center; border-radius: 999px; background: linear-gradient(135deg, #F43F5E, #BE123C); color: #fff; font-weight: 800; box-shadow: 0 10px 20px -10px rgba(225, 29, 72, .9); white-space: nowrap; transition: transform .2s var(--ease), box-shadow .2s; }
.hs-sospill:hover { color: #fff; transform: translateY(-1px); box-shadow: 0 14px 26px -10px rgba(225, 29, 72, 1); }
.hs-sospill-ico { position: relative; display: grid; place-items: center; font-size: 1rem; }
.hs-sospill-ico i { animation: hs-ring 2.4s infinite; }
.hs-sospill-ico::before { content: ''; position: absolute; inset: -9px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .55); animation: hs-pulse 2s infinite; }
.hs-sospill-label, .hs-sospill b { display: none; }
.hs-sospill b { font-size: .95rem; font-variant-numeric: tabular-nums; letter-spacing: .01em; }
.hs-header-cta { display: none; }
.hs-cta-short { display: none; }
.hs-burger { width: 42px; height: 42px; border-radius: 13px; border: 0; background: var(--grad); color: #fff; display: grid; place-items: center; font-size: 1.15rem; box-shadow: 0 8px 18px -10px var(--p); }
@media (min-width: 768px) {
    .hs-sospill { width: auto; padding: 0 1rem 0 .8rem; }
    .hs-sospill b { display: inline; }
}
@media (min-width: 992px) { .hs-header-cta { display: inline-flex; padding: .7rem 1.15rem; } .hs-brand-mark { width: 48px; height: 48px; flex-basis: 48px; } }
@media (min-width: 1200px) {
    .hs-nav { display: flex; margin: 0 auto; }
    .hs-brand { margin-right: 0; max-width: 260px; min-width: 170px; flex-shrink: 0; }
    .hs-navlink { padding: .55rem .55rem; font-size: .92rem; }
    .hs-cta-long { display: none; }
    .hs-cta-short { display: inline; }
    .hs-iconbtn { display: inline-flex; }
    .hs-lang span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); }
    .hs-lang { padding: 0; width: 42px; }
    .hs-burger { display: none; }
    .hs-brand-text small { display: none; }
}
@media (min-width: 1400px) {
    .hs-header .hs-wrap { max-width: 1400px; }
    .hs-brand { max-width: 280px; }
    .hs-brand-text small { display: block; }
    .hs-navlink { padding: .55rem .7rem; font-size: .94rem; }
    .hs-cta-long { display: inline; }
    .hs-cta-short { display: none; }
}
@media (min-width: 1640px) {
    .hs-lang { width: auto; padding: 0 .8rem; }
    .hs-lang span { position: static; width: auto; height: auto; clip: auto; }
    .hs-sospill-label { display: inline; font-weight: 700; font-size: .85rem; opacity: .92; }
}
@keyframes hs-ring { 0%, 70%, 100% { transform: rotate(0); } 75% { transform: rotate(-14deg); } 80% { transform: rotate(12deg); } 85% { transform: rotate(-8deg); } 90% { transform: rotate(6deg); } }
@keyframes hs-pulse { 0% { transform: scale(.6); opacity: 1; } 100% { transform: scale(1.25); opacity: 0; } }

/* Mega menu (Bootstrap dropdown with a wide panel) */
.hs-dd { position: relative; }
.hs-mega { border: 0; border-radius: var(--r); box-shadow: var(--sh-lg), 0 0 0 1px rgba(11, 37, 64, .05); padding: 1rem; margin-top: .7rem !important; min-width: 300px; overflow: hidden; }
.hs-mega::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--rainbow); }
.hs-mega-wide { width: min(780px, 92vw); }
.hs-mega-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .3rem; }
.hs-mega-item { display: flex; gap: .7rem; align-items: center; padding: .55rem .6rem; border-radius: 14px; color: var(--ink); transition: background .2s, transform .2s; }
.hs-mega-item:hover { background: var(--c-soft); color: var(--c-ink); transform: translateX(2px); }
.hs-mega-item b { display: block; font-size: .92rem; font-weight: 700; line-height: 1.3; }
.hs-mega-item small { display: block; color: var(--muted); font-size: .78rem; }
.hs-mega-foot { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-top: .8rem; padding: .9rem 1rem; border-radius: 14px; background: linear-gradient(120deg, var(--p-50), #F3EEFF 60%, #FDEEF6); }

/* Icon tiles: each takes the colour of its tone */
.hs-ico { width: 42px; height: 42px; flex: 0 0 42px; border-radius: 13px; display: grid; place-items: center; background: linear-gradient(135deg, var(--c2), var(--c)); color: #fff; font-size: 1.15rem; box-shadow: 0 8px 16px -10px var(--c); }
.hs-ico-lg { width: 56px; height: 56px; flex-basis: 56px; border-radius: 17px; font-size: 1.55rem; }
.hs-ico-soft { background: var(--c-soft); color: var(--c); box-shadow: none; }
.hs-ico-red { --c: #E11D48; --c2: #FB7185; --c-soft: #FFF0F3; --c-ink: #881337; }
.hs-ico-blue { --c: #2563EB; --c2: #60A5FA; --c-soft: #EBF2FF; --c-ink: #1E3A8A; }
.hs-ico-amber { --c: #D97706; --c2: #FBBF24; --c-soft: #FFF8E8; --c-ink: #78350F; }

/* ---------- Mobile menu (offcanvas) ---------- */
.hs-drawer { width: min(380px, 92vw) !important; border: 0 !important; background: var(--bg) !important; }
.hs-drawer-head { position: relative; padding: 1.1rem 1rem 1.3rem !important; background: var(--grad-deep); color: #fff; overflow: hidden; }
.hs-drawer-head::after { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .12) 1.2px, transparent 1.4px); background-size: 16px 16px; pointer-events: none; }
.hs-drawer-head .hs-brand { position: relative; z-index: 1; margin: 0; }
.hs-drawer-head .hs-brand-mark { background: rgba(255, 255, 255, .16); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .25); }
.hs-drawer-head .hs-brand-text strong { background: none; -webkit-text-fill-color: #fff; color: #fff; white-space: normal; }
.hs-drawer-head .hs-brand-text small { color: rgba(255, 255, 255, .8); white-space: normal; }
.hs-drawer-close { position: relative; z-index: 1; width: 40px; height: 40px; flex: 0 0 40px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .16); color: #fff; font-size: 1rem; }
.hs-drawer .offcanvas-body { padding: 1rem; display: flex; flex-direction: column; gap: .9rem; }
.hs-drawer-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
.hs-drawer-tile { display: flex; flex-direction: column; align-items: center; gap: .45rem; padding: .8rem .3rem .7rem; border-radius: 16px; background: #fff; color: var(--ink); text-align: center; font-weight: 600; font-size: .8rem; line-height: 1.3; box-shadow: var(--sh-sm); border: 1.5px solid transparent; transition: transform .2s, border-color .2s; }
.hs-drawer-tile:hover { color: var(--c-ink); transform: translateY(-2px); border-color: var(--c2); }
.hs-drawer-tile.active { border-color: var(--c); background: var(--c-soft); color: var(--c-ink); }
.hs-drawer-tile .hs-ico { width: 44px; height: 44px; flex-basis: 44px; font-size: 1.2rem; }
.hs-drawer-sos { display: flex; align-items: center; gap: .8rem; padding: .85rem 1rem; border-radius: 18px; background: linear-gradient(135deg, #F43F5E, #9F1239); color: #fff; box-shadow: 0 14px 26px -14px rgba(225, 29, 72, .9); }
.hs-drawer-sos:hover { color: #fff; }
.hs-drawer-sos small { display: block; font-size: .8rem; opacity: .9; font-weight: 600; }
.hs-drawer-sos b { display: block; font-size: 1.35rem; line-height: 1.15; font-variant-numeric: tabular-nums; }
.hs-drawer-sos-ico { width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .2); font-size: 1.2rem; }
.hs-drawer-sos-ico i { animation: hs-ring 2.4s infinite; }
.hs-drawer-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: .5rem; }
.hs-drawer-row .hs-btn { padding: .65rem .6rem; font-size: .88rem; }
.hs-drawer-phone { text-align: center; font-size: .9rem; color: var(--muted); }

/* ---------- Announcement ticker (slim) ---------- */
.hs-ticker { background: linear-gradient(90deg, #FFF7E6, #FFF0F6); border-bottom: 1px solid #F8E3C5; color: #7A4A06; font-size: .88rem; overflow: hidden; }
.hs-ticker .hs-wrap { display: flex; align-items: center; gap: .7rem; min-height: 36px; }
.hs-ticker-label { flex: 0 0 auto; display: inline-flex; align-items: center; gap: .35rem; font-weight: 700; color: #fff; background: linear-gradient(135deg, #F97316, #DB2777); padding: .12rem .65rem; border-radius: 999px; font-size: .78rem; box-shadow: 0 6px 12px -8px #DB2777; }
.hs-ticker-view { flex: 1; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 4%, #000 96%, transparent); }
.hs-ticker-track { display: inline-flex; gap: 3rem; white-space: nowrap; animation: hs-marquee 38s linear infinite; padding-left: 100%; }
.hs-ticker:hover .hs-ticker-track, .hs-ticker:focus-within .hs-ticker-track { animation-play-state: paused; }
.hs-ticker-track span::before { content: '\F586'; font-family: 'bootstrap-icons'; margin-right: .5rem; color: #DB2777; font-size: .75rem; }
@keyframes hs-marquee { to { transform: translateX(-100%); } }

/* ---------- Hero ---------- */
.hs-hero { position: relative; isolation: isolate; color: #fff; overflow: hidden; background:
    radial-gradient(620px 420px at 92% 8%, var(--glow-1), transparent 62%),
    radial-gradient(520px 380px at 4% 96%, var(--glow-2), transparent 62%),
    radial-gradient(420px 300px at 55% 40%, rgba(255, 255, 255, .08), transparent 70%),
    var(--grad-deep); }
.hs-hero::before { content: ''; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255, 255, 255, .13) 1.2px, transparent 1.5px); background-size: 22px 22px; mask-image: linear-gradient(180deg, #000, transparent 85%); -webkit-mask-image: linear-gradient(180deg, #000, transparent 85%); pointer-events: none; }
.hs-hero-img { position: absolute; inset: 0; z-index: -3; width: 100%; height: 100%; object-fit: cover; }
.hs-hero.has-image::after { content: ''; position: absolute; inset: 0; z-index: -2; background: linear-gradient(100deg, color-mix(in srgb, var(--p-900) 92%, transparent) 0%, color-mix(in srgb, var(--p-800) 78%, transparent) 50%, color-mix(in srgb, var(--deep-2) 45%, transparent) 100%); }
.hs-hero-deco { position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; }
.hs-hero-deco.one { width: 420px; height: 420px; right: -140px; bottom: -120px; background: radial-gradient(circle, color-mix(in srgb, var(--p) 55%, #fff) 0%, transparent 65%); opacity: .45; }
.hs-hero-deco.two { width: 280px; height: 280px; left: -110px; top: -100px; background: radial-gradient(circle, rgba(251, 191, 36, .35), transparent 65%); }
.hs-hero-cross { position: absolute; right: 4%; top: 10%; z-index: -1; width: 150px; opacity: .08; fill: #fff; }
.hs-hero-wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 56px; fill: var(--bg); z-index: 0; }
.hs-float { position: absolute; z-index: 0; width: 54px; height: 54px; border-radius: 18px; display: none; place-items: center; font-size: 1.45rem; color: #fff; background: linear-gradient(135deg, var(--c2), var(--c)); box-shadow: 0 16px 30px -12px var(--c), inset 0 0 0 1px rgba(255, 255, 255, .3); animation: hs-bob 6s ease-in-out infinite; pointer-events: none; }
.hs-float.f1 { left: 46%; top: 16%; }
.hs-float.f2 { left: 52%; bottom: 26%; animation-delay: -2s; width: 46px; height: 46px; font-size: 1.2rem; }
.hs-float.f3 { right: 3%; bottom: 20%; animation-delay: -4s; }
@media (min-width: 992px) { .hs-float { display: grid; } }
@keyframes hs-bob { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-12px) rotate(4deg); } }
.hs-hero .hs-wrap { position: relative; z-index: 1; padding-top: 2.4rem; padding-bottom: 5.6rem; }
.hs-hero-grid { display: grid; gap: 1.8rem; align-items: center; }
@media (min-width: 992px) { .hs-hero-grid { grid-template-columns: 1.12fr .88fr; gap: 3.5rem; } .hs-hero .hs-wrap { padding-top: 4.2rem; padding-bottom: 8.2rem; } }
.hs-eyebrow { display: inline-flex; align-items: center; gap: .45rem; padding: .34rem .9rem; border-radius: 999px; background: rgba(255, 255, 255, .15); border: 1px solid rgba(255, 255, 255, .28); font-size: .84rem; font-weight: 700; letter-spacing: .02em; backdrop-filter: blur(6px); color: #fff; }
.hs-eyebrow .dot { width: 8px; height: 8px; border-radius: 50%; background: #4ADE80; box-shadow: 0 0 0 4px rgba(74, 222, 128, .28); animation: hs-blink 1.6s infinite; }
@keyframes hs-blink { 50% { box-shadow: 0 0 0 8px rgba(74, 222, 128, 0); } }
.hs-hero h1 { color: #fff; font-size: clamp(1.85rem, 6.4vw, 3.5rem); font-weight: 800; margin: 1rem 0 .85rem; letter-spacing: -.025em; text-wrap: balance; text-shadow: 0 4px 30px rgba(0, 0, 0, .18); }
html[lang="bn"] .hs-hero h1 { letter-spacing: 0; line-height: 1.32; }
.hs-hero h1 .hl { background: linear-gradient(90deg, #FDE68A, #FBCFE8); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.hs-hero-lead { font-size: clamp(1rem, 1.7vw, 1.15rem); color: rgba(255, 255, 255, .9); max-width: 580px; margin-bottom: 1.5rem; }
.hs-hero-actions { display: flex; flex-wrap: wrap; gap: .7rem; }
.hs-trust { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.5rem; padding: 0; list-style: none; font-size: .88rem; color: #fff; }
.hs-trust li { display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .75rem .3rem .4rem; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .18); font-weight: 600; }
.hs-trust i { width: 22px; height: 22px; border-radius: 50%; display: grid; place-items: center; font-size: .75rem; background: linear-gradient(135deg, #34D399, #059669); color: #fff; }
.hs-trust li:nth-child(2) i { background: linear-gradient(135deg, #FBBF24, #EA580C); }
.hs-trust li:nth-child(3) i { background: linear-gradient(135deg, #F472B6, #BE185D); }
.hs-hero-card { position: relative; background: #fff; color: var(--text); border-radius: var(--r-lg); padding: 1.4rem; box-shadow: 0 40px 70px -30px rgba(4, 18, 31, .6); overflow: hidden; }
.hs-hero-card::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: var(--rainbow); }
@media (min-width: 576px) { .hs-hero-card { padding: 1.8rem; } }
.hs-hero-card h2 { font-size: 1.22rem; margin-bottom: .2rem; display: flex; align-items: center; gap: .6rem; }
.hs-hero-card h2 .hs-ico { width: 38px; height: 38px; flex-basis: 38px; font-size: 1.05rem; }
.hs-hero-card .form-select, .hs-hero-card .form-control { min-height: 50px; border-radius: 14px; border: 1.5px solid var(--line); background-color: var(--soft); }
.hs-hero-card label { font-size: .84rem; font-weight: 700; color: var(--ink); margin-bottom: .3rem; }
.hs-hero-tests { display: grid; gap: .45rem; margin-top: 1rem; }
.hs-hero-tests a { display: flex; justify-content: space-between; align-items: center; gap: .6rem; padding: .6rem .85rem; border-radius: 14px; background: var(--c-soft); color: var(--ink); border: 1px solid transparent; transition: border-color .2s, transform .2s; }
.hs-hero-tests a:hover { border-color: var(--c2); transform: translateX(3px); color: var(--ink); }
.hs-hero-tests b { color: var(--c-ink); white-space: nowrap; }
.hs-chips { display: flex; flex-wrap: wrap; gap: .45rem; }
.hs-chip { display: inline-flex; align-items: center; gap: .4rem; padding: .42rem .9rem; border-radius: 999px; background: #fff; border: 1.5px solid var(--line); color: var(--ink); font-size: .87rem; font-weight: 600; white-space: nowrap; transition: background .2s, border-color .2s, color .2s, box-shadow .2s; }
.hs-chip i { color: var(--c); }
a.hs-chip:hover { border-color: var(--c2); color: var(--c-ink); background: var(--c-soft); }
.hs-chip.active { background: linear-gradient(135deg, var(--c), var(--c-ink)); border-color: transparent; color: #fff; box-shadow: 0 8px 18px -10px var(--c); }
.hs-chip.active i, .hs-chip.active small { color: #fff; }
.hs-chip small { color: var(--muted); font-weight: 700; font-size: .74rem; background: rgba(11, 37, 64, .06); padding: .02rem .45rem; border-radius: 999px; }
.hs-chip.active small { background: rgba(255, 255, 255, .22); }

/* ---------- Quick action tiles (overlap the hero wave) ---------- */
.hs-quick { position: relative; z-index: 2; margin-top: -3.6rem; }
@media (min-width: 992px) { .hs-quick { margin-top: -5.4rem; } }
.hs-quick-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .55rem; }
@media (min-width: 768px) { .hs-quick-grid { gap: 1rem; } }
@media (min-width: 1200px) { .hs-quick-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.hs-tile { position: relative; overflow: hidden; display: flex; flex-direction: column; align-items: center; text-align: center; gap: .45rem; padding: .95rem .45rem .85rem; background: #fff; border-radius: var(--r); box-shadow: var(--sh); color: var(--ink); transition: transform .25s var(--ease), box-shadow .25s; min-height: 100%; border: 1px solid rgba(11, 37, 64, .04); }
.hs-tile::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: linear-gradient(90deg, var(--c2), var(--c)); }
.hs-tile:hover { transform: translateY(-5px); box-shadow: 0 24px 40px -20px var(--c); color: var(--ink); }
.hs-tile .hs-ico { width: 48px; height: 48px; flex-basis: 48px; font-size: 1.3rem; border-radius: 16px; transition: transform .3s var(--ease); }
.hs-tile:hover .hs-ico { transform: rotate(-8deg) scale(1.06); }
.hs-tile b { font-size: .86rem; line-height: 1.3; }
.hs-tile small { display: none; color: var(--muted); font-size: .8rem; line-height: 1.4; }
.hs-tile.is-primary { background: linear-gradient(150deg, var(--p), color-mix(in srgb, var(--p) 45%, var(--accent))); color: #fff; }
.hs-tile.is-primary::after { background: rgba(255, 255, 255, .35); }
.hs-tile.is-primary small { color: rgba(255, 255, 255, .88); }
.hs-tile.is-primary .hs-ico { background: rgba(255, 255, 255, .2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
.hs-tile.is-danger { background: linear-gradient(150deg, #F43F5E, #9F1239); color: #fff; }
.hs-tile.is-danger::after { background: rgba(255, 255, 255, .35); }
.hs-tile.is-danger .hs-ico { background: rgba(255, 255, 255, .2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
.hs-tile.is-danger small { display: block; color: #fff; font-weight: 800; font-size: .92rem; font-variant-numeric: tabular-nums; }
@media (min-width: 768px) {
    .hs-tile { align-items: flex-start; text-align: left; padding: 1.15rem 1.1rem 1.25rem; gap: .55rem; }
    .hs-tile b { font-size: .98rem; }
    .hs-tile small { display: block; }
}

/* ---------- Sections and their colourful backgrounds ---------- */
.hs-section { position: relative; padding: 3rem 0; }
@media (min-width: 992px) { .hs-section { padding: 5.2rem 0; } }
.hs-section > .hs-wrap { position: relative; z-index: 1; }
.hs-section-soft, .hs-bg-dots { background: radial-gradient(color-mix(in srgb, var(--p) 16%, transparent) 1.1px, transparent 1.3px) 0 0 / 20px 20px, linear-gradient(180deg, #fff, var(--p-50)); }
.hs-section-tint, .hs-bg-tint { background: radial-gradient(700px 300px at 100% 0, color-mix(in srgb, var(--accent) 12%, transparent), transparent 70%), radial-gradient(600px 300px at 0 100%, rgba(139, 92, 246, .1), transparent 70%), linear-gradient(180deg, var(--p-50), #fff); }
.hs-bg-warm { background: radial-gradient(600px 300px at 0 0, rgba(251, 146, 60, .16), transparent 70%), radial-gradient(600px 320px at 100% 100%, rgba(236, 72, 153, .13), transparent 70%), linear-gradient(180deg, #FFF8F1, #FFF5FA); }
.hs-bg-violet { background: radial-gradient(600px 300px at 100% 0, rgba(139, 92, 246, .14), transparent 70%), radial-gradient(500px 300px at 0 100%, rgba(59, 130, 246, .12), transparent 70%), linear-gradient(180deg, #F7F4FF, #F2F7FF); }
.hs-bg-white { background: #fff; }
.hs-bg-deep { color: rgba(255, 255, 255, .86); background: radial-gradient(600px 360px at 100% 0, color-mix(in srgb, var(--glow-1) 70%, transparent), transparent 65%), radial-gradient(520px 340px at 0 100%, color-mix(in srgb, var(--glow-2) 70%, transparent), transparent 65%), linear-gradient(150deg, #0B1F3A, color-mix(in srgb, var(--p) 38%, #0B1F3A)); }
.hs-bg-deep::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .08) 1.2px, transparent 1.4px); background-size: 22px 22px; pointer-events: none; }
.hs-bg-deep h2, .hs-bg-deep h3 { color: #fff; }
.hs-bg-deep .hs-lead { color: rgba(255, 255, 255, .78); }
.hs-blob { position: absolute; z-index: 0; border-radius: 50%; filter: blur(2px); pointer-events: none; opacity: .5; }

.hs-head { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1rem 2rem; margin-bottom: 1.6rem; }
@media (min-width: 992px) { .hs-head { margin-bottom: 2.4rem; } }
.hs-head-center { flex-direction: column; align-items: center; text-align: center; }
.hs-head-center .hs-lead { margin-inline: auto; }
.hs-kicker { display: inline-flex; align-items: center; gap: .45rem; color: var(--c-ink); background: var(--c-soft); border: 1px solid color-mix(in srgb, var(--c) 20%, transparent); font-weight: 700; font-size: .76rem; letter-spacing: .08em; text-transform: uppercase; margin-bottom: .6rem; padding: .28rem .8rem .28rem .6rem; border-radius: 999px; }
html[lang="bn"] .hs-kicker { letter-spacing: .02em; font-size: .86rem; text-transform: none; }
.hs-kicker::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg, var(--c2), var(--c)); box-shadow: 0 0 0 3px color-mix(in srgb, var(--c) 18%, transparent); }
.hs-kicker-light, .hs-bg-deep .hs-kicker { color: #fff; background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .22); }
.hs-head h2, .hs-title { font-size: clamp(1.5rem, 3.6vw, 2.4rem); font-weight: 800; margin: 0; letter-spacing: -.02em; text-wrap: balance; }
.hs-head h2::after { content: ''; display: block; width: 72px; height: 5px; margin-top: .7rem; border-radius: 5px; background: linear-gradient(90deg, var(--c), var(--c2) 45%, #F97316 46%, #F97316 70%, #EC4899 71%); }
.hs-head-center h2::after { margin-inline: auto; }
.hs-lead { color: var(--muted); max-width: 640px; margin: .7rem 0 0; font-size: 1.02rem; }
.hs-more { display: flex; justify-content: center; margin-top: 1.6rem; }

/* ---------- Stats: one colour card each ---------- */
.hs-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
@media (min-width: 768px) { .hs-stats { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1rem; } }
.hs-stat { position: relative; overflow: hidden; padding: 1.1rem 1rem; border-radius: var(--r); display: flex; align-items: center; gap: .8rem; color: #fff; background: linear-gradient(140deg, var(--c), var(--c-ink)); box-shadow: 0 18px 34px -20px var(--c); }
.hs-stat::after { content: ''; position: absolute; right: -26px; top: -26px; width: 96px; height: 96px; border-radius: 50%; background: rgba(255, 255, 255, .12); }
.hs-stat::before { content: ''; position: absolute; right: 18px; bottom: -36px; width: 70px; height: 70px; border-radius: 50%; background: rgba(255, 255, 255, .08); }
.hs-stat .hs-ico { background: rgba(255, 255, 255, .2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28); }
.hs-stat-num { font-size: clamp(1.45rem, 3.8vw, 2.4rem); font-weight: 800; color: #fff; line-height: 1; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.hs-stat-num sup { font-size: .55em; color: #FDE68A; top: -.6em; margin-left: 2px; }
.hs-stat small { display: block; color: rgba(255, 255, 255, .9); font-size: .86rem; margin-top: .35rem; font-weight: 600; line-height: 1.3; }
@media (min-width: 992px) { .hs-stat { padding: 1.5rem 1.3rem; gap: 1rem; } }

/* ---------- Cards: departments, facilities ---------- */
.hs-grid { display: grid; gap: .7rem; grid-template-columns: repeat(1, minmax(0, 1fr)); }
.hs-grid-2, .hs-grid-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 576px) { .hs-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } }
@media (min-width: 992px) { .hs-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .hs-grid-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } .hs-grid { gap: 1.3rem; } }
.hs-card { position: relative; background: #fff; border: 1px solid var(--line); border-radius: var(--r); box-shadow: var(--sh-sm); }
.hs-card-top { overflow: hidden; }
.hs-card-top::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 5px; background: var(--rainbow); }
.hs-card-pad { padding: 1.3rem; }
@media (min-width: 768px) { .hs-card-pad { padding: 1.8rem; } }
.hs-dept { position: relative; overflow: hidden; display: flex; gap: .95rem; align-items: flex-start; padding: 1.25rem; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r); color: var(--ink); transition: transform .25s var(--ease), box-shadow .25s, border-color .25s, background .25s; height: 100%; }
.hs-dept::after { content: ''; position: absolute; right: -34px; top: -34px; width: 100px; height: 100px; border-radius: 50%; background: var(--c-soft); transition: transform .4s var(--ease); z-index: 0; }
.hs-dept > * { position: relative; z-index: 1; }
.hs-dept:hover { transform: translateY(-5px); box-shadow: 0 22px 40px -22px var(--c); border-color: var(--c2); color: var(--ink); }
.hs-dept:hover::after { transform: scale(2.6); }
.hs-dept .hs-ico { transition: transform .3s var(--ease); }
.hs-dept:hover .hs-ico { transform: rotate(-8deg) scale(1.06); }
.hs-dept b { display: block; font-size: 1.02rem; line-height: 1.3; }
.hs-dept small { color: var(--c-ink); font-size: .84rem; font-weight: 600; }
.hs-dept p { color: var(--muted); font-size: .88rem; margin: .3rem 0 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hs-fac { position: relative; overflow: hidden; padding: 1.4rem; background: #fff; border-radius: var(--r); border: 1.5px solid var(--line); height: 100%; transition: transform .25s var(--ease), box-shadow .25s, border-color .25s; }
.hs-fac::after { content: ''; position: absolute; right: -40px; bottom: -40px; width: 120px; height: 120px; border-radius: 50%; background: var(--c-soft); z-index: 0; transition: transform .4s var(--ease); }
.hs-fac:hover { transform: translateY(-4px); box-shadow: 0 22px 40px -22px var(--c); border-color: var(--c2); }
.hs-fac:hover::after { transform: scale(1.5); }
.hs-fac > * { position: relative; z-index: 1; }
.hs-fac h3 { font-size: 1.05rem; margin: 1rem 0 .35rem; }
.hs-fac p { color: var(--muted); font-size: .9rem; margin: 0; }
/* On deep bands the facility cards become glass */
.hs-bg-deep .hs-fac { background: rgba(255, 255, 255, .07); border-color: rgba(255, 255, 255, .13); backdrop-filter: blur(6px); }
.hs-bg-deep .hs-fac::after { background: color-mix(in srgb, var(--c) 30%, transparent); opacity: .5; }
.hs-bg-deep .hs-fac h3 { color: #fff; }
.hs-bg-deep .hs-fac p { color: rgba(255, 255, 255, .78); }
.hs-bg-deep .hs-fac:hover { border-color: var(--c2); }

/* ---------- Doctors ---------- */
.hs-doc { position: relative; display: flex; flex-direction: column; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); overflow: hidden; height: 100%; transition: transform .25s var(--ease), box-shadow .25s, border-color .25s; }
.hs-doc:hover { transform: translateY(-5px); box-shadow: 0 26px 44px -24px var(--c); border-color: var(--c2); }
.hs-doc-photo { position: relative; aspect-ratio: 5 / 4; background: radial-gradient(circle at 30% 20%, rgba(255, 255, 255, .7), transparent 50%), linear-gradient(150deg, var(--c-soft), color-mix(in srgb, var(--c2) 45%, #fff)); overflow: hidden; display: block; }
.hs-doc-photo::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(color-mix(in srgb, var(--c) 22%, transparent) 1.2px, transparent 1.4px); background-size: 14px 14px; }
.hs-doc-photo img { position: relative; width: 100%; height: 100%; object-fit: cover; object-position: top center; transition: transform .5s var(--ease); }
.hs-doc:hover .hs-doc-photo img { transform: scale(1.05); }
.hs-doc-initials { position: absolute; inset: 0; display: grid; place-items: center; font-size: 2.6rem; font-weight: 800; color: var(--c-ink); }
.hs-doc-initials::before { content: ''; position: absolute; inset: 0; margin: auto; width: 96px; height: 96px; border-radius: 50%; background: #fff; box-shadow: 0 12px 30px -14px var(--c); z-index: -1; }
.hs-doc-initials { z-index: 1; isolation: isolate; }
.hs-doc-dept { position: absolute; z-index: 2; left: .7rem; bottom: .7rem; background: linear-gradient(135deg, var(--c), var(--c-ink)); color: #fff; font-size: .74rem; font-weight: 700; padding: .25rem .7rem; border-radius: 999px; box-shadow: 0 6px 14px -8px var(--c); max-width: calc(100% - 1.4rem); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hs-doc-body { padding: 1rem 1.1rem 1.15rem; display: flex; flex-direction: column; gap: .3rem; flex: 1; }
.hs-doc-body h3 { font-size: 1.04rem; margin: 0; }
.hs-doc-body h3 a { color: var(--ink); }
.hs-doc-body h3 a:hover { color: var(--c-ink); }
.hs-doc-role { color: var(--c-ink); font-weight: 700; font-size: .85rem; line-height: 1.35; }
.hs-doc-deg { color: var(--muted); font-size: .82rem; line-height: 1.45; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hs-days { display: flex; flex-wrap: wrap; gap: .22rem; margin-top: .25rem; }
.hs-day { font-size: .7rem; font-weight: 700; padding: .14rem .42rem; border-radius: 7px; background: var(--soft); color: #94A3B8; }
.hs-day.on { background: var(--c-soft); color: var(--c-ink); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 30%, transparent); }
.hs-doc-foot { display: flex; gap: .45rem; margin-top: auto; padding-top: .8rem; }
.hs-doc-foot .hs-btn { flex: 1; padding-left: .6rem; padding-right: .6rem; }
.hs-doc-foot .hs-btn-primary { background: linear-gradient(135deg, var(--c), var(--c-ink)); box-shadow: 0 10px 20px -12px var(--c); }
.hs-rail { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 74%); gap: .9rem; overflow-x: auto; scroll-snap-type: x mandatory; padding: .3rem .3rem 1.2rem; margin: 0 -.3rem; scrollbar-width: thin; scrollbar-color: var(--p-200) transparent; }
.hs-rail > * { scroll-snap-align: start; }
@media (min-width: 576px) { .hs-rail { grid-auto-columns: minmax(240px, 44%); } }
@media (min-width: 992px) { .hs-rail { grid-auto-columns: calc((100% - 3rem) / 4); gap: 1rem; } }
.hs-rail-nav { display: flex; gap: .5rem; }
.hs-rail-btn { width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid var(--line); background: #fff; color: var(--ink); display: grid; place-items: center; transition: background .2s, color .2s, border-color .2s; }
.hs-rail-btn:hover { background: var(--grad); border-color: transparent; color: #fff; }

/* ---------- Packages: a colour header per card ---------- */
.hs-pkg { position: relative; display: flex; flex-direction: column; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); height: 100%; transition: transform .25s var(--ease), box-shadow .25s; overflow: hidden; }
.hs-pkg:hover { transform: translateY(-5px); box-shadow: 0 28px 50px -26px var(--c); }
.hs-pkg.is-featured { border-color: var(--c2); box-shadow: 0 24px 50px -28px var(--c); }
.hs-pkg-img { aspect-ratio: 16 / 7; overflow: hidden; background: var(--c-soft); }
.hs-pkg-img img { width: 100%; height: 100%; object-fit: cover; }
.hs-pkg-head { position: relative; overflow: hidden; padding: 1.25rem 1.3rem 1.1rem; color: #fff; background: radial-gradient(260px 140px at 100% 0, rgba(255, 255, 255, .22), transparent 70%), linear-gradient(140deg, var(--c), var(--c-ink)); }
.hs-pkg-head::after { content: ''; position: absolute; right: -30px; bottom: -50px; width: 130px; height: 130px; border-radius: 50%; background: rgba(255, 255, 255, .1); box-shadow: -40px -30px 0 -30px rgba(255, 255, 255, .12); }
.hs-pkg-badge { display: inline-flex; align-items: center; gap: .3rem; background: linear-gradient(135deg, #FDE68A, #F59E0B); color: #5B3A00; font-size: .74rem; font-weight: 800; padding: .22rem .7rem; border-radius: 999px; margin-bottom: .55rem; box-shadow: 0 6px 14px -8px #B45309; }
.hs-pkg-save { position: absolute; top: 1rem; right: 1rem; z-index: 1; background: #fff; color: var(--red); font-size: .78rem; font-weight: 800; padding: .25rem .6rem; border-radius: 999px; box-shadow: 0 6px 14px -8px rgba(0, 0, 0, .4); }
.hs-pkg h3 { font-size: 1.18rem; margin: 0 0 .2rem; padding-right: 4.8rem; color: #fff; position: relative; z-index: 1; }
.hs-pkg-tag { color: rgba(255, 255, 255, .86); font-size: .87rem; margin: 0; position: relative; z-index: 1; }
.hs-price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .5rem; margin: .8rem 0 0; position: relative; z-index: 1; }
.hs-price b { font-size: 1.85rem; font-weight: 800; color: #fff; letter-spacing: -.02em; line-height: 1.1; }
.hs-price s { color: rgba(255, 255, 255, .7); font-size: .98rem; }
.hs-pkg-body { padding: 1.15rem 1.3rem 1.3rem; display: flex; flex-direction: column; flex: 1; }
.hs-checks { list-style: none; padding: 0; margin: 0 0 1.2rem; display: grid; gap: .45rem; font-size: .9rem; }
.hs-checks li { display: flex; gap: .55rem; align-items: flex-start; }
.hs-checks li::before { content: '\F26E'; font-family: 'bootstrap-icons'; flex: 0 0 20px; width: 20px; height: 20px; border-radius: 50%; display: grid; place-items: center; background: var(--c-soft); color: var(--c); font-size: .95rem; line-height: 1; margin-top: .15rem; }
.hs-checks li.more { color: var(--c-ink); font-weight: 700; }
.hs-checks li.more::before { content: '\F4FE'; }
.hs-pkg .hs-btn { margin-top: auto; }

/* ---------- Test price cards (popular tests, home teaser) ---------- */
.hs-test { position: relative; overflow: hidden; display: flex; align-items: center; gap: .9rem; padding: 1rem 1.1rem; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r); height: 100%; color: var(--ink); transition: transform .25s var(--ease), box-shadow .25s, border-color .25s; }
.hs-test:hover { transform: translateY(-4px); border-color: var(--c2); box-shadow: 0 20px 36px -22px var(--c); color: var(--ink); }
.hs-test b { display: block; color: var(--ink); font-size: .96rem; line-height: 1.3; }
.hs-test small { color: var(--muted); font-size: .8rem; }
.hs-test-price { margin-left: auto; text-align: right; font-weight: 800; color: var(--c-ink); background: var(--c-soft); padding: .3rem .7rem; border-radius: 999px; white-space: nowrap; font-size: 1rem; font-variant-numeric: tabular-nums; }
.hs-groups { display: grid; gap: .6rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 768px) { .hs-groups { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .9rem; } }
.hs-group { position: relative; overflow: hidden; display: flex; align-items: center; gap: .7rem; padding: .85rem .9rem; border-radius: var(--r); background: #fff; border: 1.5px solid var(--line); color: var(--ink); transition: transform .25s var(--ease), box-shadow .25s, border-color .25s; }
.hs-group:hover { transform: translateY(-3px); border-color: var(--c2); box-shadow: 0 18px 32px -20px var(--c); color: var(--ink); }
.hs-group b { display: block; font-size: .93rem; line-height: 1.25; }
.hs-group small { color: var(--c-ink); font-weight: 700; font-size: .78rem; }
.hs-group .hs-ico { width: 40px; height: 40px; flex-basis: 40px; font-size: 1.05rem; }
.hs-teaser-bar { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; justify-content: space-between; margin-top: 1.4rem; padding: 1rem; border-radius: var(--r-lg); background: #fff; border: 1.5px dashed color-mix(in srgb, var(--p) 30%, var(--line)); }
.hs-teaser-bar form { display: flex; gap: .5rem; flex: 1 1 280px; }
.hs-teaser-bar .form-control { min-height: 48px; border-radius: 999px; border: 1.5px solid var(--line); padding-left: 1.1rem; }
.hs-teaser-bar .hs-btn-lg { flex: 0 0 auto; }

/* ---------- Home collection band ---------- */
.hs-band { position: relative; overflow: hidden; border-radius: var(--r-lg); padding: 1.8rem 1.3rem; background: radial-gradient(400px 260px at 100% 0, rgba(253, 186, 116, .45), transparent 65%), radial-gradient(420px 260px at 0 100%, rgba(236, 72, 153, .35), transparent 65%), linear-gradient(120deg, var(--p-700), color-mix(in srgb, var(--p) 40%, var(--accent))); color: #fff; box-shadow: 0 30px 60px -32px var(--p-800); }
@media (min-width: 768px) { .hs-band { padding: 3rem; } }
.hs-band::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .12) 1.2px, transparent 1.4px); background-size: 20px 20px; pointer-events: none; }
.hs-band h2, .hs-band h3 { color: #fff; }
.hs-band p { color: rgba(255, 255, 255, .9); }
.hs-band::after { content: ''; position: absolute; right: -80px; bottom: -120px; width: 320px; height: 320px; border-radius: 50%; background: rgba(255, 255, 255, .1); }
.hs-steps-row { display: grid; gap: .7rem; grid-template-columns: repeat(1, minmax(0, 1fr)); margin-top: 1.5rem; position: relative; z-index: 1; }
@media (min-width: 768px) { .hs-steps-row { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hs-step-box { background: rgba(255, 255, 255, .14); border: 1px solid rgba(255, 255, 255, .24); border-radius: var(--r); padding: .9rem 1rem; display: flex; gap: .8rem; align-items: center; font-weight: 600; backdrop-filter: blur(4px); }
.hs-step-box span { width: 36px; height: 36px; flex: 0 0 36px; border-radius: 50%; background: #fff; color: var(--p-800); font-weight: 800; display: grid; place-items: center; box-shadow: 0 6px 14px -8px #000; }
.hs-step-box:nth-child(2) span { color: #7C3AED; }
.hs-step-box:nth-child(3) span { color: #DB2777; }

/* ---------- Why us ---------- */
.hs-why { display: grid; gap: 1.6rem; align-items: center; }
@media (min-width: 992px) { .hs-why { grid-template-columns: .9fr 1.1fr; gap: 4rem; } }
.hs-why-visual { position: relative; border-radius: var(--r-lg); min-height: 280px; overflow: hidden; background: radial-gradient(420px 260px at 10% 0, rgba(255, 255, 255, .25), transparent 60%), radial-gradient(380px 260px at 100% 100%, rgba(236, 72, 153, .45), transparent 60%), linear-gradient(150deg, var(--p), var(--deep-2)); color: #fff; padding: 1.8rem; display: flex; flex-direction: column; justify-content: flex-end; box-shadow: 0 30px 60px -30px var(--deep-2); }
@media (min-width: 992px) { .hs-why-visual { min-height: 380px; padding: 2.2rem; } }
.hs-why-visual::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .14) 1.2px, transparent 1.4px); background-size: 20px 20px; }
.hs-why-visual > * { position: relative; }
.hs-why-visual .big { font-size: 5rem; line-height: 1; opacity: .3; position: absolute; top: 1.2rem; right: 1.4rem; }
.hs-why-visual h3 { color: #fff; font-size: 1.45rem; }
.hs-why-visual p { color: rgba(255, 255, 255, .88); margin: 0; font-weight: 600; }
.hs-why-badges { display: flex; flex-wrap: wrap; gap: .45rem; margin-top: 1rem; }
.hs-why-badges span { display: inline-flex; align-items: center; gap: .35rem; padding: .3rem .75rem; border-radius: 999px; background: rgba(255, 255, 255, .16); border: 1px solid rgba(255, 255, 255, .25); font-size: .82rem; font-weight: 700; }
.hs-why-list { display: grid; gap: .7rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 992px) { .hs-why-list { gap: 1rem; } }
.hs-why-item { display: flex; gap: .85rem; padding: 1rem; border-radius: var(--r); background: #fff; border: 1.5px solid var(--line); transition: transform .25s var(--ease), border-color .25s, box-shadow .25s; }
.hs-why-item:hover { transform: translateY(-3px); border-color: var(--c2); box-shadow: 0 18px 32px -22px var(--c); }
.hs-why-item b { display: block; color: var(--ink); margin-bottom: .15rem; line-height: 1.3; }
.hs-why-item p { color: var(--muted); font-size: .88rem; margin: 0; }

/* ---------- Testimonials ---------- */
.hs-quote { position: relative; background: #fff; border-radius: var(--r-lg); padding: 1.5rem; height: 100%; display: flex; flex-direction: column; gap: .9rem; box-shadow: var(--sh); border-top: 5px solid var(--c); }
.hs-quote::before { content: '\201C'; position: absolute; top: .1rem; right: 1.1rem; font-size: 5rem; line-height: 1; color: var(--c); opacity: .22; font-family: Georgia, serif; }
.hs-stars { color: var(--gold); letter-spacing: .1em; font-size: 1rem; }
.hs-quote p { margin: 0; color: var(--text); font-size: .97rem; }
.hs-person { display: flex; align-items: center; gap: .75rem; margin-top: auto; }
.hs-avatar { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; flex: 0 0 46px; background: linear-gradient(135deg, var(--c2), var(--c)); color: #fff; display: grid; place-items: center; font-weight: 800; box-shadow: 0 0 0 3px #fff, 0 0 0 5px var(--c-soft); }
.hs-person b { display: block; color: var(--ink); font-size: .95rem; }
.hs-person small { color: var(--muted); font-size: .82rem; }

/* ---------- News ---------- */
.hs-post { position: relative; display: flex; flex-direction: column; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r-lg); overflow: hidden; height: 100%; transition: transform .25s var(--ease), box-shadow .25s, border-color .25s; }
.hs-post:hover { transform: translateY(-5px); box-shadow: 0 26px 46px -26px var(--c); border-color: var(--c2); }
.hs-post-img { position: relative; aspect-ratio: 16 / 9; background: radial-gradient(circle at 30% 20%, rgba(255, 255, 255, .35), transparent 50%), linear-gradient(135deg, var(--c2), var(--c)); overflow: hidden; display: grid; place-items: center; color: rgba(255, 255, 255, .9); font-size: 2.6rem; }
.hs-post-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s var(--ease); }
.hs-post:hover .hs-post-img img { transform: scale(1.05); }
.hs-post-body { padding: 1.1rem 1.2rem 1.3rem; display: flex; flex-direction: column; gap: .5rem; flex: 1; }
.hs-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .4rem .8rem; font-size: .8rem; color: var(--muted); }
.hs-post-meta .cat { color: var(--c-ink); background: var(--c-soft); font-weight: 700; padding: .14rem .6rem; border-radius: 999px; }
.hs-post h3 { font-size: 1.06rem; margin: 0; line-height: 1.45; }
.hs-post h3 a { color: var(--ink); }
.hs-post h3 a:hover { color: var(--c-ink); }
.hs-post p { color: var(--muted); font-size: .9rem; margin: 0; }
.hs-post .hs-link-arrow { color: var(--c-ink); }

/* ---------- Partners ---------- */
.hs-partners { display: flex; flex-wrap: wrap; justify-content: center; gap: .8rem; }
.hs-partner { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-width: 160px; height: 74px; padding: .5rem 1.2rem; background: #fff; border: 1.5px solid var(--line); border-radius: var(--r); color: var(--ink); font-weight: 700; font-size: .9rem; transition: border-color .2s, box-shadow .2s, transform .2s; }
.hs-partner:hover { border-color: var(--c2); box-shadow: 0 16px 30px -20px var(--c); color: var(--ink); transform: translateY(-2px); }
.hs-partner img { max-height: 44px; max-width: 140px; object-fit: contain; }
.hs-partner i { width: 38px; height: 38px; flex: 0 0 38px; border-radius: 12px; display: grid; place-items: center; background: var(--c-soft); color: var(--c); font-size: 1.15rem; }
.hs-partner small { display: block; font-weight: 600; color: var(--muted); font-size: .72rem; }
.hs-partners-title { display: flex; align-items: center; justify-content: center; gap: .8rem; color: var(--muted); font-weight: 700; margin-bottom: 1.3rem; text-align: center; }
.hs-partners-title::before, .hs-partners-title::after { content: ''; width: 40px; height: 2px; border-radius: 2px; background: var(--rainbow); }

/* ---------- Contact block & map ---------- */
.hs-contact { display: grid; gap: 1.1rem; }
@media (min-width: 992px) { .hs-contact { grid-template-columns: 1fr 1.2fr; gap: 1.5rem; } }
.hs-map { border-radius: var(--r-lg); overflow: hidden; min-height: 340px; background: radial-gradient(color-mix(in srgb, var(--p) 18%, transparent) 1.2px, transparent 1.4px) 0 0 / 18px 18px, linear-gradient(135deg, var(--p-50), #F3EEFF); border: 4px solid #fff; box-shadow: var(--sh); position: relative; }
.hs-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.hs-map-empty { position: absolute; inset: 0; display: grid; place-items: center; text-align: center; padding: 2rem; color: var(--p-800); }
.hs-map-empty i.bi-geo-alt-fill { font-size: 2.6rem; width: 76px; height: 76px; margin: 0 auto .7rem; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #FB7185, #E11D48); color: #fff; box-shadow: 0 16px 30px -14px #E11D48; animation: hs-bob 5s ease-in-out infinite; }
.hs-info-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.hs-info-list li { display: flex; gap: .85rem; align-items: center; padding: .7rem; border-radius: 16px; background: var(--c-soft); }
.hs-info-list b { display: block; color: var(--c-ink); font-size: .84rem; }
.hs-info-list span, .hs-info-list a { color: var(--ink); font-weight: 600; word-break: break-word; }
.hs-emergency-box { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.15rem; border-radius: var(--r); background: linear-gradient(135deg, #F43F5E, #9F1239); color: #fff; box-shadow: 0 16px 30px -16px #E11D48; }
.hs-emergency-box:hover { color: #fff; }
.hs-emergency-box b { display: block; font-size: 1.4rem; color: #fff; line-height: 1.2; font-variant-numeric: tabular-nums; }
.hs-emergency-box small { color: rgba(255, 255, 255, .9); font-weight: 600; }
.hs-emergency-box .hs-ico { background: rgba(255, 255, 255, .2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
.hs-emergency-box .hs-ico i { animation: hs-ring 2.4s infinite; }

/* ---------- CTA band ---------- */
.hs-cta { position: relative; overflow: hidden; border-radius: var(--r-lg); padding: 1.7rem 1.3rem; background: radial-gradient(360px 220px at 100% 0, rgba(236, 72, 153, .45), transparent 65%), radial-gradient(360px 220px at 0 100%, rgba(251, 191, 36, .3), transparent 65%), linear-gradient(120deg, var(--p-800), var(--deep-2)); color: #fff; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.1rem; box-shadow: 0 30px 60px -32px var(--deep-2); }
.hs-cta::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .1) 1.2px, transparent 1.4px); background-size: 20px 20px; pointer-events: none; }
.hs-cta > * { position: relative; }
@media (min-width: 768px) { .hs-cta { padding: 2.4rem 3rem; } }
.hs-cta h2 { color: #fff; margin: 0 0 .3rem; font-size: clamp(1.25rem, 2.6vw, 1.8rem); }
.hs-cta p { margin: 0; color: rgba(255, 255, 255, .86); }

/* ---------- Footer ---------- */
.hs-footer { position: relative; margin-top: 3rem; background: linear-gradient(160deg, #0B1F3A 0%, color-mix(in srgb, var(--p) 30%, #0B1F3A) 60%, color-mix(in srgb, var(--accent) 32%, #0B1F3A) 100%); color: rgba(255, 255, 255, .76); padding: 2.4rem 0 0; font-size: .92rem; }
.hs-footer::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .06) 1.2px, transparent 1.4px); background-size: 22px 22px; pointer-events: none; }
.hs-footer > .hs-wrap { position: relative; }
.hs-footer-wave { position: absolute; left: 0; right: 0; top: -38px; width: 100%; height: 40px; fill: #0B1F3A; }
.hs-footer h4 { color: #fff; font-size: 1.02rem; margin-bottom: 1rem; }
.hs-footer h4::after { content: ''; display: block; width: 36px; height: 4px; border-radius: 4px; margin-top: .45rem; background: linear-gradient(90deg, #2DD4BF, #A78BFA, #F472B6); }
.hs-footer a { color: rgba(255, 255, 255, .8); }
.hs-footer a:hover { color: #fff; }
.hs-footer-cta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.3rem 1.4rem; margin-bottom: 2.4rem; border-radius: var(--r-lg); background: radial-gradient(300px 200px at 100% 0, rgba(255, 255, 255, .2), transparent 65%), var(--grad); box-shadow: 0 24px 50px -30px #000; }
.hs-footer-cta b { display: block; color: #fff; font-size: 1.15rem; }
.hs-footer-cta span { color: rgba(255, 255, 255, .88); }
.hs-footer-cta .hs-btn-light { color: var(--p-800); border-color: transparent; }
.hs-footer-grid { display: grid; gap: 2rem; grid-template-columns: repeat(1, minmax(0, 1fr)); }
@media (min-width: 768px) { .hs-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1200px) { .hs-footer-grid { grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap: 3rem; } }
.hs-footer-links { list-style: none; padding: 0; margin: 0; display: grid; gap: .55rem; }
.hs-footer-links a { display: inline-flex; align-items: center; gap: .45rem; transition: transform .2s, color .2s; }
.hs-footer-links a::before { content: '\F285'; font-family: 'bootstrap-icons'; font-size: .62rem; color: #5EEAD4; }
.hs-footer-links li:nth-child(3n+2) a::before { color: #C4B5FD; }
.hs-footer-links li:nth-child(3n+3) a::before { color: #F9A8D4; }
.hs-footer-links a:hover { transform: translateX(3px); }
.hs-footer-contact { list-style: none; padding: 0; margin: 0; display: grid; gap: .8rem; }
.hs-footer-contact li { display: flex; gap: .7rem; align-items: flex-start; }
.hs-footer-contact i { width: 32px; height: 32px; flex: 0 0 32px; border-radius: 10px; display: grid; place-items: center; background: rgba(255, 255, 255, .08); color: #5EEAD4; font-size: .9rem; }
.hs-footer-contact li:nth-child(2) i { color: #93C5FD; }
.hs-footer-contact li:nth-child(3) i { color: #F9A8D4; }
.hs-footer-contact li:nth-child(4) i { color: #FCD34D; }
.hs-footer-contact span, .hs-footer-contact a { padding-top: .3rem; word-break: break-word; }
.hs-social { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.2rem; }
.hs-social a { width: 42px; height: 42px; border-radius: 13px; display: grid; place-items: center; background: rgba(255, 255, 255, .1); color: #fff; font-size: 1.1rem; transition: background .2s, transform .2s; }
.hs-social a:hover { transform: translateY(-3px); color: #fff; }
.hs-social a.is-facebook { background: #1877F2; }
.hs-social a.is-youtube { background: #FF0033; }
.hs-social a.is-instagram { background: linear-gradient(45deg, #F58529, #DD2A7B, #8134AF); }
.hs-social a.is-linkedin { background: #0A66C2; }
.hs-social a.is-x { background: #111; }
.hs-social a.is-whatsapp { background: #25D366; }
.hs-footer-bottom { margin-top: 2.6rem; padding: 1.2rem 0 1.4rem; border-top: 1px solid rgba(255, 255, 255, .12); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; font-size: .84rem; }
.hs-footer-bottom .vendor-credit { padding: 0 !important; }
.hs-footer-emergency { display: inline-flex; align-items: center; gap: .6rem; margin-top: 1rem; padding: .6rem 1rem; border-radius: 14px; background: linear-gradient(135deg, #F43F5E, #9F1239); color: #fff !important; font-weight: 800; box-shadow: 0 12px 24px -14px #F43F5E; }

/* ---------- Phone bottom bar (floating, every icon its own colour) ---------- */
.hs-mobilebar { position: fixed; z-index: 1040; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); align-items: end; padding: 0 .3rem; border-radius: 22px; background: rgba(255, 255, 255, .97); backdrop-filter: saturate(1.4) blur(10px); -webkit-backdrop-filter: saturate(1.4) blur(10px); border: 1px solid var(--line); box-shadow: 0 16px 36px -12px rgba(11, 37, 64, .4); }
.hs-mobilebar::before { content: ''; position: absolute; left: 18px; right: 18px; top: -1px; height: 3px; border-radius: 0 0 3px 3px; background: var(--rainbow); opacity: .8; }
.hs-mobilebar a { display: flex; flex-direction: column; align-items: center; gap: .16rem; padding: .5rem .1rem .45rem; font-size: .72rem; font-weight: 700; color: var(--muted); border-radius: 14px; line-height: 1.15; text-align: center; }
.hs-mobilebar a span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.hs-mobilebar a i { font-size: 1.25rem; line-height: 1; }
.hs-mobilebar a.t-home i { color: #0D9488; }
.hs-mobilebar a.t-doc i { color: #2563EB; }
.hs-mobilebar a.t-price i { color: #EA580C; }
.hs-mobilebar a.t-pkg i { color: #DB2777; }
.hs-mobilebar a.is-active { color: var(--ink); }
.hs-mobilebar a.is-active span { position: relative; }
.hs-mobilebar a.is-active span::after { content: ''; position: absolute; left: 20%; right: 20%; bottom: -4px; height: 3px; border-radius: 3px; background: currentColor; opacity: .5; }
.hs-mobilebar a.is-main { color: var(--p-700); }
.hs-mobilebar a.is-main i { width: 36px; height: 30px; border-radius: 11px; display: grid; place-items: center; background: var(--grad); color: #fff; font-size: 1.05rem; box-shadow: 0 6px 12px -6px var(--p); }
.hs-mobilebar a.is-sos { color: var(--red); padding-top: 0; }
.hs-mobilebar .sos-btn { position: relative; width: 56px; height: 56px; margin-top: -26px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(145deg, #FB7185, #BE123C); color: #fff; border: 4px solid #fff; box-shadow: 0 12px 24px -8px rgba(225, 29, 72, .75); }
.hs-mobilebar .sos-btn::before { content: ''; position: absolute; inset: -4px; border-radius: 50%; border: 2px solid rgba(225, 29, 72, .5); animation: hs-pulse 2.2s infinite; }
.hs-mobilebar .sos-btn i { font-size: 1.3rem; color: #fff; animation: hs-ring 2.4s infinite; }
body.hs-body { padding-bottom: 96px; }
.hs-top { position: fixed; right: 14px; bottom: 100px; z-index: 1035; width: 44px; height: 44px; border-radius: 50%; border: 0; background: var(--grad); color: #fff; display: grid; place-items: center; box-shadow: var(--sh); opacity: 0; transform: translateY(10px); pointer-events: none; transition: opacity .2s, transform .2s; }
.hs-top.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.hs-demo-chip { position: fixed; left: 14px; bottom: 100px; z-index: 1035; background: var(--ink); color: #fff; font-size: .8rem; font-weight: 700; padding: .5rem .9rem; border-radius: 999px; box-shadow: var(--sh); }
.hs-demo-chip:hover { color: #fff; background: var(--p-700); }
@media (min-width: 992px) {
    .hs-mobilebar { display: none; }
    body.hs-body { padding-bottom: 0; }
    .hs-top, .hs-demo-chip { bottom: 24px; }
}

/* ---------- Inner page header: gradient band with pattern, icon and wave ---------- */
.hs-pagehead { position: relative; isolation: isolate; overflow: hidden; color: #fff; padding: 1.6rem 0 3.2rem; background: radial-gradient(520px 300px at 100% 0, var(--glow-1), transparent 65%), radial-gradient(440px 280px at 0 100%, var(--glow-2), transparent 65%), var(--grad-deep); }
.hs-pagehead::before { content: ''; position: absolute; inset: 0; z-index: -1; background-image: radial-gradient(rgba(255, 255, 255, .13) 1.2px, transparent 1.5px); background-size: 20px 20px; pointer-events: none; }
.hs-pagehead.is-red { background: radial-gradient(520px 300px at 100% 0, rgba(251, 146, 60, .5), transparent 65%), radial-gradient(440px 280px at 0 100%, rgba(244, 114, 182, .35), transparent 65%), linear-gradient(135deg, #7F1D1D, #BE123C 55%, #F43F5E); }
@media (min-width: 992px) { .hs-pagehead { padding: 2.6rem 0 4.4rem; } }
.hs-pagehead-blob { position: absolute; z-index: -1; border-radius: 50%; pointer-events: none; }
.hs-pagehead-blob.one { width: 260px; height: 260px; right: -90px; bottom: -110px; background: rgba(255, 255, 255, .09); }
.hs-pagehead-blob.two { width: 120px; height: 120px; left: 38%; top: -60px; background: rgba(253, 230, 138, .14); }
.hs-pagehead-cross { position: absolute; z-index: -1; right: 18%; top: 18%; width: 70px; fill: #fff; opacity: .07; }
.hs-pagehead-row { display: flex; align-items: center; gap: 1rem; }
.hs-pagehead-text { flex: 1; min-width: 0; }
.hs-pagehead h1 { color: #fff; font-size: clamp(1.55rem, 4.6vw, 2.7rem); font-weight: 800; margin: .7rem 0 .35rem; letter-spacing: -.02em; text-wrap: balance; text-shadow: 0 4px 24px rgba(0, 0, 0, .18); }
.hs-pagehead p { color: rgba(255, 255, 255, .88); max-width: 680px; margin: 0; font-size: 1rem; }
.hs-pagehead-icon { flex: 0 0 auto; width: 58px; height: 58px; border-radius: 18px; display: grid; place-items: center; font-size: 1.6rem; color: #fff; background: rgba(255, 255, 255, .14); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .28), 0 18px 34px -16px rgba(0, 0, 0, .5); backdrop-filter: blur(6px); transform: rotate(-6deg); }
@media (min-width: 768px) { .hs-pagehead-icon { width: 104px; height: 104px; border-radius: 30px; font-size: 3rem; } }
.hs-pagehead-wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 34px; fill: var(--bg); }
@media (min-width: 992px) { .hs-pagehead-wave { height: 48px; } }
.hs-crumbs { display: inline-flex; flex-wrap: wrap; align-items: center; gap: .1rem .35rem; font-size: .82rem; list-style: none; padding: .3rem .85rem; margin: 0; border-radius: 999px; background: rgba(255, 255, 255, .12); border: 1px solid rgba(255, 255, 255, .2); color: rgba(255, 255, 255, .85); backdrop-filter: blur(6px); max-width: 100%; }
.hs-crumbs li { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 60vw; }
.hs-crumbs li + li::before { content: '\F285'; font-family: 'bootstrap-icons'; font-size: .6rem; margin-right: .35rem; opacity: .7; }
.hs-crumbs a { color: #fff; font-weight: 600; }
.hs-crumbs a:hover { color: #FDE68A; }
.hs-pagehead + .hs-section { padding-top: 1.6rem; }
@media (min-width: 992px) { .hs-pagehead + .hs-section { padding-top: 2.6rem; } }

/* ---------- Forms ---------- */
.hs-form .form-control, .hs-form .form-select { min-height: 50px; border-radius: 14px; border: 1.5px solid #D9E2EC; background-color: #FBFCFE; }
.hs-form textarea.form-control { min-height: 130px; }
.hs-form .form-control:focus, .hs-form .form-select:focus, .hs-hero-card .form-select:focus, .hs-hero-card .form-control:focus, .hs-teaser-bar .form-control:focus { border-color: var(--p); background-color: #fff; box-shadow: 0 0 0 .25rem color-mix(in srgb, var(--p) 18%, transparent); }
.hs-form .form-label { font-weight: 700; color: var(--ink); font-size: .9rem; }
.hs-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.hs-alert { display: flex; gap: .8rem; align-items: flex-start; padding: 1rem 1.15rem; border-radius: var(--r); border: 1px solid; font-size: .95rem; }
.hs-alert > i { flex: 0 0 auto; }
.hs-alert-success { background: #ECFDF5; border-color: #A7F3D0; color: #065F46; }
.hs-alert-danger { background: var(--red-50); border-color: #FBD0DA; color: #9F1239; }
.hs-alert-info { background: linear-gradient(120deg, var(--p-50), #F3EEFF); border-color: var(--p-200); color: var(--p-800); }
.hs-filter { display: flex; flex-wrap: wrap; gap: .6rem; align-items: stretch; padding: .75rem; background: #fff; border-radius: var(--r-lg); box-shadow: var(--sh); position: relative; overflow: hidden; }
.hs-filter::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--rainbow); }
.hs-filter .form-control, .hs-filter .form-select { min-height: 48px; border-radius: 12px; flex: 1 1 160px; width: auto; }
.hs-search { position: relative; flex: 2 1 240px; }
.hs-search i { position: absolute; left: .95rem; top: 50%; transform: translateY(-50%); color: var(--p); }
.hs-search .form-control { padding-left: 2.5rem; width: 100%; }
.hs-overlap { position: relative; z-index: 3; margin-top: -2.6rem; }
@media (min-width: 992px) { .hs-overlap { margin-top: -3.4rem; } }

/* ---------- Booking ---------- */
.hs-stepper { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .3rem; list-style: none; padding: 1rem .5rem; margin: 0 0 1.4rem; counter-reset: step; background: #fff; border-radius: var(--r-lg); box-shadow: var(--sh); }
.hs-stepper li { position: relative; display: flex; flex-direction: column; align-items: center; gap: .35rem; font-size: .78rem; font-weight: 700; color: var(--muted); text-align: center; line-height: 1.25; }
.hs-stepper li::before { counter-increment: step; content: counter(step); width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: #fff; border: 2px solid var(--line); color: var(--muted); font-weight: 800; position: relative; z-index: 1; }
.hs-stepper li::after { content: ''; position: absolute; top: 17px; left: calc(50% + 22px); right: calc(-50% + 22px); height: 3px; border-radius: 3px; background: var(--line); }
.hs-stepper li:last-child::after { display: none; }
.hs-stepper li.done::before { content: '\F26E'; font-family: 'bootstrap-icons'; background: linear-gradient(135deg, #34D399, #059669); border-color: transparent; color: #fff; }
.hs-stepper li.done::after { background: linear-gradient(90deg, #10B981, var(--p)); }
.hs-stepper li.current { color: var(--ink); }
.hs-stepper li.current::before { background: var(--grad); border-color: transparent; color: #fff; box-shadow: 0 0 0 5px var(--p-100); }
.hs-pick { display: flex; align-items: center; gap: .9rem; padding: .85rem 1rem; border: 1.5px solid var(--line); border-radius: var(--r); background: #fff; color: var(--ink); transition: border-color .2s, box-shadow .2s, transform .2s; }
.hs-pick:hover { border-color: var(--c2); box-shadow: 0 16px 30px -20px var(--c); color: var(--ink); transform: translateY(-2px); }
.hs-pick .hs-pick-photo { width: 56px; height: 56px; border-radius: 16px; object-fit: cover; object-position: top; flex: 0 0 56px; background: linear-gradient(135deg, var(--c2), var(--c)); display: grid; place-items: center; color: #fff; font-weight: 800; font-size: 1.1rem; }
.hs-pick b { display: block; line-height: 1.3; }
.hs-pick small { color: var(--muted); display: block; font-size: .82rem; }
.hs-pick .bi-chevron-right { margin-left: auto; width: 30px; height: 30px; flex: 0 0 30px; border-radius: 50%; display: grid; place-items: center; background: var(--c-soft); color: var(--c-ink); font-size: .8rem; }
.hs-dates { display: grid; gap: .6rem; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 576px) { .hs-dates { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 992px) { .hs-dates { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.hs-date { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: .1rem; padding: 0 .9rem .8rem; border: 1.5px solid var(--line); border-radius: var(--r); background: #fff; color: var(--ink); transition: border-color .2s, box-shadow .2s, transform .2s; }
.hs-date:hover { border-color: var(--c2); box-shadow: 0 16px 30px -20px var(--c); color: var(--ink); transform: translateY(-2px); }
.hs-date.active { border-color: var(--c); box-shadow: 0 0 0 3px var(--c-soft); }
.hs-date .w { margin: 0 -.9rem .45rem; padding: .35rem .9rem; font-size: .78rem; color: #fff; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; background: linear-gradient(135deg, var(--c), var(--c-ink)); }
html[lang="bn"] .hs-date .w { text-transform: none; letter-spacing: 0; font-size: .84rem; }
.hs-date .d { font-size: 1.2rem; font-weight: 800; }
.hs-date .t { font-size: .76rem; color: var(--muted); line-height: 1.35; }
.hs-date .f { font-size: .78rem; font-weight: 700; color: var(--green); margin-top: .2rem; }
.hs-date.full { opacity: .55; pointer-events: none; background: var(--soft); }
.hs-date.full .w { background: #94A3B8; }
.hs-date.full .f { color: var(--red); }
.hs-summary { display: flex; gap: 1rem; align-items: center; padding: 1rem 1.1rem; border-radius: var(--r); background: #fff; border: 1.5px solid var(--line); box-shadow: var(--sh-sm); }
.hs-summary.is-date { background: linear-gradient(120deg, var(--p-50), #F3EEFF); border-color: var(--p-200); }
.hs-summary img, .hs-summary .ph { width: 64px; height: 64px; border-radius: 18px; object-fit: cover; object-position: top; flex: 0 0 64px; background: var(--grad); display: grid; place-items: center; font-weight: 800; color: #fff; }

/* Confirmation */
.hs-confirm { max-width: 760px; margin: 0 auto; }
.hs-confirm-head { position: relative; overflow: hidden; text-align: center; padding: 2rem 1.2rem 1.8rem; border-radius: var(--r-lg); color: #fff; background: radial-gradient(360px 220px at 100% 0, rgba(253, 230, 138, .35), transparent 65%), radial-gradient(360px 220px at 0 100%, rgba(236, 72, 153, .3), transparent 65%), linear-gradient(135deg, #059669, var(--p-700) 60%, #4F46E5); box-shadow: 0 30px 60px -32px #059669; }
.hs-confirm-head::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .14) 1.2px, transparent 1.4px); background-size: 18px 18px; }
.hs-confirm-head > * { position: relative; }
.hs-confirm-head h1 { color: #fff; }
.hs-confirm-head p { color: rgba(255, 255, 255, .9) !important; }
.hs-confirm-check { width: 84px; height: 84px; border-radius: 50%; margin: 0 auto 1rem; display: grid; place-items: center; background: #fff; color: var(--green); font-size: 2.8rem; box-shadow: 0 0 0 10px rgba(255, 255, 255, .2), 0 0 0 20px rgba(255, 255, 255, .08); }
.hs-serial { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .55rem; }
@media (min-width: 576px) { .hs-serial { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hs-serial > div { background: #fff; padding: .9rem 1rem; border-radius: 16px; border: 1.5px solid var(--line); border-left: 5px solid var(--c); }
.hs-serial small { display: block; color: var(--muted); font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
html[lang="bn"] .hs-serial small { text-transform: none; letter-spacing: 0; font-size: .84rem; }
.hs-serial b { display: block; color: var(--ink); font-size: 1.02rem; margin-top: .15rem; overflow-wrap: anywhere; }
.hs-serial .big { background: linear-gradient(135deg, var(--c), var(--c-ink)); border: 0; color: #fff; }
.hs-serial .big small { color: rgba(255, 255, 255, .85); }
.hs-serial .big b { font-size: 2.2rem; color: #fff; line-height: 1.1; }

/* ---------- Doctor profile ---------- */
.hs-profile { display: grid; gap: 1.4rem; }
@media (min-width: 992px) { .hs-profile { grid-template-columns: 340px 1fr; gap: 2.5rem; align-items: start; } .hs-profile-side { position: sticky; top: calc(var(--header-h) + 20px); } }
.hs-profile-photo { position: relative; aspect-ratio: 4 / 5; border-radius: var(--r-lg); overflow: hidden; background: radial-gradient(circle at 30% 20%, rgba(255, 255, 255, .7), transparent 50%), linear-gradient(160deg, var(--c-soft), color-mix(in srgb, var(--c2) 50%, #fff)); border: 5px solid #fff; box-shadow: 0 30px 50px -28px var(--c); }
.hs-profile-photo img { width: 100%; height: 100%; object-fit: cover; object-position: top; }
@media (max-width: 991.98px) { .hs-profile-photo { aspect-ratio: 1 / 1; max-width: 300px; margin-inline: auto; } }
.hs-facts { list-style: none; padding: 0; margin: 0; display: grid; gap: .4rem; }
.hs-facts li { display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: .6rem .8rem; border-radius: 12px; background: var(--c-soft); font-size: .92rem; }
.hs-facts span { color: var(--c-ink); font-weight: 600; }
.hs-facts b { color: var(--ink); text-align: right; }
.hs-table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .94rem; }
.hs-table th { background: linear-gradient(135deg, var(--c), var(--c-ink)); color: #fff; font-weight: 700; font-size: .8rem; text-transform: uppercase; letter-spacing: .05em; padding: .8rem 1rem; text-align: left; }
html[lang="bn"] .hs-table th { text-transform: none; letter-spacing: 0; font-size: .88rem; }
.hs-table td { padding: .85rem 1rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.hs-table tr:last-child td { border-bottom: 0; }
.hs-table tbody tr:nth-child(even) td { background: #FAFBFE; }
.hs-table tbody tr:hover td { background: var(--c-soft); }
.hs-table .price { text-align: right; font-weight: 800; color: var(--c-ink); white-space: nowrap; }
.hs-table-wrap { border: 1.5px solid var(--line); border-radius: var(--r); overflow: hidden; background: #fff; box-shadow: var(--sh-sm); }
.hs-table-wrap .table-responsive { margin: 0; }
.hs-subhead { display: flex; align-items: center; gap: .6rem; font-size: 1.2rem; margin: 0 0 1rem; }
.hs-subhead .hs-ico { width: 38px; height: 38px; flex-basis: 38px; font-size: 1.05rem; }

/* ---------- Price page ---------- */
.hs-price-layout { display: grid; gap: 1.2rem; }
@media (min-width: 992px) { .hs-price-layout { grid-template-columns: 270px 1fr; gap: 2rem; align-items: start; } }
.hs-price-search { padding: .8rem; display: flex; gap: .5rem; background: #fff; border-radius: var(--r-lg); box-shadow: var(--sh-lg); position: relative; overflow: hidden; }
.hs-price-search::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--rainbow); }
.hs-price-search .form-control { min-height: 52px; border-radius: 14px; font-size: 1rem; }
.hs-price-tabs { display: flex; flex-wrap: nowrap; gap: .45rem; overflow-x: auto; scrollbar-width: none; padding: .7rem 0; -webkit-overflow-scrolling: touch; position: sticky; top: var(--header-h); z-index: 5; background: color-mix(in srgb, var(--bg) 94%, transparent); backdrop-filter: blur(8px); margin: 0 -16px; padding-left: 16px; padding-right: 16px; }
.hs-price-tabs::-webkit-scrollbar { display: none; }
.hs-price-tabs .hs-chip { flex: 0 0 auto; }
@media (min-width: 992px) {
    .hs-price-tabs { position: sticky; top: calc(var(--header-h) + 16px); flex-direction: column; overflow: visible; margin: 0; padding: .7rem; background: #fff; border-radius: var(--r-lg); box-shadow: var(--sh); gap: .25rem; max-height: calc(100vh - var(--header-h) - 32px); overflow-y: auto; }
    .hs-price-tabs .hs-chip { border: 0; justify-content: flex-start; border-radius: 12px; padding: .55rem .7rem; white-space: normal; text-align: left; }
    .hs-price-tabs .hs-chip small { margin-left: auto; }
}
.hs-price-group { scroll-margin-top: calc(var(--header-h) + 70px); background: #fff; border-radius: var(--r-lg); overflow: hidden; box-shadow: var(--sh-sm); border: 1.5px solid var(--line); }
.hs-price-group + .hs-price-group { margin-top: 1rem; }
.hs-price-group-head { display: flex; align-items: center; gap: .75rem; padding: .85rem 1.1rem; color: #fff; background: radial-gradient(260px 120px at 100% 0, rgba(255, 255, 255, .22), transparent 70%), linear-gradient(135deg, var(--c), var(--c-ink)); }
.hs-price-group-head h2 { color: #fff; font-size: 1.1rem; margin: 0; flex: 1; min-width: 0; }
.hs-price-group-head .hs-ico { background: rgba(255, 255, 255, .2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); width: 40px; height: 40px; flex-basis: 40px; }
.hs-price-group-head span.n { font-size: .8rem; font-weight: 700; background: rgba(255, 255, 255, .2); padding: .15rem .6rem; border-radius: 999px; white-space: nowrap; }
.hs-price-rows { list-style: none; margin: 0; padding: .2rem 1.1rem; }
.hs-price-rows li { display: flex; align-items: center; gap: .8rem; padding: .75rem 0; border-bottom: 1px dashed var(--line); }
.hs-price-rows li:last-child { border-bottom: 0; }
.hs-price-rows li[hidden] { display: none; }
.hs-price-rows .name { flex: 1; min-width: 0; }
.hs-price-rows .name b { display: block; color: var(--ink); font-size: .96rem; line-height: 1.35; font-weight: 600; }
.hs-price-rows .name small { color: var(--muted); font-size: .8rem; }
.hs-price-rows .meta { display: flex; flex-wrap: wrap; gap: .3rem .6rem; margin-top: .15rem; }
.hs-price-rows .rt { display: inline-flex; align-items: center; gap: .25rem; color: var(--c-ink); font-weight: 600; font-size: .78rem; }
.hs-price-rows .amt { font-weight: 800; color: var(--c-ink); background: var(--c-soft); padding: .3rem .75rem; border-radius: 999px; white-space: nowrap; font-variant-numeric: tabular-nums; }
.hs-price-cta { display: grid; gap: .7rem; margin-top: 1.4rem; }
@media (min-width: 768px) { .hs-price-cta { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.hs-cta-card { display: flex; align-items: center; gap: .8rem; padding: 1rem 1.1rem; border-radius: var(--r); color: #fff; background: linear-gradient(135deg, var(--c), var(--c-ink)); box-shadow: 0 18px 32px -20px var(--c); transition: transform .2s var(--ease); }
.hs-cta-card:hover { color: #fff; transform: translateY(-3px); }
.hs-cta-card .hs-ico { background: rgba(255, 255, 255, .2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
.hs-cta-card b { display: block; line-height: 1.3; }
.hs-cta-card small { display: block; color: rgba(255, 255, 255, .88); font-size: .82rem; }
/* Legacy price-table helpers (department page) */
.hs-group-title { background: var(--c-soft) !important; color: var(--c-ink) !important; font-weight: 700 !important; font-size: .84rem !important; }

/* ---------- Prose (post body, about) ---------- */
.hs-prose { font-size: 1.04rem; line-height: 1.85; color: var(--text); }
.hs-prose p { margin: 0 0 1.1rem; }
.hs-prose h2, .hs-prose h3 { margin: 2rem 0 .8rem; display: flex; align-items: center; gap: .6rem; }
.hs-prose h2::before, .hs-prose h3::before { content: ''; width: 10px; height: 10px; flex: 0 0 10px; border-radius: 3px; transform: rotate(45deg); background: linear-gradient(135deg, var(--c2), var(--c)); }
.hs-prose img, .hs-prose iframe { max-width: 100% !important; height: auto; }
.hs-article-img { border-radius: var(--r-lg); overflow: hidden; aspect-ratio: 16 / 8; margin-bottom: 1.6rem; background: var(--c-soft); box-shadow: var(--sh); }
.hs-article-img img { width: 100%; height: 100%; object-fit: cover; }
.hs-share { display: flex; gap: .5rem; align-items: center; flex-wrap: wrap; }
.hs-share a { width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; color: #fff; transition: transform .2s; }
.hs-share a:hover { color: #fff; transform: translateY(-3px); }
.hs-share a.fb { background: #1877F2; }
.hs-share a.wa { background: #25D366; }
.hs-share a.li { background: #0A66C2; }

/* ---------- Gallery ---------- */
.hs-gallery { columns: 2 150px; column-gap: .7rem; }
@media (min-width: 992px) { .hs-gallery { columns: 4 220px; column-gap: 1rem; } }
.hs-gallery a { display: block; margin-bottom: .7rem; border-radius: var(--r); overflow: hidden; break-inside: avoid; position: relative; background: var(--c-soft); box-shadow: var(--sh-sm); border: 3px solid #fff; }
@media (min-width: 992px) { .hs-gallery a { margin-bottom: 1rem; } }
.hs-gallery img { width: 100%; display: block; transition: transform .5s var(--ease); }
.hs-gallery a:hover img { transform: scale(1.06); }
.hs-gallery a::after { content: '\F62C'; font-family: 'bootstrap-icons'; position: absolute; top: .6rem; right: .6rem; width: 32px; height: 32px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, var(--c2), var(--c)); color: #fff; font-size: .85rem; opacity: 0; transform: scale(.7); transition: opacity .2s, transform .2s; }
.hs-gallery a:hover::after, .hs-gallery a:focus::after { opacity: 1; transform: none; }
.hs-gallery a span { position: absolute; left: 0; right: 0; bottom: 0; padding: 1.6rem .8rem .6rem; color: #fff; font-size: .82rem; font-weight: 700; background: linear-gradient(transparent, color-mix(in srgb, var(--c-ink) 85%, transparent)); }
@media (hover: hover) { .hs-gallery a span { opacity: 0; transition: opacity .2s; } .hs-gallery a:hover span, .hs-gallery a:focus span { opacity: 1; } }
.hs-lightbox .modal-content { background: transparent; border: 0; }
.hs-lightbox img { max-height: 82vh; width: auto; max-width: 100%; margin: 0 auto; display: block; border-radius: 14px; }

/* ---------- Emergency band & hotline numbers ---------- */
.hs-sos { color: #fff; overflow: hidden; background: radial-gradient(520px 300px at 100% 0, rgba(251, 146, 60, .45), transparent 65%), radial-gradient(460px 300px at 0 100%, rgba(244, 114, 182, .35), transparent 65%), linear-gradient(135deg, #7F1D1D, #B91C1C 55%, #E11D48); }
.hs-sos::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .1) 1.2px, transparent 1.4px); background-size: 20px 20px; pointer-events: none; }
.hs-sos::after { content: ''; position: absolute; right: -90px; top: -90px; width: 280px; height: 280px; border-radius: 50%; background: rgba(255, 255, 255, .07); pointer-events: none; }
.hs-sos h2 { color: #fff; }
.hs-sos .hs-kicker { color: #fff; background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .25); }
.hs-sos .hs-kicker::before { background: #FDE68A; box-shadow: 0 0 0 3px rgba(253, 230, 138, .3); }
.hs-sos .hs-head h2::after { background: linear-gradient(90deg, #fff, #FDE68A 50%, #FDBA74 51%); }
.hs-sos .hs-lead { color: rgba(255, 255, 255, .88); }
.hs-sos-main { display: grid; gap: .65rem; grid-template-columns: minmax(0, 1fr); margin-bottom: 1.2rem; position: relative; }
@media (min-width: 768px) { .hs-sos-main { grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: .9rem; margin-bottom: 1.5rem; } }
.hs-sos-call { display: flex; align-items: center; gap: .9rem; padding: .85rem 1rem; border-radius: var(--r); background: #fff; color: var(--ink); box-shadow: 0 16px 32px -16px rgba(0, 0, 0, .55); transition: transform .2s var(--ease); min-width: 0; }
.hs-sos-call:hover { transform: translateY(-3px); color: var(--ink); }
.hs-sos-call > i { width: 50px; height: 50px; border-radius: 16px; display: grid; place-items: center; background: linear-gradient(135deg, var(--c2), var(--c)); color: #fff; font-size: 1.35rem; flex-shrink: 0; box-shadow: 0 10px 20px -10px var(--c); }
.hs-sos-call:first-child > i { animation: hs-ring 2.4s infinite; }
.hs-sos-call span { min-width: 0; flex: 1; }
.hs-sos-call b { display: block; font-size: 1.5rem; line-height: 1.1; letter-spacing: .01em; font-variant-numeric: tabular-nums; color: var(--c-ink); }
.hs-sos-call small { display: block; color: var(--muted); font-size: .84rem; font-weight: 700; }
.hs-sos-call::after { content: '\F5C1'; font-family: 'bootstrap-icons'; margin-left: auto; width: 36px; height: 36px; flex: 0 0 36px; border-radius: 50%; display: grid; place-items: center; background: var(--c-soft); color: var(--c); font-size: .95rem; }
.hs-hotlines { display: grid; gap: .55rem; grid-template-columns: repeat(2, minmax(0, 1fr)); position: relative; }
@media (min-width: 768px) { .hs-hotlines { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: .8rem; } }
@media (min-width: 1200px) { .hs-hotlines { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.hs-hotline { position: relative; overflow: hidden; display: flex; flex-direction: column; gap: .15rem; padding: .85rem .85rem .8rem; border-radius: 16px; background: #fff; color: var(--ink); border-top: 4px solid var(--c); transition: transform .2s var(--ease), box-shadow .2s; min-height: 100%; box-shadow: 0 12px 24px -16px rgba(0, 0, 0, .5); }
.hs-hotline:hover { transform: translateY(-3px); color: var(--ink); box-shadow: 0 18px 30px -16px rgba(0, 0, 0, .55); }
.hs-hotline b { display: flex; align-items: center; gap: .4rem; font-size: 1.45rem; line-height: 1.1; color: var(--c-ink); font-variant-numeric: tabular-nums; }
.hs-hotline b::before { content: '\F5C1'; font-family: 'bootstrap-icons'; width: 26px; height: 26px; border-radius: 50%; display: grid; place-items: center; background: var(--c-soft); color: var(--c); font-size: .72rem; }
.hs-hotline span { font-weight: 700; font-size: .88rem; line-height: 1.3; }
.hs-hotline small { color: var(--muted); font-size: .76rem; line-height: 1.35; }
.hs-sos-note { position: relative; margin: 1rem 0 0; font-size: .84rem; color: rgba(255, 255, 255, .88); }
.hs-sos-plain { background: none; color: inherit; }
.hs-sos-plain::before, .hs-sos-plain::after { display: none; }
.hs-er-number { display: inline-flex; align-items: center; gap: .8rem; background: #fff; color: var(--red) !important; font-size: clamp(1.5rem, 6vw, 2.4rem); font-weight: 800; padding: .55rem 1.4rem .55rem .6rem; border-radius: 999px; box-shadow: 0 18px 40px -16px rgba(0, 0, 0, .55); font-variant-numeric: tabular-nums; }
.hs-er-number i { width: 54px; height: 54px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #FB7185, #BE123C); color: #fff; font-size: 1.4rem; animation: hs-ring 2.4s infinite; }
.hs-numlist { counter-reset: n; list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; }
.hs-numlist li { display: flex; gap: .9rem; align-items: flex-start; padding: .85rem 1rem; border-radius: 16px; background: #fff; border: 1.5px solid var(--line); }
.hs-numlist li::before { counter-increment: n; content: counter(n); width: 34px; height: 34px; flex: 0 0 34px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, var(--c2), var(--c)); color: #fff; font-weight: 800; font-size: .92rem; box-shadow: 0 8px 16px -10px var(--c); }

/* ---------- Misc ---------- */
.hs-empty { text-align: center; padding: 2.6rem 1rem; color: var(--muted); background: #fff; border: 2px dashed var(--line); border-radius: var(--r-lg); }
.hs-empty i { font-size: 2rem; width: 70px; height: 70px; margin: 0 auto .8rem; display: grid; place-items: center; border-radius: 50%; color: #fff; background: linear-gradient(135deg, var(--c2), var(--c)); box-shadow: 0 14px 28px -14px var(--c); }
.hs-pill { display: inline-flex; align-items: center; gap: .3rem; padding: .25rem .75rem; border-radius: 999px; font-size: .8rem; font-weight: 700; background: var(--c-soft); color: var(--c-ink); }
.hs-pill-red { background: var(--red-50); color: var(--red); }
.hs-pagination .pagination { justify-content: center; gap: .3rem; flex-wrap: wrap; }
.hs-pagination .page-link { border-radius: 12px !important; border: 1.5px solid var(--line); color: var(--ink); min-width: 42px; text-align: center; font-weight: 700; }
.hs-pagination .active > .page-link { background: var(--grad); border-color: transparent; color: #fff; }
.hs-mv { display: grid; gap: 1rem; }
@media (min-width: 768px) { .hs-mv { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.hs-mv-card { position: relative; overflow: hidden; padding: 1.6rem; border-radius: var(--r-lg); color: rgba(255, 255, 255, .92); background: radial-gradient(280px 180px at 100% 0, rgba(255, 255, 255, .22), transparent 65%), linear-gradient(140deg, var(--c), var(--c-ink)); box-shadow: 0 24px 46px -26px var(--c); }
.hs-mv-card::after { content: ''; position: absolute; right: -40px; bottom: -40px; width: 140px; height: 140px; border-radius: 50%; background: rgba(255, 255, 255, .1); }
.hs-mv-card h3 { color: #fff; font-size: 1.2rem; display: flex; align-items: center; gap: .6rem; }
.hs-mv-card h3 i { width: 40px; height: 40px; border-radius: 12px; display: grid; place-items: center; background: rgba(255, 255, 255, .2); }
.hs-side-card { position: relative; overflow: hidden; }
.hs-side-card.is-color { color: rgba(255, 255, 255, .9); border: 0; background: radial-gradient(300px 200px at 100% 0, rgba(255, 255, 255, .22), transparent 65%), linear-gradient(150deg, var(--c), var(--c-ink)); box-shadow: 0 24px 46px -26px var(--c); }
.hs-side-card.is-color h3 { color: #fff; }
.hs-side-card.is-color .hs-ico { background: rgba(255, 255, 255, .2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
.hs-side-card.is-color .hs-btn-primary { background: #fff; color: var(--c-ink); }
.hs-side-card.is-color .hs-btn-light { background: rgba(255, 255, 255, .14); color: #fff; border-color: rgba(255, 255, 255, .35); }

/* Scroll reveal (only when JS has marked the page ready, so content never stays hidden) */
.js-ready .reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s var(--ease); }
.js-ready .reveal.in { opacity: 1; transform: none; }

/* ---------- Phones ---------- */
@media (max-width: 575.98px) {
    .hs-head { gap: .7rem; }
    .hs-head > a.hs-btn { padding: .48rem .95rem; font-size: .86rem; }
    .hs-head h2, .hs-title { font-size: 1.45rem; }
    .hs-head h2::after { width: 56px; height: 4px; margin-top: .55rem; }
    .hs-lead { font-size: .95rem; margin-top: .5rem; }
    .hs-hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hs-hero-actions .hs-btn { padding: .8rem .7rem; font-size: .9rem; white-space: normal; text-align: center; }
    .hs-hero-actions .hs-btn:only-child { grid-column: 1 / -1; }
    .hs-trust { gap: .35rem; font-size: .8rem; }
    .hs-trust li { padding: .22rem .6rem .22rem .3rem; }
    .hs-hero-card { padding: 1.15rem; border-radius: 22px; }
    .hs-grid-compact .hs-dept { flex-direction: column; align-items: center; text-align: center; gap: .55rem; padding: 1rem .55rem .9rem; }
    .hs-grid-compact .hs-dept b { font-size: .92rem; }
    .hs-grid-compact .hs-dept small { font-size: .78rem; }
    .hs-grid-compact .hs-dept p { display: none; }
    .hs-grid-compact .hs-ico-lg { width: 50px; height: 50px; font-size: 1.35rem; border-radius: 16px; }
    .hs-grid-compact .hs-fac { padding: 1rem .85rem; }
    .hs-grid-compact .hs-fac .hs-ico-lg { width: 46px; height: 46px; flex-basis: 46px; font-size: 1.25rem; }
    .hs-grid-compact .hs-fac h3 { font-size: .93rem; margin: .65rem 0 .25rem; }
    .hs-grid-compact .hs-fac p { font-size: .8rem; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
    .hs-grid-compact .hs-doc-photo { aspect-ratio: 1 / 1; }
    .hs-grid-compact .hs-doc-body { padding: .75rem .7rem .8rem; }
    .hs-grid-compact .hs-doc h3 { font-size: .9rem; }
    .hs-grid-compact .hs-doc-role { font-size: .78rem; }
    .hs-grid-compact .hs-doc-deg, .hs-grid-compact .hs-days { display: none; }
    .hs-grid-compact .hs-doc-dept { font-size: .68rem; left: .45rem; bottom: .45rem; max-width: calc(100% - .9rem); }
    .hs-grid-compact .hs-doc-foot { flex-direction: column; gap: .35rem; }
    .hs-grid-compact .hs-doc-foot .hs-btn { padding: .45rem .5rem; font-size: .82rem; }
    .hs-grid-compact .hs-test { flex-direction: column; align-items: flex-start; gap: .5rem; padding: .85rem .8rem; }
    .hs-grid-compact .hs-test .hs-ico { width: 38px; height: 38px; flex-basis: 38px; font-size: 1rem; }
    .hs-grid-compact .hs-test b { font-size: .88rem; }
    .hs-grid-compact .hs-test small { font-size: .74rem; }
    .hs-grid-compact .hs-test-price { margin-left: 0; margin-top: auto; font-size: .92rem; }
    .hs-why-item { flex-direction: column; gap: .5rem; padding: .85rem .8rem; }
    .hs-why-item b { font-size: .9rem; }
    .hs-why-item p { font-size: .8rem; }
    .hs-stat { flex-direction: column; align-items: flex-start; gap: .5rem; padding: .95rem .9rem; }
    .hs-stat .hs-ico-lg { width: 42px; height: 42px; flex-basis: 42px; font-size: 1.15rem; border-radius: 13px; }
    .hs-stat small { font-size: .8rem; margin-top: .25rem; }
    .hs-hotline { padding: .75rem .7rem; }
    .hs-hotline b { font-size: 1.25rem; }
    .hs-hotline b::before { width: 22px; height: 22px; font-size: .64rem; }
    .hs-sos-call b { font-size: 1.4rem; }
    .hs-group { flex-direction: column; align-items: flex-start; gap: .45rem; }
    .hs-teaser-bar { padding: .8rem; }
    .hs-max6 > :nth-child(n+7) { display: none; }
    .hs-teaser-bar .hs-btn-lg { width: 100%; }
    /* Long lists become swipeable rails on phones, so the home page stays short */
    .hs-rail-sm { display: grid; grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 82%; gap: .8rem; overflow-x: auto; scroll-snap-type: x mandatory; padding: .3rem .3rem 1rem; margin: 0 -.3rem; scrollbar-width: none; }
    .hs-rail-sm::-webkit-scrollbar { display: none; }
    .hs-rail-sm > * { scroll-snap-align: center; }
    .hs-rail-sm .hs-quote { padding: 1.2rem; }
    .hs-chips-scroll { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin: 0 -16px; padding: .2rem 16px .5rem; }
    .hs-chips-scroll::-webkit-scrollbar { display: none; }
    .hs-chips-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hs-chips-grid > * { justify-content: center; white-space: normal; text-align: center; border-radius: 14px; line-height: 1.3; }
    .hs-chips-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; }
    .hs-pick { padding: .75rem .8rem; gap: .7rem; }
    .hs-pick .hs-pick-photo { width: 50px; height: 50px; flex-basis: 50px; }
    .hs-cta { padding: 1.4rem 1.15rem; }
    .hs-cta .hs-btn { width: 100%; }
    .hs-quote { padding: 1.2rem; }
    .hs-post-body { padding: 1rem; }
}

@media (max-width: 767.98px) {
    .hs-footer { padding-top: 1.8rem; font-size: .9rem; }
    .hs-footer-cta { padding: 1.1rem; margin-bottom: 1.8rem; }
    .hs-footer-cta > div:last-child { width: 100%; display: grid !important; grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); }
    .hs-footer-cta .hs-btn { padding: .65rem .6rem; font-size: .88rem; }
    .hs-footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 1.1rem; }
    .hs-footer-grid > div:first-child, .hs-footer-grid > div:last-child { grid-column: 1 / -1; }
    .hs-footer h4 { font-size: .98rem; margin-bottom: .7rem; }
    .hs-footer-links { gap: .5rem; }
    .hs-footer-links a { font-size: .88rem; }
    .hs-footer-bottom { margin-top: 1.8rem; justify-content: center; text-align: center; }
    .hs-partners { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
    .hs-partner { min-width: 0; height: auto; min-height: 64px; padding: .6rem .65rem; justify-content: flex-start; font-size: .82rem; text-align: left; }
    .hs-partner span { min-width: 0; line-height: 1.25; }
    .hs-partner i { width: 32px; height: 32px; flex-basis: 32px; font-size: 1rem; }
    .hs-contact .hs-card-pad { padding: 1rem; }
    .hs-info-list { gap: .55rem; }
    .hs-info-list li { gap: .7rem; padding: .6rem; }
    .hs-info-list .hs-ico { width: 38px; height: 38px; flex-basis: 38px; font-size: 1rem; }
    .hs-info-list span, .hs-info-list a { font-size: .9rem; line-height: 1.5; }
    .hs-map { min-height: 240px; }
    .hs-price-rows { padding: .1rem .85rem; }
    .hs-price-rows li { gap: .6rem; padding: .7rem 0; }
    .hs-price-rows .name b { font-size: .92rem; }
    .hs-price-rows .amt { font-size: .9rem; padding: .25rem .6rem; }
    .hs-price-group-head { padding: .75rem .85rem; }
}

/* ==========================================================================
   Home page blocks per facility type
   ========================================================================== */
.hs-section-tight { padding: 2.4rem 0; }
@media (min-width: 992px) { .hs-section-tight { padding: 3.6rem 0; } }

/* Hospital: centres of excellence (glass cards on the deep band) */
.hs-centres { display: grid; gap: .7rem; grid-template-columns: minmax(0, 1fr); }
/* Phones: the centres slide sideways, so the page stays short */
@media (max-width: 575.98px) {
    .hs-centres { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 84%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: .2rem .2rem .8rem; margin: 0 -.2rem; }
    .hs-centres::-webkit-scrollbar { display: none; }
    .hs-centres > * { scroll-snap-align: center; }
}
@media (min-width: 576px) { .hs-centres { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } }
@media (min-width: 992px) { .hs-centres { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.2rem; } }
.hs-centre { position: relative; overflow: hidden; display: flex; gap: 1rem; align-items: flex-start; padding: 1.2rem; border-radius: var(--r); background: rgba(255, 255, 255, .07); border: 1px solid rgba(255, 255, 255, .14); backdrop-filter: blur(6px); transition: transform .25s var(--ease), border-color .25s; }
.hs-centre:hover { transform: translateY(-4px); border-color: var(--c2); }
.hs-centre::after { content: ''; position: absolute; right: -50px; bottom: -50px; width: 140px; height: 140px; border-radius: 50%; background: color-mix(in srgb, var(--c) 35%, transparent); opacity: .45; }
.hs-centre > * { position: relative; z-index: 1; }
.hs-centre h3 { color: #fff; font-size: 1.06rem; margin: .1rem 0 .35rem; }
.hs-centre p { color: rgba(255, 255, 255, .78); font-size: .9rem; margin: 0; }
.hs-centre.is-lead { background: linear-gradient(140deg, color-mix(in srgb, var(--c) 55%, transparent), rgba(255, 255, 255, .06)); }
.hs-centre-beds { display: inline-flex; align-items: center; gap: .35rem; margin-top: .7rem; padding: .2rem .7rem; border-radius: 999px; background: rgba(255, 255, 255, .14); color: #fff; font-size: .8rem; font-weight: 700; }

/* Hospital: rooms & cabins */
.hs-room { position: relative; display: flex; flex-direction: column; gap: .9rem; height: 100%; padding: 1.2rem; background: #fff; border: 1.5px solid var(--line); border-top: 5px solid var(--c); border-radius: var(--r-lg); box-shadow: var(--sh-sm); transition: transform .25s var(--ease), box-shadow .25s; }
.hs-room:hover { transform: translateY(-4px); box-shadow: 0 24px 44px -26px var(--c); }
.hs-room-head { display: flex; align-items: center; gap: .8rem; }
.hs-room-head h3 { font-size: 1.05rem; margin: 0; }
.hs-room-head small { color: var(--c-ink); font-weight: 700; font-size: .8rem; }
.hs-room-from { margin-left: auto; text-align: right; line-height: 1.1; white-space: nowrap; }
.hs-room-from small { display: block; color: var(--muted); font-size: .72rem; font-weight: 600; }
.hs-room-from b { display: block; color: var(--c-ink); font-size: 1.25rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.hs-room-options { list-style: none; padding: .2rem .8rem; margin: 0; border-radius: var(--r-sm); background: var(--c-soft); font-size: .88rem; }
.hs-room-options li { display: flex; justify-content: space-between; gap: .6rem; padding: .4rem 0; border-bottom: 1px dashed color-mix(in srgb, var(--c) 25%, transparent); }
.hs-room-options li:last-child { border-bottom: 0; }
.hs-room-options b { color: var(--c-ink); white-space: nowrap; font-variant-numeric: tabular-nums; }
.hs-room-options li.more { color: var(--c-ink); font-weight: 700; }
.hs-room .hs-checks { font-size: .86rem; gap: .35rem; }

/* Clinic: today card in the hero, today strip, timetable */
.hs-hero-grid { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 992px) { .hs-hero-grid { grid-template-columns: 1.12fr .88fr; } }
.hs-today-card .hs-btn { white-space: normal; text-align: center; }
.hs-today-list { list-style: none; padding: 0; margin: 0; display: grid; gap: .5rem; }
.hs-today-list li { display: flex; align-items: center; gap: .7rem; padding: .55rem .7rem; border-radius: var(--r-sm); background: var(--c-soft); }
.hs-today-list b { color: var(--ink); font-size: .93rem; }
.hs-today-list small { color: var(--c-ink); font-size: .78rem; font-weight: 600; }
.hs-today-list .hs-avatar { width: 40px; height: 40px; flex-basis: 40px; box-shadow: 0 0 0 2px #fff; }
.hs-live { width: 8px; height: 8px; border-radius: 50%; background: var(--green); box-shadow: 0 0 0 4px rgba(22, 163, 74, .2); animation: hs-blink 1.6s infinite; }
.hs-kicker:has(.hs-live)::before { display: none; }
.hs-chamber-strip { display: grid; gap: .7rem; grid-template-columns: minmax(0, 1fr); }
/* Phones: today's doctors slide sideways in two rows, so the strip stays a strip */
@media (max-width: 767.98px) {
    .hs-chamber-strip { grid-auto-flow: column; grid-template-columns: none; grid-template-rows: repeat(2, auto); grid-auto-columns: 86%; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; padding: .2rem .2rem .8rem; margin: 0 -.2rem; }
    .hs-chamber-strip:has(> :only-child) { grid-template-rows: auto; }
    .hs-chamber-strip::-webkit-scrollbar { display: none; }
    .hs-chamber-strip > * { scroll-snap-align: start; }
}
@media (min-width: 768px) { .hs-chamber-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; } }
@media (min-width: 1200px) { .hs-chamber-strip { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.hs-chamber { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: .55rem .8rem; padding: .8rem .9rem; background: #fff; border: 1.5px solid var(--line); border-left: 5px solid var(--c); border-radius: var(--r); box-shadow: var(--sh-sm); transition: transform .2s var(--ease), box-shadow .2s; }
.hs-chamber:hover { transform: translateY(-3px); box-shadow: 0 18px 32px -20px var(--c); }
.hs-chamber .min-w-0 { flex: 1; }
.hs-chamber h3 { font-size: .96rem; margin: 0; line-height: 1.3; }
.hs-chamber h3 a { color: var(--ink); }
.hs-chamber small { color: var(--muted); font-size: .8rem; }
.hs-chamber-time { display: inline-flex; align-items: center; gap: .3rem; margin-top: .25rem; font-size: .78rem; font-weight: 700; color: var(--c-ink); background: var(--c-soft); padding: .15rem .55rem; border-radius: 8px; }
.hs-chamber .hs-btn { grid-column: 2; justify-self: start; padding: .4rem 1.1rem; }
.hs-tt-tabs { display: flex; gap: .4rem; overflow-x: auto; scrollbar-width: none; padding: .2rem 0 .8rem; }
.hs-tt-tabs::-webkit-scrollbar { display: none; }
.hs-tt-tab { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; min-width: 64px; padding: .45rem .7rem; border-radius: var(--r-sm); border: 1.5px solid var(--line); background: #fff; color: var(--ink); font-size: .84rem; line-height: 1.2; }
.hs-tt-tab small { color: var(--muted); font-weight: 700; font-size: .72rem; }
.hs-tt-tab.active { background: var(--grad); color: #fff; border-color: transparent; box-shadow: 0 10px 20px -12px var(--p); }
.hs-tt-tab.active small { color: rgba(255, 255, 255, .85); }
.hs-tt-grid { display: grid; gap: .8rem; }
.hs-tt-day { display: none; padding: 1rem; background: #fff; border-radius: var(--r); border: 1.5px solid var(--line); box-shadow: var(--sh-sm); }
.hs-tt-day.is-active { display: grid; gap: .5rem; }
.hs-tt-day h3 { font-size: .95rem; margin: 0 0 .2rem; color: var(--p-700); }
.hs-tt-item { display: flex; flex-direction: column; gap: .05rem; padding: .55rem .75rem; border-radius: var(--r-sm); background: var(--soft); border-left: 3px solid var(--p-300); color: var(--ink); transition: background .2s; }
.hs-tt-item:hover { background: var(--p-50); color: var(--ink); }
.hs-tt-item b { font-size: .9rem; line-height: 1.3; }
.hs-tt-item small { color: var(--muted); font-size: .76rem; }
.hs-tt-item span { color: var(--p-700); font-weight: 700; font-size: .78rem; }
.hs-tt-empty { color: var(--muted); font-size: .85rem; margin: 0; }
@media (min-width: 1200px) {
    .hs-tt-tabs { display: none; }
    .hs-tt-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: .6rem; }
    .hs-tt-day, .hs-tt-day.is-active { display: flex; flex-direction: column; gap: .45rem; padding: .8rem .6rem; }
    .hs-tt-day:first-child { border-color: var(--p-300); background: var(--p-50); }
    .hs-tt-item { padding: .5rem .55rem; }
    .hs-tt-day:first-child .hs-tt-item { background: #fff; }
    .hs-tt-item b { font-size: .84rem; }
    .hs-tt-item span { font-size: .72rem; }
}

/* Diagnostic: how it works, report band */
.hs-flow { list-style: none; padding: 0; margin: 0; display: grid; gap: .7rem; grid-template-columns: repeat(2, minmax(0, 1fr)); counter-reset: none; }
@media (min-width: 992px) { .hs-flow { grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: 1.2rem; } }
.hs-flow-step { position: relative; display: flex; flex-direction: column; gap: .5rem; padding: 1.1rem 1rem; background: #fff; border-radius: var(--r); border: 1.5px solid var(--line); box-shadow: var(--sh-sm); }
.hs-flow-step b { color: var(--ink); font-size: 1rem; line-height: 1.3; }
.hs-flow-step p { color: var(--muted); font-size: .86rem; margin: 0; }
.hs-flow-no { position: absolute; top: .8rem; right: .9rem; font-size: 1.6rem; font-weight: 800; line-height: 1; color: var(--c); opacity: .25; font-variant-numeric: tabular-nums; }
@media (min-width: 992px) {
    .hs-flow-step:not(:last-child)::after { content: '\F285'; font-family: 'bootstrap-icons'; position: absolute; right: -1rem; top: 50%; transform: translate(50%, -50%); z-index: 2; width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--grad); color: #fff; font-size: .75rem; box-shadow: 0 6px 14px -6px var(--p); }
}
.hs-report { position: relative; overflow: hidden; display: grid; gap: 1.1rem; align-items: center; padding: 1.4rem 1.2rem; border-radius: var(--r-lg); color: #fff; background: radial-gradient(360px 220px at 100% 0, var(--glow-1), transparent 65%), linear-gradient(120deg, var(--p-800), var(--deep-2)); box-shadow: 0 30px 60px -32px var(--deep-2); }
.hs-report::before { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255, 255, 255, .1) 1.2px, transparent 1.4px); background-size: 20px 20px; pointer-events: none; }
.hs-report > * { position: relative; }
@media (min-width: 992px) { .hs-report { grid-template-columns: 1fr 1.15fr; padding: 2.2rem 2.6rem; gap: 2rem; } }
.hs-report-text { display: flex; gap: 1rem; align-items: flex-start; }
.hs-report-ico { width: 56px; height: 56px; flex: 0 0 56px; border-radius: 18px; display: grid; place-items: center; font-size: 1.6rem; background: rgba(255, 255, 255, .16); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
.hs-report h2 { color: #fff; margin: 0 0 .3rem; font-size: clamp(1.25rem, 2.6vw, 1.75rem); }
.hs-report p { margin: 0; color: rgba(255, 255, 255, .86); }
.hs-report-form { display: grid; gap: .55rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 576px) { .hs-report-form { grid-template-columns: 1fr 1fr auto; } }
.hs-report-form .form-control { min-height: 50px; border-radius: var(--r-sm); border: 0; }
.hs-report .hs-report-error { grid-column: 1 / -1; color: #FDE68A; font-weight: 700; font-size: .9rem; }
.hs-partners-title-light { color: rgba(255, 255, 255, .8); }
.hs-drawer-sos.is-brand { background: var(--grad); box-shadow: 0 14px 26px -14px var(--p); }
/* A brand-coloured call box (e.g. home sample collection) where a hospital shows its emergency number. */
.hs-callbox { display: flex; align-items: center; gap: 1rem; padding: 1rem 1.15rem; border-radius: var(--r); background: var(--grad); color: #fff; box-shadow: 0 16px 30px -16px var(--p); }
.hs-callbox:hover { color: #fff; }
.hs-callbox b { display: block; font-size: 1.4rem; color: #fff; line-height: 1.2; font-variant-numeric: tabular-nums; }
.hs-callbox small { color: rgba(255, 255, 255, .9); font-weight: 600; }

/* Raised middle button of the phone bar when it is not an emergency call */
.hs-mobilebar a.is-raise { color: var(--p-700); }
.hs-mobilebar a.is-raise .sos-btn { background: var(--grad); box-shadow: 0 12px 24px -8px var(--p); }
.hs-mobilebar a.is-raise .sos-btn::before { border-color: color-mix(in srgb, var(--p) 45%, transparent); }
.hs-mobilebar a.is-raise .sos-btn i { animation: none; }

/* ==========================================================================
   Facility identities: the three demos must not look alike.
   Fonts and default brand colours per type (the owner's own colours, set inline
   in the layout, still win), plus a few shape details: card radius, hero divider
   (wave / curve / diagonal, see partials/divider) and icon style (filled / soft / outline).
   ========================================================================== */
:root:where([data-facility="hospital"]) { --p: #0E9F8E; --accent: #059669; }
:root:where([data-facility="clinic"]) { --p: #2563EB; --accent: #4F46E5; }
:root:where([data-facility="diagnostic"]) { --p: #7C3AED; --accent: #C026D3; }

/* Hospital — Inter + Hind Siliguri, classic rounded cards, filled icons, wave */
html[data-facility="hospital"] { --glow-1: rgba(56, 189, 248, .4); --glow-2: rgba(250, 204, 21, .22); }

/* Clinic — Poppins + Anek Bangla, rounder and softer, tinted icons, gentle curve */
html[data-facility="clinic"] {
    --font: 'Poppins', 'Anek Bangla', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-head: 'Poppins', 'Anek Bangla', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --r-sm: 14px; --r: 24px; --r-lg: 32px;
    --glow-1: rgba(56, 189, 248, .5); --glow-2: rgba(244, 114, 182, .3);
}
html[lang="bn"][data-facility="clinic"] { --font: 'Anek Bangla', 'Poppins', system-ui, sans-serif; --font-head: 'Anek Bangla', 'Poppins', system-ui, sans-serif; }
[data-facility="clinic"] .hs-ico { background: var(--c-soft); color: var(--c); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 18%, transparent); border-radius: 50%; }
[data-facility="clinic"] .hs-head h2::after { width: 46px; height: 7px; border-radius: 7px; background: linear-gradient(90deg, var(--c), var(--c2)); box-shadow: 54px 0 0 -1px #F472B6, 66px 0 0 -1px #FBBF24; }
[data-facility="clinic"] .hs-hero .hs-wrap { padding-bottom: 6.4rem; }
[data-facility="clinic"] .hs-hero-wave { height: 70px; }
[data-facility="clinic"] .hs-hero-cross { border-radius: 50%; }
[data-facility="clinic"] .hs-hero::before { background-image: radial-gradient(rgba(255, 255, 255, .16) 2.2px, transparent 2.6px); background-size: 34px 34px; }
[data-facility="clinic"] .hs-float { border-radius: 50%; }
@media (min-width: 992px) { [data-facility="clinic"] .hs-hero .hs-wrap { padding-bottom: 9rem; } [data-facility="clinic"] .hs-hero-wave { height: 96px; } }

/* Diagnostic — Plus Jakarta Sans + Noto Sans Bengali, crisp corners, outline icons, diagonal */
html[data-facility="diagnostic"] {
    --font: 'Plus Jakarta Sans', 'Noto Sans Bengali', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --font-head: 'Plus Jakarta Sans', 'Noto Sans Bengali', system-ui, -apple-system, 'Segoe UI', sans-serif;
    --r-sm: 8px; --r: 12px; --r-lg: 16px;
    --glow-1: rgba(217, 70, 239, .5); --glow-2: rgba(34, 211, 238, .28);
}
html[lang="bn"][data-facility="diagnostic"] { --font: 'Noto Sans Bengali', 'Plus Jakarta Sans', system-ui, sans-serif; --font-head: 'Noto Sans Bengali', 'Plus Jakarta Sans', system-ui, sans-serif; }
[data-facility="diagnostic"] .hs-ico { background: #fff; color: var(--c); box-shadow: inset 0 0 0 1.6px var(--c); border-radius: 10px; }
[data-facility="diagnostic"] .hs-btn, [data-facility="diagnostic"] .hs-chip, [data-facility="diagnostic"] .hs-kicker, [data-facility="diagnostic"] .hs-trust li, [data-facility="diagnostic"] .hs-eyebrow { border-radius: 8px; }
[data-facility="diagnostic"] .hs-head h2::after { width: 64px; height: 3px; border-radius: 0; background: linear-gradient(90deg, var(--p), var(--accent)); }
[data-facility="diagnostic"] .hs-hero::before { background-image: linear-gradient(rgba(255, 255, 255, .07) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .07) 1px, transparent 1px); background-size: 32px 32px; }
[data-facility="diagnostic"] .hs-hero-wave { height: 64px; }
[data-facility="diagnostic"] .hs-float { border-radius: 10px; }
@media (min-width: 992px) { [data-facility="diagnostic"] .hs-hero-wave { height: 110px; } [data-facility="diagnostic"] .hs-hero .hs-wrap { padding-bottom: 9.4rem; } }

/* On coloured backgrounds every icon tile goes back to white-on-glass, whatever the type. */
[data-facility] :is(.hs-stat, .hs-tile.is-primary, .hs-tile.is-danger, .hs-cta-card, .hs-emergency-box, .hs-callbox,.hs-price-group-head, .hs-side-card.is-color) .hs-ico { color: #fff; background: rgba(255, 255, 255, .2); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .3); }
[data-facility] :is(.hs-bg-deep, .hs-centre) .hs-ico { color: #fff; background: linear-gradient(135deg, var(--c2), var(--c)); box-shadow: 0 8px 16px -10px var(--c); }
[data-facility="diagnostic"] .hs-bg-deep .hs-ico { background: transparent; color: var(--c2); box-shadow: inset 0 0 0 1.6px var(--c2); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
    .js-ready .reveal { opacity: 1; transform: none; }
    .hs-ticker-track { padding-left: 0; white-space: normal; flex-wrap: wrap; gap: .4rem 1.5rem; }
}

@media print {
    .hs-header, .hs-ticker, .hs-footer, .hs-mobilebar, .hs-top, .hs-demo-chip, .hs-no-print { display: none !important; }
    body.hs-body { padding: 0; background: #fff; }
    .hs-pagehead { padding: 1rem 0; background: none; color: var(--ink); }
    .hs-pagehead h1 { color: var(--ink); }
    .hs-confirm-head { background: none; color: var(--ink); box-shadow: none; }
    .hs-confirm-head h1 { color: var(--ink); }
}

/* Long facility names (e.g. "Popular Diagnostic Centre") wrap to two lines instead of being cut */
.hs-brand-text strong { white-space: normal; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; line-height: 1.2; }
@media (min-width: 1200px) { .hs-brand { max-width: 300px; } }
