/* =========================================================
   Dr. Kamalesh Pal — v2 design system
   Warm paper + deep ink + clinical blue, Fraunces / Plus Jakarta Sans
   ========================================================= */

:root {
    --paper: #F6F2EC;
    --paper-2: #EEE7DC;
    --paper-3: #FBF9F6;
    --card: #FFFFFF;
    --ink: #0B1B2E;
    --ink-2: #13263D;
    --ink-soft: #4A5A6E;
    --ink-mute: #7A8797;
    --line: rgba(11, 27, 46, .10);
    --line-strong: rgba(11, 27, 46, .18);

    --brand: #0E6FAD;
    --brand-2: #2A9DF4;
    --brand-deep: #084A78;
    --brand-soft: #E3F0FA;
    --teal: #14B8A6;
    --peach: #FFB48F;
    --peach-soft: #FFE8DB;
    --sun: #F5B83D;

    --f-display: 'Fraunces', 'Iowan Old Style', Georgia, serif;
    --f-body: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;

    --r-sm: 12px;
    --r: 22px;
    --r-lg: 32px;

    --gutter: clamp(16px, 4vw, 40px);
    --maxw: 1280px;
    --section: clamp(88px, 11vw, 160px);

    --ease: cubic-bezier(.16, 1, .3, 1);
    --shadow-1: 0 1px 2px rgba(11,27,46,.04), 0 8px 24px -8px rgba(11,27,46,.10);
    --shadow-2: 0 2px 6px rgba(11,27,46,.05), 0 28px 60px -20px rgba(11,27,46,.22);
}

/* ---------- Reset ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
/* Decorative pieces (tilted band, glows, rings, review strip) reach past the screen edge on purpose.
   Clip them on <html> as well as <body>: iPhone browsers ignore body-only overflow-x and let the
   whole page slide sideways. "clip" (unlike "hidden") doesn't break sticky elements. */
html, body { overflow-x: hidden; }
@supports (overflow: clip) {
    html, body { overflow-x: clip; }
}
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-stopped { overflow: hidden; }
body {
    margin: 0;
    background: var(--paper);
    color: var(--ink);
    font-family: var(--f-body);
    font-size: 16px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}
/* film grain */
body::after {
    content: "";
    position: fixed; inset: 0;
    pointer-events: none;
    z-index: 300;
    opacity: .05;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
img, svg, picture { display: block; max-width: 100%; }
a { color: inherit; text-decoration: none; }
button { font: inherit; color: inherit; background: none; border: 0; cursor: pointer; padding: 0; }
h1, h2, h3, h4, p, ul, ol, dl, dd, figure, blockquote { margin: 0; }
ul, ol { padding: 0; list-style: none; }
em { font-style: italic; }
::selection { background: var(--brand); color: #fff; }
:focus-visible { outline: 2.5px solid var(--brand-2); outline-offset: 3px; border-radius: 6px; }

.skip {
    position: fixed; left: 16px; top: -60px; z-index: 400;
    background: var(--ink); color: #fff; padding: 10px 16px; border-radius: 10px;
    transition: top .2s;
}
.skip:focus { top: 16px; }

.container { width: 100%; max-width: calc(var(--maxw) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.section { padding: var(--section) 0; position: relative; }

svg path, svg circle { vector-effect: non-scaling-stroke; }

/* ---------- Type helpers ---------- */
.eyebrow {
    display: inline-flex; align-items: center; gap: 10px;
    font-size: .78rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
    color: var(--brand);
    margin-bottom: 20px;
}
.eyebrow::before { content: ""; width: 22px; height: 1.5px; background: currentColor; }
.eyebrow--light { color: var(--peach); }

.sec-title {
    font-family: var(--f-display);
    font-weight: 380;
    font-variation-settings: "opsz" 144;
    font-size: clamp(2.2rem, 4.8vw, 4.3rem);
    line-height: 1.02;
    letter-spacing: -.03em;
    max-width: 17ch;
}
.sec-title em { color: var(--brand); font-weight: 340; }
.sec-title--light { color: var(--paper); }
.sec-title--light em { color: var(--peach); }
.sec-sub { margin-top: 22px; max-width: 52ch; color: var(--ink-soft); font-size: 1.075rem; }

.sec-head { margin-bottom: clamp(40px, 6vw, 72px); }
.sec-head--row { display: flex; align-items: flex-end; justify-content: space-between; gap: 32px; flex-wrap: wrap; }

/* split-word masks (created by JS) */
.w { display: inline-block; overflow: hidden; vertical-align: top; padding-bottom: .1em; margin-bottom: -.1em; }
.w > span { display: inline-block; will-change: transform; }

.link-arrow {
    display: inline-flex; align-items: center; gap: 10px;
    font-weight: 600; color: var(--ink);
    background: linear-gradient(currentColor, currentColor) 0 100% / 0 1.5px no-repeat;
    padding-bottom: 4px;
    transition: background-size .5s var(--ease), color .3s;
}
.link-arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .5s var(--ease); }
.link-arrow:hover { background-size: 100% 1.5px; color: var(--brand); }
.link-arrow:hover svg { transform: translateX(4px); }
.link-arrow--lg { font-size: 1.05rem; margin-top: 36px; }

/* ---------- Buttons ---------- */
.btn {
    --bg: var(--ink); --fg: #fff; --fill: var(--brand);
    position: relative; isolation: isolate; overflow: hidden;
    display: inline-flex; align-items: center; justify-content: center; gap: 10px;
    height: 52px; padding: 0 26px;
    border-radius: 999px;
    background: var(--bg); color: var(--fg);
    font-weight: 600; font-size: .95rem; letter-spacing: -.005em;
    white-space: nowrap;
    transition: color .45s var(--ease), box-shadow .45s var(--ease);
    will-change: transform;
}
.btn::before {
    content: ""; position: absolute; z-index: -1;
    left: 50%; top: 100%; width: 140%; aspect-ratio: 1; border-radius: 50%;
    background: var(--fill);
    transform: translate(-50%, 0) scale(.2);
    transition: transform .6s var(--ease), top .6s var(--ease);
}
.btn:hover::before { top: 50%; transform: translate(-50%, -50%) scale(1.1); }
.btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .5s var(--ease); }
.btn:hover svg { transform: translateX(3px); }
.btn svg.wa { fill: currentColor; stroke: none; }
.btn:hover svg.wa { transform: none; }
.btn--brand { --bg: var(--brand); --fill: var(--ink); box-shadow: 0 12px 30px -10px rgba(14,111,173,.6); }
.btn--dark { --bg: var(--ink); --fill: var(--brand); }
.btn--ghost { --bg: transparent; --fg: var(--ink); --fill: var(--ink); box-shadow: inset 0 0 0 1.5px var(--line-strong); }
.btn--ghost:hover { --fg: #fff; color: #fff; }
.btn--sm { height: 42px; padding: 0 20px; font-size: .88rem; }
.btn--lg { height: 58px; padding: 0 30px; font-size: 1rem; }
.btn--block { width: 100%; }

.icon-btn {
    display: grid; place-items: center;
    width: 42px; height: 42px; border-radius: 50%;
    box-shadow: inset 0 0 0 1.5px var(--line-strong);
    transition: background .3s, color .3s, box-shadow .3s, transform .3s var(--ease);
}
.icon-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.icon-btn:hover { background: var(--ink); color: #fff; box-shadow: none; }

/* ---------- Loader ---------- */
.loader {
    position: fixed; inset: 0; z-index: 500;
    background: var(--ink); color: var(--paper);
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: var(--gutter);
    animation: loaderFailsafe .6s ease 5s forwards; /* CSS-only fallback, kept even when JS runs */
}
.loader__inner { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; }
.loader__name { font-family: var(--f-display); font-size: clamp(2rem, 6vw, 5rem); font-weight: 340; letter-spacing: -.03em; line-height: 1; }
.loader__count { font-family: var(--f-display); font-size: clamp(3rem, 12vw, 9rem); line-height: .8; font-weight: 300; font-variant-numeric: tabular-nums; }
.loader__bar { margin-top: 24px; height: 2px; background: rgba(255,255,255,.12); }
.loader__bar span { display: block; height: 100%; background: var(--peach); transform-origin: left; transform: scaleX(0); }
html.no-js .loader, html.no-motion .loader { display: none; }
@keyframes loaderFailsafe { to { opacity: 0; visibility: hidden; } }

/* ---------- Scroll progress ---------- */
.progress { position: fixed; left: 0; right: 0; top: 0; height: 3px; z-index: 260; pointer-events: none; }
.progress span { display: block; height: 100%; background: linear-gradient(90deg, var(--brand), var(--brand-2), var(--peach)); transform-origin: left; transform: scaleX(0); }

/* ---------- Nav ---------- */
.nav {
    position: fixed; z-index: 250;
    top: 14px; left: 0; right: 0;
    padding: 0 var(--gutter);
    transition: transform .6s var(--ease);
}
.nav.is-hidden { transform: translateY(calc(-100% - 20px)); }
.nav__pill {
    max-width: var(--maxw); margin: 0 auto;
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
    height: 68px; padding: 0 10px 0 14px;
    border-radius: 999px;
    background: rgba(255,255,255,.55);
    -webkit-backdrop-filter: blur(18px) saturate(1.6);
    backdrop-filter: blur(18px) saturate(1.6);
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.7), 0 10px 40px -18px rgba(11,27,46,.25);
    transition: background .4s, box-shadow .4s;
}
.nav.is-scrolled .nav__pill { background: rgba(255,255,255,.82); }

.brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.brand__mark { color: var(--brand); flex-shrink: 0; }
.brand__mark svg { width: 42px; height: 42px; }
.brand__text { display: flex; flex-direction: column; line-height: 1.15; }
.brand__text strong { font-family: var(--f-display); font-weight: 500; font-size: 1.12rem; letter-spacing: -.01em; }
.brand__text small { font-size: .72rem; color: var(--ink-mute); letter-spacing: .02em; }

.nav__links { display: flex; align-items: center; gap: 2px; }
.nav__links > a, .nav__drop > button {
    display: inline-flex; align-items: center; gap: 4px;
    height: 42px; padding: 0 14px;
    border-radius: 999px;
    font-size: .92rem; font-weight: 500; color: var(--ink-2);
    transition: background .25s, color .25s;
}
.nav__links > a:hover, .nav__drop > button:hover, .nav__drop.is-open > button { background: rgba(11,27,46,.06); color: var(--ink); }
.nav__drop { position: relative; }
.nav__drop > button svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .35s var(--ease); }
.nav__drop.is-open > button svg { transform: rotate(180deg); }

.mega {
    position: absolute; top: calc(100% + 14px); left: 50%;
    width: 700px;
    display: grid; grid-template-columns: 1fr 190px; gap: 8px;
    padding: 10px;
    border-radius: 26px;
    background: rgba(255,255,255,.96);
    -webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
    box-shadow: var(--shadow-2), inset 0 0 0 1px var(--line);
    opacity: 0; visibility: hidden;
    transform: translate(-50%, 10px) scale(.98);
    transform-origin: top center;
    transition: opacity .3s var(--ease), transform .45s var(--ease), visibility 0s .3s;
}
.mega::before { content: ""; position: absolute; left: 0; right: 0; top: -16px; height: 16px; }
.mega--sm { width: 240px; grid-template-columns: 1fr; }
.nav__drop.is-open .mega,
.nav__drop:focus-within .mega { opacity: 1; visibility: visible; transform: translate(-50%, 0) scale(1); transition-delay: 0s; }
@media (hover: hover) {
    .nav__drop:hover .mega { opacity: 1; visibility: visible; transform: translate(-50%, 0) scale(1); transition-delay: 0s; }
    .nav__drop:hover > button svg { transform: rotate(180deg); }
}
.mega__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; }
.mega__grid a { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; border-radius: 16px; transition: background .25s; }
.mega__grid a:hover { background: var(--brand-soft); }
.mega__grid b { font-weight: 600; font-size: .92rem; }
.mega__grid span { font-size: .8rem; color: var(--ink-mute); }
.mega__aside {
    display: flex; flex-direction: column; justify-content: space-between; gap: 16px;
    padding: 18px; border-radius: 18px;
    background: var(--ink); color: var(--paper);
}
.mega__aside p { font-family: var(--f-display); font-size: 1.15rem; line-height: 1.25; }
.mega__aside .link-arrow { color: var(--peach); }
.mega__list { display: flex; flex-direction: column; }
.mega__list a { padding: 11px 14px; border-radius: 14px; font-weight: 500; font-size: .92rem; transition: background .25s, padding .35s var(--ease); }
.mega__list a:hover { background: var(--brand-soft); padding-left: 20px; }

.nav__actions { display: flex; align-items: center; gap: 8px; }

.burger { display: none; width: 46px; height: 46px; border-radius: 50%; background: var(--ink); position: relative; }
.burger span { position: absolute; left: 14px; right: 14px; height: 1.8px; background: #fff; border-radius: 2px; transition: transform .5s var(--ease), top .5s var(--ease); }
.burger span:nth-child(1) { top: 19px; }
.burger span:nth-child(2) { top: 26px; }
html.menu-open .burger span:nth-child(1) { top: 22.5px; transform: rotate(45deg); }
html.menu-open .burger span:nth-child(2) { top: 22.5px; transform: rotate(-45deg); }

/* Mobile menu */
.mmenu {
    position: fixed; inset: 0; z-index: 240;
    background: var(--ink); color: var(--paper);
    display: flex; flex-direction: column; justify-content: space-between;
    padding: 110px var(--gutter) max(32px, env(safe-area-inset-bottom));
    clip-path: circle(0% at calc(100% - 44px) 48px);
    visibility: hidden;
    transition: clip-path .8s var(--ease), visibility 0s .8s;
    overflow-y: auto;
}
html.menu-open .mmenu { clip-path: circle(150% at calc(100% - 44px) 48px); visibility: visible; transition-delay: 0s; }
.mmenu__links { display: flex; flex-direction: column; }
.mmenu__links a {
    display: flex; align-items: baseline; gap: 16px;
    padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.08);
    font-family: var(--f-display); font-size: clamp(1.9rem, 8vw, 2.6rem); font-weight: 340; letter-spacing: -.02em; line-height: 1.1;
    opacity: 0; transform: translateY(24px);
    transition: opacity .5s, transform .7s var(--ease), color .3s;
}
.mmenu__links a i { font-family: var(--f-body); font-style: normal; font-size: .75rem; color: var(--peach); letter-spacing: .08em; }
.mmenu__links a:hover { color: var(--peach); }
html.menu-open .mmenu__links a { opacity: 1; transform: none; }
html.menu-open .mmenu__links a:nth-child(1) { transition-delay: .15s; }
html.menu-open .mmenu__links a:nth-child(2) { transition-delay: .19s; }
html.menu-open .mmenu__links a:nth-child(3) { transition-delay: .23s; }
html.menu-open .mmenu__links a:nth-child(4) { transition-delay: .27s; }
html.menu-open .mmenu__links a:nth-child(5) { transition-delay: .31s; }
html.menu-open .mmenu__links a:nth-child(6) { transition-delay: .35s; }
html.menu-open .mmenu__links a:nth-child(7) { transition-delay: .39s; }
html.menu-open .mmenu__links a:nth-child(8) { transition-delay: .43s; }
.mmenu__foot { display: flex; flex-direction: column; gap: 10px; margin-top: 32px; color: rgba(246,242,236,.7); }
.mmenu__foot .btn { margin-top: 12px; }

/* ---------- Hero ---------- */
.hero {
    position: relative;
    min-height: 100svh;
    padding: 130px 0 90px;
    display: flex; align-items: center;
    overflow: hidden;
    isolation: isolate;
}
.hero__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.blob { position: absolute; border-radius: 50%; will-change: transform; }
.blob--a { width: 60vw; height: 60vw; right: -18vw; top: -22vw; background: radial-gradient(circle at 40% 40%, rgba(42,157,244,.30), rgba(42,157,244,0) 62%); animation: drift 18s ease-in-out infinite alternate; }
.blob--b { width: 46vw; height: 46vw; left: -14vw; bottom: -20vw; background: radial-gradient(circle, rgba(255,180,143,.42), rgba(255,180,143,0) 62%); animation: drift 22s ease-in-out infinite alternate-reverse; }
.blob--c { width: 30vw; height: 30vw; left: 38%; top: 12%; background: radial-gradient(circle, rgba(20,184,166,.16), rgba(20,184,166,0) 65%); animation: drift 26s ease-in-out infinite alternate; }
@keyframes drift {
    0%   { transform: translate(0, 0) scale(1); }
    50%  { transform: translate(4vw, 3vw) scale(1.08); }
    100% { transform: translate(-3vw, 5vw) scale(.95); }
}
.hero__grid {
    position: absolute; inset: 0;
    background-image: linear-gradient(var(--line) 1px, transparent 1px), linear-gradient(90deg, var(--line) 1px, transparent 1px);
    background-size: 88px 88px;
    -webkit-mask-image: radial-gradient(ellipse 70% 60% at 60% 40%, #000 20%, transparent 75%);
    mask-image: radial-gradient(ellipse 70% 60% at 60% 40%, #000 20%, transparent 75%);
    opacity: .5;
}

.hero__inner { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); gap: clamp(24px, 4vw, 64px); align-items: center; }

.hero__eyebrow {
    color: var(--ink-2); letter-spacing: .06em; text-transform: none; font-size: .86rem; font-weight: 500;
    padding: 8px 16px 8px 12px; border-radius: 999px;
    background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px var(--line);
    margin-bottom: 28px;
}
.hero__eyebrow::before { display: none; }
.dot { width: 8px; height: 8px; border-radius: 50%; background: var(--teal); position: relative; }
.dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; background: var(--teal); opacity: .35; animation: ping 2s var(--ease) infinite; }
@keyframes ping { 0% { transform: scale(.6); opacity: .5; } 100% { transform: scale(2.2); opacity: 0; } }

.hero__title {
    font-family: var(--f-display);
    font-weight: 360;
    font-variation-settings: "opsz" 144;
    font-size: clamp(3rem, 7vw, 6.6rem);
    line-height: .98;
    letter-spacing: -.028em;
}
.hero__title .line { display: block; overflow: hidden; padding-bottom: .09em; margin-bottom: -.09em; }
.hero__title .line > span { display: inline-block; will-change: transform; }
.hero__title em {
    font-weight: 320;
    background: linear-gradient(100deg, var(--brand) 10%, var(--brand-2) 55%, var(--teal) 95%);
    -webkit-background-clip: text; background-clip: text; color: transparent;
    padding-right: .06em;
}
.ecg-pill {
    display: inline-flex; align-items: center; justify-content: center;
    width: 1.55em; height: .74em;
    margin-left: .12em;
    border-radius: 999px;
    background: var(--ink);
    vertical-align: .08em;
}
.ecg-pill svg { width: 78%; height: 70%; overflow: visible; }
.ecg-pill path {
    fill: none; stroke: var(--peach); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
    stroke-dasharray: 190; stroke-dashoffset: 190;
    animation: ecg 2.6s var(--ease) infinite;
}
@keyframes ecg {
    0% { stroke-dashoffset: 190; }
    55% { stroke-dashoffset: 0; }
    100% { stroke-dashoffset: -190; }
}

.hero__lead { margin-top: 30px; max-width: 54ch; font-size: clamp(1rem, 1.25vw, 1.12rem); color: var(--ink-soft); }
.hero__lead strong { color: var(--ink); font-weight: 600; }
.hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 36px; }

.hero__proof { display: flex; align-items: center; flex-wrap: wrap; gap: 20px 24px; margin-top: 44px; }
.rating { display: flex; align-items: center; gap: 12px; }
.rating > svg { width: 34px; height: 34px; padding: 6px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-1); }
.rating b { font-family: var(--f-display); font-size: 1.5rem; font-weight: 500; line-height: 1; }
.rating small { display: block; font-size: .8rem; color: var(--ink-mute); }
.stars { color: var(--sun); letter-spacing: 2px; font-size: .92rem; }
.hero__sep { width: 1px; height: 36px; background: var(--line-strong); }
.hero__creds { display: flex; flex-wrap: wrap; gap: 8px; }
.hero__creds span { font-size: .78rem; font-weight: 600; padding: 7px 12px; border-radius: 999px; background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px var(--line); color: var(--ink-2); }

/* visual */
.hero__visual { position: relative; height: clamp(480px, 76vh, 720px); }
.arch {
    position: absolute; left: 50%; bottom: 0;
    width: min(400px, 88%); height: 80%;
    margin-left: calc(min(400px, 88%) / -2);
    border-radius: 999px 999px 36px 36px;
    background:
        radial-gradient(circle at 50% 18%, rgba(255,255,255,.28), transparent 45%),
        linear-gradient(165deg, var(--brand-2) 0%, var(--brand) 48%, var(--brand-deep) 100%);
    box-shadow: 0 40px 80px -30px rgba(8,74,120,.55);
    overflow: hidden;
    transform-origin: bottom center;
}
.arch::before, .arch__ring {
    content: ""; position: absolute; left: 50%; top: 22%;
    width: 150%; aspect-ratio: 1; border-radius: 50%;
    border: 1px solid rgba(255,255,255,.18);
    transform: translateX(-50%);
}
.arch__ring { width: 105%; top: 34%; border-color: rgba(255,255,255,.12); }
.hero__doc {
    position: absolute; left: 50%; bottom: 0;
    height: 100%;
    margin-left: -21%;
    width: 42%;
    display: flex; justify-content: center; align-items: flex-end;
}
.hero__doc img {
    height: 100%; width: auto; max-width: none;
    object-fit: contain; object-position: bottom;
    filter: drop-shadow(0 30px 40px rgba(11,27,46,.25));
    -webkit-mask-image: linear-gradient(to bottom, #000 82%, transparent 100%);
    mask-image: linear-gradient(to bottom, #000 82%, transparent 100%);
}

.badge-spin {
    position: absolute; right: 0; top: 8%;
    width: clamp(110px, 10vw, 140px); aspect-ratio: 1;
    border-radius: 50%;
    background: var(--paper-3);
    box-shadow: var(--shadow-2);
    display: grid; place-items: center;
}
.badge-spin > svg { position: absolute; inset: 0; width: 100%; height: 100%; animation: spin 22s linear infinite; }
.badge-spin text { font-family: var(--f-body); font-size: 12.4px; font-weight: 600; letter-spacing: 2.6px; fill: var(--ink); }
.badge-spin__core { width: 44%; aspect-ratio: 1; border-radius: 50%; background: var(--peach); display: grid; place-items: center; }
.badge-spin__core svg { width: 55%; height: 55%; fill: none; stroke: var(--ink); stroke-width: 1.6; stroke-linejoin: round; }
@keyframes spin { to { transform: rotate(360deg); } }

.float-card {
    position: absolute;
    display: flex; align-items: center; gap: 12px;
    padding: 12px 18px 12px 12px;
    border-radius: 20px;
    background: rgba(255,255,255,.78);
    -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
    box-shadow: var(--shadow-2), inset 0 0 0 1px rgba(255,255,255,.8);
    line-height: 1.2;
}
.float-card b { display: block; font-family: var(--f-display); font-size: 1.4rem; font-weight: 500; letter-spacing: -.02em; }
.float-card small { font-size: .78rem; color: var(--ink-mute); }
.float-card__icon { width: 44px; height: 44px; border-radius: 14px; background: var(--brand-soft); display: grid; place-items: center; flex-shrink: 0; }
.float-card__icon svg { width: 22px; height: 22px; fill: none; stroke: var(--brand); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.float-card__icon--peach { background: var(--peach-soft); }
.float-card__icon--peach svg { stroke: #D9693A; }
.float-card--a { left: -2%; top: 30%; }
.float-card--b { right: -4%; bottom: 22%; }
.float-card--c { left: 4%; bottom: 7%; padding: 12px 18px; font-size: .86rem; font-weight: 600; gap: 10px; border-radius: 999px; }
/* About: the Gold Medalist card sits low so it never covers his face */
.hero__visual--about .float-card--a { top: auto; left: 0; bottom: 7%; }
@media (max-width: 640px) { .hero__visual--about .float-card--b { bottom: 30%; } }
.chip-live { width: 9px; height: 9px; border-radius: 50%; background: var(--teal); box-shadow: 0 0 0 4px rgba(20,184,166,.18); }

.scroll-cue { position: absolute; left: 50%; bottom: 26px; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 8px; color: var(--ink-mute); font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; }
.scroll-cue__track { width: 24px; height: 40px; border-radius: 999px; box-shadow: inset 0 0 0 1.5px var(--line-strong); position: relative; }
.scroll-cue__track span { position: absolute; left: 50%; top: 8px; width: 3px; height: 8px; margin-left: -1.5px; border-radius: 2px; background: var(--ink); animation: cue 1.8s var(--ease) infinite; }
@keyframes cue { 0% { transform: translateY(0); opacity: 1; } 80% { transform: translateY(14px); opacity: 0; } 100% { opacity: 0; } }

/* hero pre-hide (only when JS + motion allowed) */
@media (prefers-reduced-motion: no-preference) {
    html.js [data-hero],
    html.js .hero__title .line > span,
    html.js .hero__visual > * {
        opacity: 0;
        animation: failsafe .8s ease 3.6s forwards;
    }
    html.motion-ready [data-hero],
    html.motion-ready .hero__title .line > span,
    html.motion-ready .hero__visual > * { animation: none; }
}
html.no-motion [data-hero],
html.no-motion .hero__title .line > span,
html.no-motion .hero__visual > * { opacity: 1 !important; animation: none !important; }
@keyframes failsafe { to { opacity: 1; } }

/* ---------- Marquee band ---------- */
.band {
    position: relative; z-index: 2;
    background: var(--ink); color: var(--paper);
    padding: 26px 0;
    transform: rotate(-1.6deg);
    margin: -10px -2vw 0;
    overflow: hidden;
    box-shadow: 0 20px 50px -25px rgba(11,27,46,.5);
}
.band__track { display: flex; width: max-content; will-change: transform; }
.band__track.css-anim { animation: band 40s linear infinite; }
@keyframes band { to { transform: translateX(-33.3333%); } }
.band__row { display: flex; align-items: center; flex-shrink: 0; }
.band__row span { font-family: var(--f-display); font-size: clamp(1.6rem, 3vw, 2.6rem); font-weight: 340; letter-spacing: -.02em; padding: 0 28px; white-space: nowrap; }
.band__row em { color: var(--peach); }
.band__row i { font-style: normal; color: var(--peach); font-size: 1.2rem; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Intro ---------- */
.intro__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.6fr); gap: clamp(32px, 6vw, 96px); }
.intro__meta dl { display: flex; flex-direction: column; gap: 18px; margin-top: 8px; }
.intro__meta dl > div { padding-top: 16px; border-top: 1px solid var(--line); }
.intro__meta dt { font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-mute); font-weight: 600; margin-bottom: 4px; }
.intro__meta dd { font-size: .92rem; color: var(--ink-2); font-weight: 500; }
.manifesto {
    font-family: var(--f-display);
    font-weight: 340;
    font-variation-settings: "opsz" 96;
    font-size: clamp(1.7rem, 3.3vw, 3.05rem);
    line-height: 1.18;
    letter-spacing: -.022em;
}
.manifesto em { color: var(--brand); }
.manifesto .word { display: inline; }

.stats {
    display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
    margin-top: clamp(64px, 9vw, 120px);
    border-top: 1px solid var(--line-strong);
}
.stat { padding: 32px 24px 0 0; display: flex; flex-direction: column; gap: 10px; }
.stat + .stat { padding-left: 24px; border-left: 1px solid var(--line); }
.stat b {
    font-family: var(--f-display); font-weight: 300;
    font-variation-settings: "opsz" 144;
    font-size: clamp(2.8rem, 5.6vw, 5.2rem); line-height: .9; letter-spacing: -.04em;
    font-variant-numeric: tabular-nums;
}
.stat sup { font-family: var(--f-body); font-weight: 500; font-size: .4em; color: var(--brand); vertical-align: top; position: relative; top: .12em; margin-left: 4px; }
.stat > span { font-size: .92rem; color: var(--ink-soft); max-width: 22ch; }

/* ---------- Services bento ---------- */
.services { background: var(--paper-3); border-radius: 48px 48px 0 0; }
.bento {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    grid-auto-rows: auto;
    gap: 16px;
}
.tile {
    --mx: 50%; --my: 50%;
    position: relative; isolation: isolate; overflow: hidden;
    display: flex; flex-direction: column;
    min-height: 250px;
    padding: 28px;
    border-radius: 28px;
    background: var(--card);
    box-shadow: inset 0 0 0 1px var(--line);
    transition: translate .6s var(--ease), box-shadow .6s var(--ease);
}
.tile::before {
    content: ""; position: absolute; inset: 0; z-index: -1;
    background: radial-gradient(420px circle at var(--mx) var(--my), rgba(42,157,244,.14), transparent 60%);
    opacity: 0; transition: opacity .4s;
}
.tile:hover { translate: 0 -6px; box-shadow: inset 0 0 0 1px var(--line), var(--shadow-2); }
.tile:hover::before { opacity: 1; }
.tile__num { position: absolute; top: 26px; right: 28px; font-size: .78rem; font-weight: 600; color: var(--ink-mute); letter-spacing: .08em; }
.tile__icon { width: 54px; height: 54px; border-radius: 18px; background: var(--brand-soft); display: grid; place-items: center; margin-bottom: auto; }
.tile__icon svg { width: 26px; height: 26px; fill: none; stroke: var(--brand); stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.tile__icon--peach { background: var(--peach-soft); }
.tile__icon--peach svg { stroke: #D9693A; }
.tile h3 { font-family: var(--f-display); font-weight: 420; font-size: 1.5rem; letter-spacing: -.02em; line-height: 1.1; margin-top: 36px; }
.tile p { margin-top: 10px; font-size: .92rem; color: var(--ink-soft); max-width: 38ch; padding-right: 44px; }
.tile__go {
    position: absolute; right: 22px; bottom: 22px;
    width: 44px; height: 44px; border-radius: 50%;
    display: grid; place-items: center;
    box-shadow: inset 0 0 0 1.5px var(--line-strong);
    transition: background .4s, transform .6s var(--ease), box-shadow .4s;
}
.tile__go svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.tile:hover .tile__go { background: var(--ink); color: #fff; box-shadow: none; transform: rotate(45deg); }

.tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; padding-right: 58px; }
.tags li { font-size: .78rem; font-weight: 500; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.14); box-shadow: inset 0 0 0 1px rgba(255,255,255,.22); }
.tile--dark .tags li { background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px rgba(255,255,255,.14); color: rgba(246,242,236,.85); }
.tile:not(.tile--brand):not(.tile--dark) .tags li { background: var(--paper-3); box-shadow: inset 0 0 0 1px var(--line); color: var(--ink-2); }

.tile--xl { grid-column: span 2; grid-row: span 2; padding: 40px; }
.tile--xl h3 { font-size: clamp(2rem, 3.2vw, 2.9rem); }
.tile--xl p { font-size: 1.02rem; }
.tile--tall { grid-row: span 2; }
.tile--wide { grid-column: span 4; flex-direction: row; align-items: center; gap: 28px; min-height: 0; padding: 30px 36px; }
.tile--wide .tile__icon { margin: 0; }
.tile--wide .tile__go { bottom: auto; top: calc(50% - 22px); right: 32px; }
.tile--wide .tile__num { top: 50%; right: 96px; margin-top: -.6em; }
.tile--wide h3 { margin-top: 0; }
.tile--wide p { margin-top: 6px; max-width: 60ch; }

.tile--brand { background: linear-gradient(150deg, var(--brand-2), var(--brand) 45%, var(--brand-deep)); color: #fff; box-shadow: 0 30px 60px -30px rgba(14,111,173,.7); }
.tile--brand::before { background: radial-gradient(420px circle at var(--mx) var(--my), rgba(255,255,255,.22), transparent 60%); }
.tile--brand p, .tile--brand .tile__num { color: rgba(255,255,255,.8); }
.tile--brand .tile__icon { background: rgba(255,255,255,.16); }
.tile--brand .tile__icon svg { stroke: #fff; }
.tile--brand .tile__go { box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.4); }
.tile--brand:hover .tile__go { background: #fff; color: var(--brand); }
.tile--brand::after {
    content: ""; position: absolute; right: -80px; top: -80px; z-index: -1;
    width: 320px; height: 320px; border-radius: 50%;
    border: 1px solid rgba(255,255,255,.2);
    box-shadow: 0 0 0 50px rgba(255,255,255,.04), 0 0 0 100px rgba(255,255,255,.03);
}
.tile--dark { background: var(--ink); color: var(--paper); box-shadow: none; }
.tile--dark p, .tile--dark .tile__num { color: rgba(246,242,236,.65); }
.tile--dark .tile__icon { background: rgba(255,255,255,.08); }
.tile--dark .tile__icon svg { stroke: var(--peach); }
.tile--dark .tile__go { box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.25); }
.tile--dark:hover .tile__go { background: var(--peach); color: var(--ink); }
.tile--dark::before { background: radial-gradient(420px circle at var(--mx) var(--my), rgba(255,180,143,.18), transparent 60%); }

/* ---------- Journey ---------- */
.journey { background: var(--ink); color: var(--paper); position: relative; overflow: hidden; }
.journey__pin { min-height: 100vh; display: flex; flex-direction: column; justify-content: center; padding: 120px 0 80px; gap: 56px; }
.journey__head { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 24px; }
.journey__head .eyebrow { grid-column: 1 / -1; margin-bottom: 0; }
.journey__progress { width: 200px; height: 2px; background: rgba(255,255,255,.14); margin-bottom: 18px; }
.journey__progress span { display: block; height: 100%; background: var(--peach); transform-origin: left; transform: scaleX(0); }
.journey__track {
    display: flex; gap: 24px;
    width: max-content;
    padding-left: max(var(--gutter), calc((100vw - var(--maxw)) / 2));
    padding-right: max(var(--gutter), calc((100vw - var(--maxw)) / 2));
    will-change: transform;
}
.step {
    position: relative;
    width: min(460px, 78vw);
    min-height: 380px;
    display: flex; flex-direction: column;
    padding: 36px;
    border-radius: 30px;
    background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.1);
    overflow: hidden;
}
.step__num {
    font-family: var(--f-display); font-weight: 300; font-style: italic;
    font-size: 7rem; line-height: .8; letter-spacing: -.05em;
    color: transparent; -webkit-text-stroke: 1px rgba(255,180,143,.55);
    margin-bottom: auto;
}
.step h3 { font-family: var(--f-display); font-weight: 400; font-size: 2rem; letter-spacing: -.02em; margin-top: 40px; }
.step p { margin-top: 12px; color: rgba(246,242,236,.72); font-size: .98rem; }
.step__meta { margin-top: 24px; align-self: flex-start; font-size: .78rem; font-weight: 600; letter-spacing: .04em; padding: 7px 14px; border-radius: 999px; background: rgba(255,180,143,.12); color: var(--peach); }
.step:nth-child(2) { background: linear-gradient(160deg, rgba(42,157,244,.22), rgba(42,157,244,.04)); }
.step:nth-child(4) { background: linear-gradient(160deg, rgba(20,184,166,.2), rgba(20,184,166,.03)); }

/* ---------- Credentials ---------- */
.creds { background: var(--ink); color: var(--paper); }
.creds__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(40px, 7vw, 120px); align-items: start; }
.creds__head { position: sticky; top: 130px; }
.licences { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 44px; max-width: 420px; }
.licences span { display: flex; flex-direction: column; padding: 16px 18px; border-radius: 18px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.12); font-size: .8rem; color: rgba(246,242,236,.6); }
.licences b { font-family: var(--f-display); font-weight: 500; font-size: 1.4rem; color: var(--paper); letter-spacing: -.01em; }

.timeline { position: relative; padding-left: 44px; }
.timeline__line { position: absolute; left: 7px; top: 8px; bottom: 8px; width: 2px; background: rgba(255,255,255,.1); }
.timeline__line span { display: block; width: 100%; height: 100%; background: linear-gradient(var(--peach), var(--brand-2)); transform-origin: top; transform: scaleY(0); }
.timeline li { position: relative; padding-bottom: 46px; }
.timeline li:last-child { padding-bottom: 0; }
.timeline li::before {
    content: ""; position: absolute; left: -44px; top: 4px;
    width: 16px; height: 16px; border-radius: 50%;
    background: var(--ink); box-shadow: inset 0 0 0 2px rgba(255,255,255,.25);
    transition: box-shadow .5s var(--ease), background .5s;
}
.timeline li.is-on::before { background: var(--peach); box-shadow: 0 0 0 6px rgba(255,180,143,.18); }
.timeline time { font-size: .8rem; font-weight: 600; letter-spacing: .1em; color: var(--peach); text-transform: uppercase; }
.timeline h3 { font-family: var(--f-display); font-weight: 400; font-size: clamp(1.4rem, 2.2vw, 1.9rem); letter-spacing: -.02em; line-height: 1.15; margin-top: 8px; }
.timeline p { margin-top: 6px; color: rgba(246,242,236,.62); }

/* ---------- Quote / philosophy (animated heartbeat scene) ---------- */
.quote {
    position: relative; isolation: isolate; overflow: hidden;
    min-height: min(100vh, 980px);
    display: flex; align-items: center;
    padding: var(--section) 0;
    text-align: center;
    background:
        radial-gradient(ellipse 80% 60% at 50% 50%, #FFFFFF 0%, rgba(255,255,255,0) 70%),
        linear-gradient(180deg, var(--paper) 0%, #EAF3FB 55%, var(--paper) 100%);
}
.quote__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }

.q-orb { position: absolute; border-radius: 50%; will-change: transform; }
.q-orb--a { width: 46vw; height: 46vw; left: -12vw; top: -10vw; background: radial-gradient(circle, rgba(42,157,244,.32), rgba(42,157,244,0) 65%); animation: drift 16s ease-in-out infinite alternate; }
.q-orb--b { width: 40vw; height: 40vw; right: -10vw; bottom: -12vw; background: radial-gradient(circle, rgba(255,180,143,.45), rgba(255,180,143,0) 65%); animation: drift 20s ease-in-out infinite alternate-reverse; }
.q-orb--c { width: 26vw; height: 26vw; right: 16%; top: 6%; background: radial-gradient(circle, rgba(20,184,166,.22), rgba(20,184,166,0) 65%); animation: drift 24s ease-in-out infinite alternate; }

.q-mark {
    position: absolute; left: 4%; top: -6%;
    font-family: var(--f-display); font-style: italic; font-weight: 300;
    font-size: clamp(18rem, 42vw, 40rem); line-height: 1;
    color: transparent; -webkit-text-stroke: 1.5px rgba(14,111,173,.16);
    will-change: transform;
}

.q-rings { position: absolute; left: 50%; top: 50%; width: min(900px, 120vw); aspect-ratio: 1; transform: translate(-50%, -50%); }
.q-rings i {
    position: absolute; inset: 0; border-radius: 50%;
    border: 1.5px solid rgba(42,157,244,.35);
    opacity: 0;
    animation: ring 6s cubic-bezier(.2,.6,.3,1) infinite;
}
.q-rings i:nth-child(2) { animation-delay: 2s; border-color: rgba(255,180,143,.45); }
.q-rings i:nth-child(3) { animation-delay: 4s; border-color: rgba(20,184,166,.35); }
@keyframes ring { 0% { transform: scale(.25); opacity: 0; } 15% { opacity: 1; } 100% { transform: scale(1.15); opacity: 0; } }

.q-ecg { position: absolute; left: 0; top: 50%; width: 100%; height: 220px; margin-top: -110px; overflow: visible; }
.q-ecg path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.q-ecg__base { stroke: rgba(14,111,173,.14); stroke-width: 1.5; }
.q-ecg__pulse {
    stroke: url(#qEcgGrad); stroke-width: 3;
    stroke-dasharray: 140 860; stroke-dashoffset: 1000;
    filter: drop-shadow(0 0 6px rgba(42,157,244,.7));
    animation: ecgRun 5.5s linear infinite;
}
.q-ecg__pulse--late { animation-delay: -2.75s; opacity: .55; stroke-width: 2; }
@keyframes ecgRun { to { stroke-dashoffset: 0; } }

.q-bubbles { position: absolute; inset: 0; }
.q-bubbles span {
    position: absolute; bottom: -40px; border-radius: 50%;
    background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.95), var(--c) 70%);
    box-shadow: 0 6px 16px -6px var(--c);
    opacity: 0;
    animation: bubble var(--d) linear infinite; animation-delay: var(--delay);
}
@keyframes bubble {
    0%   { transform: translate(0, 0) scale(.6); opacity: 0; }
    10%  { opacity: .9; }
    50%  { transform: translate(var(--sway), -55vh) scale(1); }
    90%  { opacity: .7; }
    100% { transform: translate(0, -110vh) scale(.8); opacity: 0; }
}

/* A child's world: doodles + speech bubbles around the quote */
.q-kids { position: absolute; inset: 0; }
.q-dd, .q-say { position: absolute; display: block; }
.q-dd svg { display: block; width: 100%; height: auto; overflow: visible; fill: none; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 10px 14px rgba(11,27,46,.08)); }
.q-dd text { font-family: 'Caveat', var(--f-display); font-weight: 700; font-size: 30px; fill: #fff; stroke: none; }
.dd-trail { stroke: #6BB8FF; stroke-dasharray: 4 7; opacity: .7; }
.q-dd--plane    { left: 7%;  top: 9%;    width: 150px; }
.q-dd--balloons { right: 6%; top: 5%;    width: 104px; }
.q-dd--rainbow  { right: 21%; top: 8%;   width: 104px; }
.q-dd--bear     { left: 5%;  bottom: 7%; width: 132px; }
.q-dd--blocks   { left: 17%; bottom: 5%; width: 104px; }
.q-dd--cloud    { right: 5%; bottom: 10%; width: 150px; }
.q-dd--plaster  { right: 21%; bottom: 6%; width: 92px; }
.q-dd--star     { width: 30px; }
.q-dd--s1 { left: 25%; top: 11%; }
.q-dd--s2 { right: 3%; top: 46%; width: 24px; }
.q-dd--s3 { left: 3%; top: 52%; width: 22px; }
.dd-glide   { animation: ddGlide 7s ease-in-out infinite alternate; }
.dd-rise    { animation: ddRise 8s ease-in-out infinite alternate; transform-origin: 50% 100%; }
.dd-float   { animation: ddFloat 6s ease-in-out infinite alternate; }
.dd-wobble  { animation: ddWobble 5s ease-in-out infinite; transform-origin: 50% 100%; }
.dd-drift   { animation: ddDrift 11s ease-in-out infinite alternate; }
.dd-twinkle { animation: ddTwinkle 3.2s ease-in-out infinite; transform-origin: 50% 50%; }
.q-dd--s2 .dd-twinkle { animation-delay: -1.1s; }
.q-dd--s3 .dd-twinkle { animation-delay: -2.2s; }
.q-dd--blocks .dd-float { animation-delay: -2s; }
.q-dd--plaster .dd-float { animation-delay: -4s; }
@keyframes ddGlide   { from { transform: translate(-10px, 8px) rotate(-3deg); } to { transform: translate(14px, -10px) rotate(4deg); } }
@keyframes ddRise    { from { transform: translateY(10px) rotate(-4deg); } to { transform: translateY(-22px) rotate(4deg); } }
@keyframes ddFloat   { from { transform: translateY(6px) rotate(-3deg); } to { transform: translateY(-10px) rotate(3deg); } }
@keyframes ddWobble  { 0%, 100% { transform: rotate(-4deg); } 50% { transform: rotate(5deg); } }
@keyframes ddDrift   { from { transform: translateX(-12px); } to { transform: translateX(16px); } }
@keyframes ddTwinkle { 0%, 100% { transform: scale(.8) rotate(0); opacity: .7; } 50% { transform: scale(1.15) rotate(20deg); opacity: 1; } }

.q-say__in {
    position: relative; display: inline-block; white-space: nowrap;
    padding: 10px 18px 12px; border-radius: 22px;
    font-family: 'Caveat', var(--f-body); font-weight: 700; font-size: 1.55rem; line-height: 1; color: var(--ink-2);
    background: #fff; border: 2px solid var(--say, #6BB8FF);
    box-shadow: 0 14px 24px -14px rgba(11,27,46,.25), 4px 4px 0 var(--say-soft, #DCEBFF);
    animation: sayBob 4.6s ease-in-out infinite alternate;
}
.q-say__in::after {
    content: ""; position: absolute; bottom: -9px; left: 26px; width: 16px; height: 16px;
    background: #fff; border: 2px solid var(--say, #6BB8FF); border-top: 0; border-left: 0;
    border-radius: 0 0 5px 0; transform: rotate(45deg) skew(8deg, 8deg);
}
.q-say--1 { left: 4%; bottom: 29%; --say: #FF8A80; --say-soft: #FFE3DF; }
.q-say--2 { right: 4%; top: 19%; --say: #6BB8FF; --say-soft: #DCEBFF; }
.q-say--2 .q-say__in { animation-delay: -1.6s; }
.q-say--2 .q-say__in::after { left: auto; right: 30px; }
.q-say--3 { right: 7%; bottom: 29%; --say: #2FB08F; --say-soft: #D7F4EC; }
.q-say--3 .q-say__in { animation-delay: -3s; }
.q-say--3 .q-say__in::after { left: auto; right: 40px; }
@keyframes sayBob { from { translate: 0 4px; rotate: -3deg; } to { translate: 0 -6px; rotate: 2deg; } }

@media (max-width: 1280px) {
    .q-dd--rainbow { right: 18%; }
    .q-dd--s1 { left: 22%; }
}
@media (max-width: 1100px) {
    .q-say { display: none; }
}
@media (max-width: 900px) {
    .q-dd--rainbow, .q-dd--plaster, .q-dd--cloud, .q-dd--s1, .q-dd--s2, .q-dd--s3 { display: none; }
    .q-dd--plane    { left: 3%; top: 4%; width: 96px; }
    .q-dd--balloons { right: 4%; top: 3%; width: 66px; }
    .q-dd--bear     { left: 3%; bottom: 3%; width: 84px; }
    .q-dd--blocks   { left: 27%; bottom: 3%; width: 70px; }
}

.quote__inner { position: relative; }
.quote .eyebrow { justify-content: center; }
.quote__big {
    font-family: var(--f-display); font-weight: 320; font-style: italic;
    font-variation-settings: "opsz" 144;
    font-size: clamp(3rem, 10vw, 9.5rem);
    line-height: .95; letter-spacing: -.045em;
    max-width: 12ch; margin: 0 auto;
}
.quote__big em { color: var(--brand); padding-bottom: .06em;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 20' preserveAspectRatio='none'%3E%3Cpath d='M4 12c30-8 58 6 92-2s66-6 100 0' fill='none' stroke='%23FFC94D' stroke-width='7' stroke-linecap='round' opacity='.85'/%3E%3C/svg%3E") no-repeat 0 100% / 100% .2em; }
.quote__big .word { display: inline-block; white-space: nowrap; }
.quote footer { margin: 40px auto 0; max-width: 56ch; color: var(--ink-soft); font-size: 1.08rem; }
.quote__sign {
    display: inline-flex; align-items: center; gap: 14px; margin-top: 40px;
    padding: 10px 22px 10px 10px; border-radius: 999px; text-align: left;
    background: rgba(255,255,255,.75); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    box-shadow: var(--shadow-1), inset 0 0 0 1px rgba(255,255,255,.9);
}
.quote__sign b { display: block; font-family: var(--f-display); font-weight: 500; font-size: 1.05rem; }
.quote__sign small { display: block; font-size: .78rem; color: var(--ink-mute); }
.quote__beat { width: 44px; height: 44px; border-radius: 50%; background: var(--peach-soft); display: grid; place-items: center; }
.quote__beat svg { width: 22px; height: 22px; fill: #E36B3F; animation: beat 1.2s ease-in-out infinite; }
@keyframes beat { 0%, 100% { transform: scale(1); } 15% { transform: scale(1.25); } 30% { transform: scale(.95); } 45% { transform: scale(1.15); } }

/* ---------- Reviews ---------- */
.reviews { background: var(--paper-2); overflow: hidden; }
.score { display: flex; align-items: center; gap: 16px; }
.score b { font-family: var(--f-display); font-weight: 300; font-size: 4.6rem; line-height: .8; letter-spacing: -.04em; }
.score small { display: block; font-size: .85rem; color: var(--ink-soft); }
.score .stars { font-size: 1.2rem; }

.reviews__marquee {
    overflow: hidden;
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.reviews__row { display: flex; width: max-content; animation: marquee 60s linear infinite; }
.reviews__row:hover { animation-play-state: paused; }
.reviews__set { display: flex; gap: 20px; padding-right: 20px; flex-shrink: 0; }
.review {
    width: clamp(290px, 30vw, 400px);
    display: flex; flex-direction: column; gap: 18px;
    padding: 30px;
    border-radius: 26px;
    background: var(--card);
    box-shadow: inset 0 0 0 1px var(--line);
}
.review__stars { color: var(--sun); letter-spacing: 3px; }
.review__text { font-family: var(--f-display); font-weight: 360; font-size: 1.15rem; line-height: 1.45; letter-spacing: -.01em; flex: 1; display: -webkit-box; -webkit-line-clamp: 6; -webkit-box-orient: vertical; overflow: hidden; }
.review__who { display: flex; align-items: center; gap: 12px; padding-top: 18px; border-top: 1px solid var(--line); }
.review__who strong { display: block; font-size: .92rem; }
.review__who small { display: block; font-size: .78rem; color: var(--ink-mute); }
.review__avatar { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; color: #fff; font-weight: 700; flex-shrink: 0; }
.review__g { width: 22px; height: 22px; margin-left: auto; }
.reviews__cta { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; margin-top: 56px; }

/* ---------- Moments ---------- */
.moments { overflow: hidden; }
.moments__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.moments__links { display: flex; flex-wrap: wrap; gap: 14px 28px; margin-top: 36px; }
.collage { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; height: clamp(460px, 60vw, 680px); overflow: hidden; border-radius: 30px; }
.collage__col { display: flex; flex-direction: column; gap: 16px; will-change: transform; }
.collage__col:nth-child(1) { margin-top: -110px; }
.collage__col:nth-child(2) { margin-top: -20px; }
.collage img { width: 100%; aspect-ratio: 4 / 4.6; object-fit: cover; border-radius: 22px; }

/* ---------- Appointment ---------- */
.appt { padding-top: 0; }
.appt__card {
    display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
    border-radius: 40px; overflow: hidden;
    background: var(--card);
    box-shadow: var(--shadow-2);
}
.appt__info {
    position: relative; overflow: hidden; isolation: isolate;
    padding: clamp(32px, 5vw, 64px);
    background: linear-gradient(160deg, var(--ink-2), var(--ink) 60%);
    color: var(--paper);
}
.appt__info::after {
    content: ""; position: absolute; z-index: -1; right: -120px; bottom: -120px;
    width: 360px; height: 360px; border-radius: 50%;
    background: radial-gradient(circle, rgba(42,157,244,.45), transparent 65%);
}
.appt__info > p { margin-top: 20px; color: rgba(246,242,236,.72); max-width: 40ch; }
.appt__list { margin-top: 36px; }
.appt__list a { display: flex; flex-direction: column; gap: 2px; padding: 16px 0; border-top: 1px solid rgba(255,255,255,.1); font-weight: 500; transition: color .3s, padding .4s var(--ease); }
.appt__list a:hover { color: var(--peach); padding-left: 8px; }
.appt__list span { font-size: .72rem; text-transform: uppercase; letter-spacing: .12em; color: rgba(246,242,236,.5); font-weight: 600; }
.appt__hours { margin-top: 24px; font-size: .85rem; color: rgba(246,242,236,.55); }

.form { padding: clamp(28px, 5vw, 64px); display: flex; flex-direction: column; gap: 14px; }
.form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field { position: relative; }
.field input, .field textarea {
    width: 100%;
    padding: 28px 18px 10px;
    border: 0; border-radius: 18px;
    background: var(--paper-3);
    box-shadow: inset 0 0 0 1.5px var(--line);
    font: inherit; font-size: 1rem; color: var(--ink);
    transition: box-shadow .3s, background .3s;
    resize: vertical;
}
.field textarea { min-height: 130px; }
.field input:focus, .field textarea:focus { outline: none; background: #fff; box-shadow: inset 0 0 0 2px var(--brand); }
.field label {
    position: absolute; left: 19px; top: 19px;
    font-size: 1rem; color: var(--ink-mute);
    pointer-events: none;
    transform-origin: left top;
    transition: transform .35s var(--ease), color .3s;
}
.field input:focus + label, .field input:not(:placeholder-shown) + label,
.field textarea:focus + label, .field textarea:not(:placeholder-shown) + label { transform: translateY(-11px) scale(.76); color: var(--brand); font-weight: 600; }
.field.is-invalid input, .field.is-invalid textarea { box-shadow: inset 0 0 0 2px #E0533D; }

.chips { border: 0; margin: 4px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.chips legend { font-size: .8rem; font-weight: 600; color: var(--ink-soft); margin-bottom: 10px; padding: 0; }
.chips label { position: relative; cursor: pointer; }
.chips input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chips span { display: inline-block; padding: 9px 16px; border-radius: 999px; font-size: .86rem; font-weight: 500; box-shadow: inset 0 0 0 1.5px var(--line-strong); transition: background .3s, color .3s, box-shadow .3s, transform .3s var(--ease); }
.chips label:hover span { box-shadow: inset 0 0 0 1.5px var(--ink); }
.chips input:checked + span { background: var(--ink); color: #fff; box-shadow: none; }
.chips input:focus-visible + span { outline: 2.5px solid var(--brand-2); outline-offset: 2px; }
.form__note { min-height: 1.2em; font-size: .88rem; font-weight: 500; color: #C2412D; }
.form__note.is-ok { color: var(--teal); }
.form__legal { color: var(--ink-mute); font-size: .78rem; text-align: center; }
.form__legal a { text-decoration: underline; }

/* ---------- Footer ---------- */
.foot { background: var(--ink); color: var(--paper); padding: clamp(72px, 9vw, 120px) 0 28px; overflow: hidden; border-radius: 48px 48px 0 0; position: relative; }
.foot__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.6fr); gap: 48px; }
.foot__intro p { font-family: var(--f-display); font-weight: 340; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.2; letter-spacing: -.02em; max-width: 20ch; margin-bottom: 28px; }
.foot__cols { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.foot__cols h4 { font-size: .74rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--peach); margin-bottom: 18px; }
.foot__cols a, .foot__cols span { display: block; padding: 5px 0; color: rgba(246,242,236,.72); font-size: .94rem; transition: color .3s, transform .4s var(--ease); }
.foot__cols a:hover { color: #fff; transform: translateX(4px); }
.foot__word { margin-top: clamp(56px, 8vw, 110px); overflow: hidden; line-height: .8; -webkit-mask-image: linear-gradient(180deg, #000 35%, rgba(0,0,0,.18)); mask-image: linear-gradient(180deg, #000 35%, rgba(0,0,0,.18)); }
.foot__word > span {
    display: inline-block; white-space: nowrap;
    font-family: var(--f-display); font-weight: 300; font-style: italic;
    font-variation-settings: "opsz" 144;
    font-size: clamp(2.6rem, 11.6vw, 12.4rem); letter-spacing: -.045em;
    padding-right: .11em; /* room for the italic overhang of the final "l" */
    color: var(--paper);
    padding-bottom: .06em;
}
.foot__word .word { display: inline-block; }
.foot__word .ch { display: inline-block; }
.foot__bottom { margin-top: 28px; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.1); display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px 24px; font-size: .82rem; color: rgba(246,242,236,.55); }
.foot__bottom a:hover { color: #fff; }

/* WhatsApp */
.wa-float {
    position: fixed; right: 20px; bottom: 20px; z-index: 230;
    width: 58px; height: 58px; border-radius: 50%;
    display: grid; place-items: center;
    background: #25D366; color: #fff;
    box-shadow: 0 16px 36px -12px rgba(37,211,102,.7);
    transition: transform .5s var(--ease);
}
.wa-float::before { content: ""; position: absolute; inset: 0; border-radius: 50%; background: #25D366; z-index: -1; animation: ping 2.4s var(--ease) infinite; }
.wa-float svg { width: 28px; height: 28px; fill: currentColor; }
.wa-float:hover { transform: scale(1.08) rotate(-6deg); }

/* ---------- Responsive ---------- */
@media (max-width: 1180px) {
    .nav__links { display: none; }
    .burger { display: block; }
    .nav__actions .btn { display: none; }
}
@media (max-width: 1024px) {
    .bento { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .tile--xl { grid-column: span 2; grid-row: span 1; }
    .tile--tall { grid-row: span 1; }
    .tile--wide { grid-column: span 2; }
    .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .stat:nth-child(3) { border-left: 0; padding-left: 0; }
    .stat { padding-bottom: 32px; }
    .creds__grid, .moments__grid, .appt__card, .foot__top { grid-template-columns: 1fr; }
    .creds__head { position: static; }
}
@media (max-width: 900px) {
    .hero { padding-top: 116px; min-height: auto; }
    .hero__inner { grid-template-columns: 1fr; }
    .hero__visual { height: 560px; max-width: 520px; width: 100%; margin: 0 auto; }
    .scroll-cue { display: none; }
    .intro__grid { grid-template-columns: 1fr; }
    .intro__side { order: 2; }
    .journey__pin { min-height: 0; }
    .journey__track { width: auto; flex-direction: column; padding: 0 var(--gutter); }
    .step { width: 100%; min-height: 0; }
    .step__num { font-size: 4.5rem; }
    .step h3 { margin-top: 24px; }
    .journey__progress { display: none; }
}
@media (max-width: 640px) {
    .nav { top: 10px; }
    .nav__pill { height: 60px; padding: 0 7px 0 10px; }
    .brand__mark svg { width: 38px; height: 38px; }
    .brand__text strong { font-size: 1rem; }
    .icon-btn { display: none; }
    .hero__cta .btn { flex: 1 1 100%; }
    .hero__sep { display: none; }
    .hero__visual { height: 470px; }
    .float-card--a { left: 0; top: 24%; }
    .float-card--b { right: 0; bottom: 18%; }
    .float-card b { font-size: 1.15rem; }
    .float-card__icon { width: 38px; height: 38px; }
    .badge-spin { width: 104px; }
    .badge-spin text { font-size: 13px; }
    .bento { grid-template-columns: 1fr; grid-auto-rows: auto; }
    .tile--xl, .tile--wide { grid-column: span 1; }
    .tile { min-height: 220px; padding: 26px; }
    .tile--xl { padding: 30px 26px; }
    .tile--wide { flex-direction: column; align-items: flex-start; gap: 0; padding: 26px; }
    .tile--wide h3 { margin-top: 36px; }
    .stats { grid-template-columns: 1fr 1fr; }
    .stat, .stat + .stat { padding: 24px 12px 24px 0; border-left: 0; }
    .stat:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line); }
    .stat:nth-child(n+3) { border-top: 1px solid var(--line); }
    .form__row { grid-template-columns: 1fr; }
    .appt__card { border-radius: 28px; }
    .services, .foot { border-radius: 32px 32px 0 0; }
    .collage { height: 420px; }
    .collage__col:nth-child(1) { margin-top: -80px; }
    .foot__cols { grid-template-columns: 1fr 1fr; }
    .foot__cols > div:last-child { grid-column: 1 / -1; }
    .wa-float { width: 52px; height: 52px; right: 14px; bottom: 14px; }
    .quote__big { font-size: 15vw; max-width: 9ch; }
    .q-mark { font-size: 22rem; top: -2%; }
}

/* =========================================================
   Shared page pieces (inner pages)
   ========================================================= */
.nav__links > a.is-active { background: var(--ink); color: #fff; }

.hero--page { min-height: min(100svh, 920px); }
.hero--page .hero__title { font-size: clamp(2.8rem, 6.2vw, 5.8rem); }
.crumbs { display: flex; align-items: center; gap: 8px; margin-bottom: 26px; font-size: .84rem; color: var(--ink-mute); }
.crumbs a { transition: color .3s; }
.crumbs a:hover { color: var(--brand); }
.crumbs svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.crumbs [aria-current] { color: var(--ink); font-weight: 600; }
.hero__visual--about .hero__doc { height: 84%; width: 50%; margin-left: -25%; }
.hero__visual--about .hero__doc img { -webkit-mask-image: linear-gradient(to bottom, #000 78%, transparent 100%); mask-image: linear-gradient(to bottom, #000 78%, transparent 100%); }
.float-card__icon--gold { background: #FFF1D6; }
.float-card__icon--gold svg { stroke: #B7791F; }

.btn--light { --bg: #fff; --fg: var(--ink); --fill: var(--ink); }
.btn--light:hover { color: #fff; }
.btn--outline-light { --bg: transparent; --fg: #fff; --fill: #fff; box-shadow: inset 0 0 0 1.5px rgba(255,255,255,.5); }
.btn--outline-light:hover { color: var(--ink); }

/* light timeline variant */
.timeline--light .timeline__line { background: var(--line); }
.timeline--light .timeline__line span { background: linear-gradient(var(--brand-2), var(--peach)); }
.timeline--light li::before { background: var(--paper); box-shadow: inset 0 0 0 2px var(--line-strong); }
.timeline--light li.is-on::before { background: var(--brand); box-shadow: 0 0 0 6px rgba(14,111,173,.14); }
.timeline--light time { color: var(--brand); }
.timeline--light h3 { color: var(--ink); }
.timeline--light p { color: var(--ink-soft); }
.gold-badge {
    display: inline-flex; align-items: center; gap: 6px; margin-top: 12px;
    padding: 6px 14px; border-radius: 999px;
    font-size: .76rem; font-weight: 700; letter-spacing: .04em; color: #5A3A00;
    background: linear-gradient(100deg, #F5B83D, #FFE3A3 50%, #F5B83D);
    background-size: 200% 100%;
    animation: shine 3.5s linear infinite;
}
@keyframes shine { to { background-position: -200% 0; } }

/* =========================================================
   About page
   ========================================================= */
.edu { background: var(--paper); }
.edu .creds__head { top: 130px; }

/* Licences */
.licences-sec { background: var(--paper-3); border-radius: 48px 48px 0 0; }
.lic-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.lic {
    position: relative; overflow: hidden; isolation: isolate;
    display: flex; flex-direction: column; gap: 6px;
    min-height: 270px; padding: 30px 28px 28px;
    border-radius: 28px;
    background: var(--card);
    box-shadow: inset 0 0 0 1px var(--line);
    transition: translate .6s var(--ease), box-shadow .6s var(--ease);
}
.lic:hover { translate: 0 -6px; box-shadow: inset 0 0 0 1px var(--line), var(--shadow-2); }
.lic__seal { position: absolute; z-index: -1; right: -34px; top: -34px; width: 140px; height: 140px; border-radius: 50%; border: 1.5px dashed rgba(14,111,173,.22); }
.lic__seal::after { content: ""; position: absolute; inset: 16px; border-radius: 50%; border: 1px solid rgba(14,111,173,.14); background: radial-gradient(circle, rgba(42,157,244,.08), transparent 70%); }
.lic:hover .lic__seal { animation: spin 14s linear infinite; }
.lic__code { font-family: var(--f-display); font-weight: 400; font-size: clamp(2.4rem, 3.4vw, 3.2rem); letter-spacing: -.03em; line-height: 1; color: var(--brand); margin-bottom: 18px; }
.lic__name { font-size: 1.02rem; font-weight: 600; line-height: 1.3; }
.lic__place { font-size: .82rem; color: var(--ink-mute); }
.lic__no {
    margin-top: auto; align-self: flex-start;
    padding: 8px 12px; border-radius: 10px;
    font-family: ui-monospace, 'SFMono-Regular', Consolas, monospace; font-size: .82rem; letter-spacing: .02em;
    background: var(--paper-3); box-shadow: inset 0 0 0 1px var(--line); color: var(--ink-2);
}

/* Career cards */
.step--career { min-height: 340px; }
.step--career .step__num { font-size: 5.6rem; }
.step--career h3 { font-size: 1.6rem; line-height: 1.15; }

/* Awards */
.awards { background: var(--ink); color: var(--paper); }
.award-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.award {
    position: relative; overflow: hidden; isolation: isolate;
    display: flex; flex-direction: column; gap: 8px;
    min-height: 240px; padding: 28px;
    border-radius: 28px;
    background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.02));
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.1);
    transition: translate .6s var(--ease), box-shadow .6s var(--ease);
}
.award:hover { translate: 0 -6px; box-shadow: inset 0 0 0 1px rgba(255,255,255,.2), 0 30px 60px -30px rgba(0,0,0,.6); }
.award__icon { width: 52px; height: 52px; border-radius: 16px; background: rgba(255,180,143,.12); display: grid; place-items: center; margin-bottom: auto; }
.award__icon svg { width: 25px; height: 25px; fill: none; stroke: var(--peach); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.award time { font-size: .76rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--peach); margin-top: 24px; }
.award h3 { font-family: var(--f-display); font-weight: 400; font-size: 1.35rem; line-height: 1.15; letter-spacing: -.01em; }
.award p { font-size: .9rem; color: rgba(246,242,236,.62); }
.award--feature { grid-column: span 2; min-height: 320px; padding: 36px; justify-content: flex-end; }
.award--feature time { margin-top: 0; }
.award--feature h3 { font-size: clamp(1.9rem, 3vw, 2.7rem); max-width: 12ch; }
.award--feature p { max-width: 36ch; font-size: 1rem; }
.award--wide { grid-column: span 2; min-height: 0; flex-direction: row; align-items: center; gap: 20px; }
.award--wide .award__icon { margin: 0; flex-shrink: 0; }
.award--wide time { margin-top: 0; }
.award--wide > div { display: flex; flex-direction: column; gap: 6px; }
.award--gold { background: radial-gradient(circle at 85% 20%, rgba(245,184,61,.34), transparent 55%), linear-gradient(160deg, #1D3350, var(--ink-2)); }
.award--blue { background: radial-gradient(circle at 85% 20%, rgba(42,157,244,.4), transparent 55%), linear-gradient(160deg, #173A5E, var(--ink-2)); }
.award__medal { position: absolute; right: 28px; top: 28px; width: clamp(110px, 12vw, 150px); aspect-ratio: 1; }
.award__medal svg { width: 100%; height: 100%; fill: none; stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.award--gold .award__medal svg { stroke: #F5C35A; filter: drop-shadow(0 0 18px rgba(245,184,61,.5)); animation: float 6s ease-in-out infinite; }
.award--blue .award__medal svg { stroke: #7CC4FF; filter: drop-shadow(0 0 18px rgba(42,157,244,.55)); animation: spin 24s linear infinite; }
@keyframes float { 0%, 100% { transform: translateY(0) rotate(-4deg); } 50% { transform: translateY(-10px) rotate(4deg); } }

/* Research */
.research { background: var(--paper); overflow: hidden; }
.research__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr); gap: clamp(40px, 6vw, 96px); }
.list-title { font-size: .76rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-mute); margin-bottom: 14px; }
.chapters li { display: grid; grid-template-columns: 52px 1fr; gap: 14px; padding: 20px 0; border-top: 1px solid var(--line); }
.chapters li:last-child { border-bottom: 1px solid var(--line); }
.chapters i { font-style: normal; font-family: var(--f-display); font-size: 1.7rem; line-height: 1; color: var(--brand); }
.chapters b { display: block; font-family: var(--f-display); font-weight: 420; font-size: 1.22rem; letter-spacing: -.01em; }
.chapters span { font-size: .86rem; color: var(--ink-mute); }
.pubs { display: flex; flex-direction: column; gap: 4px; }
.pubs a {
    display: grid; grid-template-columns: 60px 1fr auto; gap: 16px; align-items: center;
    padding: 16px 18px; border-radius: 20px;
    transition: background .3s, box-shadow .3s, translate .5s var(--ease);
}
.pubs a:hover { background: var(--card); box-shadow: var(--shadow-1); translate: 6px 0; }
.pubs time { font-family: var(--f-display); font-size: 1.35rem; color: var(--brand); }
.pubs b { display: block; font-weight: 600; font-size: .96rem; line-height: 1.35; }
.pubs small { display: block; margin-top: 2px; font-size: .8rem; color: var(--ink-mute); }
.pubs__pdf { font-size: .7rem; font-weight: 700; letter-spacing: .08em; padding: 7px 10px; border-radius: 10px; color: #C2412D; background: #FDEBE6; }
.journals { margin-top: clamp(64px, 8vw, 110px); }
.journals__label { font-size: .76rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-mute); margin-bottom: 18px; }
.reviews__row--journals { animation-duration: 45s; }
.reviews__row--journals .reviews__set { gap: 12px; padding-right: 12px; }
.journal {
    display: inline-flex; align-items: center; gap: 12px; white-space: nowrap;
    padding: 16px 24px; border-radius: 999px;
    background: var(--card); box-shadow: inset 0 0 0 1px var(--line);
    font-family: var(--f-display); font-size: 1.15rem; letter-spacing: -.01em;
}
.journal small { font-family: var(--f-body); font-size: .72rem; font-weight: 600; color: var(--brand); padding: 4px 10px; border-radius: 999px; background: var(--brand-soft); }

/* Memberships */
.memberships { background: var(--paper-3); }
.members { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.member {
    display: flex; align-items: center; gap: 20px;
    padding: 24px 26px; border-radius: 24px;
    background: var(--card); box-shadow: inset 0 0 0 1px var(--line);
    transition: translate .6s var(--ease), box-shadow .6s var(--ease);
}
.member:hover { translate: 0 -4px; box-shadow: inset 0 0 0 1px var(--line), var(--shadow-2); }
.member b { flex-shrink: 0; min-width: 96px; font-family: var(--f-display); font-weight: 420; font-size: 1.55rem; letter-spacing: -.02em; color: var(--brand); }
.member span { font-size: .95rem; font-weight: 500; line-height: 1.35; }
.member small { display: block; margin-top: 3px; font-size: .76rem; font-weight: 600; color: var(--teal); letter-spacing: .04em; }

/* Closing CTA */
.cta { background: var(--paper-3); padding-top: 0; }
.cta__card {
    position: relative; overflow: hidden; isolation: isolate;
    display: grid; grid-template-columns: minmax(0, 1.5fr) auto; gap: 32px; align-items: end;
    padding: clamp(40px, 7vw, 96px);
    border-radius: 40px;
    background: radial-gradient(circle at 90% 10%, rgba(255,180,143,.35), transparent 45%), linear-gradient(150deg, var(--brand-2), var(--brand) 45%, var(--brand-deep));
    color: #fff;
    box-shadow: 0 40px 80px -40px rgba(8,74,120,.7);
}
.cta__text { margin-top: 20px; max-width: 46ch; color: rgba(255,255,255,.8); }
.cta__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.cta__card .sec-title em { color: var(--peach); }
.cta__ecg { position: absolute; z-index: -1; left: 0; right: 0; top: 50%; width: 100%; height: 120px; margin-top: -60px; overflow: visible; }
.cta__ecg path { fill: none; stroke: rgba(255,255,255,.16); stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.cta__ecg .cta__pulse { stroke: #fff; stroke-width: 2.5; stroke-dasharray: 120 880; stroke-dashoffset: 1000; filter: drop-shadow(0 0 6px rgba(255,255,255,.8)); animation: ecgRun 4.5s linear infinite; }

@media (max-width: 1024px) {
    .lic-grid, .award-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .research__grid { grid-template-columns: 1fr; }
    .members { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cta__card { grid-template-columns: 1fr; align-items: start; }
}
@media (max-width: 640px) {
    .hero--page .hero__visual { height: 440px; }
    .lic-grid, .award-grid, .members { grid-template-columns: 1fr; }
    .award--feature { grid-column: span 1; min-height: 300px; padding: 28px; }
    .award--wide { grid-column: span 1; flex-direction: column; align-items: flex-start; }
    .award__medal { width: 96px; right: 20px; top: 20px; }
    .lic { min-height: 0; }
    .lic__no { margin-top: 18px; }
    .licences-sec { border-radius: 32px 32px 0 0; }
    .pubs a { grid-template-columns: 1fr auto; padding: 16px 4px; }
    .pubs time { grid-column: 1 / -1; font-size: 1.1rem; }
    .step--career .step__num { font-size: 4rem; }
    .cta__card { border-radius: 28px; }
    .cta__actions .btn { flex: 1 1 100%; }
    /* home: wide service tile reverts to the stacked layout */
    .tile--wide .tile__go { top: auto; bottom: 22px; right: 22px; }
    .tile--wide .tile__num { top: 26px; right: 28px; margin-top: 0; }
}

/* =========================================================
   Compact page hero (FAQ, Contact, …)
   ========================================================= */
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }

.hero--compact { min-height: 0; padding: 180px 0 120px; text-align: center; }
.hero--compact .hero__inner { grid-template-columns: minmax(0, 1fr); justify-items: center; }
.hero--compact .hero__copy { max-width: 880px; display: flex; flex-direction: column; align-items: center; }
.hero--compact .hero__title { font-size: clamp(3rem, 8vw, 7.2rem); }
.hero--compact .crumbs { justify-content: center; }
.hero--compact .hero__lead { margin-left: auto; margin-right: auto; }
.hero__ecg { top: auto; bottom: 6%; margin-top: 0; height: 160px; opacity: .8; }
.hero__rings { top: 58%; width: min(1100px, 140vw); }

.search {
    display: flex; align-items: center; gap: 12px;
    width: 100%; max-width: 580px; height: 64px;
    margin-top: 36px; padding: 0 8px 0 22px;
    border-radius: 999px;
    background: #fff;
    box-shadow: var(--shadow-2), inset 0 0 0 1px var(--line);
    transition: box-shadow .3s;
}
.search:focus-within { box-shadow: var(--shadow-2), inset 0 0 0 2px var(--brand); }
.search > svg { width: 20px; height: 20px; flex-shrink: 0; fill: none; stroke: var(--ink-mute); stroke-width: 2; stroke-linecap: round; }
.search input { flex: 1; min-width: 0; height: 100%; border: 0; background: none; font: inherit; font-size: 1rem; color: var(--ink); }
.search input:focus { outline: none; }
.search input::-webkit-search-cancel-button { cursor: pointer; }
.search--sm { height: 50px; margin-top: 0; max-width: 300px; padding-right: 18px; box-shadow: inset 0 0 0 1.5px var(--line); background: var(--card); }
.search--sm:focus-within { box-shadow: inset 0 0 0 2px var(--brand); }
.quick { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px; margin-top: 18px; font-size: .84rem; color: var(--ink-mute); }
.quick button { padding: 7px 14px; border-radius: 999px; font-size: .82rem; font-weight: 500; color: var(--ink-2); background: rgba(255,255,255,.7); box-shadow: inset 0 0 0 1px var(--line); transition: background .3s, color .3s; }
.quick button:hover { background: var(--ink); color: #fff; }

/* =========================================================
   FAQ page
   ========================================================= */
.compare-sec { background: var(--paper-3); border-radius: 48px 48px 0 0; }
.compare { position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.cmp {
    display: flex; flex-direction: column; gap: 28px;
    padding: clamp(28px, 4vw, 44px);
    border-radius: 32px;
    background: var(--card); box-shadow: inset 0 0 0 1px var(--line);
}
.cmp--brand { background: radial-gradient(circle at 90% 0%, rgba(255,255,255,.2), transparent 45%), linear-gradient(150deg, var(--brand-2), var(--brand) 45%, var(--brand-deep)); color: #fff; box-shadow: 0 30px 60px -30px rgba(14,111,173,.7); }
.cmp__head { display: flex; gap: 18px; align-items: flex-start; }
.cmp__icon { width: 56px; height: 56px; border-radius: 18px; flex-shrink: 0; display: grid; place-items: center; background: rgba(255,255,255,.16); }
.cmp__icon svg { width: 28px; height: 28px; fill: none; stroke: #fff; stroke-width: 1.7; stroke-linecap: round; }
.cmp__icon--peach { background: var(--peach-soft); }
.cmp__icon--peach svg { stroke: #D9693A; }
.cmp h3 { font-family: var(--f-display); font-weight: 420; font-size: clamp(1.8rem, 2.6vw, 2.3rem); letter-spacing: -.02em; line-height: 1.05; }
.cmp__head p { margin-top: 6px; font-size: .95rem; opacity: .8; }
.cmp__rows > div { display: grid; grid-template-columns: 130px 1fr; gap: 16px; padding: 14px 0; border-top: 1px solid var(--line); }
.cmp--brand .cmp__rows > div { border-color: rgba(255,255,255,.18); }
.cmp__rows dt { font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; opacity: .65; padding-top: 3px; }
.cmp__rows dd { font-size: .95rem; font-weight: 500; }
.compare__vs {
    position: absolute; left: 50%; top: 50%; z-index: 2;
    width: 58px; height: 58px; margin: -29px 0 0 -29px; border-radius: 50%;
    display: grid; place-items: center;
    font-family: var(--f-display); font-style: italic; font-size: 1.3rem;
    background: var(--ink); color: var(--paper);
    box-shadow: 0 0 0 8px var(--paper-3);
}

.detail-sec { background: var(--paper-3); padding-top: 0; }
.tabs__list {
    position: relative; display: inline-flex; gap: 4px;
    padding: 6px; border-radius: 999px;
    background: var(--card); box-shadow: inset 0 0 0 1px var(--line);
    margin-bottom: 40px;
}
.tabs__list button { position: relative; z-index: 1; height: 48px; padding: 0 28px; border-radius: 999px; font-weight: 600; color: var(--ink-soft); transition: color .4s; }
.tabs__list button[aria-selected="true"] { color: #fff; }
.tabs__ink { position: absolute; top: 6px; bottom: 6px; left: 0; width: 0; border-radius: 999px; background: var(--ink); transform: translateX(var(--ink-x, 6px)); width: var(--ink-w, 0); transition: transform .55s var(--ease), width .55s var(--ease); }
.tabs__panel { animation: panelIn .6s var(--ease); }
@keyframes panelIn { from { opacity: 0; transform: translateY(16px); } to { opacity: 1; transform: none; } }

.guide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.guide__col { padding: clamp(26px, 4vw, 40px); border-radius: 30px; background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
.stepper { counter-reset: step; }
.stepper li { position: relative; padding: 0 0 26px 58px; counter-increment: step; }
.stepper li:last-child { padding-bottom: 0; }
.stepper li::before {
    content: counter(step, decimal-leading-zero);
    position: absolute; left: 0; top: -2px;
    width: 40px; height: 40px; border-radius: 50%;
    display: grid; place-items: center;
    font-size: .8rem; font-weight: 700; color: var(--brand);
    background: var(--brand-soft);
}
.stepper li::after { content: ""; position: absolute; left: 19px; top: 44px; bottom: 4px; width: 2px; background: linear-gradient(var(--brand-soft), transparent); }
.stepper li:last-child::after { display: none; }
.stepper b { display: block; font-family: var(--f-display); font-weight: 420; font-size: 1.2rem; }
.stepper span { display: block; margin-top: 4px; font-size: .92rem; color: var(--ink-soft); }
.care li { position: relative; padding: 12px 0 12px 38px; border-top: 1px solid var(--line); font-size: .95rem; }
.care li:first-child { border-top: 0; padding-top: 0; }
.care li:first-child::before { top: 0; }
.care li::before {
    content: ""; position: absolute; left: 0; top: 12px;
    width: 24px; height: 24px; border-radius: 50%;
    background: #DDF5F1 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E9F8E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center / 14px no-repeat;
}

.faq-sec { background: var(--paper); }
.faq-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.4fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.faq-side { position: sticky; top: 120px; }
.alert { display: flex; gap: 16px; margin-top: 40px; padding: 26px; border-radius: 26px; background: #FFF1EC; box-shadow: inset 0 0 0 1px #FBD5C7; }
.alert__icon { width: 46px; height: 46px; border-radius: 14px; flex-shrink: 0; display: grid; place-items: center; background: #FDDCCF; }
.alert__icon svg { width: 24px; height: 24px; fill: none; stroke: #C2412D; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.alert h3 { font-family: var(--f-display); font-weight: 420; font-size: 1.3rem; }
.alert ul { margin-top: 10px; }
.alert li { position: relative; padding: 4px 0 4px 18px; font-size: .93rem; color: var(--ink-2); }
.alert li::before { content: ""; position: absolute; left: 0; top: 13px; width: 7px; height: 7px; border-radius: 50%; background: #E0533D; }
.alert__actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.alert__note { margin-top: 12px; font-size: .8rem; color: #9A3A2A; font-weight: 500; }

.faq-tools { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; margin-bottom: 18px; }
.filters { display: flex; flex-wrap: wrap; gap: 6px; }
.filters button { display: inline-flex; align-items: center; gap: 8px; height: 44px; padding: 0 16px; border-radius: 999px; font-weight: 600; font-size: .88rem; box-shadow: inset 0 0 0 1.5px var(--line-strong); transition: background .3s, color .3s, box-shadow .3s; }
.filters button i { font-style: normal; font-size: .72rem; min-width: 22px; padding: 2px 6px; border-radius: 999px; background: var(--paper-2); color: var(--ink-soft); }
.filters button:hover { box-shadow: inset 0 0 0 1.5px var(--ink); }
.filters button.is-on { background: var(--ink); color: #fff; box-shadow: none; }
.filters button.is-on i { background: rgba(255,255,255,.18); color: #fff; }

.faq { display: flex; flex-direction: column; gap: 10px; }
.qa { border-radius: 22px; background: var(--card); box-shadow: inset 0 0 0 1px var(--line); transition: box-shadow .4s; }
.qa.is-open { box-shadow: inset 0 0 0 1.5px var(--brand), var(--shadow-1); }
.qa[hidden] { display: none; }
.qa__q { width: 100%; display: flex; align-items: center; gap: 14px; padding: 20px 22px; text-align: left; }
.qa__text { flex: 1; font-weight: 600; font-size: 1rem; line-height: 1.4; }
.qa__tag { flex-shrink: 0; font-size: .7rem; font-weight: 600; letter-spacing: .04em; padding: 4px 10px; border-radius: 999px; background: var(--brand-soft); color: var(--brand); }
.qa[data-cat="surgical"] .qa__tag { background: var(--peach-soft); color: #B4542C; }
.qa__icon { position: relative; flex-shrink: 0; width: 34px; height: 34px; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--line-strong); transition: background .3s, box-shadow .3s, transform .5s var(--ease); }
.qa__icon::before, .qa__icon::after { content: ""; position: absolute; left: 50%; top: 50%; width: 12px; height: 1.8px; margin: -.9px 0 0 -6px; border-radius: 2px; background: currentColor; transition: transform .5s var(--ease); }
.qa__icon::after { transform: rotate(90deg); }
.qa.is-open .qa__icon { background: var(--ink); color: #fff; box-shadow: none; transform: rotate(180deg); }
.qa.is-open .qa__icon::after { transform: rotate(0deg); }
.qa__a { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .5s var(--ease); }
.qa.is-open .qa__a { grid-template-rows: 1fr; }
.qa__a > div { overflow: hidden; }
.qa__a p { padding: 0 72px 22px 22px; color: var(--ink-soft); }
.qa mark { background: #FFE6A8; color: inherit; border-radius: 3px; padding: 0 1px; }
.faq__empty { padding: 26px; border-radius: 22px; text-align: center; color: var(--ink-soft); background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
.faq__empty a { color: var(--brand); font-weight: 600; text-decoration: underline; }
.faq__disclaimer { margin-top: 18px; font-size: .8rem; color: var(--ink-mute); }

/* =========================================================
   Contact page
   ========================================================= */
.open-pill {
    display: inline-flex; align-items: center; gap: 10px; margin-top: 30px;
    padding: 10px 18px; border-radius: 999px;
    font-size: .88rem; font-weight: 600;
    background: rgba(255,255,255,.8); box-shadow: var(--shadow-1), inset 0 0 0 1px var(--line);
}
.open-pill__dot { position: relative; width: 9px; height: 9px; border-radius: 50%; background: var(--ink-mute); }
.open-pill.is-open .open-pill__dot { background: var(--teal); }
.open-pill.is-open .open-pill__dot::after { content: ""; position: absolute; inset: -4px; border-radius: 50%; background: var(--teal); opacity: .35; animation: ping 2s var(--ease) infinite; }
.open-pill.is-closed .open-pill__dot { background: var(--peach); }

.quick-sec { position: relative; z-index: 2; margin-top: -40px; }
.ctiles { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.ctile {
    position: relative; overflow: hidden; isolation: isolate;
    display: flex; flex-direction: column; gap: 4px;
    min-height: 220px; padding: 26px;
    border-radius: 28px;
    background: var(--card);
    box-shadow: var(--shadow-1), inset 0 0 0 1px var(--line);
    transition: color .5s var(--ease), translate .6s var(--ease), box-shadow .6s var(--ease);
}
.ctile::before {
    content: ""; position: absolute; z-index: -1; left: 50%; top: 100%;
    width: 170%; aspect-ratio: 1; border-radius: 50%;
    background: var(--brand);
    transform: translate(-50%, 0) scale(.2);
    transition: transform .7s var(--ease), top .7s var(--ease);
}
.ctile--wa::before { background: #1FAF55; }
.ctile:hover { color: #fff; translate: 0 -6px; box-shadow: var(--shadow-2); }
.ctile:hover::before { top: 50%; transform: translate(-50%, -50%) scale(1); }
.ctile__icon { width: 52px; height: 52px; border-radius: 16px; display: grid; place-items: center; background: var(--brand-soft); margin-bottom: auto; transition: background .5s; }
.ctile--wa .ctile__icon { background: #DDF7E7; }
.ctile__icon svg { width: 24px; height: 24px; fill: none; stroke: var(--brand); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: stroke .5s, fill .5s; }
.ctile__icon svg.fill { fill: #1FAF55; stroke: none; }
.ctile:hover .ctile__icon { background: rgba(255,255,255,.18); }
.ctile:hover .ctile__icon svg { stroke: #fff; }
.ctile:hover .ctile__icon svg.fill { fill: #fff; }
.ctile__label { margin-top: 28px; font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; opacity: .6; }
.ctile__value { font-family: var(--f-display); font-weight: 420; font-size: 1.3rem; letter-spacing: -.01em; overflow-wrap: anywhere; }
.ctile__value--sm { font-size: 1.05rem; overflow-wrap: normal; word-break: keep-all; }
.ctile__hint { font-size: .84rem; opacity: .7; }
.ctile__go { position: absolute; right: 22px; top: 22px; width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line-strong); transition: transform .6s var(--ease), box-shadow .5s, background .5s; }
.ctile__go svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ctile:hover .ctile__go { transform: rotate(45deg); background: #fff; color: var(--ink); box-shadow: none; }

.next { margin-top: 32px; }
.next li { display: grid; grid-template-columns: 44px 1fr; gap: 14px; padding: 16px 0; border-top: 1px solid rgba(255,255,255,.1); }
.next i { font-style: normal; font-family: var(--f-display); font-size: 1.4rem; color: var(--peach); line-height: 1.1; }
.next b { display: block; font-weight: 600; }
.next span { display: block; margin-top: 2px; font-size: .88rem; color: rgba(246,242,236,.65); }
.hours { display: flex; flex-direction: column; gap: 2px; margin-top: 20px; padding: 18px 20px; border-radius: 18px; background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
.hours__label { font-size: .7rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--peach); }
.hours b { font-family: var(--f-display); font-weight: 420; font-size: 1.25rem; }
.hours span:last-child { font-size: .88rem; color: rgba(246,242,236,.7); }

.form__trap { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form__alert { padding: 14px 18px; border-radius: 14px; background: #FFF1EC; box-shadow: inset 0 0 0 1px #FBD5C7; color: #9A3A2A; font-size: .9rem; font-weight: 500; }

.map-sec { background: var(--paper); padding-top: 0; }
.mapbox { position: relative; height: clamp(380px, 48vw, 560px); border-radius: 36px; overflow: hidden; background: var(--paper-2); box-shadow: var(--shadow-2); }
.mapbox iframe { width: 100%; height: 100%; border: 0; filter: saturate(.55) contrast(1.05); transition: filter .6s; }
.mapbox:hover iframe { filter: none; }
/* Cookie choice banner (bottom-left card; full width on phones) */
.consent {
    position: fixed; z-index: 235; left: 24px; bottom: 24px;
    width: min(460px, calc(100% - 48px));
    display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 14px 16px;
    padding: 20px 22px;
    border-radius: 24px;
    background: rgba(255,255,255,.94);
    -webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
    box-shadow: 0 30px 60px -20px rgba(11,27,46,.35), inset 0 0 0 1px var(--line);
    opacity: 0; transform: translateY(24px);
    transition: opacity .45s var(--ease), transform .45s var(--ease);
}
.consent.is-in { opacity: 1; transform: none; }
.consent[hidden] { display: none; }
.consent__icon { width: 44px; height: 44px; border-radius: 14px; display: grid; place-items: center; background: var(--peach-soft); }
.consent__icon svg { width: 24px; height: 24px; fill: none; stroke: #D9693A; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.consent__text b { display: block; font-family: var(--f-display); font-weight: 500; font-size: 1.12rem; letter-spacing: -.01em; }
.consent__text p { margin-top: 4px; font-size: .86rem; line-height: 1.55; color: var(--ink-soft); }
.consent__text a { color: var(--brand); text-decoration: underline; white-space: nowrap; }
.consent__btns { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 10px; }
.foot__cookie { padding: 0; border: 0; background: none; font: inherit; color: inherit; cursor: pointer; text-decoration: none; }
.foot__cookie:hover { text-decoration: underline; }
@media (max-width: 640px) {
    .consent { left: 12px; right: 12px; bottom: 12px; width: auto; padding: 18px; }
    .consent__btns .btn { flex: 1; justify-content: center; }
    html.consent-open .wa-float { opacity: 0; pointer-events: none; }
}

/* Map loads only when asked (Google sets cookies once it loads) */
.mapbox__gate {
    position: absolute; inset: 0; display: grid; place-content: center; justify-items: center; gap: 14px;
    padding: 24px 24px 24px clamp(24px, 38%, 440px); text-align: center;
    background:
        radial-gradient(circle at 62% 48%, rgba(14,111,173,.16), transparent 42%),
        repeating-linear-gradient(0deg, transparent 0 46px, rgba(14,111,173,.07) 46px 48px),
        repeating-linear-gradient(90deg, transparent 0 46px, rgba(14,111,173,.07) 46px 48px),
        linear-gradient(135deg, #EEF4F8, #F6F2EC);
}
.mapbox__gate[hidden] { display: none; }
.mapbox__pin { width: 56px; height: 56px; border-radius: 50%; display: grid; place-items: center; background: var(--brand); box-shadow: 0 12px 30px -10px rgba(14,111,173,.7); animation: beat 2.4s ease-in-out infinite; }
.mapbox__pin svg { width: 26px; height: 26px; fill: none; stroke: #fff; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.mapbox__note { max-width: 34ch; font-size: .85rem; color: var(--ink-soft); line-height: 1.5; }
.mapbox__note a { color: var(--brand); text-decoration: underline; }
.mapbox__btns { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
@media (max-width: 760px) {
    .mapbox__gate { padding: 24px 20px 190px; }
}
.map-card {
    position: absolute; left: 28px; bottom: 28px;
    display: flex; gap: 16px; align-items: flex-start;
    max-width: 380px; padding: 22px 24px;
    border-radius: 24px;
    background: rgba(255,255,255,.9);
    -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px);
    box-shadow: var(--shadow-2);
}
.map-card__pin { width: 46px; height: 46px; border-radius: 14px; flex-shrink: 0; display: grid; place-items: center; background: var(--brand); animation: pinBounce 2.4s var(--ease) infinite; }
.map-card__pin svg { width: 22px; height: 22px; fill: none; stroke: #fff; stroke-width: 2; }
@keyframes pinBounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }
.map-card b { display: block; font-family: var(--f-display); font-weight: 420; font-size: 1.2rem; }
.map-card span { display: block; margin: 4px 0 10px; font-size: .88rem; color: var(--ink-soft); }

@media (max-width: 1024px) {
    .compare, .guide { grid-template-columns: 1fr; }
    .compare__vs { position: static; margin: -8px auto; box-shadow: 0 0 0 6px var(--paper-3); }
    .faq-grid { grid-template-columns: 1fr; }
    .faq-side { position: static; }
    .ctiles { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .hero--compact { padding: 130px 0 90px; }
    .search { height: 58px; padding-left: 18px; }
    .search .btn { display: none; }
    .search--sm { max-width: none; width: 100%; }
    .compare-sec { border-radius: 32px 32px 0 0; }
    .cmp__rows > div { grid-template-columns: 1fr; gap: 2px; }
    .tabs__list { display: flex; }
    .tabs__list button { flex: 1; padding: 0 12px; }
    .qa__q { padding: 18px; flex-wrap: wrap; }
    .qa__text { flex-basis: calc(100% - 50px); order: 1; }
    .qa__icon { order: 2; }
    .qa__tag { order: 3; }
    .qa__a p { padding: 0 18px 20px; }
    .ctiles { grid-template-columns: 1fr; }
    .ctile { min-height: 0; }
    .ctile__label { margin-top: 18px; }
    .mapbox { border-radius: 26px; height: 440px; }
    .map-card { left: 12px; right: 12px; bottom: 12px; max-width: none; }
}

/* =========================================================
   Publications page
   ========================================================= */
.papers { position: absolute; inset: 0; }
.paper {
    --r: 0deg;
    position: absolute;
    width: 150px; aspect-ratio: 3 / 4;
    display: flex; flex-direction: column; gap: 10px;
    padding: 20px 16px;
    border-radius: 14px;
    background: #fff;
    box-shadow: var(--shadow-2), inset 0 0 0 1px var(--line);
    animation: paperFloat 9s ease-in-out infinite alternate;
}
.paper::after { content: ""; position: absolute; right: 0; top: 0; width: 26px; height: 26px; border-radius: 0 14px 0 8px; background: linear-gradient(225deg, var(--paper-2) 50%, #fff 50%); }
.paper i { display: block; height: 6px; border-radius: 3px; background: var(--paper-2); }
.paper i:first-child { width: 70%; height: 10px; background: var(--brand-soft); margin-bottom: 6px; }
.paper i:nth-child(2) { width: 92%; }
.paper i:nth-child(3) { width: 64%; }
.paper i:nth-child(4) { width: 82%; }
/* Mini article pages: real paper titles instead of blank bars */
.paper--doc { width: 176px; gap: 8px; padding: 18px 16px; text-align: left; }
.paper--doc small { font-size: .56rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--brand); line-height: 1.3; padding-right: 18px; }
.paper--doc b { font-family: var(--f-display); font-weight: 420; font-size: .86rem; line-height: 1.22; letter-spacing: -.01em; color: var(--ink); }
.paper--doc em { font-style: normal; font-size: .6rem; font-weight: 600; color: var(--ink-soft); padding-bottom: 8px; border-bottom: 1px solid var(--paper-2); }
.paper--doc i, .paper--doc i:first-child { width: 100%; height: 5px; margin: 0; background: var(--paper-2); }
.paper--doc i:nth-of-type(2) { width: 86%; }
.paper--doc i:nth-of-type(3) { width: 62%; }
.paper--doc.paper--5, .paper--doc.paper--6 { width: 104px; }
.paper--doc.paper--5 small, .paper--doc.paper--6 small { font-size: .5rem; margin-bottom: 4px; }
.paper--1 { --r: -12deg; left: 6%; top: 24%; }
.paper--2 { --r: 8deg; left: 13%; bottom: 10%; animation-delay: -3s; }
.paper--3 { --r: 10deg; right: 7%; top: 22%; animation-delay: -5s; }
.paper--4 { --r: -7deg; right: 14%; bottom: 9%; animation-delay: -2s; }
.paper--5 { --r: 5deg; left: 27%; top: 13%; width: 96px; opacity: .55; animation-delay: -6s; }
.paper--6 { --r: -10deg; right: 28%; bottom: 6%; width: 96px; opacity: .55; animation-delay: -4s; }
@keyframes paperFloat {
    0%   { transform: translateY(0) rotate(var(--r)); }
    100% { transform: translateY(-22px) rotate(calc(var(--r) + 4deg)); }
}

.latest-sec { background: var(--paper-3); border-radius: 48px 48px 0 0; }
.stats--top { margin-top: 0; }
.latest-head { margin-top: clamp(64px, 8vw, 110px); }
.latest { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.paper-card {
    position: relative; overflow: hidden; isolation: isolate;
    display: flex; flex-direction: column; gap: 12px;
    min-height: 330px; padding: 32px;
    border-radius: 28px;
    background: var(--card);
    box-shadow: inset 0 0 0 1px var(--line);
    transition: translate .6s var(--ease), box-shadow .6s var(--ease);
}
.paper-card:hover { translate: 0 -8px; box-shadow: inset 0 0 0 1px var(--line), var(--shadow-2); }
.paper-card:first-child { background: radial-gradient(circle at 90% 0%, rgba(255,255,255,.22), transparent 45%), linear-gradient(150deg, var(--brand-2), var(--brand) 45%, var(--brand-deep)); color: #fff; box-shadow: 0 30px 60px -30px rgba(14,111,173,.7); }
.paper-card__year { font-family: var(--f-display); font-weight: 300; font-size: 3.4rem; line-height: 1; letter-spacing: -.04em; color: var(--brand); }
.paper-card:first-child .paper-card__year { color: var(--peach); }
.paper-card h3 { font-family: var(--f-display); font-weight: 420; font-size: 1.3rem; line-height: 1.25; letter-spacing: -.01em; }
.paper-card__journal { font-size: .84rem; opacity: .7; }
.paper-card__read { margin-top: auto; display: inline-flex; align-items: center; gap: 8px; font-weight: 600; font-size: .92rem; }
.paper-card__read svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; transition: transform .5s var(--ease); }
.paper-card:hover .paper-card__read svg { transform: rotate(45deg); }
.paper-card__fold { position: absolute; right: 0; top: 0; width: 56px; height: 56px; border-radius: 0 28px 0 18px; background: linear-gradient(225deg, var(--paper) 50%, var(--paper-2) 50%); transition: width .5s var(--ease), height .5s var(--ease); }
.paper-card:first-child .paper-card__fold { background: linear-gradient(225deg, var(--paper-3) 50%, rgba(255,255,255,.3) 50%); }
.paper-card:hover .paper-card__fold { width: 76px; height: 76px; }

.band--light { background: var(--paper-2); color: var(--ink); transform: rotate(1.2deg); box-shadow: none; padding: 20px 0; }
.band--light .band__row span { font-size: clamp(1.3rem, 2.2vw, 1.9rem); }
.band--light .band__row i { color: var(--brand); }

.library-sec { background: var(--paper); }
.lib__tools { display: flex; flex-wrap: wrap; align-items: center; gap: 12px; }
.lib__search { max-width: 340px; flex: 1 1 260px; }
.select { position: relative; margin-left: auto; }
.select select {
    appearance: none; -webkit-appearance: none;
    height: 44px; padding: 0 42px 0 18px;
    border: 0; border-radius: 999px;
    font: inherit; font-size: .88rem; font-weight: 600; color: var(--ink);
    background: var(--card); box-shadow: inset 0 0 0 1.5px var(--line-strong);
    cursor: pointer;
}
.select select:focus-visible { outline: 2.5px solid var(--brand-2); outline-offset: 2px; }
.select::after { content: ""; position: absolute; right: 18px; top: 50%; width: 8px; height: 8px; margin-top: -6px; border-right: 2px solid var(--ink); border-bottom: 2px solid var(--ink); transform: rotate(45deg); pointer-events: none; }
.lib__count { margin: 26px 0 8px; font-size: .84rem; color: var(--ink-mute); }
.lib__count span { font-weight: 700; color: var(--ink); }

.pubs-list { border-bottom: 1px solid var(--line); }
.pub {
    position: relative; isolation: isolate;
    display: grid; grid-template-columns: 120px minmax(0, 1fr) auto; gap: 24px; align-items: center;
    padding: 22px 18px;
    border-top: 1px solid var(--line);
}
.pub::before { content: ""; position: absolute; inset: 4px -8px; z-index: -1; border-radius: 20px; background: var(--card); box-shadow: var(--shadow-1); opacity: 0; transform: scale(.98); transition: opacity .35s, transform .5s var(--ease); }
.pub:hover::before { opacity: 1; transform: none; }
.pub[hidden] { display: none; }
.pub.is-first { border-top: 1.5px solid var(--line-strong); margin-top: 18px; }
.pub:first-child { margin-top: 0; }
.pub__year { align-self: start; font-family: var(--f-display); font-weight: 300; font-size: 2rem; line-height: 1; letter-spacing: -.03em; color: var(--brand); visibility: hidden; }
.pub.is-first .pub__year { visibility: visible; }
.pub[data-year="Chapter"] .pub__year { font-size: 1.2rem; font-style: italic; }
.pub__title { font-family: var(--f-display); font-weight: 420; font-size: 1.14rem; line-height: 1.35; letter-spacing: -.005em; }
.pub__cite { margin-top: 4px; font-size: .84rem; color: var(--ink-mute); font-style: italic; }
.pub__tags { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.pub__tag { font-size: .7rem; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--paper-2); color: var(--ink-soft); }
.pub__tag--neonatal { background: var(--peach-soft); color: #B4542C; }
.pub__tag--gi { background: #E1F6F2; color: #0E8C7D; }
.pub__tag--urology { background: var(--brand-soft); color: var(--brand); }
.pub__tag--mis { background: #ECE8FB; color: #5B45B5; }
.pub mark { background: #FFE6A8; color: inherit; border-radius: 3px; padding: 0 1px; }
.pub__actions { display: flex; align-items: center; gap: 8px; }
.pub__read { display: inline-flex; align-items: center; gap: 6px; height: 40px; padding: 0 16px; border-radius: 999px; font-size: .85rem; font-weight: 600; background: var(--ink); color: #fff; transition: background .3s; }
.pub__read:hover { background: var(--brand); }
.pub__read svg, .pub__dl svg { width: 15px; height: 15px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.pub__dl { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line-strong); transition: background .3s, color .3s; }
.pub__dl:hover { background: var(--brand-soft); color: var(--brand); box-shadow: none; }

.reviewer li { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 16px 0; border-top: 1px solid var(--line); }
.reviewer li:last-child { border-bottom: 1px solid var(--line); }
.reviewer b { font-family: var(--f-display); font-weight: 420; font-size: 1.1rem; }
.reviewer span { flex-shrink: 0; font-size: .74rem; font-weight: 600; padding: 4px 10px; border-radius: 999px; background: var(--brand-soft); color: var(--brand); }
.research .sec-title + .chapters, .research .sec-title + .reviewer { margin-top: 30px; }

@media (max-width: 1024px) {
    .latest { grid-template-columns: 1fr; }
    .paper-card { min-height: 0; }
    .paper--5, .paper--6 { display: none; }
}
@media (max-width: 640px) {
    .paper { width: 90px; padding: 12px 10px; gap: 6px; }
    .paper--1 { left: -4%; top: 16%; }
    .paper--3 { right: -4%; top: 12%; }
    .paper--2, .paper--4 { display: none; }
    .hero--papers .papers { display: none; }
    .latest-sec { border-radius: 32px 32px 0 0; }
    .select { margin-left: 0; }
    .pub { grid-template-columns: 1fr; gap: 12px; padding: 18px 4px; }
    .pub__year { display: none; font-size: 1.4rem; }
    .pub.is-first .pub__year { display: block; }
    .pub::before { inset: 2px -6px; }
}

/* =========================================================
   Service (specialty) pages — includes/v2-service.php
   ========================================================= */
.svc--brand { --tone-a: var(--brand-2); --tone-b: var(--brand); --tone-c: var(--brand-deep); --tone-soft: var(--brand-soft); --tone-ink: var(--brand); }
.svc--peach { --tone-a: #FFB48F; --tone-b: #F08A5D; --tone-c: #B4542C; --tone-soft: var(--peach-soft); --tone-ink: #C2582E; }
.svc--teal  { --tone-a: #3DD6C3; --tone-b: #14B8A6; --tone-c: #0B7D71; --tone-soft: #DDF5F1; --tone-ink: #0E8C7D; }
.svc--ink   { --tone-a: #2B4466; --tone-b: var(--ink-2); --tone-c: var(--ink); --tone-soft: #E4E9F0; --tone-ink: var(--ink-2); }

.hero--service .hero__title em {
    background: linear-gradient(100deg, var(--tone-b) 10%, var(--tone-a) 90%);
    -webkit-background-clip: text; background-clip: text; color: transparent;
}
.hero__visual--emblem { display: grid; place-items: center; }
.emblem { position: relative; width: min(480px, 100%); aspect-ratio: 1; display: grid; place-items: center; }
.emblem__core {
    position: relative; z-index: 2;
    width: 46%; aspect-ratio: 1; border-radius: 34%;
    display: grid; place-items: center;
    background: radial-gradient(circle at 30% 25%, rgba(255,255,255,.35), transparent 50%), linear-gradient(150deg, var(--tone-a), var(--tone-b) 50%, var(--tone-c));
    box-shadow: 0 40px 80px -30px var(--tone-c), inset 0 0 0 1px rgba(255,255,255,.2);
    animation: corePulse 4s ease-in-out infinite;
}
.emblem__core svg { width: 48%; height: 48%; fill: none; stroke: #fff; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 6px 14px rgba(0,0,0,.2)); }
@keyframes corePulse { 0%, 100% { border-radius: 34%; } 50% { border-radius: 42%; } }
.emblem__orbit { position: absolute; inset: 0; border-radius: 50%; border: 1.5px dashed color-mix(in srgb, var(--tone-b) 35%, transparent); animation: spin 40s linear infinite; }
.emblem__orbit--2 { inset: 13%; border-style: solid; border-color: color-mix(in srgb, var(--tone-b) 20%, transparent); animation-duration: 26s; animation-direction: reverse; }
.emblem__orbit--3 { inset: 25%; border: 0; background: radial-gradient(circle, color-mix(in srgb, var(--tone-a) 28%, transparent), transparent 70%); animation: none; }
.emblem__orbit i { position: absolute; left: 50%; top: -7px; width: 14px; height: 14px; margin-left: -7px; border-radius: 50%; background: var(--tone-b); box-shadow: 0 0 0 5px color-mix(in srgb, var(--tone-b) 20%, transparent); }
.emblem__orbit--2 i { top: auto; bottom: -6px; width: 11px; height: 11px; background: var(--peach); box-shadow: 0 0 0 5px rgba(255,180,143,.25); }
.emblem__chip { position: absolute; z-index: 3; }
.emblem__chip > span {
    display: inline-block; white-space: nowrap;
    padding: 10px 16px; border-radius: 999px;
    font-size: .84rem; font-weight: 600;
    background: rgba(255,255,255,.85); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
    box-shadow: var(--shadow-2), inset 0 0 0 1px rgba(255,255,255,.9);
    animation: chipFloat 6s ease-in-out infinite;
}
.emblem__chip > span::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--tone-b); vertical-align: 1px; }
.emblem__chip:nth-child(5) { left: -2%; top: 16%; }
.emblem__chip:nth-child(6) { right: -4%; top: 30%; }
.emblem__chip:nth-child(6) > span { animation-delay: -1.5s; }
.emblem__chip:nth-child(7) { left: 2%; bottom: 20%; }
.emblem__chip:nth-child(7) > span { animation-delay: -3s; }
.emblem__chip:nth-child(8) { right: 4%; bottom: 8%; }
.emblem__chip:nth-child(8) > span { animation-delay: -4.5s; }
@keyframes chipFloat { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-12px); } }
.hero__visual--emblem .float-card--b { right: auto; left: 0; bottom: 2%; }

.conds-sec { background: var(--paper-3); border-radius: 48px 48px 0 0; }
.conds { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px, 1fr)); gap: 16px; counter-reset: cond; }
.cond {
    position: relative; overflow: hidden; isolation: isolate;
    padding: 30px; border-radius: 28px;
    background: var(--card); box-shadow: inset 0 0 0 1px var(--line);
    transition: translate .6s var(--ease), box-shadow .6s var(--ease);
}
.cond:hover { translate: 0 -6px; box-shadow: inset 0 0 0 1px var(--line), var(--shadow-2); }
.cond:first-child { background: radial-gradient(circle at 90% 0%, rgba(255,255,255,.22), transparent 45%), linear-gradient(150deg, var(--tone-a), var(--tone-b) 50%, var(--tone-c)); color: #fff; box-shadow: 0 30px 60px -30px var(--tone-c); }
.cond__num { position: absolute; right: 26px; top: 24px; font-size: .78rem; font-weight: 600; letter-spacing: .08em; opacity: .5; counter-increment: cond; }
.cond__num::before { content: counter(cond, decimal-leading-zero); }
.cond h3 { font-family: var(--f-display); font-weight: 420; font-size: 1.5rem; letter-spacing: -.015em; line-height: 1.15; padding-right: 36px; margin-bottom: 18px; }
.cond li { position: relative; padding: 9px 0 9px 30px; border-top: 1px solid var(--line); font-size: .95rem; font-weight: 500; }
.cond:first-child li { border-color: rgba(255,255,255,.18); }
.cond li::before {
    content: ""; position: absolute; left: 0; top: 11px;
    width: 20px; height: 20px; border-radius: 50%;
    background: var(--tone-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1B2E' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12l4 4 8-8'/%3E%3C/svg%3E") center / 11px no-repeat;
}
.cond:first-child li::before { background-color: rgba(255,255,255,.9); }

.why-sec { background: var(--ink); color: var(--paper); }
.why { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.why article { padding: 32px; border-radius: 28px; background: linear-gradient(160deg, rgba(255,255,255,.07), rgba(255,255,255,.02)); box-shadow: inset 0 0 0 1px rgba(255,255,255,.1); }
.why__icon { width: 54px; height: 54px; border-radius: 16px; display: grid; place-items: center; background: rgba(255,180,143,.12); margin-bottom: 40px; }
.why__icon svg { width: 26px; height: 26px; fill: none; stroke: var(--peach); stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
.why h3 { font-family: var(--f-display); font-weight: 400; font-size: 1.5rem; letter-spacing: -.015em; }
.why p { margin-top: 10px; color: rgba(246,242,236,.66); }

.others-sec { background: var(--paper); }
.others { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; }
.other {
    display: flex; align-items: center; gap: 16px;
    padding: 18px 20px; border-radius: 22px;
    background: var(--card); box-shadow: inset 0 0 0 1px var(--line);
    transition: translate .5s var(--ease), box-shadow .5s var(--ease);
}
.other:hover { translate: 0 -4px; box-shadow: inset 0 0 0 1px var(--line), var(--shadow-2); }
.other__icon { width: 48px; height: 48px; border-radius: 15px; flex-shrink: 0; display: grid; place-items: center; background: var(--brand-soft); transition: background .4s; }
.other__icon svg { width: 22px; height: 22px; fill: none; stroke: var(--brand); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: stroke .4s; }
.other:hover .other__icon { background: var(--brand); }
.other:hover .other__icon svg { stroke: #fff; }
.other__text { flex: 1; min-width: 0; }
.other__text b { display: block; font-weight: 600; font-size: .98rem; }
.other__text small { display: block; font-size: .8rem; color: var(--ink-mute); }
.other__go { width: 34px; height: 34px; border-radius: 50%; flex-shrink: 0; display: grid; place-items: center; box-shadow: inset 0 0 0 1.5px var(--line-strong); transition: transform .5s var(--ease), background .4s, color .4s; }
.other__go svg { width: 14px; height: 14px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.other:hover .other__go { transform: rotate(45deg); background: var(--ink); color: #fff; box-shadow: none; }

@media (max-width: 1024px) {
    .why { grid-template-columns: 1fr; }
}
@media (max-width: 900px) {
    .hero--service .hero__visual { height: auto; max-width: 440px; }
}
@media (max-width: 640px) {
    .emblem { width: 100%; }
    .emblem__chip > span { font-size: .74rem; padding: 8px 12px; }
    .emblem__chip:nth-child(5) { left: 0; top: 8%; }
    .emblem__chip:nth-child(6) { right: 0; top: 26%; }
    .emblem__chip:nth-child(8) { right: 0; bottom: 4%; }
    .conds-sec { border-radius: 32px 32px 0 0; }
    .cond { padding: 26px; }
    .why__icon { margin-bottom: 24px; }
}

/* =========================================================
   Medical cases page
   ========================================================= */
.paper--case img { display: block; width: 100%; height: 58%; margin-bottom: 6px; border-radius: 8px; object-fit: cover; box-shadow: 0 6px 14px -6px rgba(11,27,46,.35); }
.hero--cases .paper--case { width: 190px; }
/* Icon cards (no patient photos in the hero) */
.paper--icon { gap: 8px; }
.paper__art { position: relative; display: grid; place-items: center; height: 58%; border-radius: 10px; overflow: hidden; color: var(--brand); background: radial-gradient(circle at 30% 20%, #fff 0, transparent 60%), var(--brand-soft); }
.paper__art::after { content: ""; position: absolute; inset: 14%; border-radius: 50%; border: 1px dashed currentColor; opacity: .18; animation: spin 40s linear infinite; }
.paper__art svg { position: relative; z-index: 1; width: 52%; height: auto; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; animation: iconBob 4.5s ease-in-out infinite alternate; }
.paper__art--ot { color: #0B6E6A; background: radial-gradient(circle at 30% 20%, #fff 0, transparent 60%), #D6F0EC; }
.paper__art--care { color: #B4532A; background: radial-gradient(circle at 30% 20%, #fff 0, transparent 60%), #FFE3D3; }
.paper__art--smile { color: #6A4BB5; background: radial-gradient(circle at 30% 20%, #fff 0, transparent 60%), #E9E2FA; }
.paper--icon small { font-size: .62rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink-soft); }
.paper--icon i, .paper--icon i:first-child { width: 88%; height: 5px; margin: 0; background: var(--paper-2); }
.paper--icon i:last-child { width: 60%; }
@keyframes iconBob { from { transform: translateY(3px) scale(.97); } to { transform: translateY(-3px) scale(1.03); } }
@media (max-width: 640px) {
    .hero--cases .paper--case { width: 96px; padding: 7px; gap: 5px; opacity: .9; }
    .paper--icon small { display: none; }
    .hero--cases .paper--1 { left: -5%; top: 12%; }
    .hero--cases .paper--3 { right: -5%; top: 9%; }
    .hero--cases .paper--2, .hero--cases .paper--4 { display: none; }
}
.hero--cases .paper--1 { top: 20%; }
.hero--cases .paper--3 { top: 18%; }

.cases-stats-sec { background: var(--paper-3); border-radius: 48px 48px 0 0; padding-bottom: 0; }
.cases-lib { background: var(--paper-3); }
.cases-tools { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 14px; }
.cases-tools .search--sm { max-width: 360px; flex: 1 1 260px; }
.cases-note { display: flex; align-items: center; gap: 10px; margin: 18px 0 30px; font-size: .84rem; color: var(--ink-mute); }
.cases-note svg { width: 18px; height: 18px; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }

.mcases { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; }
.mcase {
    display: flex; flex-direction: column;
    border-radius: 28px; overflow: hidden;
    background: var(--card); box-shadow: inset 0 0 0 1px var(--line);
    transition: translate .6s var(--ease), box-shadow .6s var(--ease);
}
.mcase[hidden] { display: none; }
.mcase:hover { translate: 0 -6px; box-shadow: inset 0 0 0 1px var(--line), var(--shadow-2); }
.mcase__media { position: relative; display: block; width: 100%; aspect-ratio: 5 / 3.3; overflow: hidden; background: var(--paper-2); cursor: zoom-in; }
.mcase__media img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.mcase:hover .mcase__media img { transform: scale(1.06); }
.mcase__ph {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px;
    background: radial-gradient(circle at 70% 20%, rgba(255,255,255,.25), transparent 50%), linear-gradient(150deg, var(--brand-2), var(--brand) 50%, var(--brand-deep));
    color: rgba(255,255,255,.85);
}
.mcase[data-cats~="neonatal"] .mcase__ph, .lightbox[data-cats~="neonatal"] .mcase__ph { background: radial-gradient(circle at 70% 20%, rgba(255,255,255,.3), transparent 50%), linear-gradient(150deg, #FFB48F, #F08A5D 50%, #B4542C); }
.mcase[data-cats~="thoracic"] .mcase__ph, .lightbox[data-cats~="thoracic"] .mcase__ph { background: radial-gradient(circle at 70% 20%, rgba(255,255,255,.25), transparent 50%), linear-gradient(150deg, #3DD6C3, #14B8A6 50%, #0B7D71); }
.mcase__ph svg { width: 54px; height: 54px; fill: none; stroke: #fff; stroke-width: 1.3; stroke-linecap: round; stroke-linejoin: round; }
.mcase__ph small { font-size: .74rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.mcase__tag { position: absolute; left: 14px; top: 14px; font-size: .74rem; font-weight: 600; padding: 6px 12px; border-radius: 999px; background: rgba(255,255,255,.9); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); color: var(--ink); }
.mcase__zoom { position: absolute; right: 14px; top: 14px; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: rgba(11,27,46,.7); color: #fff; opacity: 0; transform: scale(.7); transition: opacity .35s, transform .5s var(--ease); }
.mcase__zoom svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mcase:hover .mcase__zoom, .mcase__media:focus-visible .mcase__zoom { opacity: 1; transform: none; }
.mcase__body { display: flex; flex-direction: column; gap: 8px; padding: 22px 24px 24px; flex: 1; }
.mcase__num { font-size: .72rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--brand); }
.mcase__title { font-family: var(--f-display); font-weight: 420; font-size: 1.22rem; line-height: 1.25; letter-spacing: -.01em; }
.mcase__desc { font-size: .9rem; color: var(--ink-soft); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.mcase mark { background: #FFE6A8; color: inherit; border-radius: 3px; padding: 0 1px; }
.mcase__svcs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: auto; padding-top: 8px; }
.mcase__svcs a { font-size: .72rem; font-weight: 600; padding: 5px 11px; border-radius: 999px; background: var(--brand-soft); color: var(--brand); transition: background .3s, color .3s; }
.mcase__svcs a:hover { background: var(--brand); color: #fff; }

/* Lightbox */
.lightbox { position: fixed; inset: 0; z-index: 400; display: grid; place-items: center; padding: 24px; }
.lightbox[hidden] { display: none; }
.lightbox__backdrop { position: absolute; inset: 0; background: rgba(8,16,28,.82); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); animation: fadeIn .35s ease; }
.lightbox__panel {
    position: relative;
    display: grid; grid-template-columns: minmax(0, 1.6fr) minmax(300px, 1fr);
    width: min(1200px, 100%); max-height: calc(100vh - 48px);
    border-radius: 30px; overflow: hidden;
    background: var(--card);
    box-shadow: 0 40px 100px -30px rgba(0,0,0,.6);
    animation: boxIn .5s var(--ease);
}
@keyframes fadeIn { from { opacity: 0; } }
@keyframes boxIn { from { opacity: 0; transform: translateY(24px) scale(.97); } }
.lightbox__media { position: relative; min-height: 320px; background: #0B1B2E; display: grid; place-items: center; }
.lightbox__media img { width: 100%; height: 100%; max-height: calc(100vh - 48px); object-fit: contain; }
.lightbox__media .mcase__ph { position: absolute; }
.lightbox__info { display: flex; flex-direction: column; gap: 12px; padding: clamp(26px, 3vw, 40px); overflow-y: auto; }
.lightbox__num { font-size: .74rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--brand); }
.lightbox__title { font-family: var(--f-display); font-weight: 420; font-size: clamp(1.5rem, 2.2vw, 2rem); line-height: 1.15; letter-spacing: -.015em; padding-right: 36px; }
.lightbox__desc { color: var(--ink-soft); }
.lightbox__nav { display: flex; align-items: center; gap: 14px; margin-top: auto; padding-top: 22px; font-size: .86rem; color: var(--ink-mute); font-variant-numeric: tabular-nums; }
.lightbox__close { position: absolute; right: 16px; top: 16px; width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center; background: var(--paper); transition: background .3s, color .3s, transform .5s var(--ease); }
.lightbox__close:hover { background: var(--ink); color: #fff; transform: rotate(90deg); }
.lightbox__close svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }

@media (max-width: 1024px) {
    .mcases { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .lightbox__panel { grid-template-columns: 1fr; overflow-y: auto; }
    .lightbox__media { min-height: 0; aspect-ratio: 5 / 3.3; }
}
@media (max-width: 640px) {
    .mcases { grid-template-columns: 1fr; }
    .cases-stats-sec { border-radius: 32px 32px 0 0; }
    .lightbox { padding: 0; align-items: end; }
    .lightbox__panel { border-radius: 26px 26px 0 0; max-height: 92vh; }
}

/* =========================================================
   Media pages: press, gallery, video, testimonials
   ========================================================= */
.rating--link { text-decoration: none; transition: transform .4s var(--ease); }
.rating--link:hover { transform: translateY(-2px); }
.rating--link b { font-size: 1.05rem; }
.review__mark { font-family: var(--f-display); font-style: italic; font-size: 4rem; line-height: .6; height: 26px; color: var(--brand); opacity: .35; }
.lightbox__ar { font-size: 1.05rem; line-height: 1.6; color: var(--ink-2); padding: 12px 16px; border-radius: 14px; background: var(--paper-3); font-family: 'Segoe UI', Tahoma, 'Noto Naskh Arabic', sans-serif; }
.lightbox__ar:empty, .lightbox__desc:empty { display: none; }
.lightbox--image .lightbox__media img { background: #fff; }

/* shared "more media" tiles */
.media-links-sec { background: var(--paper); padding-top: 0; }
.media-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.media-link { position: relative; overflow: hidden; isolation: isolate; display: flex; align-items: flex-end; min-height: 240px; padding: 26px; border-radius: 28px; color: #fff; }
.media-link img { position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; transition: transform 1.1s var(--ease); }
.media-link::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(11,27,46,.05) 20%, rgba(11,27,46,.82)); }
.media-link:hover img { transform: scale(1.08); }
.media-link small { display: block; font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--peach); }
.media-link b { font-family: var(--f-display); font-weight: 400; font-size: 1.8rem; letter-spacing: -.02em; }

/* ---------- Press ---------- */
.clips { position: absolute; inset: 0; }
.clip {
    --r: 0deg;
    position: absolute; width: 190px; border-radius: 10px;
    background: #fff; padding: 8px;
    box-shadow: var(--shadow-2);
    animation: paperFloat 10s ease-in-out infinite alternate;
}
.clip--1 { --r: -9deg; left: 5%; top: 22%; }
.clip--2 { --r: 7deg; left: 12%; bottom: 8%; width: 150px; animation-delay: -4s; }
.clip--3 { --r: 8deg; right: 6%; top: 18%; width: 160px; animation-delay: -2s; }
.clip--4 { --r: -6deg; right: 12%; bottom: 10%; animation-delay: -6s; }
.press-facts { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 30px; }
.press-facts li { padding: 9px 16px; border-radius: 999px; font-size: .88rem; color: var(--ink-soft); background: rgba(255,255,255,.8); box-shadow: inset 0 0 0 1px var(--line); }
.press-facts b { color: var(--ink); }

.press-feature-sec { background: var(--paper-3); border-radius: 48px 48px 0 0; padding-bottom: 0; }
.press-feature {
    display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 64px); align-items: center;
    padding: clamp(20px, 3vw, 32px); border-radius: 36px;
    background: var(--card); box-shadow: var(--shadow-2);
}
.press-feature__media { display: block; border-radius: 24px; overflow: hidden; background: #F4EFE6; cursor: zoom-in; aspect-ratio: 16 / 11; }
.press-feature__media img { width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform 1.2s var(--ease); }
.press-feature__media:hover img { transform: scale(1.05); }
.press-feature__title { font-family: var(--f-display); font-weight: 380; font-size: clamp(1.9rem, 3.2vw, 3rem); line-height: 1.06; letter-spacing: -.025em; }
.press-feature__sub { margin-top: 16px; font-size: 1.05rem; color: var(--ink-soft); }
.press-feature__meta { margin: 14px 0 28px; font-size: .85rem; color: var(--ink-mute); }

.press-sec { background: var(--paper-3); }
.clippings { columns: 3 300px; column-gap: 20px; }
.clipping {
    break-inside: avoid; margin-bottom: 20px;
    border-radius: 26px; overflow: hidden;
    background: var(--card); box-shadow: inset 0 0 0 1px var(--line);
    transition: translate .6s var(--ease), box-shadow .6s var(--ease);
}
.clipping[hidden] { display: none; }
.clipping:hover { translate: 0 -6px; box-shadow: inset 0 0 0 1px var(--line), var(--shadow-2); }
.clipping__media { position: relative; display: block; width: 100%; max-height: 360px; overflow: hidden; background: #F4EFE6; cursor: zoom-in; }
.clipping__media img { width: 100%; height: auto; transition: transform 1.1s var(--ease); }
.clipping:hover .clipping__media img { transform: scale(1.04); }
.clipping__media::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 60px; background: linear-gradient(transparent, rgba(255,255,255,.9)); }
.clipping__read {
    position: absolute; right: 14px; top: 14px; z-index: 1;
    display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px;
    font-size: .74rem; font-weight: 600; color: #fff; background: rgba(11,27,46,.78);
    opacity: 0; transform: translateY(-6px); transition: opacity .35s, transform .5s var(--ease);
}
.clipping__read svg { width: 13px; height: 13px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; }
.clipping:hover .clipping__read, .clipping__media:focus-visible .clipping__read { opacity: 1; transform: none; }
.clipping__body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 8px; }
.clipping__pub { display: flex; justify-content: space-between; gap: 10px; font-size: .78rem; color: var(--ink-mute); }
.clipping__pub b { font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--brand); }
.clipping__title { font-family: var(--f-display); font-weight: 420; font-size: 1.2rem; line-height: 1.25; letter-spacing: -.01em; }
.clipping__ar { font-family: 'Segoe UI', Tahoma, 'Noto Naskh Arabic', sans-serif; font-size: .95rem; line-height: 1.6; color: var(--ink-soft); padding: 10px 12px; border-radius: 12px; background: var(--paper-3); }
.clipping__hosp { font-size: .8rem; color: var(--ink-mute); }
.press-note { margin-top: 12px; font-size: .8rem; color: var(--ink-mute); }

/* ---------- Gallery ---------- */
.hero--gallery { padding-bottom: 0; flex-direction: column; }
.reel { width: 100%; margin-top: 56px; overflow: hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); mask-image: linear-gradient(90deg, transparent, #000 10%, #000 90%, transparent); }
.reel__row { display: flex; width: max-content; animation: marquee 70s linear infinite; }
.reel__set { display: flex; gap: 16px; padding-right: 16px; }
.reel__set img { height: clamp(160px, 20vw, 250px); width: auto; border-radius: 22px; object-fit: cover; }
.reel__set img:nth-child(odd) { transform: translateY(18px); }
.reel:hover .reel__row { animation-play-state: paused; }

.gallery-sec { background: var(--paper-3); border-radius: 48px 48px 0 0; margin-top: -30px; position: relative; }
.masonry { columns: 4 240px; column-gap: 14px; }
.shot {
    position: relative; display: block; width: 100%; margin-bottom: 14px;
    break-inside: avoid; border-radius: 20px; overflow: hidden; cursor: zoom-in;
    background: var(--paper-2);
}
.shot[hidden] { display: none; }
.shot img { width: 100%; height: auto; transition: transform 1s var(--ease), filter .6s; }
.shot:hover img { transform: scale(1.05); }
.shot__cap {
    position: absolute; left: 12px; bottom: 12px;
    padding: 6px 12px; border-radius: 999px; font-size: .74rem; font-weight: 600;
    background: rgba(255,255,255,.9); color: var(--ink);
    opacity: 0; transform: translateY(8px); transition: opacity .35s, transform .5s var(--ease);
}
.shot:hover .shot__cap, .shot:focus-visible .shot__cap { opacity: 1; transform: none; }

/* ---------- Video ---------- */
.play-orb {
    position: relative; display: grid; place-items: center;
    width: 88px; height: 88px; margin: 0 auto 28px; border-radius: 50%;
    background: var(--brand); color: #fff; box-shadow: 0 20px 40px -14px rgba(14,111,173,.7);
}
.play-orb::before, .play-orb::after { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid var(--brand); animation: orbPulse 2.6s var(--ease) infinite; }
.play-orb::after { animation-delay: 1.3s; }
@keyframes orbPulse { 0% { transform: scale(1); opacity: .7; } 100% { transform: scale(2.1); opacity: 0; } }
.play-orb svg { width: 34px; height: 34px; fill: currentColor; margin-left: 5px; }

.videos-sec { background: var(--paper-3); border-radius: 48px 48px 0 0; }
.videos { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.vcard { border-radius: 30px; overflow: hidden; background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
.vcard__frame { position: relative; background: var(--ink); aspect-ratio: 16 / 9; overflow: hidden; }
.vcard--tall .vcard__frame { aspect-ratio: 3 / 4; }
.vcard__frame iframe, .vcard__frame video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; object-fit: cover; background: #000; }
.vcard__frame.is-playing video { object-fit: contain; }
.vcard__poster { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: space-between; padding: 28px; color: #fff; }
.vcard__poster--brand { background: radial-gradient(circle at 80% 20%, rgba(255,255,255,.22), transparent 45%), linear-gradient(150deg, var(--brand-2), var(--brand) 45%, var(--brand-deep)); }
.vcard__poster--brand::after { content: ""; position: absolute; right: -60px; bottom: -60px; width: 280px; height: 280px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); box-shadow: 0 0 0 40px rgba(255,255,255,.05), 0 0 0 80px rgba(255,255,255,.03); }
.vcard__source { display: inline-flex; align-items: center; gap: 8px; align-self: flex-start; padding: 7px 14px; border-radius: 999px; font-size: .8rem; font-weight: 600; background: rgba(255,255,255,.16); }
.vcard__source svg { width: 16px; height: 16px; fill: currentColor; }
.vcard__headline { font-family: var(--f-display); font-weight: 340; font-style: italic; font-size: clamp(2.4rem, 5vw, 4.4rem); line-height: .95; letter-spacing: -.03em; }
.vcard__play {
    position: absolute; left: 50%; top: 50%; z-index: 2;
    width: 84px; height: 84px; margin: -42px 0 0 -42px; border-radius: 50%;
    display: grid; place-items: center;
    background: rgba(255,255,255,.95); color: var(--brand);
    box-shadow: 0 20px 40px -12px rgba(0,0,0,.5);
    transition: transform .5s var(--ease), background .3s, color .3s;
}
.vcard__play::before { content: ""; position: absolute; inset: 0; border-radius: 50%; border: 2px solid rgba(255,255,255,.8); animation: orbPulse 2.4s var(--ease) infinite; }
.vcard__play svg { width: 30px; height: 30px; fill: currentColor; margin-left: 4px; }
.vcard__frame:hover .vcard__play { transform: scale(1.1); background: var(--brand); color: #fff; }
.vcard__frame.is-playing .vcard__play, .vcard__frame.is-playing .vcard__poster { display: none; }
.vcard__body { padding: 24px 28px 30px; }
.vcard__body .eyebrow { margin-bottom: 10px; }
.vcard__title { font-family: var(--f-display); font-weight: 420; font-size: 1.6rem; letter-spacing: -.015em; }
.vcard__desc { margin-top: 8px; color: var(--ink-soft); }
.vcard__note { margin: 12px 0 16px; font-size: .8rem; color: var(--ink-mute); }

/* ---------- Testimonials ---------- */
.hero--voices .q-mark { left: 50%; top: 2%; transform: translateX(-50%); -webkit-text-stroke-color: rgba(14,111,173,.12); }
.rotator { width: 100%; max-width: 760px; margin-top: 34px; }
.rotator__stage { position: relative; min-height: 190px; }
.rotator__item {
    position: absolute; inset: 0;
    display: flex; flex-direction: column; justify-content: center; gap: 14px;
    opacity: 0; transform: translateY(18px);
    transition: opacity .8s var(--ease), transform 1s var(--ease);
    pointer-events: none;
}
.rotator__item.is-on { opacity: 1; transform: none; pointer-events: auto; }
.rotator__item blockquote { font-family: var(--f-display); font-style: italic; font-weight: 340; font-size: clamp(1.35rem, 2.4vw, 2rem); line-height: 1.3; letter-spacing: -.015em; color: var(--ink); }
.rotator__item figcaption { font-size: .86rem; font-weight: 600; color: var(--brand); letter-spacing: .04em; }
html.no-js .rotator__item:first-child, html.no-motion .rotator__item:first-child { opacity: 1; transform: none; }
.rotator__dots { display: flex; justify-content: center; gap: 8px; margin-top: 18px; }
.rotator__dots button { position: relative; width: 44px; height: 24px; }
.rotator__dots span { position: absolute; left: 4px; right: 4px; top: 50%; height: 3px; margin-top: -1.5px; border-radius: 3px; background: var(--line-strong); overflow: hidden; }
.rotator__dots span::after { content: ""; position: absolute; inset: 0; background: var(--brand); transform: scaleX(0); transform-origin: left; }
.rotator__dots button.is-on span::after { animation: dotFill var(--rot-ms, 6s) linear forwards; }
.rotator.is-paused .rotator__dots button.is-on span::after { animation-play-state: paused; }
@keyframes dotFill { to { transform: scaleX(1); } }
.countries { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin-top: 26px; }
.countries li { padding: 7px 14px; border-radius: 999px; font-size: .8rem; font-weight: 600; background: rgba(255,255,255,.8); box-shadow: inset 0 0 0 1px var(--line); color: var(--ink-2); }

.stories-sec { background: var(--paper-3); border-radius: 48px 48px 0 0; }
.stories { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; }
.story {
    position: relative; overflow: hidden; isolation: isolate;
    display: flex; flex-direction: column; gap: 18px;
    padding: clamp(28px, 3.5vw, 44px); border-radius: 32px;
    background: var(--card); box-shadow: inset 0 0 0 1px var(--line);
}
.story:nth-child(4n+1), .story:nth-child(4n+4) { background: radial-gradient(circle at 90% 0%, rgba(255,255,255,.2), transparent 45%), linear-gradient(150deg, var(--brand-2), var(--brand) 45%, var(--brand-deep)); color: #fff; box-shadow: 0 30px 60px -30px rgba(14,111,173,.7); }
.story__mark { position: absolute; right: 22px; top: -18px; z-index: -1; font-family: var(--f-display); font-style: italic; font-size: 11rem; line-height: 1; color: var(--brand); opacity: .12; }
.story:nth-child(4n+1) .story__mark, .story:nth-child(4n+4) .story__mark { color: #fff; opacity: .16; }
.story__tag { align-self: flex-start; padding: 6px 13px; border-radius: 999px; font-size: .76rem; font-weight: 600; background: var(--brand-soft); color: var(--brand); }
.story:nth-child(4n+1) .story__tag, .story:nth-child(4n+4) .story__tag { background: rgba(255,255,255,.16); color: #fff; }
.story__text { font-family: var(--f-display); font-weight: 360; font-size: 1.12rem; line-height: 1.6; }
.story__who { display: flex; align-items: center; gap: 12px; padding-top: 18px; border-top: 1px solid var(--line); }
.story:nth-child(4n+1) .story__who, .story:nth-child(4n+4) .story__who { border-color: rgba(255,255,255,.2); }
.story__who strong { display: block; }
.story__who small { display: block; font-size: .8rem; opacity: .7; }

.greviews-sec { background: var(--paper-3); padding-top: 0; }
.greviews-sec .reviews__marquee { margin-bottom: 40px; }
.gcard {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 26px; align-items: center;
    padding: clamp(24px, 3.5vw, 40px); border-radius: 32px;
    background: var(--card); box-shadow: var(--shadow-2);
}
.gcard__logo { width: 72px; height: 72px; border-radius: 22px; display: grid; place-items: center; background: var(--paper-3); }
.gcard__logo svg { width: 38px; height: 38px; }
.gcard h2 { font-family: var(--f-display); font-weight: 420; font-size: clamp(1.4rem, 2.2vw, 1.9rem); letter-spacing: -.015em; }
.gcard p { margin-top: 6px; color: var(--ink-soft); }
.gcard__actions { display: flex; flex-wrap: wrap; gap: 10px; }

@media (max-width: 1024px) {
    .press-feature, .videos { grid-template-columns: 1fr; }
    .vcard--tall { max-width: 460px; }
    .stories { grid-template-columns: 1fr; }
    .gcard { grid-template-columns: auto minmax(0, 1fr); }
    .gcard__actions { grid-column: 1 / -1; }
    .clip--2, .clip--4 { display: none; }
}
@media (max-width: 640px) {
    .media-links { grid-template-columns: 1fr; }
    .media-link { min-height: 180px; }
    .hero--press .clips { display: none; }
    .press-feature-sec, .gallery-sec, .videos-sec, .stories-sec { border-radius: 32px 32px 0 0; }
    .press-feature { border-radius: 26px; }
    .masonry { columns: 2; column-gap: 10px; }
    .shot { margin-bottom: 10px; border-radius: 14px; }
    .reel { margin-top: 40px; }
    .rotator__stage { min-height: 230px; }
    .gcard { grid-template-columns: 1fr; text-align: left; }
    .gcard__actions .btn { flex: 1 1 100%; }
    .story__mark { font-size: 8rem; }
}

/* Google reviews grid (testimonials page): full review text, no clamping */
.greviews { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 18px; align-items: start; }
.greviews .review { width: auto; }
.greviews .review__text { -webkit-line-clamp: unset; display: block; overflow: visible; }
.greviews__note { margin: 20px 0 40px; font-size: .85rem; color: var(--ink-mute); }
.greviews__note a { color: var(--brand); font-weight: 600; text-decoration: underline; }
.score--link { text-decoration: none; color: inherit; transition: transform .4s var(--ease); }
.score--link:hover { transform: translateY(-2px); }
.score--link:hover small { color: var(--brand); }
img.review__avatar { object-fit: cover; }
.review__who a { color: inherit; text-decoration: none; }
.review__who a:hover { color: var(--brand); text-decoration: underline; }

/* Related cases on service pages */
.svc-cases-sec { background: var(--paper); }
html.js .mcases--capped .mcase--more { display: none; }
.svc-cases__more { display: flex; justify-content: center; margin-top: 32px; }
.svc-cases__more[hidden] { display: none; }

/* Contact page: gap between the quick-action tiles and the enquiry card */
.quick-sec + .appt { padding-top: clamp(40px, 5vw, 72px); }
/* Enquiry form: the message box grows to fill the column, so no empty space collects under the form */
.appt__card .field:has(textarea) { flex: 1 1 auto; display: flex; }
.appt__card .field textarea { flex: 1; min-height: 130px; }

/* Sensitive surgical photos: blurred until the visitor chooses to view them */
.mcase__media img { filter: blur(16px) saturate(.55) brightness(.95); transform: scale(1.12); transition: filter .6s var(--ease), transform 1.1s var(--ease); }
.mcase:hover .mcase__media img { transform: scale(1.16); }
.mcase__veil {
    position: absolute; left: 50%; top: 50%; z-index: 1; transform: translate(-50%, -50%);
    display: flex; flex-direction: column; align-items: center; gap: 4px;
    padding: 14px 20px; border-radius: 18px; text-align: center; white-space: nowrap;
    color: #fff; background: rgba(11,27,46,.55); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px);
    pointer-events: none; transition: opacity .4s, transform .5s var(--ease);
}
.mcase__veil svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.mcase__veil b { font-size: .86rem; font-weight: 600; }
.mcase__veil small { font-size: .72rem; opacity: .8; }
.mcase:hover .mcase__veil { transform: translate(-50%, -50%) scale(1.05); }
.hero--cases .paper--case img { filter: blur(7px) saturate(.6); }
html.cases-unblurred .mcase__media img, html.cases-unblurred .hero--cases .paper--case img { filter: none; transform: none; }
html.cases-unblurred .mcase:hover .mcase__media img { transform: scale(1.06); }
html.cases-unblurred .mcase__veil { opacity: 0; }

.cases-warn {
    display: flex; align-items: center; gap: 16px; margin: 20px 0 30px;
    padding: 18px 22px; border-radius: 20px;
    background: #FFF6EF; box-shadow: inset 0 0 0 1px #F9D9C4;
}
.cases-warn__icon { width: 44px; height: 44px; border-radius: 14px; flex-shrink: 0; display: grid; place-items: center; background: #FDE4D4; }
.cases-warn__icon svg { width: 22px; height: 22px; fill: none; stroke: #C2582E; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cases-warn__text { flex: 1; font-size: .9rem; color: var(--ink-2); }
.cases-warn__text b { display: block; margin-bottom: 2px; }
.cases-warn__text p { color: var(--ink-soft); font-size: .86rem; }
.cases-warn__btn { flex-shrink: 0; }
.cases-warn--compact { margin: 0 0 24px; padding: 12px 16px; }
.cases-warn--compact .cases-warn__icon { width: 36px; height: 36px; border-radius: 12px; }
@media (max-width: 640px) {
    .cases-warn { flex-wrap: wrap; }
    .cases-warn__btn { flex: 1 1 100%; }
}

/* ---------- Legal pages ---------- */
.hero--legal .hero__title { font-size: clamp(2.8rem, 7vw, 6rem); }
.legal-seal { --r: 0deg; position: absolute; right: 8%; top: 22%; width: clamp(110px, 12vw, 170px); aspect-ratio: 1; border-radius: 50%; display: grid; place-items: center; background: rgba(255,255,255,.6); box-shadow: var(--shadow-2), inset 0 0 0 1px rgba(255,255,255,.9); animation: paperFloat 9s ease-in-out infinite alternate; }
.legal-seal svg { width: 50%; height: 50%; fill: none; stroke: var(--brand); stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.legal-updated { margin-top: 18px; font-size: .84rem; font-weight: 600; color: var(--ink-mute); }
.legal-body { background: var(--paper-3); border-radius: 48px 48px 0 0; }
.legal-grid { display: grid; grid-template-columns: 280px minmax(0, 1fr); gap: clamp(32px, 6vw, 90px); align-items: start; }
.legal-toc { position: sticky; top: 110px; }
.legal-toc__label { font-size: .74rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: var(--ink-mute); margin-bottom: 12px; }
.legal-toc ol { border-left: 2px solid var(--line); }
.legal-toc a { display: flex; gap: 10px; padding: 7px 0 7px 16px; margin-left: -2px; border-left: 2px solid transparent; font-size: .9rem; color: var(--ink-soft); transition: color .3s, border-color .3s; }
.legal-toc a i { font-style: normal; font-size: .72rem; font-weight: 600; color: var(--ink-mute); padding-top: 2px; }
.legal-toc a:hover { color: var(--ink); }
.legal-toc a.is-on { color: var(--brand); border-left-color: var(--brand); font-weight: 600; }
.legal-toc a.is-on i { color: var(--brand); }
.legal-toc__other { display: inline-flex; align-items: center; gap: 8px; margin-top: 24px; font-size: .88rem; font-weight: 600; color: var(--brand); }
.legal-toc__other svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.legal-content { max-width: 760px; }
.legal-sec { padding: 30px 0; border-top: 1px solid var(--line); scroll-margin-top: 110px; }
.legal-sec:first-child { border-top: 0; padding-top: 0; }
.legal-sec h2 { display: flex; align-items: baseline; gap: 14px; font-family: var(--f-display); font-weight: 420; font-size: clamp(1.4rem, 2.2vw, 1.8rem); letter-spacing: -.015em; margin-bottom: 14px; }
.legal-sec h2 i { font-style: normal; font-family: var(--f-body); font-size: .8rem; font-weight: 700; color: var(--brand); }
.legal-sec p { color: var(--ink-soft); line-height: 1.75; }
.legal-sec p + p, .legal-sec p + ul, .legal-sec ul + p { margin-top: 12px; }
.legal-sec ul { margin-top: 10px; }
.legal-sec li { position: relative; padding: 5px 0 5px 24px; color: var(--ink-soft); line-height: 1.6; }
.legal-sec li::before { content: ""; position: absolute; left: 4px; top: 14px; width: 7px; height: 7px; border-radius: 50%; background: var(--brand); }
.legal-sec b { color: var(--ink); }
.legal-sec a { color: var(--brand); text-decoration: underline; }
.legal-callout { padding: 16px 20px; border-radius: 16px; background: var(--brand-soft); color: var(--ink-2) !important; }
.legal-contact { margin-top: 14px !important; padding: 8px 22px; border-radius: 20px; background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
.legal-contact li { display: grid; grid-template-columns: 90px 1fr; gap: 12px; padding: 12px 0 !important; border-top: 1px solid var(--line); }
.legal-contact li:first-child { border-top: 0; }
/* Cookie policy: what is stored on the device */
.legal-table { margin: 16px 0; border-radius: 20px; background: var(--card); box-shadow: inset 0 0 0 1px var(--line); overflow: hidden; }
.legal-table__row { display: grid; grid-template-columns: 110px minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1fr); gap: 16px; padding: 14px 20px; border-top: 1px solid var(--line); font-size: .9rem; line-height: 1.55; color: var(--ink-soft); }
.legal-table__row:first-child { border-top: 0; }
.legal-table__head { background: var(--paper-2); font-size: .72rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-mute); }
.legal-table code { font-size: .82rem; padding: 2px 8px; border-radius: 8px; background: var(--brand-soft); color: var(--brand-deep, var(--brand)); white-space: nowrap; }
@media (max-width: 760px) {
    .legal-table__head { display: none; }
    .legal-table__row { grid-template-columns: 1fr; gap: 6px; }
    .legal-table__row span[data-label]:not(:first-child)::before { content: attr(data-label); display: block; font-size: .68rem; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-mute); }
}
.legal-contact li::before { display: none; }
.legal-contact span { font-size: .74rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--ink-mute); padding-top: 2px; }

/* ---------- Thank-you page ---------- */
.hero--thanks { min-height: min(90svh, 820px); }
.thanks__check { display: grid; place-items: center; width: 110px; height: 110px; margin: 0 auto 26px; border-radius: 50%; background: linear-gradient(150deg, #34D399, #10B981); box-shadow: 0 24px 50px -16px rgba(16,185,129,.7); animation: tyPop .7s cubic-bezier(.17,.85,.38,1.2) both; }
.thanks__check svg { width: 64%; height: 64%; fill: none; stroke-linecap: round; stroke-linejoin: round; }
.thanks__ring { stroke: rgba(255,255,255,.45); stroke-width: 2; stroke-dasharray: 160; stroke-dashoffset: 160; animation: tyStroke .8s ease-out .2s forwards; }
.thanks__tick { stroke: #fff; stroke-width: 4.5; stroke-dasharray: 40; stroke-dashoffset: 40; animation: tyStroke .5s ease-out .7s forwards; }
@keyframes tyStroke { to { stroke-dashoffset: 0; } }
@keyframes tyPop { 0% { transform: scale(0) rotate(-60deg); opacity: 0; } 70% { transform: scale(1.1) rotate(0); opacity: 1; } 100% { transform: scale(1); } }
.thanks .eyebrow { justify-content: center; }
.thanks .hero__lead strong { color: var(--brand); }
.thanks .hero__cta { justify-content: center; }
.thanks-next { background: var(--paper-3); border-radius: 48px 48px 0 0; }
.thanks-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 40px; }
.thanks-steps li { display: flex; flex-direction: column; gap: 6px; padding: 28px; border-radius: 26px; background: var(--card); box-shadow: inset 0 0 0 1px var(--line); }
.thanks-steps i { font-style: normal; font-family: var(--f-display); font-size: 2.4rem; line-height: 1; color: var(--brand); margin-bottom: 12px; }
.thanks-steps b { font-family: var(--f-display); font-weight: 420; font-size: 1.3rem; }
.thanks-steps span { color: var(--ink-soft); font-size: .93rem; }
.thanks-contact .ctile { min-height: 180px; }

@media (max-width: 1024px) {
    .legal-grid { grid-template-columns: 1fr; }
    .legal-toc { position: static; }
    .legal-toc ol { display: none; }
    .thanks-steps { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
    .legal-seal { display: none; }
    .legal-body, .thanks-next { border-radius: 32px 32px 0 0; }
    .legal-contact li { grid-template-columns: 1fr; gap: 2px; }
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }
    .reviews__row, .band__track.css-anim { animation: none !important; }
    .reviews__marquee { overflow-x: auto; }
    .ecg-pill path { stroke-dashoffset: 0; }
    .q-ecg__pulse, .q-bubbles, .q-rings { display: none; }
    .q-dd svg, .q-say__in { animation: none !important; }
    .paper, .clip, .legal-seal { animation: none !important; transform: rotate(var(--r)); }
    .thanks__ring, .thanks__tick { stroke-dashoffset: 0; }
    .reel__row { animation: none !important; }
}
