/* ==========================================================================
   Aaryaa Endocrine – new theme, Direction A "Editorial Care" (Oct 2026)
   Built on Bootstrap 5.3 (grid, navbar dropdowns, offcanvas, carousel, accordion).
   Brand colours unchanged (navy #103343, teal #1d5a76, warm grey #4e4a47).
   Type: Fraunces (headings) + Figtree (text).  Class prefix: a-
   ========================================================================== */

/* ---------- tokens + Bootstrap variables ---------- */
:root {
    --ink: #103343;
    --teal: #1d5a76;
    --warm: #4e4a47;
    --muted: #6d6660;
    --paper: #FAF8F4;
    --paper-2: #F1ECE4;
    --card: #FFFFFF;
    --line: #E6E1D8;
    --line-2: #D9D2C6;
    --night: #0C2733;
    --night-2: #08202A;
    --night-text: #B9C8CF;
    --gold: #F2D29B;
    --serif: "Fraunces", Georgia, "Times New Roman", serif;
    --sans: "Figtree", "Segoe UI", system-ui, sans-serif;
    --r-s: 12px; --r-m: 18px; --r-l: 26px;
    --shadow: 0 18px 44px rgba(16, 51, 67, .10);
    --head-h: 84px;

    --bs-body-font-family: var(--sans);
    --bs-body-font-size: 1.0625rem;
    --bs-body-line-height: 1.7;
    --bs-body-color: var(--warm);
    --bs-body-bg: var(--paper);
    --bs-heading-color: var(--ink);
    --bs-link-color: var(--teal);
    --bs-link-color-rgb: 29, 90, 118;
    --bs-link-hover-color: var(--ink);
    --bs-link-hover-color-rgb: 16, 51, 67;
    --bs-border-color: var(--line);
    --bs-primary: var(--teal);
    --bs-primary-rgb: 29, 90, 118;
    --bs-focus-ring-color: rgba(29, 90, 118, .25);
}

/* container: 1380px on large desktops, Bootstrap's widths below */
.container { --bs-gutter-x: 2.5rem; }
@media (min-width: 1400px) { .container { max-width: min(1380px, calc(100% - 3rem)); } }  /* keeps the 3rem row gutters inside the viewport between 1400 and 1428px */

/* ---------- base ---------- */
html { scroll-behavior: smooth; scroll-padding-top: 100px; }
body.a { text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
.a img { max-width: 100%; height: auto; }
.a a { text-underline-offset: 4px; }
.a h1, .a h2, .a h3, .a h4 { font-family: var(--serif); font-weight: 400; line-height: 1.12; letter-spacing: -.015em; margin: 0; }
.a p { margin: 0; }
.a ul, .a ol { padding: 0; list-style: none; }
.a ul:not(.row), .a ol:not(.row) { margin: 0; }   /* Bootstrap rows keep their gutter offsets */
.a :focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; border-radius: 6px; box-shadow: none; }
.a-ico { flex: none; }
.a-skip { position: absolute; left: 12px; top: 8px; z-index: 2000; transform: translateY(-200%); background: var(--ink); color: #fff !important; padding: 10px 16px; border-radius: 8px; text-decoration: none; }
.a-skip:focus { transform: none; }

/* ---------- type ---------- */
.a-eyebrow { display: inline-flex; align-items: center; gap: 10px; margin-bottom: 16px; font-family: var(--sans); font-size: .8125rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--teal); }
.a-eyebrow::before { content: ""; width: 24px; height: 1.5px; background: currentColor; }
.a-eyebrow--light { color: #A9C6D3; }
.a-h1 { font-size: clamp(1.875rem, 5.4vw, 5.1rem); line-height: 1.03; letter-spacing: -.02em; overflow-wrap: break-word; }
.a-h1 em, .a-h2 em { font-style: italic; color: var(--teal); }
.a-h2 { font-size: clamp(1.625rem, 3.8vw, 3.4rem); line-height: 1.08; }
.a-lead { font-size: 1.1875rem; line-height: 1.7; }
.a-sec-note { max-width: 520px; font-size: 1.0625rem; }

/* ---------- buttons & links ---------- */
.a-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 13px 28px; border-radius: 999px; border: 1.5px solid transparent; font-family: var(--sans); font-size: 1rem; font-weight: 500; line-height: 1.2; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.a-btn--ink { background: var(--ink); color: var(--paper) !important; }
.a-btn--ink:hover { background: var(--teal); color: #fff !important; }
.a-btn--line { border-color: var(--ink); color: var(--ink) !important; background: transparent; }
.a-btn--line:hover { background: var(--ink); color: var(--paper) !important; }
.a-btn--paper { background: var(--paper); color: var(--ink) !important; }
.a-btn--paper:hover { background: #fff; }
.a-btn--ghost { border-color: #3B6273; color: #fff !important; background: transparent; }
.a-btn--ghost:hover { background: #163848; border-color: #A9C6D3; }
.a-btn--sm { min-height: 46px; padding: 10px 22px; font-size: .9375rem; }
.a-link { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 500; color: var(--ink) !important; text-decoration: underline; text-decoration-color: var(--line-2); text-decoration-thickness: 1.5px; text-underline-offset: 6px; transition: text-decoration-color .2s, color .2s; }
.a-link:hover { color: var(--teal) !important; text-decoration-color: var(--teal); }
.a-link .a-ico { transition: transform .2s; }
.a-link:hover .a-ico { transform: translateX(3px); }
.a-link--light { color: #fff !important; text-decoration-color: #4E7484; }
.a-link--light:hover { color: var(--gold) !important; text-decoration-color: var(--gold); }
.a-round { width: 46px; height: 46px; flex: none; border-radius: 50%; border: 1px solid var(--line-2); background: var(--card); color: var(--ink); display: inline-grid; place-items: center; padding: 0; cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.a-round:hover { background: var(--ink); color: var(--paper); border-color: var(--ink); }
.a-round:disabled { opacity: .35; cursor: default; background: var(--card); color: var(--ink); border-color: var(--line-2); }

/* ---------- sections ---------- */
.a-sec { padding: 104px 0; }
.a-sec--band { background: var(--paper-2); }
.a-sec--line { border-top: 1px solid var(--line); }
.a-sec-head { margin-bottom: 52px; }
.a-sec-head .a-eyebrow { margin-bottom: 14px; }

/* ==========================================================================
   HEADER
   ========================================================================== */
.a-top { border-bottom: 1px solid var(--line); font-size: .84rem; }
.a-top .container { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 42px; }
.a-top-list { display: flex; align-items: center; gap: 26px; }
.a-top-list li { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.a-top-list .a-ico { color: var(--teal); }
.a-top a { color: var(--warm); text-decoration: none; }
.a-top a:hover { color: var(--ink); }
.a-lang { display: flex; align-items: center; gap: 8px; font-weight: 500; white-space: nowrap; }
.a-lang span { color: var(--line-2); }

.a-head { background: rgba(250, 248, 244, .95); -webkit-backdrop-filter: saturate(1.4) blur(10px); backdrop-filter: saturate(1.4) blur(10px); border-bottom: 1px solid transparent; transition: border-color .25s, box-shadow .25s; z-index: 1030; }
.a-head.is-stuck { border-bottom-color: var(--line); box-shadow: 0 8px 24px rgba(16, 51, 67, .06); }
.a-head-inner { position: relative; display: flex; align-items: center; gap: 24px; min-height: var(--head-h); }
.a-brand { display: block; flex: 0 1 auto; min-width: 0; margin-right: auto; }
.a-brand img { display: block; width: 300px; max-width: 100%; height: auto; }
.a-head-cta { display: flex; align-items: center; gap: 12px; flex: none; }

/* desktop navigation – every item is the same height, size and baseline */
.a-nav-list { display: flex; align-items: center; gap: 2px; }
.a-nav-list > li { display: flex; align-items: center; }
.a-nav-link, .a-nav-caret { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 44px; padding: 0 13px; margin: 0; border: 0; background: none; border-radius: 999px; font-family: var(--sans); font-size: .96875rem; font-weight: 500; line-height: 1; color: var(--ink) !important; text-decoration: none; white-space: nowrap; cursor: pointer; transition: background .2s, color .2s; }
.a-nav-link:hover, .a-nav-caret:hover, .a-nav-link.show, .a-nav-caret.show, .a-nav-split:hover .a-nav-link, .a-nav-split:hover .a-nav-caret { background: var(--paper-2); color: var(--ink) !important; }
.a-nav-link::after { content: ""; position: absolute; left: 13px; right: 13px; bottom: 7px; height: 2px; border-radius: 2px; background: var(--teal); transform: scaleX(0); transform-origin: left; transition: transform .2s; }
.a-nav-link[aria-current="page"]::after, .a-nav-link.is-current::after { transform: scaleX(1); }
.a-nav-link .a-ico, .a-nav-caret .a-ico { color: var(--teal); transition: transform .2s; }
.a-nav-link.show .a-ico, .a-nav-caret.show .a-ico { transform: rotate(180deg); }
.a-nav-split { display: inline-flex; align-items: center; }
.a-nav-split .a-nav-link { padding-right: 4px; border-radius: 999px 0 0 999px; }
.a-nav-split .a-nav-link::after { right: 4px; }
.a-nav-split .a-nav-caret { padding: 0 12px 0 4px; border-radius: 0 999px 999px 0; }
.a-hover { position: relative; }

/* About Us dropdown */
.a-drop.dropdown-menu { --bs-dropdown-min-width: 230px; --bs-dropdown-border-color: var(--line); --bs-dropdown-border-radius: var(--r-m); --bs-dropdown-link-color: var(--ink); --bs-dropdown-link-hover-bg: var(--paper-2); --bs-dropdown-link-hover-color: var(--ink); --bs-dropdown-link-active-bg: var(--paper-2); --bs-dropdown-link-active-color: var(--teal); top: calc(100% + 14px); left: 0; padding: 10px; box-shadow: var(--shadow); }
.a-drop .dropdown-item { padding: 11px 16px; border-radius: 10px; font-size: .96875rem; }
.a-drop .dropdown-item[aria-current="page"] { color: var(--teal); font-weight: 600; }

/* Specialties mega menu – spans the header container */
.a-mega-li, .a-mega-li .a-nav-split { position: static; }
.a-mega.dropdown-menu { position: absolute; left: calc(var(--bs-gutter-x) * .5); right: calc(var(--bs-gutter-x) * .5); top: calc(100% - 6px); width: auto; margin: 0; padding: 34px 40px 26px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); box-shadow: 0 30px 60px rgba(16, 51, 67, .14); }
.a-mega-col { padding-right: 32px; }
.a-mega-col + .a-mega-col { padding-left: 32px; border-left: 1px solid var(--line); }
.a-mega-title { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; padding-bottom: 12px; margin-bottom: 10px !important; border-bottom: 1px solid var(--line); font-family: var(--serif); font-size: 1.375rem; color: var(--ink); }
.a-mega-title span { font-family: var(--sans); font-size: .75rem; font-weight: 600; letter-spacing: .08em; color: var(--muted); }
.a-mega-2col { columns: 2; column-gap: 32px; }
.a-mega li { break-inside: avoid; }
.a-mega a { display: block; padding: 7px 0; font-size: .9375rem; line-height: 1.4; color: var(--warm); text-decoration: none; transition: color .15s, transform .15s; }
.a-mega a:hover, .a-mega a[aria-current="page"] { color: var(--teal); }
.a-mega a:hover { transform: translateX(3px); }
.a-mega-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line); }
.a-mega-foot p { font-family: var(--serif); font-style: italic; font-size: 1.125rem; color: var(--teal); }

/* burger (opens the mobile menu below) */
.a-burger { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--line-2); background: var(--card); display: grid; place-items: center; padding: 0; cursor: pointer; }
.a-burger span { display: grid; gap: 5px; width: 20px; }
.a-burger i { display: block; height: 2px; border-radius: 2px; background: var(--ink); }
.a-burger i:last-child { width: 13px; justify-self: end; }

/* ==========================================================================
   HERO (Bootstrap carousel; old slide fades out before the new one fades in)
   ========================================================================== */
.a-hero { padding: 56px 0 64px; }
.a-hero .carousel-inner { display: grid; grid-template-columns: minmax(0, 1fr); overflow: visible; }
.a-hero .carousel-item { display: block !important; grid-area: 1 / 1; float: none; margin: 0; opacity: 0; visibility: hidden; transform: none !important; transition: opacity .3s ease, visibility 0s linear .3s; }
.a-hero .carousel-item.active { opacity: 1; visibility: visible; transition: opacity .45s ease, visibility 0s; }
.a-hero .carousel-item.active.carousel-item-start, .a-hero .carousel-item.active.carousel-item-end { opacity: 0; }
.a-hero .carousel-item-next, .a-hero .carousel-item-prev { visibility: visible; }
.a-hero .carousel-item-next.carousel-item-start, .a-hero .carousel-item-prev.carousel-item-end { opacity: 0; }
.a-hero .a-lead { margin: 24px 0 34px; max-width: 580px; }
.a-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; }
.a-arch { position: relative; margin: 0; }
.a-arch img { display: block; width: 100%; height: 560px; object-fit: cover; border-radius: 999px 999px var(--r-l) var(--r-l); background: var(--paper-2); }
.a-arch figcaption { position: absolute; left: -28px; bottom: 44px; max-width: calc(100% + 28px); padding: 16px 22px; background: var(--paper); border: 1px solid var(--line); border-radius: 16px; font-size: .875rem; line-height: 1.5; box-shadow: 0 14px 30px rgba(16, 51, 67, .10); }
.a-arch figcaption b { display: block; font-family: var(--serif); font-weight: 500; font-size: 1.25rem; color: var(--ink); }
.a-hero-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 18px 32px; margin-top: 44px; padding-top: 24px; border-top: 1px solid var(--line); }
.a-hero-ctrl { display: flex; align-items: center; gap: 12px; }
.a-hero .a-dots.carousel-indicators { position: static; margin: 0; padding: 0; display: flex; gap: 2px; justify-content: flex-start; }
.a-hero .a-dots [data-bs-target] { box-sizing: border-box; width: 30px; height: 30px; margin: 0; padding: 0; border: 0; background: none; opacity: 1; text-indent: 0; display: grid; place-items: center; }
.a-hero .a-dots [data-bs-target]::before { content: ""; width: 8px; height: 8px; border-radius: 99px; background: var(--line-2); transition: width .25s, background .25s; }
.a-hero .a-dots .active::before { width: 26px; background: var(--teal); }
.a-hero-facts { display: flex; flex-wrap: wrap; gap: 8px 26px; font-size: .9375rem; }
.a-hero-facts li { display: flex; align-items: center; gap: 8px; }
.a-hero-facts .a-ico { color: var(--teal); }
.a-hero-facts a { color: var(--warm); text-decoration: none; }

/* ---------- visit essentials ---------- */
.a-facts { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.a-fact { display: flex; flex-direction: column; gap: 6px; padding: 34px 32px; }
.a-fact:first-child { padding-left: 0; }
.a-fact + .a-fact:not(.a-fact--book) { border-left: 1px solid var(--line); }
.a-fact .a-fact-h { margin-top: 0; line-height: 1.2; display: flex; align-items: center; gap: 8px; margin-bottom: 8px !important; font-family: var(--sans); font-size: .78rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.a-fact .a-fact-h .a-ico { color: var(--teal); }
.a-fact-value { font-family: var(--serif); font-size: 1.75rem; line-height: 1.2; color: var(--ink); }
.a-fact-value span { color: var(--muted); }
.a-fact-detail { margin-top: auto; padding-top: 6px; font-size: .875rem; color: var(--muted); }
.a-fact .a-link { align-self: flex-start; margin-top: auto; }
.a-fact--book { padding: 16px 0 16px 16px; }
.a-fact-book { display: flex; flex-direction: column; gap: 14px; height: 100%; padding: 18px 30px 22px; border-radius: var(--r-l); background: var(--ink); color: #D7E3E9; }
.a-fact-book .a-fact-h { color: #A9C6D3; margin: 0 !important; }
.a-fact-book .a-fact-h .a-ico { color: #A9C6D3; }
.a-fact-book .a-btn { margin-top: auto; }
.a-fact-phone { color: #D7E3E9 !important; text-decoration: none; font-size: .9375rem; }
.a-fact-phone strong { color: #fff; font-weight: 600; }

/* ==========================================================================
   SPECIALTIES (what we treat)
   ========================================================================== */
.a-specs { border-top: 1px solid var(--line-2); }
.a-spec { padding: 44px 0; border-bottom: 1px solid var(--line-2); }
.a-spec-head { display: flex; align-items: center; gap: 18px; margin-bottom: 16px; }
.a-spec-icon { width: 64px; height: 64px; flex: none; display: grid; place-items: center; border-radius: 50%; background: var(--card); border: 1px solid var(--line); }
.a-spec-icon img { width: 36px; height: 36px; object-fit: contain; }
.a-spec-no { display: block; margin-bottom: 4px; font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.a-spec h3 { font-size: clamp(1.75rem, 2.6vw, 2.25rem); font-weight: 500; }
.a-spec-text { max-width: 470px; margin-bottom: 10px !important; }
.a-spec-list { display: grid; grid-template-columns: 1fr; column-gap: 32px; }
@media (min-width: 576px) { .a-spec-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.a-spec-list li { border-bottom: 1px solid var(--line); }
.a-spec-list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 10px 2px; color: var(--ink); text-decoration: none; font-size: 1rem; transition: color .15s, padding .15s; }
.a-spec-list a .a-ico { color: var(--line-2); transition: color .15s, transform .15s; }
.a-spec-list a:hover { color: var(--teal); padding-left: 6px; }
.a-spec-list a:hover .a-ico { color: var(--teal); transform: translateX(3px); }

/* ==========================================================================
   ABOUT
   ========================================================================== */
.a-about-img { height: 100%; min-height: 420px; border-radius: var(--r-l); overflow: hidden; background: var(--line); }
.a-about-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.a-about-text { display: flex; flex-direction: column; justify-content: center; }
.a-about-text .a-h2 { margin-bottom: 24px; }
.a-about-text p + p { margin-top: 16px; }
.a-ticks.row { margin-top: 12px; margin-bottom: 32px; }
.a-ticks span { display: flex; align-items: center; gap: 12px; height: 100%; padding: 14px 18px; border-radius: var(--r-s); background: var(--paper); border: 1px solid var(--line); font-weight: 500; color: var(--ink); line-height: 1.35; }
.a-ticks .a-ico { color: var(--teal); }
.a-about-text > .a-btn { align-self: flex-start; }

/* ==========================================================================
   RAILS (treatments, social) – whole cards only, aligned to the container
   ========================================================================== */
.a-rail { --per: 4; --gap: 24px; display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - (var(--per) - 1) * var(--gap)) / var(--per)); gap: var(--gap); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-width: none; padding-bottom: 6px; }
.a-rail::-webkit-scrollbar { display: none; }
.a-rail > li { scroll-snap-align: start; min-width: 0; }
.a .a-rail { padding-bottom: 6px; }   /* only the padding needs to beat the .a ul reset; --per stays responsive */
.a-rail--5 { --per: 5; }
.a-rail-ctrl { display: flex; align-items: center; justify-content: flex-end; gap: 12px; }
.a-rail-count { min-width: 64px; text-align: center; font-size: .875rem; color: var(--muted); font-variant-numeric: tabular-nums; }

.a-tcard { display: flex; flex-direction: column; height: 100%; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-m); overflow: hidden; text-decoration: none; transition: box-shadow .25s, border-color .25s; }
.a-tcard:hover { border-color: var(--line-2); box-shadow: var(--shadow); }
.a-tcard-img { aspect-ratio: 4 / 3; overflow: hidden; background: var(--paper-2); }
.a-tcard-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.a-tcard:hover .a-tcard-img img { transform: scale(1.04); }
.a-tcard-body { display: flex; flex-direction: column; gap: 14px; flex: 1; padding: 20px 22px 22px; }
.a-tcard h3 { font-size: 1.375rem; font-weight: 500; line-height: 1.2; min-height: 2.4em; }
.a-tcard-cta { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: .9375rem; font-weight: 500; color: var(--teal); }

/* ==========================================================================
   DOCTORS
   ========================================================================== */
.a-doc { display: flex; flex-direction: column; height: 100%; padding: 32px; background: var(--card); border: 1px solid var(--line); border-radius: var(--r-l); }
.a-doc-top { display: flex; align-items: center; gap: 24px; padding-bottom: 24px; border-bottom: 1px solid var(--line); }
.a-doc-photo { flex: none; display: block; width: 120px; height: 146px; border-radius: 999px 999px 18px 18px; overflow: hidden; background: var(--paper-2); box-shadow: inset 0 0 0 1px var(--line); }
.a-doc-photo img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 20%; }
.a-doc h3 { font-size: clamp(1.6rem, 2.2vw, 2rem); font-weight: 500; }
.a-doc h3 a { color: var(--ink); text-decoration: none; }
.a-doc h3 a:hover { color: var(--teal); }
.a-doc-role { margin-top: 6px !important; color: var(--teal); font-weight: 500; line-height: 1.45; }
.a-doc-body { padding: 24px 0; }
.a-doc h4 { margin-bottom: 10px; font-family: var(--sans); font-size: .75rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.a-doc ul { display: grid; gap: 8px; font-size: .9375rem; line-height: 1.5; }
.a-doc ul li { position: relative; padding-left: 16px; }
.a-doc ul li::before { content: ""; position: absolute; left: 0; top: .6em; width: 6px; height: 6px; border-radius: 50%; background: var(--line-2); }
.a-doc-foot { margin-top: auto; padding-top: 20px; border-top: 1px solid var(--line); }
.a-doc-reg { display: block; margin-bottom: 12px; font-size: .875rem; color: var(--muted); }
.a-doc-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; }


/* ---------- what to expect: interactive patient journey ---------- */
.a-journey-side { display: flex; flex-direction: column; }
.a-journey-note { margin: 14px 0 34px !important; }
.a-jtabs { position: relative; display: grid; gap: 10px; }
.a-jtab { position: relative; display: grid; grid-template-columns: 52px 1fr; align-items: center; gap: 4px 16px; width: 100%; padding: 18px 20px 20px; border: 1px solid var(--line); border-radius: var(--r-m); background: rgba(255, 255, 255, .45); text-align: left; color: var(--ink); cursor: pointer; overflow: hidden; transition: background .25s, border-color .25s, box-shadow .25s, transform .25s; }
.a-jtab:hover { background: #fff; border-color: var(--line-2); }
.a-jtab.is-active { background: #fff; border-color: transparent; box-shadow: var(--shadow); transform: translateX(6px); }
.a-jtab-no { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50%; border: 1px solid var(--line-2); font-family: var(--serif); font-size: 1.125rem; color: var(--teal); transition: background .25s, color .25s, border-color .25s; }
.a-jtab.is-active .a-jtab-no { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.a-jtab-txt small { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.a-jtab-txt b { display: block; font-family: var(--serif); font-size: 1.375rem; font-weight: 400; line-height: 1.25; }
.a-jtab-bar { position: absolute; left: 20px; right: 20px; bottom: 9px; height: 3px; border-radius: 3px; background: var(--line); opacity: 0; transition: opacity .25s; }
.a-jtab-bar i { display: block; height: 100%; width: 100%; border-radius: inherit; background: var(--teal); transform: scaleX(0); transform-origin: left; }
.a-jtab.is-active .a-jtab-bar { opacity: 1; }
.a-jtab.is-active .a-jtab-bar i { transform: scaleX(1); }
.a-journey.is-auto .a-jtab.is-active .a-jtab-bar i { animation: a-jfill var(--j-dur, 7s) linear forwards; }
.a-journey.is-paused .a-jtab.is-active .a-jtab-bar i { animation-play-state: paused; }
@keyframes a-jfill { from { transform: scaleX(0); } to { transform: scaleX(1); } }

.a-jstage { display: grid; height: 100%; }
.a-jpanel { grid-area: 1 / 1; position: relative; display: flex; flex-direction: column; min-height: 100%; padding: 48px; border-radius: var(--r-l); background: var(--card); border: 1px solid var(--line); overflow: hidden; opacity: 0; visibility: hidden; transform: translateY(14px); transition: opacity .35s ease, transform .5s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .35s; }
.a-jpanel.is-active { opacity: 1; visibility: visible; transform: none; transition: opacity .45s ease .1s, transform .55s cubic-bezier(.2, .8, .2, 1) .1s, visibility 0s; }
.a-jpanel:focus-visible { outline: 2px solid var(--teal); outline-offset: 4px; }
.a-jpanel-mark { position: absolute; right: -6px; top: -36px; font-family: var(--serif); font-size: 15rem; line-height: 1; color: var(--paper-2); pointer-events: none; user-select: none; }
.a-jpanel > :not(.a-jpanel-mark) { position: relative; }
.a-jpanel-head { display: flex; align-items: center; gap: 16px; margin-bottom: 26px; }
.a-jpanel-ico { position: relative; display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--ink); color: var(--paper); }
.a-jpanel-ico::before, .a-jpanel-ico::after { content: ""; position: absolute; inset: -8px; border-radius: 50%; border: 1px solid rgba(29, 90, 118, .25); }
.a-jpanel-ico::after { inset: -16px; border-color: rgba(29, 90, 118, .12); }
.a-jpanel.is-active .a-jpanel-ico::before { animation: a-jring 2.6s ease-out infinite; }
.a-jpanel.is-active .a-jpanel-ico::after { animation: a-jring 2.6s ease-out .4s infinite; }
@keyframes a-jring { 0% { transform: scale(.85); opacity: 0; } 30% { opacity: 1; } 100% { transform: scale(1.15); opacity: 0; } }
.a-jpanel-step { font-size: .78rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--teal); }
.a-jpanel h3 { margin-bottom: 14px !important; font-size: clamp(1.75rem, 2.8vw, 2.5rem); }
.a-jpanel p { max-width: 560px; font-size: 1.0625rem; line-height: 1.75; }
.a-jpanel-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 24px; margin-top: auto; padding-top: 30px; }
.a-jback { border: 0; background: none; padding: 0; cursor: pointer; }

@media (max-width: 991.98px) {
    .a-journey .row { --bs-gutter-y: 1.75rem; }
    .a-journey-note { margin-bottom: 26px !important; }
    /* steps become a numbered track; the line fills as you move along */
    .a-jtabs { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; }
    .a-jtabs::before, .a-jtabs::after { content: ""; position: absolute; top: 26px; left: 16.66%; right: 16.66%; height: 2px; background: var(--line-2); }
    .a-jtabs::after { right: auto; width: calc(66.66% * var(--p)); background: var(--teal); transition: width .5s cubic-bezier(.2, .8, .2, 1); }
    .a-jtab, .a-jtab:hover, .a-jtab.is-active { grid-template-columns: 1fr; justify-items: center; align-content: start; gap: 10px; padding: 0 4px; border: 0; background: none; box-shadow: none; transform: none; text-align: center; z-index: 1; }
    .a-jtab-no { background: var(--paper-2); }
    .a-jtab.is-done .a-jtab-no { border-color: var(--teal); color: var(--teal); background: #fff; }
    .a-jtab-txt b { font-size: 1.0625rem; }
    .a-jtab-bar { display: none; }
    .a-jpanel { padding: 32px 28px; }
    .a-jpanel-mark { font-size: 11rem; top: -24px; }
}
@media (max-width: 575.98px) {
    .a-jtab-no { width: 46px; height: 46px; font-size: 1rem; }
    .a-jtabs::before, .a-jtabs::after { top: 23px; }
    .a-jtab-txt small { font-size: .6875rem; letter-spacing: .08em; }
    .a-jtab-txt b { font-size: .9375rem; }
    .a-jpanel { padding: 26px 22px; border-radius: var(--r-m); }
    .a-jpanel-head { margin-bottom: 18px; gap: 14px; }
    .a-jpanel-ico { width: 56px; height: 56px; }
    .a-jpanel-ico .a-ico { width: 24px; height: 24px; }
    .a-jpanel-step { font-size: .6875rem; }
    .a-jpanel h3 { font-size: 1.375rem; margin-bottom: 10px !important; }
    .a-jpanel p { font-size: .9375rem; line-height: 1.65; }
    .a-jpanel-mark { font-size: 8rem; top: -14px; }
    .a-jpanel-nav { padding-top: 22px; }
    .a-jpanel-nav .a-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
    .a-jpanel-ico::before, .a-jpanel-ico::after { animation: none !important; }
}

/* ==========================================================================
   APPOINTMENT
   ========================================================================== */
.a-book { background: var(--ink); color: #C9D6DC; }
.a-book .a-h2 { color: var(--paper); }
.a-book-info > p { margin: 18px 0 28px !important; font-size: 1.125rem; }
.a-book-contact { display: grid; gap: 16px; margin-bottom: 30px !important; }
.a-book-contact li { display: flex; align-items: center; gap: 14px; }
.a-book-contact .a-ico { width: 44px; height: 44px; padding: 11px; border-radius: 50%; border: 1px solid #2E5465; color: #A9C6D3; }
.a-book-contact small { display: block; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: #8FA9B7; }
.a-book-contact a { color: #fff; font-weight: 600; text-decoration: none; }
.a-book-contact a:hover { color: var(--gold); }
.a-book-contact span { color: #fff; }
.a-book-info > .a-book-contact:first-child { margin-top: 6px; }
.a-book-info h3 { margin: 0 0 12px; padding-top: 24px; border-top: 1px solid #2E5465; font-size: 1.375rem; color: var(--paper); }
.a-book-fac { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 20px !important; }
.a-book-fac li { padding: 7px 14px; border-radius: 999px; border: 1px solid #2E5465; font-size: .875rem; color: #D7E3E9; }
.a-form { padding: 40px; border-radius: var(--r-l); background: var(--paper); color: var(--warm); }
.a .a-form-title { margin-bottom: 22px !important; font-family: var(--serif); font-size: 1.75rem; color: var(--ink); }
.a-form fieldset { border: 0; min-width: 0; margin-bottom: 0; }
.a-label-f { display: block; float: none; width: auto; margin-bottom: 6px; padding: 0; font-size: .875rem; font-weight: 600; color: var(--ink); }
.a-input { display: block; width: 100%; height: 52px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: var(--r-s); background: #fff; font-family: var(--sans); font-size: 1rem; color: var(--ink); transition: border-color .2s, box-shadow .2s; }
.a-input:focus { outline: 0; border-color: var(--teal); box-shadow: 0 0 0 4px rgba(29, 90, 118, .12); }
select.a-input { appearance: none; padding-right: 40px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23103343' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center / 16px; }
.a-seg { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; padding: 5px; border: 1px solid var(--line-2); border-radius: 999px; background: #fff; }
.a-seg input { position: absolute; opacity: 0; pointer-events: none; }
.a-seg label { margin: 0; padding: 10px; border-radius: 999px; text-align: center; font-size: .9375rem; font-weight: 500; color: var(--muted); cursor: pointer; transition: background .2s, color .2s; }
.a-seg input:checked + label { background: var(--ink); color: var(--paper); }
.a-seg input:focus-visible + label { outline: 2px solid var(--teal); outline-offset: 2px; }
.a-form-note { font-size: .78rem; line-height: 1.55; color: var(--muted); }
.a-form .iti { display: block; width: 100%; }

/* ---------- gallery ---------- */
.a-gallery { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 230px; gap: 16px; }
.a-gallery li:nth-child(1) { grid-column: span 2; grid-row: span 2; }
.a-gallery li:nth-child(6), .a-gallery li:nth-child(7) { grid-column: span 2; }
.a-gallery a { display: block; height: 100%; overflow: hidden; border-radius: var(--r-m); background: var(--paper-2); }
.a-gallery li:nth-child(1) a { border-radius: 320px 320px var(--r-m) var(--r-m); }
.a-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.a-gallery a:hover img { transform: scale(1.04); }

/* lightbox */
.a-lightbox { padding: 0; border: 0; background: transparent; max-width: min(92vw, 1100px); max-height: 92vh; overflow: visible; }
.a-lightbox::backdrop { background: rgba(12, 39, 51, .86); }
.a-lightbox[open] { display: grid; place-items: center; }
.a-lightbox img, .a-lightbox video { display: block; max-width: min(92vw, 1100px); max-height: 82vh; width: auto; height: auto; border-radius: var(--r-m); background: #000; }
.a-lightbox video { max-width: min(92vw, 460px); }
.a-lb-cap { margin-top: 12px !important; max-width: 640px; text-align: center; font-size: .875rem; color: #D7E3E9; }
.a-lb-cap a { color: var(--gold); }
.a-lb-close, .a-lb-prev, .a-lb-next { position: fixed; width: 50px; height: 50px; border-radius: 50%; border: 0; background: rgba(250, 248, 244, .14); color: #fff; display: grid; place-items: center; cursor: pointer; }
.a-lb-close:hover, .a-lb-prev:hover, .a-lb-next:hover { background: rgba(250, 248, 244, .28); }
.a-lb-close { top: 18px; right: 18px; }
.a-lb-prev { left: 18px; top: 50%; transform: translateY(-50%); }
.a-lb-next { right: 18px; top: 50%; transform: translateY(-50%); }

/* ---------- FAQ (Bootstrap accordion) ---------- */
.a-faq-intro { position: sticky; top: 120px; }
.a-faq-intro p { margin: 18px 0 26px !important; }
.a-faq.accordion { --bs-accordion-bg: transparent; --bs-accordion-border-color: var(--line-2); --bs-accordion-border-radius: 0; --bs-accordion-inner-border-radius: 0; --bs-accordion-btn-padding-x: 0; --bs-accordion-btn-padding-y: 24px; --bs-accordion-body-padding-x: 0; --bs-accordion-body-padding-y: 0; --bs-accordion-btn-color: var(--ink); --bs-accordion-active-color: var(--teal); --bs-accordion-active-bg: transparent; --bs-accordion-btn-focus-box-shadow: none; --bs-accordion-btn-icon-width: 36px; --bs-accordion-btn-icon-transform: rotate(45deg); --bs-accordion-btn-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36'%3E%3Ccircle cx='18' cy='18' r='17.25' fill='none' stroke='%23D9D2C6' stroke-width='1.5'/%3E%3Cpath d='M18 11v14M11 18h14' stroke='%231d5a76' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E"); --bs-accordion-btn-active-icon: var(--bs-accordion-btn-icon); }
.a-faq .accordion-item { border-left: 0; border-right: 0; }
.a-faq .accordion-button { gap: 24px; font-family: var(--serif); font-size: 1.4375rem; line-height: 1.35; }
.a-faq .accordion-button:hover { color: var(--teal); }
.a-faq .accordion-button::after { height: 36px; background-size: 36px; }
.a-faq .accordion-body { padding: 0 56px 26px 0; font-size: 1.03rem; }

/* ---------- blogs ---------- */
.a-post { display: flex; flex-direction: column; gap: 14px; height: 100%; text-decoration: none; }
.a-post img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-m); background: var(--paper-2); transition: transform .4s; }
.a-post:hover img { transform: translateY(-4px); }
.a-post h3 { font-size: 1.375rem; font-weight: 500; line-height: 1.25; }
.a-post:hover h3 { color: var(--teal); }
.a-post span { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: .9375rem; font-weight: 500; color: var(--teal); }

/* ---------- social ---------- */
.a-social-item { position: relative; display: block; width: 100%; padding: 0; border: 0; overflow: hidden; aspect-ratio: 4 / 5; border-radius: var(--r-m); background: var(--line); cursor: pointer; }
.a-social-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
.a-social-item:hover img { transform: scale(1.03); }
.a-social-badge { position: absolute; top: 12px; right: 12px; width: 34px; height: 34px; border-radius: 50%; background: rgba(250, 248, 244, .92); color: var(--ink); display: grid; place-items: center; }
.a-social-play { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 58px; height: 58px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .85); background: rgba(16, 51, 67, .78); color: #fff; display: grid; place-items: center; }
.a-social-foot { margin-top: 28px; }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.a-foot { background: var(--night); color: var(--night-text); font-size: .9375rem; }
.a-foot a { color: #E3ECF0; text-decoration: none; }
.a-foot a:hover { color: var(--gold); }
.a-foot-cta { padding: 64px 0; border-bottom: 1px solid #1F3E4B; }
.a-foot-cta h2 { font-size: clamp(1.5rem, 3.6vw, 3.1rem); color: var(--paper); }
.a-foot-cta p { margin-top: 10px !important; }
.a-foot-cta-btns { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; }
.a-foot-main { padding: 64px 0 48px; }
.a-foot-logo { width: 200px; height: auto; margin-bottom: 20px; }
.a-foot-brand p { max-width: 380px; margin-bottom: 22px !important; }
.a-foot-h { margin-bottom: 18px !important; font-family: var(--serif); font-size: 1.3125rem; color: var(--paper); }
.a-foot-social { display: flex; gap: 10px; }
.a-foot-social a { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #2E5465; display: grid; place-items: center; transition: background .2s, border-color .2s; }
.a-foot-social a:hover { background: var(--teal); border-color: var(--teal); color: #fff; }
.a-foot-list { display: grid; gap: 2px; }
.a-foot-list a { display: inline-block; padding: 5px 0; }
.a-foot-open { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 18px !important; padding: 7px 14px 7px 12px; border-radius: 999px; border: 1px solid #2E5465; font-size: .84rem; line-height: 1.35; color: #D7E3E9; }
.a-foot-open i { width: 8px; height: 8px; flex: none; border-radius: 50%; background: #8FA9B7; }
.a-foot-open.is-open { border-color: rgba(60, 203, 127, .45); color: #C9F2D9; }
.a-foot-open.is-open i { background: #3CCB7F; box-shadow: 0 0 0 4px rgba(60, 203, 127, .18); }
.a-foot-open.is-closed i { background: #F2B84B; }
.a-foot-contact { display: grid; gap: 14px; }
.a-foot-contact li { display: flex; gap: 12px; align-items: flex-start; line-height: 1.55; }
.a-foot-contact div { min-width: 0; overflow-wrap: anywhere; }
.a-foot-contact .a-ico { margin-top: 3px; color: #A9C6D3; }
.a-foot-contact small { display: block; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: #8FA9B7; }
.a-foot-dir { display: inline-flex; align-items: center; gap: 6px; margin: 14px 0 0 30px; color: var(--gold) !important; font-weight: 500; }
.a-foot-tx { padding: 40px 0; border-top: 1px solid #1F3E4B; }
.a h4.a-foot-group, .a-foot-group { margin-bottom: 8px !important; font-family: var(--sans); line-height: 1.5; font-size: .75rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: #8FA9B7; }
.a-foot-tx .a-foot-list { font-size: .9rem; gap: 0; }
.a-foot-2col { display: block; columns: 2; column-gap: 32px; }
.a-foot-2col li { break-inside: avoid; }
.a-foot-reg { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 40px; padding: 22px 0; border-top: 1px solid #1F3E4B; font-size: .84rem; }
.a-foot-reg strong { color: #E3ECF0; font-weight: 600; }
.a-foot-bottom { background: var(--night-2); font-size: .84rem; }
.a-foot-bottom .container { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 24px; padding-top: 18px; padding-bottom: 18px; }
.a-foot-bottom nav { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.a-top-btn { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #2E5465; display: grid; place-items: center; }

/* quick-connect (component/quickconnect.php) */
body.a .scrollToTop { display: none !important; }

/* ==========================================================================
   MOBILE MENU – "night edition": full screen, opens as a circle from the menu button
   ========================================================================== */
.a-mm.offcanvas { --ox: calc(100% - 44px); --oy: 64px; position: fixed; inset: 0; z-index: 10050; width: 100%; height: 100%; height: 100dvh; max-height: none; border: 0; transform: none !important;
    display: flex; flex-direction: column; overflow: hidden; color: #D7E3E9; font-family: var(--sans);
    background: radial-gradient(520px 420px at 105% -5%, rgba(43, 134, 166, .38), transparent 62%), radial-gradient(460px 380px at -10% 110%, rgba(29, 90, 118, .55), transparent 62%), var(--night);
    clip-path: circle(0 at var(--ox) var(--oy)); transition: clip-path .62s cubic-bezier(.7, 0, .2, 1); }
.a-mm.offcanvas.showing, .a-mm.offcanvas.show:not(.hiding) { clip-path: circle(150% at var(--ox) var(--oy)); }
.a-mm.offcanvas.hiding { transition-duration: .45s; }
.a-mm-glow { position: absolute; right: -120px; bottom: 120px; width: 360px; height: 520px; border: 1px solid rgba(255, 255, 255, .07); border-radius: 999px 999px 0 0; pointer-events: none; }
.a-mm-glow::after { content: ""; position: absolute; inset: 40px; border: 1px solid rgba(255, 255, 255, .05); border-radius: inherit; }
.a-mm-top { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 20px; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.a-mm-top img { width: 150px; height: auto; }
.a-mm-close { width: 50px; height: 50px; flex: none; display: grid; place-items: center; padding: 0; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .22); background: rgba(255, 255, 255, .06); color: #fff; transition: background .2s, transform .3s; }
.a-mm-close:hover { background: rgba(255, 255, 255, .14); transform: rotate(90deg); }
.a-mm-body { position: relative; flex: 1; overflow-y: auto; overscroll-behavior: contain; padding: 18px 24px 24px; scrollbar-width: thin; scrollbar-color: rgba(255, 255, 255, .2) transparent; }
.a-mm-meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin-bottom: 10px; }
.a-mm-status { display: inline-flex; align-items: center; gap: 8px; padding: 6px 13px 6px 11px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .16); font-size: .8125rem; line-height: 1.35; }
.a-mm-status i { width: 8px; height: 8px; border-radius: 50%; background: #8FA9B7; flex: none; }
.a-mm-status.is-open { color: #C9F2D9; border-color: rgba(60, 203, 127, .45); }
.a-mm-status.is-open i { background: #3CCB7F; box-shadow: 0 0 0 4px rgba(60, 203, 127, .18); }
.a-mm-status.is-closed i { background: #F2B84B; }
.a-mm-lang { display: flex; gap: 8px; font-size: .875rem; }
.a-mm-lang a { color: #fff; text-decoration: none; }
.a-mm-lang span { color: rgba(255, 255, 255, .3); }
.a-mm-list > li { border-bottom: 1px solid rgba(255, 255, 255, .09); opacity: 0; transform: translateY(18px); transition: opacity .35s ease, transform .5s cubic-bezier(.2, .8, .2, 1); }
.a-mm.showing .a-mm-list > li, .a-mm.show .a-mm-list > li { opacity: 1; transform: none; transition-delay: calc(.22s + var(--i) * .055s); }
.a-mm.hiding .a-mm-list > li { transition-delay: 0s; }
.a-mm-link { display: flex; width: 100%; align-items: baseline; gap: 16px; padding: 14px 0; border: 0; background: none; text-align: left; font-family: var(--serif); font-size: clamp(1.9rem, 5vw, 2.25rem); font-weight: 400; line-height: 1.15; letter-spacing: -.01em; color: #fff; text-decoration: none; }
.a-mm-link small { min-width: 26px; font-family: var(--sans); font-size: .75rem; font-weight: 600; letter-spacing: .1em; color: #8FC3D8; }
.a-mm-link:hover, .a-mm-link:focus-visible { color: var(--gold); }
.a-mm-link[aria-current="page"] { font-style: italic; color: var(--gold); }
.a-mm-plus { position: relative; width: 34px; height: 34px; margin-left: auto; align-self: center; flex: none; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .22); }
.a-mm-plus::before, .a-mm-plus::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.5px; background: #fff; transform: translate(-50%, -50%); transition: transform .3s; }
.a-mm-plus::after { transform: translate(-50%, -50%) rotate(90deg); }
.a-mm-toggle:not(.collapsed) .a-mm-plus::after { transform: translate(-50%, -50%) rotate(0); }
.a-mm-toggle:not(.collapsed) .a-mm-plus { background: rgba(255, 255, 255, .1); }
.a-mm-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 2px 0 18px 42px; }
.a-mm-chips a { display: inline-block; min-height: 40px; padding: 9px 15px; border-radius: 999px; border: 1px solid rgba(255, 255, 255, .18); background: rgba(255, 255, 255, .04); font-size: .9375rem; line-height: 1.3; color: #E3ECF0; text-decoration: none; transition: background .2s, color .2s, border-color .2s; }
.a-mm-chips a:hover { background: #fff; border-color: #fff; color: var(--ink); }
.a-mm-chips a[aria-current="page"] { background: var(--gold); border-color: var(--gold); color: var(--ink); font-weight: 600; }
.a-mm-spec { padding: 0 0 18px 42px; }
@media (max-width: 439.98px) {
    .a-mm-spec, .a-mm-chips { padding-left: 0; }
    .a-mm-tabs .nav-link span { display: none; }
    .a-mm-book { padding: 0 16px; }
    .a-mm-book > .a-ico:last-child { display: none; }
}
@media (max-width: 359.98px) {
    .a-mm-dock { gap: 8px; padding-left: 16px; padding-right: 16px; }
    .a-mm-book { padding: 0 14px; font-size: .9375rem; }
    .a-mm-book > .a-ico:first-child { display: none; }
    .a-mm-icon { width: 46px; height: 46px; }
}
.a-mm-spec .a-mm-chips { padding: 0 0 14px; }
.a-mm-tabs { display: flex; flex-wrap: nowrap; gap: 4px; padding: 4px; margin-bottom: 14px; border-radius: 999px; background: rgba(255, 255, 255, .07); }
.a-mm-tabs .nav-link { flex: 1 1 0; min-width: 0; padding: 9px 6px; overflow: hidden; text-overflow: ellipsis; border: 0; border-radius: 999px; font-size: .84rem; font-weight: 600; white-space: nowrap; color: #B9C8CF; background: none; transition: background .2s, color .2s; }
.a-mm-tabs .nav-link span { margin-left: 2px; font-weight: 500; opacity: .7; }
.a-mm-tabs .nav-link.active { background: #fff; color: var(--ink); }
.a-mm-all { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; font-weight: 600; color: var(--gold) !important; text-decoration: none; }
.a-mm-dock { position: relative; display: grid; grid-template-columns: 1fr auto auto; gap: 10px; padding: 16px 20px calc(16px + env(safe-area-inset-bottom)); border-top: 1px solid rgba(255, 255, 255, .08); background: rgba(8, 32, 42, .6); opacity: 0; transform: translateY(16px); transition: opacity .35s, transform .45s; }
.a-mm.showing .a-mm-dock, .a-mm.show .a-mm-dock { opacity: 1; transform: none; transition-delay: .5s; }
.a-mm-book { display: flex; align-items: center; gap: 10px; min-height: 54px; padding: 0 18px; white-space: nowrap; border-radius: 999px; background: var(--paper); color: var(--ink) !important; font-weight: 600; text-decoration: none; }
.a-mm-book span { flex: 1; }
.a-mm-icon { width: 54px; height: 54px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .22); color: #fff !important; }
.a-mm-icon:hover { background: rgba(255, 255, 255, .12); }
.a-mm-addr { grid-column: 1 / -1; display: flex; align-items: center; justify-content: center; gap: 6px; font-size: .8125rem; color: #8FA9B7; }
body.a:has(.a-mm.show, .a-mm.showing) .cn-cb-fab-stack, body.a:has(.a-mm.show, .a-mm.showing) .grecaptcha-badge { visibility: hidden !important; }
@media (min-width: 576px) {
    .a-mm-body, .a-mm-top, .a-mm-dock { padding-left: max(32px, calc((100% - 620px) / 2)); padding-right: max(32px, calc((100% - 620px) / 2)); }
}
@media (prefers-reduced-motion: reduce) {
    .a-mm.offcanvas { transition-duration: .01s !important; }
    .a-mm-list > li, .a-mm-dock { transition: none !important; opacity: 1; transform: none; }
}

/* ==========================================================================
   INNER PAGES (shared pieces: breadcrumb, page hero, blocks, hours card, quote)
   ========================================================================== */
/* page header: breadcrumb + page title (every inner page) */
.a-pagehead { position: relative; overflow: hidden; padding: 40px 0 64px; background: var(--paper-2); border-bottom: 1px solid var(--line); }
.a-pagehead::before, .a-pagehead::after { content: ""; position: absolute; right: max(24px, calc((100% - 1380px) / 2 + 20px)); bottom: -1px; width: 300px; height: 230px; border: 1px solid var(--line-2); border-bottom: 0; border-radius: 999px 999px 0 0; pointer-events: none; }
.a-pagehead::after { right: max(84px, calc((100% - 1380px) / 2 + 80px)); width: 180px; height: 150px; border-color: rgba(29, 90, 118, .18); }
.a-pagehead .container { position: relative; z-index: 1; }
.a-pagehead .a-crumbs ol { margin-bottom: 22px; }
.a .a-pagehead-title { max-width: 900px; font-size: clamp(2.5rem, 5.6vw, 4.75rem); line-height: 1.04; letter-spacing: -.02em; }
.a-intro-title em { display: block; margin-top: 6px; }
.a-intro-lead { max-width: 640px; margin: 24px 0 32px !important; font-size: 1.125rem; line-height: 1.75; }
.a .a-dprof-title { margin: 10px 0 0; }
.a h2.a-eyebrow, .a h5.a-eyebrow { font-family: var(--sans); font-size: .8125rem; font-weight: 600; line-height: 1.4; letter-spacing: .18em; }
.a .a-crumbs ol { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; margin: 0 0 40px; padding: 0; list-style: none; font-size: .875rem; color: var(--muted); }
.a-crumbs li { display: inline-flex; align-items: center; gap: 10px; }
.a-crumbs li + li::before { content: ""; width: 5px; height: 5px; border-top: 1.5px solid var(--line-2); border-right: 1.5px solid var(--line-2); transform: rotate(45deg); }
.a-crumbs a { color: var(--muted); text-decoration: none; }
.a-crumbs a:hover { color: var(--teal); text-decoration: underline; text-underline-offset: 4px; }
.a-crumbs [aria-current] { color: var(--ink); font-weight: 500; }
.a-phero-img { position: relative; margin: 0; }
.a-phero-img img { display: block; width: 100%; height: 560px; object-fit: cover; border-radius: 999px 999px var(--r-l) var(--r-l); background: var(--paper-2); }
.a-phero-img::after { content: ""; position: absolute; inset: 18px -18px -18px 18px; z-index: -1; border: 1px solid var(--line-2); border-radius: 999px 999px var(--r-l) var(--r-l); }
.a-jump { display: grid; gap: 10px; }
.a-jump a { display: flex; align-items: center; gap: 14px; padding: 10px 18px 10px 10px; border: 1px solid var(--line); border-radius: 999px; background: var(--card); color: var(--ink); text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.a-jump a:hover { border-color: var(--line-2); box-shadow: var(--shadow); }
.a-jump img { width: 56px; height: 56px; flex: none; border-radius: 50%; object-fit: cover; background: var(--paper-2); }
.a-jump span { flex: 1; font-size: .875rem; color: var(--muted); }
.a-jump b { display: block; font-family: var(--serif); font-size: 1.25rem; font-weight: 400; color: var(--ink); }
.a-jump .a-ico { color: var(--teal); }
.a-member { scroll-margin-top: calc(var(--head-h) + 24px); }
.a-member + .a-member { margin-top: 72px; padding-top: 72px; border-top: 1px solid var(--line); }
.a-member-img { max-width: 480px; }
.a-member-img img { height: 580px; }
.a .a-member-name { margin: 10px 0 24px; font-size: clamp(2rem, 3.6vw, 3.25rem); line-height: 1.08; }
.a-member-name a { color: var(--ink); text-decoration: none; }
.a-member-name a:hover { color: var(--teal); }
.a-member-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 32px; margin-bottom: 30px !important; }
.a-member-list li { display: flex; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--line); line-height: 1.5; color: var(--ink); }
.a-member-list .a-ico { flex: none; margin-top: 2px; color: var(--teal); }
.a-phero-aside { display: grid; justify-items: start; gap: 14px; padding: 26px 28px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); }
.a-phero-aside p { display: flex; align-items: center; gap: 8px; margin: 0; color: var(--ink); }
.a-phero-aside p .a-ico { color: var(--teal); }
.a-status.a-status--light { border-color: var(--line-2); color: var(--ink); }
.a-status.a-status--light.is-open { border-color: rgba(46, 125, 79, .35); color: #1F5E3A; }
.a-status.a-status--light.is-open i { background: #2E9E5F; box-shadow: 0 0 0 4px rgba(46, 158, 95, .15); }
.a-facs { margin: 0; }
.a-fac { position: relative; display: flex; flex-direction: column; gap: 14px; height: 100%; min-height: 170px; padding: 26px; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--card); transition: border-color .2s, box-shadow .2s, transform .2s; }
.a-fac:hover { border-color: var(--line-2); box-shadow: var(--shadow); transform: translateY(-2px); }
.a-fac .a-ico { color: var(--teal); }
.a-fac b { margin-top: auto; font-family: var(--serif); font-size: 1.375rem; font-weight: 400; line-height: 1.25; color: var(--ink); }
.a-fac-no { position: absolute; top: 22px; right: 24px; font-size: .78rem; font-weight: 600; letter-spacing: .14em; color: var(--muted); }
.a-photos { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.a-photos a { display: block; overflow: hidden; border-radius: var(--r-m); background: var(--paper-2); }
.a-photos img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s; }
.a-photos a:hover img { transform: scale(1.04); }
.a-contact { display: grid; gap: 0; margin: 4px 0 28px !important; }
.a-contact li { display: flex; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--line); }
.a-contact li:first-child { padding-top: 8px; }
.a-contact-ico { display: grid; place-items: center; width: 52px; height: 52px; flex: none; border-radius: 50%; background: var(--card); border: 1px solid var(--line); color: var(--teal); }
.a .a-contact h5 { margin: 4px 0 6px; font-family: var(--sans); font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.a-contact a { display: block; font-size: 1.0625rem; line-height: 1.6; color: var(--ink); text-decoration: none; }
.a-contact a:hover { color: var(--teal); text-decoration: underline; text-underline-offset: 4px; }
.a-social-btns { display: flex; gap: 10px; }
.a-social-btns a { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 50%; border: 1px solid var(--line-2); color: var(--ink); transition: background .2s, color .2s, border-color .2s; }
.a-social-btns a:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.a-form-wrap .a-form { border: 1px solid var(--line); background: var(--card); box-shadow: var(--shadow); }
.a-map-sec { padding-bottom: 104px; }
.a-map { overflow: hidden; border-radius: var(--r-l); border: 1px solid var(--line); background: var(--paper-2); }
.a-map iframe { display: block; border: 0; }
.a-masonry { columns: 3 300px; column-gap: 18px; }
.a-masonry li { break-inside: avoid; margin-bottom: 18px; }
.a-masonry a { position: relative; display: block; overflow: hidden; border-radius: var(--r-m); background: var(--paper-2); }
.a-masonry img { display: block; width: 100%; height: auto; transition: transform .6s; }
.a-masonry a::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, rgba(12, 39, 51, .35)); opacity: 0; transition: opacity .3s; }
.a-masonry a:hover img { transform: scale(1.03); }
.a-masonry a:hover::after { opacity: 1; }
/* doctor profile */
.a-dhero-role { margin: 12px 0 26px !important; font-family: var(--serif); font-size: clamp(1.125rem, 1.8vw, 1.5rem); font-style: italic; line-height: 1.4; color: var(--teal); }
.a-cred { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 32px !important; }
.a-cred li { padding: 8px 14px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--card); font-size: .875rem; line-height: 1.4; color: var(--ink); }
.a .a-prose-title { margin-bottom: 22px; font-size: clamp(2rem, 3.4vw, 3rem); }
.a-prose > p { font-size: 1.0625rem; line-height: 1.8; }
.a-prose > p + p { margin-top: 18px; }
.a-cv { margin-top: 40px !important; margin-bottom: 40px !important; }
.a-cv-card { height: 100%; padding: 28px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); }
.a .a-cv-card h4 { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; font-size: 1.5rem; }
.a-cv-card h4 .a-ico { color: var(--teal); }
.a-cv-card li { position: relative; padding: 10px 0 10px 18px; border-bottom: 1px solid var(--line); line-height: 1.55; color: var(--ink); }
.a-cv-card li:last-child { border-bottom: 0; }
.a-cv-card li::before { content: ""; position: absolute; left: 0; top: 19px; width: 6px; height: 6px; border-radius: 50%; background: var(--line-2); }
.a .a-hours h4 { display: flex; align-items: center; gap: 10px; margin: 0 0 12px; font-size: 1.5rem; color: var(--paper); }
.a .a-hours h4 .a-ico { color: #A9C6D3; }
.a .a-hours h4 + p { margin-bottom: 22px; }
.a-hours-list--top { margin: 26px 0 18px !important; border-top: 1px solid #2E5465; }
/* specialties tabs */
.a-stabs { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.a-stab { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 8px 20px 8px 10px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--card); font-weight: 600; color: var(--ink); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.a-stab img { width: 34px; height: 34px; padding: 4px; border-radius: 50%; background: var(--paper); object-fit: contain; }
.a-stab:hover { border-color: var(--ink); }
.a-stab.active { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.a .a-stab-title { margin-bottom: 18px; font-size: clamp(1.75rem, 3vw, 2.5rem); }
.a-stabs-sec .tab-pane p { line-height: 1.8; }
.a-stabs-sec .tab-pane p + p { margin-top: 16px; }
.a-stabs-sec .tab-pane .a-btn { margin-top: 28px; }
.a-expertise { padding: 30px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); }
.a .a-expertise h6 { margin: 0 0 12px; font-family: var(--sans); font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.a-exp-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
.a-exp-list li { border-bottom: 1px solid var(--line); }
.a-exp-list a, .a-exp-plain { display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 8px 0; line-height: 1.35; color: var(--ink); text-decoration: none; }
.a-exp-list a span, .a-exp-plain > span { flex: 1; }
.a-exp-list .a-ico { flex: none; color: var(--teal); }
.a-exp-list a .a-ico:last-child { color: var(--line-2); transition: transform .15s, color .15s; }
.a-exp-list a:hover { color: var(--teal); }
.a-exp-list a:hover .a-ico:last-child { color: var(--teal); transform: translateX(3px); }
.a-exp-plain { color: var(--warm); }
.a-exp-plain .a-ico { color: var(--line-2) !important; }
.a-statement { margin-bottom: 48px !important; font-family: var(--serif); font-size: clamp(1.375rem, 2.2vw, 1.875rem); line-height: 1.4; color: var(--ink); }
.a-block { display: flex; flex-direction: column; gap: 14px; height: 100%; padding: 32px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); }
.a-block p { margin: 0; }
.a-block .a-link { margin-top: auto; align-self: flex-start; }
.a-block-tag { display: inline-flex; align-items: center; gap: 8px; font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--teal); }

.a-hours { position: sticky; top: calc(var(--head-h) + 24px); padding: 34px; border-radius: var(--r-l); background: var(--ink); color: #C9D6DC; }
.a .a-hours h5 { display: flex; align-items: center; gap: 10px; margin: 0 0 16px; font-family: var(--serif); font-size: 1.375rem; font-weight: 400; color: var(--paper); }
.a .a-hours h5 .a-ico { color: #A9C6D3; }
.a .a-hours h5 + p { margin-bottom: 22px; }
.a-hours-list { margin: 0 0 18px !important; }
.a-hours-list li { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid #2E5465; font-size: .9375rem; }
.a-hours-list b { font-weight: 600; color: #fff; text-align: right; }
.a-hours .a-status { margin-bottom: 30px !important; }
.a-hours-call { display: block; margin-top: 14px; text-align: center; font-size: .9375rem; color: #D7E3E9 !important; text-decoration: none; }
.a-hours-call strong { color: #fff; }
.a-status { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 12px; border-radius: 999px; border: 1px solid #2E5465; font-size: .84rem; line-height: 1.35; color: #D7E3E9; }
.a-status i { width: 8px; height: 8px; flex: none; border-radius: 50%; background: #8FA9B7; }
.a-status.is-open { border-color: rgba(60, 203, 127, .45); color: #C9F2D9; }
.a-status.is-open i { background: #3CCB7F; box-shadow: 0 0 0 4px rgba(60, 203, 127, .18); }
.a-status.is-closed i { background: #F2B84B; }

.a-mission-card { display: flex; flex-direction: column; gap: 16px; padding: 30px; border: 1px solid var(--line-2); border-radius: var(--r-l); background: var(--card); }
.a-mission-card .a-link { align-self: flex-start; }
.a-mission-list { display: grid; gap: 12px; }
.a-mission .a-quote { margin-top: 18px; }
.a-mission-list li { display: flex; align-items: center; gap: 10px; font-weight: 500; color: var(--ink); }
.a-mission-list .a-ico { color: var(--teal); }
.a-quote { position: relative; margin: 0; padding: 8px 0 0 64px; }
.a-quote::before { content: "\201C"; position: absolute; left: 0; top: -18px; font-family: var(--serif); font-size: 7rem; line-height: 1; color: var(--line-2); }
.a-quote p { margin: 0; font-family: var(--serif); font-size: clamp(1.375rem, 2.4vw, 2.125rem); line-height: 1.4; color: var(--ink); }

@media (max-width: 991.98px) {
    .a-phero-img { max-width: 460px; }
    .a-phero-img img { height: 480px; }
    .a-pagehead::before { width: 220px; height: 170px; }
    .a-pagehead::after { width: 130px; height: 110px; right: 64px; }
    .a-hours { position: static; }
    .a-member-img img { height: 500px; }
    .a-photos { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .a-stabs { justify-content: flex-start; }
}
@media (max-width: 575.98px) {
    .a .a-crumbs ol { margin-bottom: 26px; font-size: .8125rem; }
    .a-phero-img img { height: 380px; }
    .a-phero-img::after { inset: 12px -10px -12px 10px; }
    .a-statement { margin-bottom: 32px !important; font-size: 1.25rem; }
    .a-block { padding: 24px 22px; border-radius: var(--r-m); }
    .a-hours { padding: 26px 22px; border-radius: var(--r-m); }
    .a-quote { padding-left: 0; padding-top: 40px; }
    .a-quote::before { top: -10px; font-size: 5rem; }
    .a-quote p { font-size: 1.25rem; }
    .a-member + .a-member { margin-top: 48px; padding-top: 48px; }
    .a-member-img img { height: 400px; }
    .a .a-member-name { margin-bottom: 14px; font-size: 1.75rem; }
    .a-member-list { grid-template-columns: 1fr; margin-bottom: 24px !important; }
    .a-member-list li { padding: 11px 0; font-size: .9375rem; }
    .a-jump b { font-size: 1.0625rem; }
    .a-phero-aside { padding: 20px 22px; }
    .a-fac { min-height: 138px; padding: 18px; gap: 10px; }
    .a-fac b { font-size: 1.0625rem; }
    .a-fac-no { top: 16px; right: 16px; }
    .a-photos { gap: 10px; }
    .a-contact li { gap: 14px; padding: 18px 0; }
    .a-contact-ico { width: 44px; height: 44px; }
    .a-contact a { font-size: 1rem; overflow-wrap: anywhere; }
    .a-map-sec { padding-bottom: 64px; }
    .a-map iframe { height: 340px; }
    .a-masonry { columns: 2; column-gap: 10px; }
    .a-masonry li { margin-bottom: 10px; }
    .a-dhero-role { margin: 8px 0 18px !important; font-size: 1.0625rem; }
    .a-pagehead { padding: 24px 0 40px; }
    .a-pagehead::before, .a-pagehead::after { display: none; }
    .a .a-pagehead-title { font-size: 2.25rem; }
    .a-intro-lead { margin: 18px 0 26px !important; font-size: 1rem; line-height: 1.7; }
    .a-cred li { padding: 6px 12px; font-size: .8125rem; }
    .a-prose > p { font-size: 1rem; line-height: 1.75; }
    .a-cv { margin-top: 28px !important; margin-bottom: 28px !important; }
    .a-cv-card, .a-expertise { padding: 22px; border-radius: var(--r-m); }
    .a .a-cv-card h4, .a .a-hours h4 { font-size: 1.25rem; }
    .a-stabs { justify-content: flex-start; }
    .a-stab { min-height: 46px; padding: 6px 14px 6px 6px; font-size: .875rem; }
    .a-stab img { width: 30px; height: 30px; }
    .a-exp-list { grid-template-columns: 1fr; }
}

/* ==========================================================================
   TREATMENT PAGES (each page is written by hand; these are the shared styles)
   ========================================================================== */
.a-tx-points { display: grid; gap: 12px; margin-bottom: 34px !important; }
.a-tx-points li { display: flex; align-items: flex-start; gap: 12px; font-weight: 500; color: var(--ink); }
.a-tx-points .a-ico { flex: none; margin-top: 2px; color: var(--teal); }
.a-tx-intro .a-intro-lead { margin-bottom: 26px !important; }
.a-tx-img { margin: 0; }
.a-tx-img img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--r-l); background: var(--line); }
.a-tx-statement { margin-bottom: 20px !important; font-size: clamp(1.25rem, 2vw, 1.625rem); }
.a-tx-overview p:not(.a-statement) { font-size: 1.0625rem; line-height: 1.8; }

/* "On this page" bar: sticks under the header */
.a-toc { position: sticky; top: var(--head-h); z-index: 1010; background: rgba(250, 248, 244, .94); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); border-bottom: 1px solid var(--line); }
.a-toc ul { display: flex; gap: 6px; overflow-x: auto; scrollbar-width: none; padding: 10px 0; }
.a-toc ul::-webkit-scrollbar { display: none; }
.a-toc a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: 999px; white-space: nowrap; font-size: .9375rem; font-weight: 500; color: var(--muted); text-decoration: none; transition: background .2s, color .2s; }
.a-toc a:hover { color: var(--ink); background: var(--paper-2); }
.a-toc a.is-active { background: var(--ink); color: var(--paper); }
html:has(.a-toc) { scroll-padding-top: calc(var(--head-h) + 62px); }  /* header + "On this page" bar */

.a .a-tx-h { margin-bottom: 16px; font-size: clamp(1.625rem, 2.6vw, 2.25rem); line-height: 1.2; }
.a-tx-split { margin-top: 72px !important; padding-top: 72px; border-top: 1px solid var(--line); }

.a-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.a-checks li { display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--card); line-height: 1.55; color: var(--ink); }
.a-checks .a-ico { flex: none; margin-top: 2px; color: var(--teal); }
.a-tx-prose p { font-size: 1.0625rem; line-height: 1.8; }
.a-tx-prose p + p { margin-top: 14px; }
.a-tx-overview .a-tx-h { margin-bottom: 14px; }

.a-steps-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; counter-reset: tx; }
.a-steps-list li { position: relative; padding: 24px 24px 24px 76px; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--card); counter-increment: tx; }
.a-steps-list li::before { content: counter(tx, decimal-leading-zero); position: absolute; left: 22px; top: 22px; display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line-2); font-size: .8125rem; font-weight: 600; color: var(--teal); }
.a-steps-list b { display: block; margin-bottom: 6px; font-family: var(--serif); font-size: 1.25rem; font-weight: 400; line-height: 1.25; color: var(--ink); }
.a-steps-list p { margin: 0; font-size: .9375rem; line-height: 1.6; }

.a-tx-spec-head { margin-bottom: 36px !important; }
.a-tx-doc { padding: 40px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); }
.a-tx-doc-img { display: block; overflow: hidden; border-radius: 999px 999px var(--r-l) var(--r-l); background: var(--paper-2); }
.a-tx-doc-img img { display: block; width: 100%; height: 420px; object-fit: cover; object-position: 30% 15%; transition: transform .5s; }
.a-tx-doc-img:hover img { transform: scale(1.03); }
.a .a-tx-doc-name { font-size: clamp(2rem, 3.2vw, 2.75rem); }
.a-tx-doc-name a { color: var(--ink); text-decoration: none; }
.a-tx-doc-name a:hover { color: var(--teal); }
.a .a-tx-doc-role { margin: 8px 0 4px; font-family: var(--serif); font-size: 1.25rem; font-style: italic; font-weight: 400; color: var(--teal); }
.a .a-tx-doc-qual { margin: 0 0 20px; font-family: var(--sans); font-size: .8125rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--muted); }
.a-tx-doc p { line-height: 1.75; }
.a-tx-doc p + p { margin-top: 14px; }
.a-tx-doc .a-ctas { margin-top: 28px; }

.a-related { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.a-related a { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 64px; padding: 14px 20px; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--card); color: var(--ink); text-decoration: none; font-weight: 500; transition: border-color .2s, box-shadow .2s, color .2s; }
.a-related a:hover { border-color: var(--line-2); box-shadow: var(--shadow); color: var(--teal); }
.a-related .a-ico { flex: none; color: var(--teal); }

@media (max-width: 991.98px) {
    .a-tx-split { margin-top: 56px !important; padding-top: 56px; }
    .a-related { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .a-tx-doc-img { max-width: 360px; }
}
@media (max-width: 575.98px) {
    .a-toc ul { padding: 8px 0; }
    .a-toc a { min-height: 38px; padding: 0 14px; font-size: .875rem; }
    .a-tx-split { margin-top: 44px !important; padding-top: 44px; }
    .a-steps-list { grid-template-columns: 1fr; gap: 12px; }
    .a-checks { grid-template-columns: 1fr; gap: 8px; }
    .a-checks li { padding: 14px 16px; }
    .a-tx-prose p { font-size: 1rem; }
    .a-steps-list li { padding: 20px 18px 20px 66px; }
    .a-steps-list li::before { left: 16px; top: 18px; }
    .a-steps-list b { font-size: 1.125rem; }
    .a-tx-doc { padding: 22px; border-radius: var(--r-m); }
    .a-tx-doc-img img { height: 340px; }
    .a .a-tx-doc-name { font-size: 1.75rem; }
    .a-related { grid-template-columns: 1fr; gap: 8px; }
    .a-related a { min-height: 56px; }
}

/* symptoms: dark band with a tap-to-note checklist */
.a-sx { position: relative; overflow: hidden; background: var(--night); color: #B9C8CF; }
.a-sx::before, .a-sx::after { content: ""; position: absolute; top: -120px; right: -80px; width: 420px; height: 420px; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .06); pointer-events: none; }
.a-sx::after { top: -40px; right: 0; width: 260px; height: 260px; border-color: rgba(242, 210, 155, .10); }
.a-sx .container { position: relative; z-index: 1; }
.a-sx .a-h2 { color: var(--paper); }
.a-sx-head { margin-bottom: 40px !important; }
.a-sx-head + .a-sx-head { margin-top: 56px !important; }
.a-sx-lead { margin: 0 !important; font-size: 1.0625rem; line-height: 1.75; color: #B9C8CF; }
.a-sx-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.a-sx-list--rich { grid-template-columns: repeat(auto-fill, minmax(330px, 1fr)); }
.a-sx-list + .a-sx-list { margin-top: 12px !important; }
.a-sx-item { display: flex; align-items: flex-start; gap: 14px; width: 100%; height: 100%; padding: 18px 20px; border: 1px solid rgba(255, 255, 255, .12); border-radius: var(--r-m); background: rgba(255, 255, 255, .04); font: inherit; font-weight: 500; line-height: 1.45; text-align: left; color: #E6EEF1; cursor: pointer; transition: background .2s, border-color .2s, color .2s, transform .2s; }
.a-sx-item:hover { border-color: rgba(255, 255, 255, .32); background: rgba(255, 255, 255, .08); }
.a-sx-item:active { transform: scale(.985); }
.a-sx-item:focus-visible { outline: 2px solid var(--gold); outline-offset: 2px; }
.a-sx-tick { display: grid; place-items: center; width: 28px; height: 28px; flex: none; border: 1.5px solid rgba(255, 255, 255, .35); border-radius: 50%; color: transparent; transition: background .2s, border-color .2s, color .2s; }
.a-sx-item[aria-pressed="true"] { border-color: var(--paper); background: var(--paper); color: var(--ink); }
.a-sx-item[aria-pressed="true"] .a-sx-tick { border-color: var(--ink); background: var(--ink); color: var(--gold); }
.a-sx-txt { padding-top: 3px; }
.a-sx-txt b { display: block; font-family: var(--serif); font-size: 1.1875rem; font-weight: 400; line-height: 1.3; }
.a-sx-txt small { display: block; margin-top: 6px; font-size: .875rem; line-height: 1.55; opacity: .8; }
.a-sx-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; margin-top: 28px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, .12); }
.a-sx-note { margin: 0 !important; font-size: 1rem; color: #D7E3E9; transition: color .2s; }
.a-sx-check.has-picks .a-sx-note { color: var(--gold); }

/* causes: editorial numbered index */
.a-cz-intro { position: sticky; top: calc(var(--head-h) + 90px); }
.a-cz-list { border-top: 1px solid var(--line-2); }
.a-cz-list li { display: grid; grid-template-columns: 84px minmax(0, 1fr); gap: 20px; align-items: baseline; padding: 24px 0; border-bottom: 1px solid var(--line-2); }
.a-cz-no { font-family: var(--serif); font-size: 2.75rem; font-style: italic; line-height: 1; color: var(--teal); transition: color .2s, transform .2s; }
.a-cz-list li:hover .a-cz-no { color: var(--ink); transform: translateX(4px); }
.a-cz-body b { display: block; font-family: var(--serif); font-size: 1.5rem; font-weight: 400; line-height: 1.25; color: var(--ink); }
.a-cz-body p { margin: 8px 0 0; line-height: 1.7; }
.a .a-cz-body .a-cz-txt { margin: 0; font-family: var(--serif); font-size: 1.375rem; line-height: 1.35; color: var(--ink); }
.a-cz-list--2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px; }
.a-cz-list--2 li { grid-template-columns: 64px minmax(0, 1fr); }

/* diagnosis: vertical timeline */
.a-dx { position: relative; }
.a-dx::before { content: ""; position: absolute; left: 25px; top: 28px; bottom: 28px; width: 2px; background: linear-gradient(var(--teal), var(--line-2)); }
.a-dx li { position: relative; display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: 24px; padding-bottom: 34px; }
.a-dx li:last-child { padding-bottom: 0; }
.a-dx-dot { position: relative; z-index: 1; display: grid; place-items: center; width: 52px; height: 52px; border: 2px solid var(--teal); border-radius: 50%; background: var(--paper-2); color: var(--teal); transition: background .2s, color .2s; }
.a-dx li:first-child .a-dx-dot, .a-dx li:hover .a-dx-dot { border-color: var(--ink); background: var(--ink); color: var(--paper); }
.a-dx-body { padding-top: 4px; }
.a-dx-step { display: block; margin-bottom: 4px; font-size: .75rem; font-weight: 600; letter-spacing: .16em; color: var(--muted); }
.a .a-dx-body h3 { margin-bottom: 8px; font-size: 1.5rem; }
.a-dx-body p { margin: 0; max-width: 620px; line-height: 1.7; }
.a .a-dx-body .a-dx-txt { font-family: var(--serif); font-size: 1.375rem; line-height: 1.35; color: var(--ink); }

@media (max-width: 991.98px) {
    .a-cz-intro { position: static; }
}
@media (max-width: 575.98px) {
    .a-sx::before, .a-sx::after { display: none; }
    .a-sx-head { margin-bottom: 26px !important; }
    .a-sx-lead { font-size: 1rem; }
    .a-sx-list, .a-sx-list--rich { grid-template-columns: 1fr; gap: 8px; }
    .a-sx-item { padding: 14px 16px; gap: 12px; }
    .a-sx-txt b { font-size: 1.0625rem; }
    .a-sx-foot { margin-top: 20px; padding-top: 20px; }
    .a-sx-foot .a-btn { width: 100%; }
    .a-cz-list li, .a-cz-list--2 li { grid-template-columns: 52px minmax(0, 1fr); gap: 12px; padding: 18px 0; }
    .a-cz-no { font-size: 2rem; }
    .a-cz-body b { font-size: 1.1875rem; }
    .a .a-cz-body .a-cz-txt { font-size: 1.125rem; }
    .a-cz-list--2 { grid-template-columns: 1fr; }
    .a-dx::before { left: 21px; }
    .a-dx li { grid-template-columns: 44px minmax(0, 1fr); gap: 16px; padding-bottom: 26px; }
    .a-dx-dot { width: 44px; height: 44px; }
    .a .a-dx-body h3 { font-size: 1.1875rem; }
    .a .a-dx-body .a-dx-txt { font-size: 1.125rem; }
}
@media (prefers-reduced-motion: reduce) {
    .a-sx-item, .a-cz-no { transition: none; }
}

/* ==========================================================================
   LEGAL, FEEDBACK & 404 PAGES
   ========================================================================== */
.a-legal-toc { position: sticky; top: calc(var(--head-h) + 32px); padding: 28px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); }
.a-legal-toc ol { display: grid; gap: 2px; counter-reset: lg; }
.a-legal-toc li { counter-increment: lg; }
.a-legal-toc a { display: flex; gap: 12px; padding: 9px 12px; border-radius: 10px; color: var(--muted); text-decoration: none; font-size: .9375rem; line-height: 1.4; transition: background .2s, color .2s; }
.a-legal-toc a::before { content: counter(lg, decimal-leading-zero); font-size: .75rem; font-weight: 600; letter-spacing: .08em; line-height: 1.9; color: var(--line-2); }
.a-legal-toc a:hover { background: var(--paper-2); color: var(--ink); }
.a-legal-toc a.is-active { background: var(--ink); color: var(--paper); }
.a-legal-toc a.is-active::before { color: var(--gold); }
.a-legal-body > .a-h2 { margin-bottom: 18px; font-size: clamp(1.75rem, 3vw, 2.5rem); }
.a-legal-body > .a-statement { margin-bottom: 40px !important; padding-bottom: 36px; border-bottom: 1px solid var(--line); }
.a-legal-body section { padding: 28px 0; border-bottom: 1px solid var(--line); scroll-margin-top: calc(var(--head-h) + 24px); }
.a-legal-body section:first-of-type { padding-top: 0; }
.a .a-legal-body h3 { display: flex; align-items: baseline; gap: 16px; margin-bottom: 12px; font-size: clamp(1.375rem, 2.2vw, 1.75rem); }
.a-legal-body { counter-reset: lsec; }
.a-legal-body section { counter-increment: lsec; }
.a-legal-body h3::before { content: counter(lsec, decimal-leading-zero); font-family: var(--sans); font-size: .8125rem; font-weight: 600; letter-spacing: .12em; color: var(--teal); }
.a-legal-body section p { margin: 0; font-size: 1.0625rem; line-height: 1.8; }
.a-legal-dl { display: grid; grid-template-columns: minmax(150px, 220px) minmax(0, 1fr); gap: 14px 28px; margin: 0; }
.a-legal-dl dt { font-weight: 600; color: var(--ink); }
.a-legal-dl dd { margin: 0; line-height: 1.75; }
.a-legal-note { display: flex; align-items: flex-start; gap: 14px; margin-top: 36px !important; padding: 22px 26px; border-radius: var(--r-m); background: var(--ink); color: var(--paper); line-height: 1.6; }
.a-legal-note .a-ico { flex: none; margin-top: 2px; color: var(--gold); }
.a-legal-note strong { font-weight: 500; }

.a-fb-ways { display: grid; gap: 12px; }
.a-fb-ways li { display: flex; align-items: center; gap: 18px; padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--card); }
.a-fb-ico { display: grid; place-items: center; width: 52px; height: 52px; flex: none; border-radius: 50%; background: var(--ink); color: var(--paper); }
.a-fb-ways small { display: block; margin-bottom: 2px; font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.a-fb-ways div > a, .a-fb-ways div > span { font-size: 1.125rem; color: var(--ink); text-decoration: none; overflow-wrap: anywhere; }
.a-fb-ways a:hover { color: var(--teal); }
.a-callout { display: flex; align-items: flex-start; gap: 18px; margin-top: 56px; padding: 28px 32px; border-left: 3px solid var(--teal); border-radius: 0 var(--r-m) var(--r-m) 0; background: var(--paper-2); }
.a-callout-ico { flex: none; color: var(--teal); }
.a-callout p { margin: 0; font-size: 1.0625rem; line-height: 1.75; color: var(--ink); }

.a-404-num { margin: 0 !important; font-family: var(--serif); font-size: clamp(7rem, 20vw, 15rem); font-style: italic; line-height: .9; letter-spacing: -.04em; color: var(--ink); }
.a-404-num span { color: var(--teal); }
.a-404-links { margin-top: 72px; padding-top: 56px; border-top: 1px solid var(--line); }
.a-404-links .a-tx-h { margin-bottom: 24px; }

@media (max-width: 991.98px) {
    .a-legal-toc { position: static; }
    .a-legal-toc ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .a-legal-toc { padding: 20px; }
    .a-legal-toc ol { grid-template-columns: 1fr; }
    .a-legal-dl { grid-template-columns: 1fr; gap: 4px; }
    .a-legal-dl dd + dt { margin-top: 12px; }
    .a-legal-body section p { font-size: 1rem; }
    .a-legal-note { padding: 18px 20px; }
    .a-fb-ways li { padding: 18px; gap: 14px; }
    .a-fb-ico { width: 44px; height: 44px; }
    .a-fb-ways div > a, .a-fb-ways div > span { font-size: 1rem; }
    .a-callout { margin-top: 40px; padding: 22px 20px; }
    .a-callout p { font-size: 1rem; }
    .a-404-links { margin-top: 48px; padding-top: 40px; }
}

/* ==========================================================================
   BLOGS & NEWS LISTINGS
   ========================================================================== */
.a-bsearch { display: flex; align-items: center; gap: 12px; height: 56px; padding: 0 20px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--card); color: var(--muted); cursor: text; transition: border-color .2s, box-shadow .2s; }
.a-bsearch:focus-within { border-color: var(--teal); box-shadow: 0 0 0 4px rgba(29, 90, 118, .12); }
.a-bsearch input { flex: 1; min-width: 0; height: 100%; border: 0; background: none; outline: 0; font: inherit; font-size: 1rem; color: var(--ink); }
.a-bsearch input::placeholder { color: #A39C94; }
.a-bfilters { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin-bottom: 18px; padding-bottom: 4px; }
.a-bfilters::-webkit-scrollbar { display: none; }
.a-bchip { display: inline-flex; align-items: center; gap: 8px; flex: none; min-height: 44px; padding: 0 18px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--card); font: inherit; font-size: .9375rem; font-weight: 500; color: var(--ink); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.a-bchip span { padding: 2px 8px; border-radius: 999px; background: var(--paper-2); font-size: .75rem; font-weight: 600; color: var(--muted); }
.a-bchip:hover { border-color: var(--ink); }
.a-bchip.is-active { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.a-bchip.is-active span { background: rgba(255, 255, 255, .14); color: var(--gold); }
.a-bstatus { margin-bottom: 26px !important; font-size: .9375rem; color: var(--muted); }
.a-bgrid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px 24px; }
.a-bgrid.is-ready .a-bcard:not(.is-shown) { display: none; }
.a-bcard a, .a-news-card { display: flex; flex-direction: column; height: 100%; color: var(--ink); text-decoration: none; }
.a-bcard figure, .a-news-card figure { margin: 0 0 16px; overflow: hidden; border-radius: var(--r-m); background: var(--paper-2); }
.a-bcard img, .a-news-card img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; transition: transform .5s; }
.a-bcard img { object-fit: contain; }  /* thumbnails carry printed titles: never crop them (16:9 ones letterbox in the 4:3 frame) */
.a-bcard a:hover img, .a-news-card:hover img { transform: scale(1.04); }
.a-bcard-tag { margin-bottom: 8px; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--teal); }
.a .a-bcard h3 { overflow-wrap: anywhere; hyphens: auto; -webkit-hyphens: auto; margin-bottom: 14px; font-size: 1.25rem; font-weight: 400; line-height: 1.3; }
.a .a-bcard h3[lang="hi"] { font-family: var(--sans); font-size: 1.0625rem; font-weight: 600; line-height: 1.5; }
.a-bcard a:hover h3 { color: var(--teal); }
.a-bcard-more { display: inline-flex; align-items: center; gap: 6px; margin-top: auto; font-size: .9375rem; font-weight: 500; color: var(--teal); }
.a-bcard a:hover .a-bcard-more .a-ico { transform: translateX(3px); }
.a-bcard-more .a-ico { transition: transform .2s; }
.a-bempty { padding: 56px 24px; border: 1px dashed var(--line-2); border-radius: var(--r-l); text-align: center; }
.a-bempty p { margin-bottom: 8px !important; font-family: var(--serif); font-size: 1.5rem; color: var(--ink); }
.a-pager { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px; margin-top: 56px; padding-top: 32px; border-top: 1px solid var(--line); }
.a-pager button { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--card); font: inherit; font-size: .9375rem; font-weight: 500; color: var(--ink); cursor: pointer; transition: background .2s, color .2s, border-color .2s; }
.a-pager button:hover:not(:disabled) { border-color: var(--ink); }
.a-pager button[aria-current="page"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.a-pager button:disabled { opacity: .4; cursor: default; }
.a-pager .a-pager-step { display: inline-flex; gap: 6px; padding: 0 18px; }
.a-pager-gap { padding: 0 4px; color: var(--muted); }

.a-news { display: grid; gap: 24px; }
.a-news-empty { display: grid; justify-items: center; gap: 14px; padding: 64px 24px; }
.a-news-empty span { max-width: 520px; line-height: 1.7; }
.a-news-card { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); align-items: center; gap: 48px; padding: 24px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); transition: box-shadow .25s, border-color .25s; }
.a-news-card:hover { border-color: var(--line-2); box-shadow: var(--shadow); }
.a-news-card figure { margin: 0; }
.a-news-body { display: flex; flex-direction: column; align-items: flex-start; }
.a .a-news-body h3 { margin-bottom: 20px; font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.15; }
.a-news-card:hover h3 { color: var(--teal); }
.a-news-body .a-bcard-more { font-size: 1rem; }

@media (max-width: 1199.98px) { .a-bgrid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767.98px) {
    .a-bgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px 16px; }
    .a-news-card { grid-template-columns: 1fr; gap: 20px; padding: 16px; }
}
@media (max-width: 575.98px) {
    .a-bsearch { height: 50px; padding: 0 16px; }
    .a-bchip { min-height: 40px; padding: 0 14px; font-size: .875rem; }
    .a .a-bcard h3 { font-size: 1.0625rem; }
    .a .a-bcard h3[lang="hi"] { font-size: .9375rem; }
    .a-bcard figure { margin-bottom: 12px; border-radius: var(--r-s); }
    .a-bcard-tag { font-size: .6875rem; letter-spacing: .1em; }
    .a-bcard-more { font-size: .875rem; }
    .a-pager { margin-top: 40px; gap: 4px; }
    .a-pager button { min-width: 40px; height: 40px; padding: 0 10px; }
    .a-pager .a-pager-step { padding: 0 12px; }
    .a-pager .a-pager-step span { display: none; }
    .a .a-news-body h3 { font-size: 1.5rem; }
}

/* ==========================================================================
   BLOG ARTICLE (each article written by hand; these are the shared styles)
   ========================================================================== */
.a-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; margin-bottom: 22px !important; font-size: .9375rem; color: var(--muted); }
.a-post-meta li { display: inline-flex; align-items: center; gap: 8px; }
.a-post-meta .a-ico { color: var(--teal); }
.a-post-author img { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; background: var(--paper-2); }
.a-post-author a { font-weight: 600; color: var(--ink); text-decoration: none; }
.a-post-author a:hover { color: var(--teal); }
.a-post-hero { margin: 0 0 32px; overflow: hidden; border-radius: var(--r-l); background: var(--paper-2); }
.a-post-hero img { display: block; width: 100%; height: auto; }
.a-takeaways { margin-bottom: 40px; padding: 30px 32px; border-radius: var(--r-l); background: var(--ink); color: #D7E3E9; }
.a .a-takeaways h3 { display: flex; align-items: center; gap: 10px; margin-bottom: 16px; font-size: 1.5rem; color: var(--paper); }
.a-takeaways h3 .a-ico { color: var(--gold); }
.a-takeaways ul { display: grid; gap: 12px; }
.a-takeaways li { position: relative; padding-left: 28px; line-height: 1.6; }
.a-takeaways li::before { content: ""; position: absolute; left: 4px; top: .6em; width: 9px; height: 9px; border-radius: 50%; border: 2px solid var(--gold); }

.a-prose-post { font-size: 1.0625rem; line-height: 1.85; color: var(--warm); }
.a .a-prose-post > * + * { margin-top: 18px; }
.a-prose-post p { margin-bottom: 0; }
.a-post-lead { font-family: var(--serif); font-size: 1.375rem !important; line-height: 1.55 !important; color: var(--ink); }
.a .a-prose-post h2, .a .a-prose-post h3 { margin-top: 48px; margin-bottom: 0; color: var(--ink); }
.a .a-prose-post h2 { font-size: clamp(1.75rem, 3vw, 2.25rem); }
.a .a-prose-post h3 { font-size: clamp(1.375rem, 2.4vw, 1.75rem); }
.a .a-prose-post h2 + *, .a .a-prose-post h3 + * { margin-top: 14px; }
.a-prose-post a { color: var(--teal); text-decoration: underline; text-decoration-color: rgba(29, 90, 118, .35); text-underline-offset: 3px; }
.a-prose-post a:hover { text-decoration-color: var(--teal); }
.a-prose-post ul { display: grid; gap: 10px; padding: 22px 24px !important; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--card); }
.a-prose-post ul li { position: relative; padding-left: 30px; line-height: 1.6; color: var(--ink); }
.a-prose-post ul li::before { content: ""; position: absolute; left: 0; top: .2em; width: 18px; height: 18px; border-radius: 50%; background: var(--paper-2) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231d5a76' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5l4 4 8-9'/%3E%3C/svg%3E") no-repeat center / 11px; }
.a-post-fig { margin: 28px 0 !important; }
.a-post-fig img { display: block; max-width: 100%; height: auto; border-radius: var(--r-m); background: var(--paper-2); }
.a .a-prose-post .a-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 14px; padding: 0 !important; border: 0; background: none; }
.a .a-prose-post .a-tiles li { padding: 0; }
.a .a-prose-post .a-tiles li::before { display: none; }
.a-tiles li > a, .a-tiles li > :first-child:not(a) { color: inherit; text-decoration: none; }
.a-tiles li { display: flex; flex-direction: column; gap: 10px; }
.a-tiles li > a { display: flex; flex-direction: column; gap: 10px; height: 100%; }
.a-tiles img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: var(--r-m); background: var(--paper-2); transition: transform .4s; }
.a-tiles a:hover img { transform: scale(1.03); }
.a .a-tiles h2, .a .a-tiles h3, .a .a-tiles h4, .a .a-tiles h5, .a .a-tiles h6, .a .a-prose-post .a-tiles p { margin: 0 !important; font-family: var(--serif); font-size: 1.125rem; font-weight: 400; line-height: 1.3; color: var(--ink); }
.a .a-prose-post .a-tiles p.a-tile-desc { font-family: var(--sans); font-size: .875rem; line-height: 1.6; color: var(--warm); }
.a .a-prose-post .a-tiles--text { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
.a-tiles a:hover h6, .a .a-prose-post .a-tiles a:hover p { color: var(--teal); }
.a .a-prose-post .a-tiles--icons { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }
.a-tiles--icons li { align-items: center; padding: 22px 16px !important; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--card); text-align: center; }
.a-tiles--icons img { width: 64px; height: 64px; aspect-ratio: auto; object-fit: contain; background: none; border-radius: 0; }
.a .a-tiles--icons h6 { font-size: 1.0625rem; }
.a-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--r-m); background: var(--card); }
.a-table-wrap table { width: 100%; min-width: 520px; border-collapse: collapse; font-size: .9375rem; line-height: 1.5; }
.a-table-wrap th, .a-table-wrap td { padding: 12px 16px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.a-table-wrap tr:first-child th, .a-table-wrap thead th, .a-table-wrap tr:first-child td { background: var(--paper-2); font-weight: 600; color: var(--ink); }
.a-table-wrap tr:last-child td { border-bottom: 0; }
.a-post-cta { margin-top: 40px; padding: 28px 32px; border-left: 3px solid var(--teal); border-radius: 0 var(--r-m) var(--r-m) 0; background: var(--paper-2); }
.a-post-cta p { margin: 0; font-size: 1.0625rem; line-height: 1.7; color: var(--ink); }
.a-post-cta-row { margin-top: 10px !important; font-weight: 600; }
.a-post-cta a { color: var(--teal); }
.a-post-faq { margin-top: 56px; }
.a-post-faq .a-tx-h { margin-bottom: 8px; }
.a-post-faq .a-faq .accordion-button { font-size: 1.25rem; }
.a-post-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; margin: 40px 0 32px; padding-top: 28px; border-top: 1px solid var(--line); }
.a-post-tags-label { font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
.a-post-tags ul { display: flex; flex-wrap: wrap; gap: 8px; }
.a-post-tags li { padding: 6px 14px; border: 1px solid var(--line-2); border-radius: 999px; background: var(--card); font-size: .875rem; color: var(--ink); }

.a-post-side-in { position: sticky; top: calc(var(--head-h) + 24px); display: grid; gap: 20px; }
.a-ptoc { border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); }
.a-ptoc summary { display: flex; align-items: center; gap: 10px; padding: 22px 24px 12px; list-style: none; font-family: var(--serif); font-size: 1.375rem; color: var(--ink); cursor: pointer; }
.a-ptoc summary::-webkit-details-marker { display: none; }
.a-ptoc summary .a-ico { color: var(--teal); transition: transform .2s; }
.a-ptoc:not([open]) summary .a-ico { transform: rotate(-90deg); }
.a-ptoc nav { max-height: calc(100vh - var(--head-h) - 320px); min-height: 200px; overflow-y: auto; padding: 0 12px 18px; scrollbar-width: thin; scrollbar-color: var(--line-2) transparent; }
.a-ptoc ol { display: grid; gap: 2px; counter-reset: pt; }
.a-ptoc li { counter-increment: pt; }
.a-ptoc a { display: flex; gap: 12px; padding: 9px 12px; border-radius: 10px; font-size: .9375rem; line-height: 1.4; color: var(--muted); text-decoration: none; transition: background .2s, color .2s; }
.a-ptoc a::before { content: counter(pt, decimal-leading-zero); font-size: .75rem; font-weight: 600; line-height: 1.9; color: var(--line-2); }
.a-ptoc a:hover { background: var(--paper-2); color: var(--ink); }
.a-ptoc a.is-active { background: var(--ink); color: var(--paper); }
.a-ptoc a.is-active::before { color: var(--gold); }
.a-post-book { display: grid; gap: 14px; padding: 26px 24px; border-radius: var(--r-l); background: var(--ink); color: #D7E3E9; }
.a-post-book .a-eyebrow { margin: 0; color: var(--gold); }
.a-post-book-t { margin: 0 !important; font-family: var(--serif); font-size: 1.375rem; color: var(--paper); }
.a-post-book-call { text-align: center; font-size: .9375rem; color: #D7E3E9 !important; text-decoration: none; }
.a-post-book-call strong { color: #fff; }
.a-post-related .a-bcard img { object-fit: contain; }

@media (min-width: 1200px) {
    .a-prose-post { font-size: 1.125rem; }
    .a-post-lead { font-size: 1.5rem !important; }
}
@media (min-width: 992px) {
    .a-ptoc summary { pointer-events: none; }
    .a-ptoc summary .a-ico { display: none; }
}
@media (max-width: 991.98px) {
    .a-post-side { order: -1; }
    .a-post-side-in { position: static; }
    .a-ptoc summary { padding: 18px 20px; }
    .a-ptoc nav { max-height: none; min-height: 0; }
    .a-post-book { display: none; }
    .a-post-related .a-bgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 575.98px) {
    .a-post-meta { gap: 8px 16px; font-size: .875rem; }
    .a-post-hero { margin-bottom: 24px; border-radius: var(--r-m); }
    .a-takeaways { padding: 22px 20px; border-radius: var(--r-m); }
    .a .a-takeaways h3 { font-size: 1.25rem; }
    .a-prose-post { font-size: 1rem; line-height: 1.75; }
    .a-post-lead { font-size: 1.1875rem !important; }
    .a .a-prose-post h2, .a .a-prose-post h3 { margin-top: 36px; }
    .a-prose-post ul { padding: 18px !important; }
    .a-post-cta { padding: 22px 20px; }
    .a-post-faq .a-faq .accordion-button { font-size: 1.0625rem; }
    .a-article .a-crumbs li:last-child { min-width: 0; flex: 1 1 0; }
    .a-article .a-crumbs [aria-current] { display: block; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
    .a-article .a .a-pagehead-title, .a.a-article .a-pagehead-title { font-size: 1.9375rem; line-height: 1.1; }
}

/* ==========================================================================
   AREA PAGES (diabetes centre / clinic, endocrine centre, endocrinologist, sugar doctor in <area>)
   ========================================================================== */
.a-area-card { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 32px; align-items: center; padding: 24px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); box-shadow: var(--shadow); }
.a-area-img { margin: 0; overflow: hidden; border-radius: var(--r-m); background: var(--paper-2); }
.a-area-img img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.a .a-area-near { display: flex; align-items: center; gap: 8px; margin-bottom: 14px !important; font-family: var(--serif); font-size: 1.375rem; color: var(--ink); }
.a-area-near strong { font-weight: 400; }
.a-area-near .a-ico { color: var(--teal); }
.a-area-dl { margin: 0 0 20px; }
.a-area-dl > div { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.a-area-dl > div:last-child { border-bottom: 0; }
.a-area-dl dt { font-size: .78rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--muted); }
.a-area-dl dd { margin: 0; color: var(--ink); }
.a-area-dl a { font-weight: 600; color: var(--teal); text-decoration: none; }
.a-area-dl a:hover { text-decoration: underline; }
.a-area-ctas { display: flex; flex-wrap: wrap; gap: 10px; }
.a-area-text { margin-top: 48px; }
.a .a-area-text h2 { margin-top: 0; }
.a .a-area-tags h5 { margin: 0; font-family: var(--sans); }
.a-area-tags a { color: var(--ink); text-decoration: none; }
.a-area-tags li:hover { border-color: var(--teal); }
.a-area-tags li:hover a { color: var(--teal); }

.a-area-side-in { position: sticky; top: calc(var(--head-h) + 24px); display: grid; gap: 18px; }
.a-share { padding: 22px 24px; border: 1px solid var(--line); border-radius: var(--r-l); background: var(--card); }
.a .a-share h5 { margin: 0 0 14px; font-family: var(--serif); font-size: 1.375rem; font-weight: 400; color: var(--ink); }
.a-share ul { display: flex; gap: 10px; }
.a-share a { display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid var(--line-2); border-radius: 50%; color: var(--ink); transition: background .2s, color .2s, border-color .2s; }
.a-share a:hover { border-color: var(--ink); background: var(--ink); color: #fff; }
.a .a-area-contact { display: grid; padding: 6px 24px; border-radius: var(--r-l); background: var(--ink); }  /* .a scope: beats the .a ul padding reset */
.a-area-contact li { display: flex; align-items: flex-start; gap: 16px; padding: 18px 0; border-bottom: 1px solid #2E5465; }
.a-area-contact li > div { min-width: 0; padding-top: 1px; }
.a-area-contact li:last-child { border-bottom: 0; }
.a-area-contact .a-contact-ico { width: 40px; height: 40px; border: 1px solid #2E5465; background: none; color: #A9C6D3; }
.a-area-contact strong { display: block; margin-bottom: 4px; font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: #8FA9B7; }
.a-area-contact a { display: block; font-size: .9375rem; line-height: 1.55; color: #fff; text-decoration: none; overflow-wrap: anywhere; }
.a-area-contact a:hover { color: var(--gold); }

@media (max-width: 991.98px) {
    .a-area-side-in { position: static; }
    .a-area-card { grid-template-columns: 1fr 1fr; gap: 24px; }
}
@media (max-width: 767.98px) {
    .a-area-card { grid-template-columns: 1fr; gap: 20px; padding: 18px; border-radius: var(--r-m); }
}
@media (max-width: 575.98px) {
    .a .a-area-near { font-size: 1.1875rem; }
    .a-area-dl > div { grid-template-columns: 1fr; gap: 2px; }
    .a-area-ctas .a-btn { flex: 1 1 100%; }
    .a-area-text { margin-top: 36px; }
    .a-share, .a .a-area-contact { padding-left: 20px; padding-right: 20px; }
}

/* ==========================================================================
   SPECIALTIES PAGE (endocrine-and-diabetes-center-in-ahmedabad.php, body.a-centre)
   Reuses the home / treatment-page sections; these rules only cover the heading levels the page keeps
   from the old version (h3 / h4 / h5) and its contact form.
   ========================================================================== */
.a-centre-intro .a-intro-lead { margin-bottom: 20px !important; }
.a-centre-text { max-width: 680px; margin-bottom: 32px; }
.a-centre-text p { line-height: 1.8; }
.a .a-centre-h { margin-bottom: 24px; }
.a-centre-text p + p { margin-top: 16px; }
.a .a-centre-statement { max-width: 980px; margin: 72px 0 0 !important; padding-top: 40px; border-top: 1px solid var(--line); }

.a-fact h5 { display: flex; align-items: center; gap: 8px; margin-bottom: 8px !important; font-family: var(--sans); font-size: .78rem; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; color: var(--muted); }
.a-fact h5 .a-ico { color: var(--teal); }
.a-fact-book h5, .a-fact-book h5 .a-ico { margin: 0 !important; color: #A9C6D3; }
.a-centre-facts .a-fact-value { font-size: 1.375rem; line-height: 1.3; }
.a-centre-facts .a-fact-value span { color: inherit; }

.a h3.a-eyebrow { font-family: var(--sans); font-weight: 600; line-height: 1.5; letter-spacing: .18em; }
.a .a-rail-sub { margin-top: 14px; font-family: var(--sans); font-size: 1.0625rem; font-weight: 400; line-height: 1.6; letter-spacing: 0; color: var(--warm); }

.a-doc h4.a-doc-name { margin: 0; font-family: var(--serif); font-size: clamp(1.6rem, 2.2vw, 2rem); font-weight: 500; line-height: 1.12; letter-spacing: -.015em; text-transform: none; color: var(--ink); }
.a-doc-name a { color: var(--ink); text-decoration: none; }
.a-doc-name a:hover { color: var(--teal); }
.a .a-doc-creds { padding: 24px 0; }

.a-steps-list--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.a-steps-list h4 { margin-bottom: 8px; font-size: 1.375rem; font-weight: 400; line-height: 1.25; color: var(--ink); }

.a-tcard h4 { font-size: 1.375rem; font-weight: 500; line-height: 1.2; min-height: 2.4em; }

.a-centre-img { max-width: 480px; margin-left: auto; }
.a-centre-contact .a-centre-h { margin-bottom: 32px; }
.a-centre-contact .a-book-contact { gap: 18px; margin-bottom: 0 !important; }
.a-centre-contact .a-book-contact .a-ico { border-color: var(--line-2); background: var(--card); color: var(--teal); }
.a-centre-contact .a-book-contact small { color: var(--muted); }
.a-centre-contact .a-book-contact a, .a-centre-contact .a-book-contact span { color: var(--ink); }
.a-centre-contact .a-book-contact a:hover { color: var(--teal); }
textarea.a-input { height: auto; min-height: 140px; padding: 12px 14px; line-height: 1.6; resize: vertical; }

@media (max-width: 991.98px) {
    .a-steps-list--3 { grid-template-columns: 1fr; gap: 12px; }
    .a .a-centre-statement { margin-top: 56px !important; padding-top: 32px; }
    .a-centre-img { margin-left: 0; }
}
@media (min-width: 576px) and (max-width: 767.98px) {
    .a-doc h4.a-doc-name { font-size: 1.5rem; }
    .a-tcard h4 { font-size: 1.1875rem; }
}
@media (max-width: 575.98px) {
    .a .a-centre-statement { margin-top: 44px !important; padding-top: 28px; }
    .a-centre-facts .a-fact-value { font-size: 1.1875rem; }
    .a .a-rail-sub { font-size: 1rem; }
    .a-doc h4.a-doc-name { font-size: 1.375rem; }
    .a .a-doc-creds { padding: 18px 0; }
    .a-steps-list h4 { font-size: 1.125rem; }
    .a-tcard h4 { font-size: 1.125rem; }
    .a .a-centre-h, .a-centre-contact .a-centre-h { margin-bottom: 18px; }
    .a-centre-contact .a-book-contact { gap: 12px; }
}

/* ==========================================================================
   QUICK CONNECT (component/quickconnect.php is shared with the old theme;
   everything here is scoped to body.a so old pages keep their look)
   ========================================================================== */
/* desktop: the three buttons sit in one quiet capsule */
@media (min-width: 992px) {
    body.a .cn-cb-fab-stack { right: 24px; bottom: 96px; gap: 4px; padding: 6px; border-radius: 999px; background: var(--card); border: 1px solid var(--line); box-shadow: 0 14px 36px rgba(16, 51, 67, .14); }
    body.a .cn-cb-fab { width: 48px; height: 48px; border: 0; background: transparent; color: var(--teal); box-shadow: none; transition: background .2s, color .2s; }
    body.a .cn-cb-fab:hover, body.a .cn-cb-fab:focus-visible { transform: none; background: var(--ink); color: #fff; }
    body.a .cn-cb-fab:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
    body.a .cn-cb-fab svg { width: 22px; height: 22px; }
    body.a #cnCbWaFab svg { fill: currentColor; }
    body.a #cnCbFab svg path { fill: none; stroke: currentColor; }
    body.a #cnCbMapFab svg { stroke: currentColor; }
    body.a .cn-cb-fab-pulse { display: none; }
    body.a .cn-cb-fab[data-label]::before { right: calc(100% + 18px); padding: 8px 14px; border-radius: 999px; background: var(--ink); font: 600 13px/1.2 var(--sans); box-shadow: 0 8px 20px rgba(16, 51, 67, .2); }
    body.a .cn-cb-fab[data-label]::after { right: calc(100% + 6px); border-left-color: var(--ink); }
}

/* popups (callback + WhatsApp) */
body.a .cn-cb-overlay { padding: 24px; background: rgba(12, 39, 51, .55); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); }
body.a .cn-cb-modal { display: flex; flex-direction: column; max-width: 480px; max-height: calc(100vh - 48px); max-height: calc(100dvh - 48px); border-radius: var(--r-l); background: var(--paper); background-image: none; color: var(--warm); font-family: var(--sans); box-shadow: 0 30px 80px rgba(8, 32, 42, .35); scrollbar-color: var(--line-2) transparent; }
body.a .cn-cb-modal > * { flex-shrink: 0; }
body.a .cn-cb-close { top: 18px; right: 18px; width: 40px; height: 40px; border: 1px solid var(--line); border-radius: 50%; background: var(--card); color: var(--ink); }
body.a .cn-cb-close:hover { border-color: var(--ink); background: var(--ink); color: #fff; }
body.a .cn-cb-close:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
body.a .cn-cb-header { order: -1; padding: 24px 32px 0; text-align: left; }
body.a .cn-cb-brand { display: flex; gap: 10px; margin: 0 56px 14px 0; }
body.a .cn-cb-brand-icon { width: 36px; height: 36px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: none; }
body.a .cn-cb-brand-icon img { width: 26px; height: 26px; }
body.a .cn-cb-brand-icon--wa { border-color: #25D366; background: #25D366; }
body.a .cn-cb-brand-icon--wa svg { width: 20px; height: 20px; }
body.a .cn-cb-brand-name { font-size: .75rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--teal); }
body.a .cn-cb-title { font-family: var(--serif); font-size: 1.75rem; font-weight: 400; line-height: 1.2; letter-spacing: -.01em; color: var(--ink); }
body.a .cn-cb-tabs { grid-template-columns: auto auto auto; gap: 4px; margin: 20px 32px 0; padding: 5px; border: 1px solid var(--line-2); border-radius: 999px; background: #fff; }
body.a .cn-cb-tab { flex-direction: row; justify-content: center; gap: 7px; min-height: 42px; padding: 6px 8px; border-radius: 999px; color: var(--muted); font-size: .8125rem; font-weight: 600; }
body.a .cn-cb-tab svg { width: 16px; height: 16px; flex-shrink: 0; }
body.a .cn-cb-tab:hover { background: var(--paper-2); color: var(--ink); }
body.a .cn-cb-tab.is-active { background: var(--ink); color: var(--paper); }
body.a .cn-cb-tab.is-active svg { transform: none; }
body.a .cn-cb-tab:focus-visible { outline: 2px solid var(--teal); outline-offset: 2px; }
body.a .cn-cb-body { padding: 6px 32px 28px; }
body.a .cn-cb-label { margin: 14px 0 6px; font-size: .875rem; font-weight: 600; color: var(--ink); }
body.a .cn-cb-opt { font-weight: 400; color: var(--muted); }
body.a .cn-cb-intro { margin: 18px 0 2px; text-align: left; font-size: .9375rem; line-height: 1.6; color: var(--warm); }
body.a .cn-cb-input, body.a .cn-cb-cc { height: 48px; padding: 0 14px; border: 1px solid var(--line-2); border-radius: var(--r-s); background-color: #fff; color: var(--ink); font-family: var(--sans); font-size: 1rem; }
body.a .cn-cb-input::placeholder { color: #A39C94; }
body.a .cn-cb-input:focus, body.a .cn-cb-cc:focus { border-color: var(--teal); background-color: #fff; box-shadow: 0 0 0 4px rgba(29, 90, 118, .12); }
body.a .cn-cb-input.is-invalid { border-color: #B3261E; box-shadow: 0 0 0 4px rgba(179, 38, 30, .1); }
body.a .cn-cb-textarea { height: auto; min-height: 112px; padding: 12px 14px; line-height: 1.55; }
body.a .cn-cb-input[type="date"], body.a .cn-cb-input[type="time"] { color-scheme: light; }
body.a .cn-cb-cc { appearance: none; -webkit-appearance: none; padding: 0 30px 0 12px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23103343' stroke-width='2' stroke-linecap='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center / 14px; font-size: .9375rem; }
body.a .cn-cb-cc option { background: #fff; color: var(--ink); }
body.a .cn-cb-phone-wrap { grid-template-columns: 118px minmax(0, 1fr); }
body.a .cn-cb-row { gap: 12px; }
body.a .cn-cb-row > div { min-width: 0; }
body.a .cn-cb-submit { min-height: 52px; margin-top: 22px; border-radius: 999px; background: var(--ink); box-shadow: none; font-size: 1rem; font-weight: 600; }
body.a .cn-cb-submit:hover:not(:disabled) { transform: none; background: var(--teal); box-shadow: none; }
body.a .cn-cb-submit:focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
body.a .cn-cb-fineprint { margin-top: 14px; font-size: .8125rem; line-height: 1.55; color: var(--muted); }
body.a .cn-cb-fineprint a { font-weight: 600; color: var(--teal); }
body.a .cn-cb-fineprint a[href^="tel:"] { white-space: nowrap; }
body.a .cn-cb-success { padding: 32px 8px 12px; }
body.a .cn-cb-success-icon { width: 80px; height: 80px; border: 0; background: #E6F0EA; }
body.a .cn-cb-success-icon svg { stroke: #2E7D4F; }
body.a .cn-cb-success .cn-cb-success-title { font-family: var(--serif); font-size: 1.75rem; font-weight: 400; color: var(--ink); }
body.a .cn-cb-success-msg { font-size: 1rem; color: var(--warm); }
body.a .cn-cb-error-banner { border-color: #F0C4C0; background: #FBEDEC; color: #8C1D18; font-size: .875rem; }
body.a .cn-cb-footer { padding: 12px 20px; border-top: 1px solid var(--line); background: var(--paper-2); font-size: .75rem; color: var(--muted); }
body.a .cn-cb-footer strong { color: var(--ink); }
@keyframes a-sheet { from { opacity: 0; transform: translateY(48px); } to { opacity: 1; transform: none; } }
/* phones: a bottom sheet */
@media (max-width: 575.98px) {
    body.a .cn-cb-overlay { align-items: flex-end; padding: 0; }
    body.a .cn-cb-modal { max-width: 100%; max-height: 92vh; max-height: 92dvh; margin: 0; border-radius: 24px 24px 0 0; padding-bottom: env(safe-area-inset-bottom); animation-name: a-sheet; }
    body.a .cn-cb-modal::before { content: ""; order: -2; flex-shrink: 0; align-self: center; width: 40px; height: 4px; margin-top: 10px; border-radius: 4px; background: var(--line-2); }
    body.a .cn-cb-close { top: 22px; right: 16px; }
    body.a .cn-cb-header { padding: 18px 20px 0; }
    body.a .cn-cb-brand { margin-bottom: 12px; }
    body.a .cn-cb-title { font-size: 1.375rem; }
    body.a .cn-cb-tabs { grid-template-columns: repeat(3, minmax(0, 1fr)); margin: 18px 20px 0; border-radius: 18px; }
    body.a .cn-cb-tab { flex-direction: column; gap: 3px; min-height: 54px; padding: 6px 4px; border-radius: 13px; font-size: .75rem; }
    body.a .cn-cb-body { padding: 2px 20px 22px; }
    body.a .cn-cb-phone-wrap { grid-template-columns: 104px minmax(0, 1fr); }
    body.a .cn-cb-success .cn-cb-success-title { font-size: 1.5rem; }
}

/* ---------- scroll reveal (js adds .a-rv only to content below the fold) ---------- */
.a-rv { opacity: 0; transform: translateY(22px); transition: opacity .7s ease var(--rv-d, 0ms), transform .8s cubic-bezier(.2, .8, .2, 1) var(--rv-d, 0ms); }
.a-rv.is-in { opacity: 1; transform: none; }
@media print { .a-rv { opacity: 1 !important; transform: none !important; } }

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width: 1399.98px) {
    .a-brand img { width: 260px; }
    .a-nav-link, .a-nav-caret { padding: 0 10px; font-size: .9375rem; }
    .a-nav-link::after { left: 10px; right: 10px; }
    .a-rail--5 { --per: 4; }
}
@media (max-width: 1199.98px) {
    .a-rail { --per: 3; }
    .a-arch img { height: 500px; }
    .a-fact { padding: 30px 24px; }
}
@media (max-width: 991.98px) {
    :root { --head-h: 76px; }
    .row.g-5, .row.gx-lg-5 { --bs-gutter-x: 1.5rem; }  /* never wider than the container's side padding */
    .a-sec { padding: 76px 0; }
    .a-sec-head { margin-bottom: 36px; }
    .a-rail-ctrl { justify-content: flex-start; }
    .a-arch img { height: 440px; }
    .a-arch figcaption { left: 16px; bottom: 16px; }
    .a-fact { padding: 28px 24px 28px 0; }
    .a-fact + .a-fact:not(.a-fact--book) { padding-left: 24px; }
    .a-fact--book { padding: 0 0 24px; }
    .a-about-img { height: auto; min-height: 0; aspect-ratio: 16 / 10; }
    .a-faq-intro { position: static; }
    .a-foot-cta-btns { justify-content: flex-start; }
    .a-rail { --per: 2; --gap: 18px; }
    .a-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 190px; }
    .a-gallery li:nth-child(6), .a-gallery li:nth-child(7) { grid-column: auto; }
    /* quick-connect buttons become one bottom bar */
    body.a { padding-bottom: calc(72px + env(safe-area-inset-bottom)); }
    body.a .cn-cb-fab-stack { left: 0; right: 0; bottom: 0; flex-direction: row; align-items: stretch; gap: 8px; padding: 10px 12px calc(10px + env(safe-area-inset-bottom)); background: var(--paper); border-top: 1px solid var(--line); box-shadow: 0 -6px 20px rgba(16, 51, 67, .06); }
    body.a .cn-cb-fab-stack .cn-cb-fab { flex: 1 1 0; width: auto; height: 46px; padding: 0 6px; gap: 6px; border-radius: 999px; border: 1px solid var(--line-2); background: var(--card); color: var(--ink); box-shadow: none; }
    body.a .cn-cb-fab-stack .cn-cb-fab::before { content: attr(data-mlabel); position: static; transform: none; opacity: 1; padding: 0; background: none; box-shadow: none; color: var(--ink); font-family: var(--sans); font-size: 13px; font-weight: 600; }
    body.a .cn-cb-fab-stack .cn-cb-fab svg { width: 17px; height: 17px; }
    body.a .cn-cb-fab-stack .cn-cb-fab svg, body.a .cn-cb-fab-stack .cn-cb-fab svg path { stroke: var(--teal); }
    body.a .cn-cb-fab-stack .cn-cb-fab--wa svg, body.a .cn-cb-fab-stack .cn-cb-fab--wa svg path { fill: var(--teal); stroke: none; }
    body.a .cn-cb-fab-stack .cn-cb-fab-pulse, body.a .cn-cb-fab-stack .cn-cb-fab::after { display: none; }
    body.a .grecaptcha-badge { visibility: hidden !important; }
    body.a:has(input:focus, select:focus, textarea:focus) .cn-cb-fab-stack { visibility: hidden; }
}
@media (min-width: 768px) and (max-width: 991.98px) {
    .a-rail, .a-rail--5 { --per: 3; }
}
@media (max-width: 767.98px) {
    .a-foot-main nav .a-foot-list { display: block; columns: 2; column-gap: 24px; }
    .a-fact { padding: 24px 0 !important; border-left: 0 !important; }
    .a-fact + .a-fact:not(.a-fact--book) { border-top: 1px solid var(--line); }
    .a-fact--book { padding: 0 0 24px !important; }
    .a-doc { padding: 24px; }
    .a-doc-top { align-items: flex-start; }
    .a-doc-photo { width: 96px; height: 118px; }
}
@media (max-width: 575.98px) {
    body.a { --bs-body-font-size: 1rem; }
    .a-sec { padding: 60px 0; }
    .a-hero { padding: 32px 0 44px; }
    .a-hero .a-lead { font-size: 1.03rem; margin: 18px 0 26px; }
    .a-ctas .a-btn { flex: 1 1 100%; }
    .a-arch img { height: 360px; }
    .a-arch figcaption { font-size: .78rem; padding: 12px 16px; }
    .a-arch figcaption b { font-size: 1.0625rem; }
    .a-hero-bar { margin-top: 30px; }
    .a-brand img { width: 100%; max-width: 270px; }
    .a-eyebrow { letter-spacing: .12em; font-size: .75rem; }
    .a-doc-top { flex-direction: column; align-items: flex-start; gap: 16px; }
    .a-rail { --per: 1.2; --gap: 14px; }
    .a-rail--5 { --per: 1.6; }
    .a-gallery { grid-auto-rows: 140px; gap: 10px; }
    .a-form { padding: 26px 20px; border-radius: var(--r-m); }
    .a .a-form-title { font-size: 1.45rem; margin-bottom: 16px !important; }
    .a-book-info > p { font-size: 1rem; }
    .a-book-fac li { font-size: .8125rem; padding: 6px 12px; }
    .a-gallery li:nth-child(1) a { border-radius: 200px 200px var(--r-m) var(--r-m); }
    .a-foot-tx .a-foot-list { display: block; columns: 2; column-gap: 20px; font-size: .875rem; }
    .a-foot-tx .a-foot-list li { break-inside: avoid; }
    .a-foot-cta { padding: 48px 0; }
    .a-foot-main { padding: 48px 0 36px; }
    .a-faq .accordion-button { font-size: 1.2rem; }
    .a-faq .accordion-body { padding-right: 0; }
    .a-posts { flex-wrap: nowrap; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; }
    .a-posts::-webkit-scrollbar { display: none; }
    .a-posts > li { flex: 0 0 80%; scroll-snap-align: start; }
    .a-foot-cta-btns .a-btn { flex: 1 1 100%; }
    .a-foot-2col { columns: 1; }
    .a-foot-bottom .container { justify-content: center; text-align: center; }
    .a-foot-dir { margin-left: 0; }
}
/* ==========================================================================
   MOBILE TYPE SCALE (phones ≤ 575px) – industry-standard sizes
   Body 15px / 1.6 · H1 30px · H2 26px · H3 18–22px · labels ≥ 11px
   Buttons 15px with ≥ 44px tap targets · form fields stay 16px (no iOS zoom)
   ========================================================================== */
@media (max-width: 575.98px) {
    body.a { --bs-body-font-size: .9375rem; --bs-body-line-height: 1.6; }
    .a-top { font-size: .75rem; }

    /* headings */
    .a-h1 { font-size: 1.875rem; line-height: 1.12; letter-spacing: -.015em; }
    .a-h2 { font-size: 1.625rem; line-height: 1.15; }
    .a-eyebrow { font-size: .6875rem; letter-spacing: .12em; margin-bottom: 12px; gap: 8px; }
    .a-eyebrow::before { width: 18px; }
    .a-sec-head { margin-bottom: 28px; }
    .a-sec-head .a-eyebrow { margin-bottom: 10px; }
    .a-sec-note, .a-hero .a-lead { font-size: .9375rem; line-height: 1.6; }
    .a-hero .a-lead { margin: 14px 0 22px; }

    /* buttons & links */
    .a-btn { min-height: 48px; padding: 11px 22px; font-size: .9375rem; }
    .a-btn--sm { min-height: 44px; padding: 9px 18px; font-size: .875rem; }
    .a-link { font-size: .9375rem; }
    .a-round { width: 44px; height: 44px; }

    /* hero */
    .a-arch figcaption { font-size: .75rem; }
    .a-arch figcaption b { font-size: 1rem; }
    .a-hero-facts { font-size: .875rem; }

    /* visit essentials */
    .a-fact .a-fact-h { font-size: .6875rem; margin-bottom: 4px !important; }
    .a-fact-value { font-size: 1.25rem; }
    .a-fact-note { font-size: .875rem; }
    .a-fact-detail, .a-fact-phone { font-size: .8125rem !important; }

    /* specialties */
    .a-spec { padding: 30px 0; }
    .a-spec-icon { width: 52px; height: 52px; }
    .a-spec-icon img { width: 30px; height: 30px; }
    .a-spec-no { font-size: .6875rem; }
    .a-spec h3 { font-size: 1.375rem; }
    .a-spec-text { font-size: .9375rem; }
    .a-spec-list a { min-height: 44px; padding: 8px 2px; font-size: .9375rem; }

    /* about */
    .a-about-text .a-h2 { margin-bottom: 16px; }
    .a-ticks span { padding: 12px 14px; font-size: .875rem; }

    /* treatment cards, blogs */
    .a-tcard-body { padding: 16px 18px 18px; gap: 10px; }
    .a-tcard h3, .a-post h3 { font-size: 1.125rem; }
    .a-tcard-cta, .a-post span { font-size: .875rem; }
    .a-rail-count { font-size: .8125rem; }

    /* doctors */
    .a-doc h3 { font-size: 1.375rem; }
    .a-doc-role { font-size: .9375rem; }
    .a-doc h4 { font-size: .6875rem; }
    .a-doc ul { font-size: .875rem; }
    .a-doc-reg { font-size: .8125rem; }

    /* what to expect */

    /* appointment */
    .a-book-info > p { font-size: .9375rem; margin: 14px 0 22px !important; }
    .a-book-contact { gap: 12px; }
    .a-book-contact .a-ico { width: 40px; height: 40px; padding: 10px; }
    .a-book-contact small { font-size: .6875rem; }
    .a-book-contact a, .a-book-contact span { font-size: .9375rem; }
    .a-book-info h3 { font-size: 1.125rem; }
    .a-book-fac li { font-size: .75rem; }
    .a .a-form-title { font-size: 1.25rem; }
    .a-label-f { font-size: .8125rem; }
    .a-input { height: 48px; font-size: 1rem; }   /* 16px: prevents iOS zoom on focus */
    .a-seg label { font-size: .875rem; padding: 9px; }
    .a-form-note { font-size: .75rem; }

    /* FAQ */
    .a-faq-intro p { font-size: .9375rem; }
    .a-faq.accordion { --bs-accordion-btn-padding-y: 18px; --bs-accordion-btn-icon-width: 30px; }
    .a-faq .accordion-button { font-size: 1.0625rem; gap: 16px; }
    .a-faq .accordion-button::after { height: 30px; background-size: 30px; }
    .a-faq .accordion-body { font-size: .9375rem; padding-bottom: 20px; }

    /* footer */
    .a-foot { font-size: .875rem; }
    .a-foot-cta h2 { font-size: 1.5rem; }
    .a-foot-h { font-size: 1.125rem; margin-bottom: 12px !important; }
    .a-foot-logo { width: 170px; }
    .a h4.a-foot-group { font-size: .6875rem; }
    .a-foot-tx .a-foot-list { font-size: .8125rem; }
    .a-foot-contact small { font-size: .6875rem; }
    .a-foot-reg, .a-foot-bottom { font-size: .75rem; }

    /* mobile menu */
    .a-mm-link { font-size: 1.625rem; padding: 12px 0; gap: 14px; }
    .a-mm-link small { font-size: .6875rem; min-width: 22px; }
    .a-mm-plus { width: 30px; height: 30px; }
    .a-mm-chips a { min-height: 38px; padding: 8px 13px; font-size: .875rem; }
    .a-mm-tabs .nav-link { font-size: .8125rem; }
    .a-mm-status { font-size: .75rem; }
    .a-mm-book { font-size: .9375rem; min-height: 50px; }
    .a-mm-icon { width: 50px; height: 50px; }
    .a-mm-addr { font-size: .75rem; }
}

/* large phones / small tablets (576–767px): a step between the phone and desktop scales */
@media (min-width: 576px) and (max-width: 767.98px) {
    body.a { --bs-body-font-size: 1rem; }
    .a-h1 { font-size: 2.25rem; line-height: 1.1; }
    .a-h2 { font-size: 1.875rem; }
    .a-sec-note, .a-hero .a-lead { font-size: 1rem; }
    .a-spec h3, .a-doc h3 { font-size: 1.5rem; }
    .a-tcard h3, .a-post h3 { font-size: 1.1875rem; }
    .a-faq .accordion-button { font-size: 1.1875rem; }
    .a-foot-cta h2 { font-size: 1.75rem; }
    .a-mm-link { font-size: 2rem; }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .a *, .a *::before, .a *::after { transition-duration: .01s !important; animation-duration: .01s !important; }
}

/* ==========================================================================
   HINDI / GUJARATI PAGES (/hindi/, /gujarati/ – <html lang="hi|gu">)
   Latin text keeps Fraunces / Figtree; Devanagari and Gujarati use Noto Serif + Hind.
   Letter-spacing would break the joined headline stroke of these scripts, and their vowel signs
   need taller heading lines than the tight Latin settings.
   ========================================================================== */
:root:lang(hi) { --serif: "Fraunces", "Noto Serif Devanagari", Georgia, serif; --sans: "Figtree", "Hind", "Segoe UI", system-ui, sans-serif; }
:root:lang(gu) { --serif: "Fraunces", "Noto Serif Gujarati", Georgia, serif; --sans: "Figtree", "Hind Vadodara", "Segoe UI", system-ui, sans-serif; }
.a :lang(hi), .a :lang(gu) { letter-spacing: normal !important; }
.a :is(h1, h2, h3, h4, h5, h6, .a-h1, .a-h2, .a-statement, .a-quote, .a-fact-value, .a-pagehead-title, .cn-cb-title, .cn-cb-success-title):is(:lang(hi), :lang(gu)) { line-height: 1.35 !important; }
.a .a-eyebrow:is(:lang(hi), :lang(gu)) { font-size: .875rem; }
.a .accordion-button:is(:lang(hi), :lang(gu)) { line-height: 1.5; }
/* Hindi / Gujarati: no slanted (faux-italic) script in the emphasised heading parts; long two-part headings */
.a :is(.a-h1, .a-h2) em:is(:lang(hi), :lang(gu)) { font-style: normal; }
.a .a-h2-sub { display: block; margin-top: 14px; font-family: var(--sans); font-size: 1.125rem; font-weight: 400; line-height: 1.6 !important; letter-spacing: 0; color: var(--warm); }
/* Open/closed badge: after hours the emergency number is a tap-to-call link */
[data-open-status] a { color: inherit; font-weight: 600; white-space: nowrap; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
[data-open-status] a:hover { color: var(--gold, inherit); }
.a-status--light[data-open-status] a:hover { color: var(--teal); }
/* Registration number under the doctor's credentials (profiles, Our Team) */
.a .a-member-reg { margin: 4px 0 20px !important; }
