
@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/manrope-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Manrope';
  font-style: normal;
  font-weight: 400 800;
  font-display: swap;
  src: url(/assets/manrope-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


:root {
  /* Five base colors. All tints, borders and shadows derive from these. */
  --color-background: #f3f6fa;
  --color-surface: #ffffff;
  --color-text: #243348;
  --color-muted: #64738a;
  --color-accent: #377ad5;
  --font: 'Manrope', 'Segoe UI', Arial, sans-serif;
  --radius-xl: 28px;
  --radius-lg: 20px;
  --radius-sm: 10px;
  --radius-pill: 999px;
  --space-section: clamp(96px, 8vw, 128px);
  --border: 1px solid color-mix(in srgb, var(--color-text) 7%, transparent);
  --shadow: 0 12px 48px color-mix(in srgb, var(--color-text) 5%, transparent);
  --shadow-hover: 0 24px 64px color-mix(in srgb, var(--color-text) 10%, transparent);
  --motion: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 120px; }
body { margin: 0; background: var(--color-background); color: var(--color-text); font-family: var(--font); -webkit-font-smoothing: antialiased; }
button, a, summary { -webkit-tap-highlight-color: transparent; touch-action: manipulation; transition: var(--motion); }
button { font: inherit; cursor: pointer; }
a { color: inherit; text-decoration: none; }
a:hover { color: var(--color-accent); }
a:focus-visible, button:focus-visible, summary:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 5px; }
button, img, svg { flex-shrink: 0; }
img { display: block; max-width: 100%; }
svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; }
h1, :is(h2, .page-title), h3, p { margin: 0; }
h1, :is(h2, .page-title), h3 { font-family: var(--font); font-weight: 600; }
h1 { font-size: clamp(64px, 6.5vw, 100px); line-height: 1.045; letter-spacing: -.065em; }
:is(h2, .page-title) { font-size: clamp(42px, 4.25vw, 60px); line-height: 1.12; letter-spacing: -.055em; }
h3 { letter-spacing: -.035em; line-height: 1.25; }
p { color: var(--color-muted); font-size: 16px; line-height: 1.8; }
::selection { background: color-mix(in srgb, var(--color-accent) 20%, var(--color-surface)); }
.container { width: min(1240px, calc(100% - 96px)); margin-inline: auto; }
.section { padding-block: var(--space-section); }
.accent { color: var(--color-accent); }
.eyebrow { display: flex; align-items: center; gap: 10px; font-size: 10px; line-height: 1.6; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; color: var(--color-muted); }
.eyebrow::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: var(--color-accent); }
.button { min-height: 56px; padding: 17px 23px; border-radius: var(--radius-sm); border: 1px solid transparent; display: inline-flex; align-items: center; justify-content: center; gap: 26px; font-size: 13px; font-weight: 600; line-height: 1.4; background: var(--color-text); color: var(--color-surface); }
.button:hover { color: var(--color-surface); background: color-mix(in srgb, var(--color-text) 80%, var(--color-accent)); transform: translateY(-3px); box-shadow: var(--shadow-hover); }
.button svg { width: 18px; height: 18px; }
.button-secondary { background: var(--color-surface); border: var(--border); color: var(--color-text); }
.button-secondary:hover { color: var(--color-accent); background: var(--color-surface); border-color: color-mix(in srgb, var(--color-accent) 25%, transparent); }
.text-link { display: inline-flex; gap: 20px; align-items: center; font-size: 13px; font-weight: 600; padding-block: 6px; }
.text-link svg { width: 18px; height: 18px; transition: var(--motion); }
.text-link:hover svg { transform: translate(3px, -3px); }
.card { background: var(--color-surface); border: var(--border); border-radius: var(--radius-xl); box-shadow: var(--shadow); }
.interactive-card { transition: var(--motion); }
.interactive-card:hover { transform: translateY(-5px); box-shadow: var(--shadow-hover); border-color: color-mix(in srgb, var(--color-accent) 18%, transparent); }
.skip-link { position: fixed; top: -70px; left: 20px; z-index: 100; padding: 14px 20px; background: var(--color-text); color: var(--color-surface); border-radius: var(--radius-sm); }
.skip-link:focus { top: 12px; }
.site-header { height: 96px; position: sticky; top: 0; z-index: 30; background: color-mix(in srgb, var(--color-background) 92%, transparent); backdrop-filter: blur(18px); border-bottom: var(--border); }
.header-inner { height: 100%; display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.brand { display: inline-flex; align-items: center; gap: 12px; }
.brand-symbol { width: 68px; height: 51px; }
.brand-name { font-size: 34px; font-weight: 700; letter-spacing: -.06em; line-height: 1; }
.brand-caption { display: block; font-size: 7px; font-weight: 600; letter-spacing: .13em; margin-top: 10px; text-transform: uppercase; color: var(--color-muted); }
.brand:hover { color: var(--color-text); opacity: .8; }
.desktop-nav { display: flex; gap: 31px; font-size: 13px; font-weight: 500; color: var(--color-muted); }
.desktop-nav a { padding-block: 12px; }
.header-booking { min-height: 46px; padding: 13px 19px; font-size: 12px; gap: 23px; }
.menu-toggle, .mobile-nav { display: none; }
.hero { padding-top: 76px; padding-bottom: 88px; display: grid; grid-template-columns: 1.12fr 1fr; gap: 62px; align-items: center; }
.hero .eyebrow { margin-bottom: 29px; }
.hero h1 { margin-bottom: 28px; }
.hero-description { max-width: 440px; font-size: 16px; }
.hero-services { margin-top: 12px; max-width: 440px; font-size: 12px; line-height: 1.8; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 30px; }
.doctor-line { display: inline-flex; align-items: center; gap: 13px; margin-top: 35px; }
.doctor-avatar { display: grid; place-items: center; width: 43px; height: 43px; border-radius: 50%; background: color-mix(in srgb, var(--color-accent) 8%, var(--color-surface)); color: var(--color-accent); font-size: 11px; letter-spacing: -.03em; font-weight: 700; transition: var(--motion); }
.doctor-line strong { display: block; font-size: 12px; font-weight: 600; }
.doctor-line small { display: block; margin-top: 4px; font-size: 10px; color: var(--color-muted); }
.doctor-line:hover .doctor-avatar { background: color-mix(in srgb, var(--color-accent) 14%, var(--color-surface)); }
.hero-bento { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; min-width: 0; }
.hero-photo { grid-column: 1 / -1; height: 420px; position: relative; overflow: hidden; border-radius: var(--radius-xl); background: var(--color-surface); }
.hero-photo > img { width: 100%; height: 100%; object-fit: cover; object-position: 52% center; }
.hero-seal { position: absolute; top: 21px; right: 21px; background: var(--color-text); padding: 11px; border-radius: 50%; width: 72px; height: 72px; display: grid; place-items: center; box-shadow: 0 0 0 6px color-mix(in srgb, var(--color-surface) 75%, transparent); }
.hero-seal img { width: 48px; }
.photo-caption { position: absolute; bottom: 18px; left: 18px; right: 18px; display: flex; align-items: center; justify-content: space-between; gap: 15px; padding: 15px 17px; border-radius: 14px; background: color-mix(in srgb, var(--color-surface) 90%, transparent); backdrop-filter: blur(12px); }
.photo-caption strong { font-size: 12px; font-weight: 600; }
.photo-caption span { font-size: 8px; line-height: 1.6; color: var(--color-muted); }
.hero-mini { min-height: 142px; padding: 23px; border-radius: var(--radius-lg); display: flex; flex-direction: column; justify-content: space-between; gap: 20px; }
.mini-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 10px; color: var(--color-muted); }
.mini-label svg { width: 17px; height: 17px; color: var(--color-accent); }
.hero-mini strong { display: block; font-size: 16px; letter-spacing: -.03em; line-height: 1.4; font-weight: 600; }
.hero-mini small { font-size: 10px; color: var(--color-muted); margin-top: 4px; display: block; line-height: 1.6; }
.section-top { display: flex; justify-content: space-between; align-items: flex-end; gap: 56px; margin-bottom: 40px; }
.section-top :is(h2, .page-title) { margin-top: 20px; }
.section-top > p { max-width: 290px; font-size: 14px; padding-bottom: 3px; }
.services { border-top: var(--border); }
.service-bento { display: grid; grid-template-columns: 1.08fr 1fr; grid-template-rows: 1fr 1fr; gap: 18px; }
.service-card { position: relative; overflow: hidden; padding: 32px; display: flex; gap: 28px; align-items: flex-start; min-height: 195px; color: var(--color-text); }
.service-card:hover { color: var(--color-text); }
.service-card h3 { font-size: 26px; margin: 15px 0 12px; }
.service-card p { font-size: 14px; max-width: 360px; }
.service-icon { width: 30px; height: 30px; color: var(--color-accent); }
.service-number { font-size: 10px; font-weight: 600; letter-spacing: .1em; color: var(--color-muted); }
.card-arrow { width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--color-background); color: var(--color-text); margin-left: auto; flex-shrink: 0; transition: var(--motion); }
.card-arrow svg { width: 16px; height: 16px; }
.interactive-card:hover .card-arrow { background: var(--color-accent); color: var(--color-surface); transform: rotate(-4deg); }
.service-feature { grid-row: 1 / 3; display: flex; flex-direction: column; align-items: flex-start; justify-content: space-between; gap: 40px; padding: 42px; background: var(--color-text); color: var(--color-surface); }
.service-feature:hover { color: var(--color-surface); }
.feature-top { width: 100%; display: flex; justify-content: space-between; align-items: center; }
.service-feature .service-icon { width: 37px; height: 37px; color: var(--color-surface); }
.service-feature .service-number, .service-feature p { color: color-mix(in srgb, var(--color-surface) 74%, transparent); }
.service-feature h3 { font-size: 36px; margin: 0 0 18px; }
.feature-bottom { display: flex; align-items: center; justify-content: space-between; width: 100%; font-size: 12px; position: relative; z-index: 1; }
.service-feature .card-arrow { background: color-mix(in srgb, var(--color-surface) 10%, transparent); color: var(--color-surface); }
.feature-watermark { position: absolute; width: 220px; height: auto; right: -65px; bottom: 100px; opacity: .045; pointer-events: none; transform: rotate(-15deg); }
.draft-note { font-size: 10px; margin-top: 20px; }
.about { padding-top: 12px; }
.about-intro { display: grid; grid-template-columns: 1fr 1fr; gap: 92px; align-items: start; margin-bottom: 40px; }
.about-intro :is(h2, .page-title) { margin-top: 20px; }
.about-copy { padding-top: 29px; }
.about-copy .lead { font-size: 22px; line-height: 1.65; letter-spacing: -.025em; color: var(--color-text); margin-bottom: 20px; }
.about-copy > p:not(.lead) { font-size: 15px; }
.team-bento { display: grid; grid-template-columns: 1.3fr 1fr; gap: 18px; }
.doctor-card { padding: 38px; display: flex; align-items: flex-start; gap: 25px; }
.doctor-card .doctor-avatar { width: 75px; height: 75px; font-size: 22px; }
.team-label { font-size: 9px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; color: var(--color-muted); }
.doctor-card h3 { font-size: 27px; margin: 12px 0 9px; }
.doctor-card p { font-size: 13px; }
.insurance { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; margin-top: 25px; }
.insurance span { font-size: 9px; color: var(--color-muted); margin-right: 3px; }
.insurance strong { font-size: 10px; font-weight: 600; padding: 7px 10px; border-radius: 7px; background: var(--color-background); }
.nurse-card { padding: 38px; }
.nurse-card h3 { font-size: 21px; margin-top: 20px; }
.nurse-card h3 + h3 { margin-top: 9px; }
.nurse-card p { margin-top: 15px; font-size: 12px; }
.patient-section { display: grid; grid-template-columns: .9fr 1.1fr; gap: 92px; padding-top: 8px; }
.patient-intro :is(h2, .page-title) { margin: 20px 0 24px; }
.patient-intro > p:not(.eyebrow) { max-width: 330px; font-size: 15px; }
.patient-intro .text-link { margin-top: 25px; }
.faq-list { padding: 5px 30px; align-self: start; }
.faq-list details + details { border-top: var(--border); }
summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 20px; padding: 25px 0; font-size: 15px; font-weight: 600; letter-spacing: -.015em; line-height: 1.6; }
summary:hover { color: var(--color-accent); }
summary::-webkit-details-marker { display: none; }
.faq-plus { width: 15px; height: 15px; position: relative; flex-shrink: 0; }
.faq-plus::before, .faq-plus::after { content: ''; position: absolute; width: 14px; height: 1.5px; left: 0; top: 7px; background: currentColor; transition: var(--motion); }
.faq-plus::after { transform: rotate(90deg); }
details[open] .faq-plus::after { transform: rotate(0); }
.faq-answer { padding: 0 25px 25px 0; }
.faq-answer p { font-size: 13px; line-height: 1.8; }
.faq-answer .text-link { margin-top: 13px; font-size: 12px; }
.contact-section { padding-top: 10px; }
.contact-bento { display: grid; grid-template-columns: 1.14fr 1fr; gap: 18px; align-items: start; }
.contact-main { padding: 40px; min-height: 100%; }
.contact-main > .eyebrow { margin-bottom: 30px; }
.address { font-size: 29px; letter-spacing: -.04em; line-height: 1.4; font-weight: 600; }
.contact-place { color: var(--color-muted); margin-top: 12px; font-size: 13px; }
.contact-main .text-link { margin-top: 15px; }
.contact-row { border-top: var(--border); padding-top: 25px; margin-top: 27px; display: flex; align-items: flex-start; gap: 15px; }
.contact-row > svg { width: 19px; height: 19px; color: var(--color-accent); margin-top: 4px; }
.contact-row small { display: block; font-size: 10px; color: var(--color-muted); margin-bottom: 9px; }
.contact-value { display: inline-block; font-size: 20px; font-weight: 600; letter-spacing: -.03em; line-height: 1.6; overflow-wrap: anywhere; }
.contact-hint { font-size: 11px; max-width: 310px; margin-top: 9px; }
.contact-side { display: grid; gap: 18px; }
.hours-card { padding: 31px 32px; }
.hours-title { display: flex; align-items: center; gap: 12px; }
.hours-title svg { color: var(--color-accent); width: 20px; height: 20px; }
.hours-title h3 { font-size: 19px; }
.hours-list { margin: 19px 0 0; }
.hours-list > div { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 9px 0; font-size: 12px; }
.hours-list dt { color: var(--color-muted); }
.hours-list dd { margin: 0; font-weight: 500; font-variant-numeric: tabular-nums; }
.hours-list .weekend { margin-top: 6px; padding-top: 14px; border-top: var(--border); font-size: 11px; }
.hours-list .weekend dd { color: var(--color-muted); }
.booking-card { position: relative; overflow: hidden; background: var(--color-text); padding: 30px 32px; color: var(--color-surface); }
.status-pill { display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px; border: 1px solid color-mix(in srgb, currentColor 20%, transparent); border-radius: var(--radius-pill); font-size: 8px; font-weight: 600; letter-spacing: .15em; }
.status-pill::before { content: ''; width: 4px; height: 4px; border-radius: 50%; background: var(--color-accent); }
.booking-card h3 { font-size: 29px; margin-top: 18px; }
.booking-card p { color: color-mix(in srgb, var(--color-surface) 72%, transparent); font-size: 12px; margin-top: 12px; max-width: 330px; }
.booking-card .text-link { position: relative; z-index: 1; margin-top: 16px; color: var(--color-surface); background: none; border: 0; padding-left: 0; }
.booking-card .text-link:hover { color: color-mix(in srgb, var(--color-accent) 60%, var(--color-surface)); }
.booking-card > img { position: absolute; width: 190px; right: -62px; bottom: -34px; opacity: .05; pointer-events: none; }
footer { background: var(--color-text); color: var(--color-surface); padding-top: 52px; }
.footer-top { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding-bottom: 43px; }
.footer-brand .brand-symbol { width: 76px; height: 57px; }
.footer-brand .brand-name { font-size: 42px; }
.footer-brand .brand-caption { color: color-mix(in srgb, var(--color-surface) 68%, transparent); }
.footer-brand:hover { color: var(--color-surface); }
.footer-top p { font-size: 13px; color: color-mix(in srgb, var(--color-surface) 72%, transparent); }
.back-top { display: inline-flex; align-items: center; gap: 17px; font-size: 11px; }
.back-top span { border: 1px solid color-mix(in srgb, var(--color-surface) 18%, transparent); width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; transition: var(--motion); }
.back-top:hover { color: var(--color-surface); }
.back-top:hover span { transform: translateY(-3px); background: var(--color-accent); border-color: var(--color-accent); }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 25px; border-top: 1px solid color-mix(in srgb, var(--color-surface) 15%, transparent); padding-block: 23px; color: color-mix(in srgb, var(--color-surface) 72%, transparent); font-size: 9px; line-height: 1.8; }
.footer-bottom a:hover { color: var(--color-surface); }
dialog { width: min(510px, calc(100% - 40px)); margin: auto; padding: 42px; color: var(--color-text); border: var(--border); background: var(--color-surface); border-radius: var(--radius-xl); box-shadow: var(--shadow-hover); }
dialog::backdrop { background: color-mix(in srgb, var(--color-text) 68%, transparent); backdrop-filter: blur(7px); }
.dialog-close { position: absolute; top: 12px; right: 12px; width: 38px; height: 38px; border: 0; background: var(--color-background); border-radius: 50%; font-size: 23px; color: var(--color-text); }
.dialog-close:hover { color: var(--color-accent); transform: rotate(6deg); }
dialog :is(h2, .page-title) { font-size: 39px; margin-top: 25px; }
dialog p { margin-top: 23px; font-size: 14px; }
.dialog-contacts { display: flex; flex-direction: column; gap: 14px; margin-top: 26px; font-size: 14px; }
.dialog-contacts a { display: flex; justify-content: space-between; gap: 15px; padding-bottom: 12px; border-bottom: var(--border); overflow-wrap: anywhere; }
.dialog-note { font-size: 10px; }
.dialog-contact { width: 100%; margin-top: 24px; }
.no-scroll { overflow: hidden; }
@media (min-width: 1600px) { .hero { padding-top: 98px; padding-bottom: 100px; } .hero-photo { height: 440px; } }
@media (max-width: 1120px) {
  .container { width: calc(100% - 72px); }.hero { gap: 38px; padding-top: 60px; }.hero-photo { height: 375px; }.hero-mini { padding: 20px; }.desktop-nav { gap: 22px; font-size: 12px; }.brand-symbol { width: 59px; height: 45px; }.brand-caption { font-size: 6px; }.hero-actions .button { padding: 15px 18px; gap: 15px; font-size: 12px; }.hero-description { font-size: 15px; }.about-intro,.patient-section { gap: 55px; }.doctor-card { gap: 18px; padding: 30px; }.doctor-card .doctor-avatar { width: 60px; height: 60px; font-size: 17px; }.doctor-card h3 { font-size: 23px; }.nurse-card { padding: 30px; }.nurse-card h3 { font-size: 19px; }.service-feature { padding: 35px; }.service-card { padding: 28px; gap: 20px; }.service-card h3 { font-size: 24px; }.service-feature h3 { font-size: 32px; }.contact-main { padding: 34px; }.contact-value { font-size: 18px; }
}
@media (max-width: 940px) {
  .desktop-nav { display: none; }.header-booking { margin-left: auto; }.menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: 6px; width: 36px; height: 40px; border: 0; padding: 8px; background: none; }.menu-toggle span { height: 1.5px; width: 20px; background: var(--color-text); transition: var(--motion); }.menu-toggle[aria-expanded=true] span:first-child { transform: translateY(3.75px) rotate(45deg); }.menu-toggle[aria-expanded=true] span:last-child { transform: translateY(-3.75px) rotate(-45deg); }.mobile-nav:not([hidden]) { position: absolute; top: 95px; left: 0; right: 0; background: var(--color-surface); border-bottom: var(--border); box-shadow: var(--shadow); display: flex; flex-direction: column; padding: 15px 36px 24px; }.mobile-nav a,.mobile-nav button { text-align: left; font: inherit; font-size: 14px; padding: 15px 0; color: var(--color-text); border: 0; border-bottom: var(--border); background: none; }.mobile-nav button { color: var(--color-accent); border: 0; }.hero { grid-template-columns: 1fr; gap: 43px; }.hero h1 { font-size: clamp(68px, 9vw, 86px); }.hero-description { max-width: 480px; }.hero-copy { max-width: 650px; }.hero .eyebrow { margin-bottom: 25px; }.doctor-line { margin-top: 26px; }.hero-bento { grid-template-columns: 1.5fr 1fr; grid-template-rows: 1fr 1fr; gap: 16px; }.hero-photo { grid-column: 1; grid-row: 1 / 3; height: 360px; }.hero-mini { min-height: 0; padding: 25px; }.hero-mini strong { font-size: 19px; }.hero-mini small { font-size: 12px; }.section-top { gap: 32px; }.section-top > p { max-width: 250px; }.service-bento { grid-template-columns: 1fr 1fr; }.service-card { padding: 26px; }.service-card h3 { font-size: 22px; }.service-feature h3 { font-size: 30px; }.service-card p { font-size: 13px; }.about-intro { gap: 40px; }.about-copy .lead { font-size: 19px; }.team-bento { grid-template-columns: 1fr; }.doctor-card { padding: 35px; }.doctor-card h3 { font-size: 27px; }.nurse-card { padding: 35px; }.nurse-card h3 { font-size: 23px; }.patient-section { gap: 35px; }.faq-list { padding-inline: 23px; }summary { font-size: 14px; }.contact-bento { grid-template-columns: 1fr 1fr; }.contact-main { padding: 30px; }.address { font-size: 25px; }.contact-value { font-size: 16px; }.hours-card,.booking-card { padding: 27px; }.footer-top p { display: none; }
}
@media (max-width: 640px) {
  :root { --space-section: 72px; --radius-xl: 23px; --radius-lg: 18px; }html { scroll-padding-top: 103px; }.container { width: calc(100% - 40px); }.site-header { height: 82px; }.header-inner { gap: 12px; }.brand { gap: 8px; }.brand-symbol { width: 50px; height: 38px; }.brand-name { font-size: 29px; }.brand-caption { font-size: 5.5px; letter-spacing: .08em; margin-top: 8px; }.header-booking { min-height: 40px; font-size: 10px; gap: 12px; padding: 11px 13px; }.header-booking svg { width: 15px; height: 15px; }.menu-toggle { width: 29px; padding-inline: 4px; }.mobile-nav:not([hidden]) { top: 81px; padding-inline: 24px; }.hero { padding-top: 46px; padding-bottom: 68px; gap: 35px; }.hero h1 { font-size: clamp(44px, 14.3vw, 58px); line-height: 1.075; letter-spacing: -.06em; margin-bottom: 23px; }.hero .eyebrow { font-size: 8px; letter-spacing: .14em; margin-bottom: 23px; }.hero-description { font-size: 14px; line-height: 1.8; }.hero-actions { margin-top: 25px; gap: 10px; }.hero-actions .button { font-size: 11px; min-height: 48px; padding: 14px 15px; gap: 15px; }.hero-actions .button-secondary { padding-inline: 14px; }.doctor-line { margin-top: 24px; }.doctor-avatar { width: 37px; height: 37px; font-size: 10px; }.doctor-line strong { font-size: 11px; }.doctor-line small { font-size: 9px; }.hero-bento { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 12px; }.hero-photo { grid-column: 1 / -1; grid-row: 1; height: 300px; }.hero-photo > img { object-position: center; }.hero-mini { padding: 19px 17px; min-height: 132px; gap: 17px; }.hero-mini strong { font-size: 15px; }.hero-mini small { font-size: 9px; }.mini-label { font-size: 8px; gap: 6px; }.mini-label svg { width: 15px; height: 15px; }.photo-caption { bottom: 13px; left: 13px; right: 13px; padding: 12px; }.photo-caption strong { font-size: 10px; }.photo-caption span { font-size: 7px; }.hero-seal { width: 58px; height: 58px; top: 17px; right: 17px; padding: 9px; box-shadow: 0 0 0 5px color-mix(in srgb, var(--color-surface) 75%, transparent); }.hero-seal img { width: 38px; }:is(h2, .page-title) { font-size: 38px; letter-spacing: -.055em; }.eyebrow { font-size: 9px; }.section-top { display: block; margin-bottom: 29px; }.section-top :is(h2, .page-title) { margin-top: 17px; }.section-top > p { font-size: 13px; max-width: 300px; margin-top: 21px; }.service-bento { grid-template-columns: 1fr; grid-template-rows: auto; gap: 13px; }.service-card { min-height: 0; padding: 27px; gap: 18px; }.service-feature { grid-row: auto; min-height: 355px; gap: 28px; }.service-feature h3 { font-size: 31px; }.service-card h3 { font-size: 24px; }.service-card p { font-size: 13px; }.service-feature p { max-width: 270px; }.card-arrow { width: 34px; height: 34px; }.service-number { font-size: 9px; }.service-icon { width: 27px; height: 27px; }.feature-bottom { font-size: 11px; }.draft-note { font-size: 9px; margin-top: 17px; line-height: 1.8; }.about { padding-top: 0; }.about-intro { grid-template-columns: 1fr; gap: 23px; margin-bottom: 28px; }.about-copy { padding-top: 0; }.about-copy .lead { font-size: 20px; }.about-copy > p:not(.lead) { font-size: 14px; }.team-bento { gap: 13px; }.doctor-card { padding: 26px; gap: 17px; }.doctor-card .doctor-avatar { width: 47px; height: 47px; font-size: 14px; }.doctor-card h3 { font-size: 22px; margin-top: 10px; }.team-label { font-size: 8px; }.doctor-card p { font-size: 12px; }.insurance { gap: 7px; margin-top: 20px; }.insurance span { width: 100%; margin-bottom: 3px; }.insurance strong { font-size: 9px; padding: 6px 8px; }.nurse-card { padding: 26px; }.nurse-card h3 { font-size: 21px; margin-top: 17px; }.nurse-card p { font-size: 11px; }.patient-section { grid-template-columns: 1fr; gap: 28px; padding-top: 0; }.patient-intro :is(h2, .page-title) { margin: 17px 0 20px; }.patient-intro > p:not(.eyebrow) { font-size: 14px; }.patient-intro .text-link { margin-top: 17px; }.faq-list { padding: 3px 22px; }summary { font-size: 13px; padding-block: 22px; }.faq-answer { padding-right: 4px; padding-bottom: 21px; }.faq-answer p { font-size: 12px; }.contact-section { padding-top: 0; }.contact-bento { grid-template-columns: 1fr; gap: 13px; }.contact-main { padding: 29px 26px; }.contact-main > .eyebrow { margin-bottom: 23px; }.address { font-size: 28px; }.contact-value { font-size: 19px; }.contact-hint { font-size: 10px; }.contact-place { font-size: 12px; }.contact-row { gap: 13px; padding-top: 23px; margin-top: 25px; }.contact-side { gap: 13px; }.hours-card,.booking-card { padding: 28px 26px; }.hours-title h3 { font-size: 19px; }.hours-list > div { font-size: 12px; padding-block: 10px; }.booking-card h3 { font-size: 29px; }.booking-card p { font-size: 12px; }footer { padding-top: 35px; }.footer-top { gap: 22px; padding-bottom: 30px; }.footer-brand .brand-symbol { width: 51px; height: 39px; }.footer-brand .brand-name { font-size: 32px; }.footer-brand .brand-caption { font-size: 5px; }.back-top { font-size: 9px; gap: 9px; }.back-top span { width: 30px; height: 30px; }.footer-bottom { flex-direction: column; align-items: flex-start; gap: 9px; font-size: 8px; padding-block: 22px; }dialog { padding: 36px 25px 27px; }dialog :is(h2, .page-title) { font-size: 34px; }dialog p { font-size: 13px; }.dialog-contacts { font-size: 12px; }.dialog-note { font-size: 9px; }
}
@media (max-width: 360px) {
  .container { width: calc(100% - 32px); }.site-header .brand-caption { display: none; }.brand-symbol { width: 45px; height: 34px; }.header-booking { gap: 9px; }.header-inner { gap: 10px; }.hero-actions .button { padding: 13px; font-size: 10px; gap: 9px; }.hero-bento { gap: 10px; }.hero-mini { padding-inline: 14px; }.hero-mini strong { font-size: 13px; }.hero-photo { height: 275px; }.photo-caption strong { max-width: 150px; line-height: 1.5; }.photo-caption span { max-width: 60px; }:is(h2, .page-title) { font-size: 34px; }.doctor-card { gap: 13px; padding: 23px; }.doctor-card h3 { font-size: 19px; }.contact-value { font-size: 17px; }.service-card { padding: 25px; }.footer-brand .brand-caption { display: none; }.footer-brand .brand-symbol { width: 45px; }
}
@media (min-width: 801px) and (max-width: 940px) {
  .hero { grid-template-columns: 1.08fr 1fr; gap: 30px; }.hero h1 { font-size: clamp(52px, 6.3vw, 64px); }.hero-description { font-size: 14px; }.hero-bento { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; gap: 12px; }.hero-photo { grid-column: 1 / -1; grid-row: auto; height: 330px; }.hero-mini { padding: 19px 17px; min-height: 132px; }.hero-mini strong { font-size: 15px; }.hero-mini small { font-size: 10px; }.mini-label { font-size: 9px; }.photo-caption { gap: 10px; padding: 12px; }.photo-caption strong { font-size: 10px; }.photo-caption span { font-size: 7px; }.hero-actions .button { font-size: 11px; gap: 12px; padding-inline: 14px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { transition: none !important; animation: none !important; } }


/* Patient referral information and the clinic's Facebook link. */
.visit-note{display:flex;align-items:flex-start;gap:18px;padding:23px 26px;margin-bottom:18px;background:color-mix(in srgb,var(--color-accent) 5%,var(--color-surface));border:1px solid color-mix(in srgb,var(--color-accent) 13%,transparent);border-radius:var(--radius-lg)}
.visit-note-icon{display:grid;place-items:center;width:39px;height:39px;background:color-mix(in srgb,var(--color-accent) 9%,var(--color-surface));border-radius:var(--radius-sm);color:var(--color-accent);flex-shrink:0}
.visit-note-icon svg{width:20px;height:20px}.visit-note strong{display:block;font-size:13px;font-weight:700;line-height:1.6;margin-bottom:4px}.visit-note p{font-size:13px;line-height:1.8}.visit-note b{font-weight:600;color:var(--color-text)}.visit-note a{color:var(--color-text);text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--color-text) 30%,transparent);text-underline-offset:3px}.visit-note a:hover{color:var(--color-accent);text-decoration-color:var(--color-accent)}
.contact-social{margin-top:29px;padding-top:26px;border-top:var(--border)}.facebook-link{min-height:48px;font-size:12px;gap:15px;padding:13px 17px}.facebook-link>.facebook-icon{color:var(--color-accent);width:19px;height:19px}.facebook-link>svg:last-child{width:15px;height:15px}
@media(max-width:640px){.visit-note{gap:13px;padding:20px 18px;margin-bottom:13px}.visit-note-icon{width:33px;height:33px}.visit-note strong{font-size:12px}.visit-note p{font-size:12px}.contact-social{margin-top:24px;padding-top:23px}.facebook-link{font-size:11px;gap:12px;padding-inline:14px}}


/* Photo-ready layouts: semantic slots, no substitute photos or broken images. */
.photo-slot{margin:0;overflow:hidden}.team-photo{margin-bottom:18px}.photo-viewport{position:relative;overflow:hidden;display:grid;place-items:center;background:color-mix(in srgb,var(--color-accent) 4%,var(--color-surface));isolation:isolate}
.photo-viewport::after{content:'';position:absolute;right:-25px;bottom:-55px;width:290px;height:220px;z-index:-1;background:url('/assets/raf-symbol-accent.svg') center/contain no-repeat;opacity:.05;pointer-events:none}
.team-photo .photo-viewport{aspect-ratio:2.6;min-height:310px}.photo-placeholder{padding:30px;text-align:center;max-width:530px;display:flex;flex-direction:column;align-items:center;gap:13px;color:var(--color-muted)}.photo-symbol{width:54px;height:44px;stroke-width:1.2;color:color-mix(in srgb,var(--color-accent) 76%,var(--color-muted));margin-bottom:5px}.photo-placeholder>strong{font-size:22px;font-weight:500;letter-spacing:-.035em;color:var(--color-text);line-height:1.4}.photo-placeholder>span{font-size:12px;line-height:1.8}
.photo-slot figcaption{padding:22px 26px;display:flex;justify-content:space-between;align-items:center;gap:22px}.photo-slot figcaption strong{display:block;font-size:13px;font-weight:600;line-height:1.6;letter-spacing:-.01em}.photo-slot figcaption>div>span{display:block;font-size:11px;color:var(--color-muted);line-height:1.7;margin-top:3px}.photo-pending{font-size:9px;color:var(--color-muted);background:var(--color-background);border-radius:var(--radius-pill);padding:7px 10px;white-space:nowrap}
.clinic-photo-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:35px;margin-top:52px;margin-bottom:25px}.clinic-photo-heading h3{font-size:32px;font-weight:500;line-height:1.2;letter-spacing:-.04em;margin-top:16px}.clinic-photo-heading>p{font-size:13px;padding-bottom:3px}.clinic-gallery{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:18px}.clinic-photo .photo-viewport{height:235px}.clinic-photo .photo-placeholder{gap:6px;padding:20px}.clinic-photo .photo-symbol{width:39px;height:33px;opacity:.8}.clinic-photo .photo-placeholder>span{font-size:10px}.clinic-photo .photo-viewport::after{width:210px;height:155px;bottom:-45px;right:-30px;opacity:.035}.clinic-photo figcaption{padding:18px 22px}.clinic-photo figcaption strong{font-size:12px}.photo-index{position:absolute;top:18px;left:21px;font-size:9px;letter-spacing:.1em;color:var(--color-muted)}
/* Ready for actual photos: remove the placeholder and add an image in the same viewport. */
.photo-viewport>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.photo-viewport:has(>img)::after{display:none}
@media(max-width:940px){.team-photo .photo-viewport{min-height:280px;aspect-ratio:2}.clinic-gallery{grid-template-columns:repeat(3,1fr);gap:13px}.clinic-photo .photo-viewport{height:195px}.clinic-photo figcaption{padding:16px}.clinic-photo-heading h3{font-size:29px}.photo-slot figcaption{gap:15px}}
@media(max-width:640px){.team-photo{margin-bottom:13px}.team-photo .photo-viewport{aspect-ratio:1.45;min-height:230px}.photo-placeholder{padding:26px 22px;gap:11px}.photo-placeholder>strong{font-size:20px;max-width:250px}.photo-placeholder>span{font-size:11px;max-width:245px}.photo-symbol{width:49px;height:40px}.photo-slot figcaption{padding:19px 22px;align-items:flex-start;flex-direction:column;gap:12px}.photo-slot figcaption strong{font-size:12px}.photo-slot figcaption>div>span{font-size:10px}.photo-pending{font-size:8px}.clinic-photo-heading{display:block;margin-top:39px;margin-bottom:22px}.clinic-photo-heading h3{font-size:27px;margin-top:14px}.clinic-photo-heading>p{font-size:12px;margin-top:17px}.clinic-photo-heading>p br{display:none}.clinic-gallery{grid-template-columns:1fr;gap:13px}.clinic-photo .photo-viewport{height:auto;aspect-ratio:1.8;min-height:165px}.clinic-photo figcaption{padding:17px 22px}.clinic-photo figcaption strong{font-size:12px}.clinic-photo .photo-symbol{width:38px;height:32px}.clinic-photo .photo-placeholder>span{font-size:10px}}


/* Real clinic photographs: original proportions, two portraits and one landscape. */
.clinic-gallery{grid-template-columns:3fr 3fr 5.333333fr;align-items:stretch}.clinic-photo.has-photo{display:flex;flex-direction:column}.gallery-photo-link{display:flex;flex-direction:column;height:100%;color:var(--color-text)}.gallery-photo-link:hover{color:var(--color-accent)}
.clinic-photo.has-photo .photo-viewport{height:auto;min-height:0;aspect-ratio:3/4;display:block;background:var(--color-background)}.clinic-photo--landscape.has-photo .photo-viewport{aspect-ratio:4/3}.clinic-photo.has-photo .photo-viewport>img{object-fit:contain}.clinic-photo.has-photo .photo-viewport::after{display:none}
.clinic-photo.has-photo figcaption{flex:1;display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:12px;padding:18px 21px}.clinic-photo.has-photo figcaption strong{font-size:12px;line-height:1.6}.gallery-zoom{color:var(--color-muted);display:grid;place-items:center;flex-shrink:0;transition:var(--motion)}.gallery-zoom svg{width:17px;height:17px}.gallery-photo-link:hover .gallery-zoom{color:var(--color-accent);transform:scale(1.08)}.gallery-photo-link:focus-visible{outline:none}.clinic-photo.has-photo:focus-within{outline:3px solid var(--color-accent);outline-offset:5px}#galeria{scroll-margin-top:20px}
@media(max-width:940px){.clinic-gallery{grid-template-columns:3fr 3fr 5.333333fr;gap:13px}.clinic-photo.has-photo figcaption{padding:16px;gap:8px}.clinic-photo.has-photo figcaption strong{font-size:11px}}
@media(max-width:640px){.clinic-gallery{grid-template-columns:1fr 1fr;gap:13px}.clinic-photo--landscape{grid-column:1/-1}.clinic-photo.has-photo figcaption{padding:15px 14px;gap:8px}.clinic-photo.has-photo figcaption strong{font-size:11px}.gallery-zoom svg{width:15px;height:15px}#galeria{scroll-margin-top:15px}}
@media(max-width:360px){.clinic-gallery{gap:10px}.clinic-photo.has-photo figcaption{padding:13px 12px}.clinic-photo.has-photo figcaption strong{font-size:10px}}


/* Patient review: focused rheumatology headline and clear visit preparation. */
.hero h1{font-size:clamp(50px,5.35vw,80px);line-height:1.1;letter-spacing:-.055em}.gallery-photo-link{cursor:zoom-in}
.faq-answer .prep-intro{color:var(--color-muted);font-size:13px;margin-bottom:9px}.prep-list{list-style:none;margin:0;padding:0}.prep-list li{display:flex;align-items:center;gap:12px;padding:12px 0}.prep-list li+li{border-top:var(--border)}.prep-list strong{font-size:14px;line-height:1.6;font-weight:600;color:var(--color-text)}.prep-check{width:23px;height:23px;border-radius:50%;background:color-mix(in srgb,var(--color-accent) 9%,var(--color-surface));color:var(--color-accent);display:grid;place-items:center;flex-shrink:0}.prep-check svg{width:16px;height:16px;stroke-width:1.8}.faq-answer .prep-note{margin-top:15px;padding-top:16px;border-top:var(--border);font-size:12px;line-height:1.8;color:var(--color-text)}.prep-note strong{font-weight:700}
@media(max-width:640px){.hero h1{font-size:clamp(36px,11.6vw,52px);line-height:1.13;letter-spacing:-.055em}.prep-list strong{font-size:13px}.prep-list li{padding:11px 0;gap:10px}.prep-check{width:21px;height:21px}.faq-answer .prep-intro{font-size:12px}.faq-answer .prep-note{font-size:11px}}

  
/* Shared styles for the five independent pages. */
body { min-height: 100vh; display: flex; flex-direction: column; }
main { flex: 1; }
.inner-page main > .section { padding-top: 76px; padding-bottom: var(--space-section); }
.inner-page .services { border-top: 0; }
.desktop-nav a { position: relative; white-space: nowrap; }
.desktop-nav a[aria-current="page"], .mobile-nav a[aria-current="page"] { color: var(--color-accent); font-weight: 700; }
.desktop-nav a[aria-current="page"]::after { content: ''; position: absolute; left: 0; right: 0; bottom: 3px; height: 2px; border-radius: var(--radius-pill); background: var(--color-accent); }
@media (max-width: 640px) { .inner-page main > .section { padding-top: 46px; } }
/* Supplementary services: shared RaF palette, editorial cards and native details. */
.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; }
.catalogue-heading { margin-bottom: 48px; align-items: flex-end; }
.catalogue-heading .page-title { font-size: clamp(40px, 4.2vw, 60px); margin-top: 0; }
.catalogue-intro { max-width: 310px; padding-bottom: 4px; }
.catalogue-intro > p { font-size: 14px; }
.catalogue-assurance { display: flex; align-items: center; gap: 10px; color: var(--color-text); font-size: 11px; font-weight: 600; margin-top: 20px; }
.catalogue-assurance svg { width: 21px; height: 21px; color: var(--color-accent); }
.catalogue-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 20px; align-items: start; }
.catalogue-card { grid-column: span 2; padding: 30px 30px 0; overflow: hidden; min-width: 0; transition: var(--motion); }
.catalogue-card:hover { border-color: color-mix(in srgb, var(--color-accent) 20%, transparent); box-shadow: var(--shadow-hover); }
.catalogue-card.featured { grid-column: span 3; padding: 36px 36px 0; }
.catalogue-card.dark { background: var(--color-text); color: var(--color-surface); }
.catalogue-card-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 26px; }
.catalogue-icon { display: grid; place-items: center; width: 49px; height: 49px; border-radius: 15px; background: color-mix(in srgb, var(--color-accent) 7%, var(--color-surface)); color: var(--color-accent); flex-shrink: 0; }
.catalogue-icon svg { width: 30px; height: 30px; stroke-width: 1.5; }
.catalogue-index { color: var(--color-muted); font-size: 10px; letter-spacing: .08em; }
.catalogue-card .catalogue-label { font-size: 9px; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; margin-bottom: 12px; }
.catalogue-card h2 { font-size: clamp(23px, 2.1vw, 30px); letter-spacing: -.04em; line-height: 1.22; max-width: 350px; }
.catalogue-card.featured h2 { font-size: clamp(30px, 2.8vw, 39px); max-width: 370px; }
.catalogue-card .catalogue-description { font-size: 13px; line-height: 1.8; margin-top: 17px; min-height: 94px; max-width: 360px; }
.catalogue-card.featured .catalogue-description { min-height: 56px; font-size: 14px; }
.catalogue-card .catalogue-from { display: flex; align-items: baseline; gap: 10px; margin: 28px 0 24px; color: var(--color-text); }
.catalogue-from strong { font-size: 31px; font-weight: 500; letter-spacing: -.045em; line-height: 1.1; }
.catalogue-from span { color: var(--color-muted); font-size: 11px; }
.catalogue-details { border-top: var(--border); }
.catalogue-details summary { padding: 19px 0 22px; font-size: 12px; min-height: 64px; gap: 12px; }
.catalogue-details summary:hover { color: var(--color-accent); }
.catalogue-plus { width: 25px; height: 25px; position: relative; border-radius: 50%; background: var(--color-background); color: var(--color-accent); flex-shrink: 0; }
.catalogue-plus::before, .catalogue-plus::after { content: ''; width: 9px; height: 1px; position: absolute; left: 8px; top: 12px; background: currentColor; transition: var(--motion); }
.catalogue-plus::after { transform: rotate(90deg); }
.catalogue-details[open] .catalogue-plus::after { transform: rotate(0); }
.catalogue-detail-body { padding: 0 0 28px; }
.catalogue-detail-body > p { font-size: 12px; line-height: 1.8; }
.catalogue-detail-body > p + p { margin-top: 14px; }
.catalogue-detail-body h3 { font-size: 13px; margin-top: 25px; }
.catalogue-prices { margin: 10px 0 24px; }
.catalogue-prices > div { display: flex; align-items: flex-start; justify-content: space-between; gap: 15px; padding: 13px 0; border-bottom: var(--border); font-size: 12px; line-height: 1.7; }
.catalogue-prices dt { min-width: 0; }
.catalogue-prices dt small { display: block; font-size: 10px; color: var(--color-muted); margin-top: 3px; }
.catalogue-prices dd { margin: 0; white-space: nowrap; font-size: 15px; font-weight: 600; letter-spacing: -.025em; }
.catalogue-booking { width: 100%; min-height: 48px; font-size: 12px; padding: 14px 17px; justify-content: space-between; }
.catalogue-detail-body .catalogue-booking-note { font-size: 10px; line-height: 1.7; margin-top: 13px; }
.catalogue-card.dark .catalogue-icon { background: color-mix(in srgb, var(--color-surface) 9%, transparent); color: var(--color-surface); }
.catalogue-card.dark .catalogue-index, .catalogue-card.dark .catalogue-label, .catalogue-card.dark .catalogue-from span { color: color-mix(in srgb, var(--color-surface) 62%, transparent); }
.catalogue-card.dark p { color: color-mix(in srgb, var(--color-surface) 78%, transparent); }
.catalogue-card.dark .catalogue-from, .catalogue-card.dark .catalogue-from strong { color: var(--color-surface); }
.catalogue-card.dark .catalogue-details, .catalogue-card.dark .catalogue-prices > div { border-color: color-mix(in srgb, var(--color-surface) 15%, transparent); }
.catalogue-card.dark summary:hover { color: color-mix(in srgb, var(--color-accent) 40%, var(--color-surface)); }
.catalogue-card.dark .catalogue-plus, .catalogue-card.dark .catalogue-booking { background: var(--color-surface); color: var(--color-text); }
.catalogue-card.dark .catalogue-booking:hover { background: color-mix(in srgb, var(--color-accent) 12%, var(--color-surface)); }
.catalogue-card.wide { grid-column: 1 / -1; }
.catalogue-card.wide .catalogue-content { display: grid; grid-template-columns: 55px 1.1fr 1.4fr auto; align-items: center; gap: 0 27px; padding-bottom: 25px; }
.catalogue-card.wide .catalogue-card-top { grid-column: 1; grid-row: 1 / 4; margin: 0; }
.catalogue-card.wide .catalogue-index { display: none; }
.catalogue-card.wide .catalogue-label { grid-column: 2; margin-bottom: 8px; }
.catalogue-card.wide h2 { grid-column: 2; font-size: 26px; }
.catalogue-card.wide .catalogue-description { grid-column: 3; grid-row: 1 / 4; min-height: 0; margin: 0; }
.catalogue-card.wide .catalogue-from { grid-column: 4; grid-row: 1 / 4; margin: 0; white-space: nowrap; }
.catalogue-card.wide .catalogue-detail-body { max-width: 650px; }
.catalogue-consult { display: flex; gap: 22px; align-items: center; padding: 32px 12px; margin-top: 18px; }
.catalogue-consult h2 { font-size: 22px; letter-spacing: -.03em; margin-bottom: 8px; }
.catalogue-consult p { font-size: 12px; }
.catalogue-consult p strong { font-weight: 600; color: var(--color-text); }
.catalogue-consult .text-link { background: none; border: 0; margin-left: auto; color: var(--color-text); font-size: 12px; }
.catalogue-consult .text-link:hover { color: var(--color-accent); }
.rheumatology-card { display: grid; grid-template-columns: 1.1fr 1fr; gap: 70px; padding: 46px; margin-top: 65px; background: color-mix(in srgb, var(--color-accent) 4%, var(--color-surface)); }
.rheumatology-card h2 { font-size: clamp(28px, 2.8vw, 38px); letter-spacing: -.04em; margin: 20px 0; }
.rheumatology-card p { font-size: 13px; max-width: 460px; }
.rheumatology-card .text-link { margin-top: 20px; font-size: 12px; }
.rheumatology-contact { padding-left: 40px; border-left: var(--border); }
.rheumatology-contact h3 { font-size: 21px; font-weight: 500; margin: 22px 0; }
.rheumatology-contact > a { display: flex; gap: 15px; align-items: center; justify-content: space-between; font-size: 15px; font-weight: 600; padding: 12px 0; border-bottom: var(--border); overflow-wrap: anywhere; }
.rheumatology-contact > a svg { width: 16px; height: 16px; color: var(--color-accent); }
.rheumatology-contact > p { font-size: 11px; margin-top: 15px; }
dialog .booking-selected { font-size: 12px; font-weight: 600; color: var(--color-accent); padding: 10px 12px; background: var(--color-background); border-radius: var(--radius-sm); margin-top: 22px; }
dialog .booking-selected[hidden] { display: none; }
dialog .dialog-reuma-note { font-size: 11px; line-height: 1.8; padding-top: 20px; border-top: var(--border); color: var(--color-text); }
dialog .dialog-note { font-size: 10px; margin-top: 12px; }
@media (max-width: 940px) {
  .catalogue-heading { display: block; }
  .catalogue-intro { max-width: 460px; margin-top: 25px; }
  .catalogue-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
  .catalogue-card, .catalogue-card.featured { grid-column: span 1; padding: 28px 28px 0; }
  .catalogue-card h2, .catalogue-card.featured h2 { font-size: 28px; }
  .catalogue-card .catalogue-description, .catalogue-card.featured .catalogue-description { min-height: 100px; font-size: 13px; }
  .catalogue-card.wide { grid-column: span 1; }
  .catalogue-card.wide .catalogue-content { display: block; padding-bottom: 0; }
  .catalogue-card.wide .catalogue-card-top { margin-bottom: 26px; }
  .catalogue-card.wide .catalogue-index { display: block; }
  .catalogue-card.wide h2 { font-size: 28px; }
  .catalogue-card.wide .catalogue-description { margin-top: 17px; min-height: 100px; }
  .catalogue-card.wide .catalogue-from { margin: 28px 0 24px; }
  .rheumatology-card { gap: 30px; padding: 32px; }
  .rheumatology-contact { padding-left: 25px; }
  .rheumatology-contact > a { font-size: 12px; }
}
@media (max-width: 640px) {
  .catalogue-heading { margin-bottom: 30px; }
  .catalogue-heading .page-title { font-size: 37px; line-height: 1.15; }
  .catalogue-intro > p { font-size: 13px; }
  .catalogue-assurance { font-size: 10px; margin-top: 17px; }
  .catalogue-grid { grid-template-columns: 1fr; gap: 15px; }
  .catalogue-card, .catalogue-card.featured, .catalogue-card.wide { grid-column: 1; padding: 26px 26px 0; }
  .catalogue-card .catalogue-description, .catalogue-card.featured .catalogue-description, .catalogue-card.wide .catalogue-description { min-height: 0; }
  .catalogue-card.featured h2 { font-size: 30px; }
  .catalogue-card-top { margin-bottom: 23px; }
  .catalogue-card .catalogue-from { margin-top: 23px; }
  .catalogue-detail-body { padding-bottom: 25px; }
  .catalogue-consult { padding: 23px 3px; display: grid; grid-template-columns: 42px 1fr; gap: 16px; margin-top: 13px; }
  .catalogue-consult .catalogue-icon { width: 42px; height: 42px; border-radius: 12px; align-self: start; }
  .catalogue-consult h2 { font-size: 19px; }
  .catalogue-consult p { font-size: 11px; }
  .catalogue-consult .text-link { grid-column: 2; margin: 0; justify-content: flex-start; font-size: 11px; }
  .rheumatology-card { grid-template-columns: 1fr; padding: 27px; gap: 30px; margin-top: 35px; }
  .rheumatology-card h2 { font-size: 29px; }
  .rheumatology-card p { font-size: 12px; }
  .rheumatology-contact { border-left: 0; border-top: var(--border); padding: 26px 0 0; }
  .rheumatology-contact h3 { font-size: 21px; }
  .rheumatology-contact > a { font-size: 13px; }
  .rheumatology-contact > p { font-size: 10px; }
  dialog .status-pill { font-size: 8px; letter-spacing: .05em; }
}
@media (prefers-reduced-motion: reduce) { .catalogue-card, .catalogue-plus::after { transition: none; } }

/* Clinic review: visible appointment and CT information. */
.faq-answer a[href^="tel:"] { color: var(--color-text); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.catalogue-card .catalogue-service-note { margin-top: 12px; font-size: 13px; line-height: 1.65; color: var(--color-text); }
.catalogue-service-note strong { font-weight: 700; }
@media (max-width: 640px) { .catalogue-card .catalogue-service-note { font-size: 13px; } }

.faq-answer .prep-note { display: flex; align-items: center; gap: 12px; }
@media (max-width: 640px) { .faq-answer .prep-note { gap: 10px; } }

/* Every service uses the same title, expandable information and booking layout. */
.catalogue-grid--grouped { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.catalogue-grid--grouped .catalogue-card { grid-column: auto; padding: 30px 30px 0; display: flex; flex-direction: column; align-self: start; }
.catalogue-grid--grouped .catalogue-content { padding-bottom: 24px; }
.catalogue-grid--grouped .catalogue-card h2 { font-size: clamp(27px, 2.5vw, 34px); max-width: none; }
.catalogue-grid--grouped .catalogue-details summary { font-size: 13px; }
.catalogue-grid--grouped .catalogue-action { padding: 4px 0 28px; }
.catalogue-grid--grouped .catalogue-booking { width: 100%; min-width: 0; }
.catalogue-detail-body a[href^="tel:"] { color: var(--color-text); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.ozone-methods { display: grid; grid-template-columns: 1fr; gap: 24px; margin-top: 24px; }
.ozone-method h3 { margin-top: 0; font-size: 19px; font-weight: 600; }
.ozone-method > p { font-size: 12px; line-height: 1.8; margin-top: 12px; }
.ozone-method .catalogue-prices { margin-bottom: 15px; }
.ozone-method .catalogue-prices dt small { color: color-mix(in srgb, var(--color-surface) 68%, transparent); }
.ozone-method .catalogue-service-note { color: var(--color-surface); }
.ozone-method { scroll-margin-top: 125px; }
@media (max-width: 940px) { .catalogue-grid--grouped .catalogue-card { padding: 28px 28px 0; } }
@media (max-width: 640px) { .catalogue-grid--grouped { grid-template-columns: 1fr; } .catalogue-grid--grouped .catalogue-card { padding: 26px 26px 0; } .catalogue-grid--grouped .catalogue-card h2 { font-size: 28px; } .catalogue-grid--grouped .catalogue-action { padding-bottom: 26px; } .ozone-method h3 { font-size: 18px; } }

/* Direct booking links retain the mobile menu accent. */
.mobile-nav a[data-booking] { color: var(--color-accent); border-bottom: 0; }

/* Doctor profile: concise introduction with the approved biography on demand. */
.team-bento--profile { align-items: start; }
.doctor-card--profile { display: grid; grid-template-columns: auto minmax(0, 1fr); row-gap: 0; }
.doctor-card--profile .doctor-intro { font-size: 14px; line-height: 1.85; }
.doctor-intro strong, .doctor-bio-content strong { color: var(--color-text); font-weight: 600; }
.doctor-bio { grid-column: 1 / -1; margin-top: 24px; border-top: var(--border); min-width: 0; }
.doctor-bio summary { min-height: 44px; padding: 16px 0 0; font-size: 13px; color: var(--color-accent); }
.doctor-bio summary svg { width: 17px; height: 17px; transition: transform .2s ease; }
.doctor-bio[open] summary svg { transform: rotate(180deg); }
.doctor-bio-content { padding-top: 18px; }
.doctor-bio-content p { font-size: 14px; line-height: 1.85; }
.doctor-bio-content p + p { margin-top: 16px; }

/* Shared footer navigation and clearly labelled company information. */
.site-footer { padding-top: 0; }
.footer-menu-bar { background: color-mix(in srgb, var(--color-accent) 7%, var(--color-background)); color: var(--color-text); border-top: var(--border); }
.footer-nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0 28px; padding-block: 14px; font-size: 12px; line-height: 1.7; }
.footer-nav a { display: inline-flex; align-items: center; gap: 7px; padding-block: 8px; white-space: nowrap; }
.footer-nav a[aria-current="page"] { color: var(--color-accent); font-weight: 700; }
.footer-nav a:hover { color: var(--color-accent); }
.site-footer .footer-top { padding-top: 40px; padding-bottom: 32px; }
.footer-company { display: grid; grid-template-columns: 1.15fr 1fr 1.2fr; gap: 18px 32px; padding-block: 23px; border-top: 1px solid color-mix(in srgb, var(--color-surface) 15%, transparent); }
.footer-company p { color: color-mix(in srgb, var(--color-surface) 76%, transparent); font-size: 11px; line-height: 1.9; overflow-wrap: anywhere; }
.footer-company strong { font-weight: 500; }
.site-footer .footer-bottom { font-size: 10px; padding-block: 17px; }
#ordinacne-hodiny { scroll-margin-top: 120px; }

/* The price list uses the approved prices already shown in service details. */
.price-list-section { max-width: 1040px; }
.price-list-section > .page-title { font-size: clamp(40px, 4.2vw, 60px); margin-bottom: 42px; }
.price-list-card { padding: 40px 44px; }
.price-list-group + .price-list-group { margin-top: 38px; }
.price-list-group h2 { font-size: 24px; line-height: 1.3; letter-spacing: -.035em; margin-bottom: 15px; }
.price-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 14px; line-height: 1.7; }
.price-table thead th { color: var(--color-muted); font-size: 11px; font-weight: 500; padding: 0 0 10px; border-bottom: var(--border); }
.price-table tbody th, .price-table td { padding: 15px 0; border-bottom: var(--border); vertical-align: top; }
.price-table tbody th { font-weight: 500; padding-right: 22px; }
.price-table th:last-child, .price-table td { text-align: right; white-space: nowrap; }
.price-table td { font-size: 16px; font-weight: 600; }
.price-table small { display: block; color: var(--color-muted); font-size: 11px; font-weight: 400; margin-top: 3px; }
@media (max-width: 940px) {
  .footer-company { grid-template-columns: 1fr 1fr; }
  .footer-company p:last-child { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .footer-nav { column-gap: 22px; padding-block: 12px; }
  .site-footer .footer-top { padding-top: 30px; padding-bottom: 26px; }
  .footer-company { grid-template-columns: 1fr; gap: 12px; padding-block: 21px; }
  .footer-company p:last-child { grid-column: auto; }
  .site-footer .footer-bottom { flex-direction: row; flex-wrap: wrap; justify-content: space-between; gap: 10px 18px; }
  #ordinacne-hodiny { scroll-margin-top: 103px; }
  .price-list-section > .page-title { font-size: 37px; margin-bottom: 29px; }
  .price-list-card { padding: 25px 22px; }
  .price-list-group + .price-list-group { margin-top: 30px; }
  .price-list-group h2 { font-size: 22px; }
  .price-table { font-size: 13px; }
  .price-table tbody th { padding-right: 15px; }
  .price-table td { font-size: 15px; }
}

/* Home: introduction, photograph, actions and practical information in reading order. */
.hero--stacked { grid-template-columns: minmax(0, 1fr); max-width: 880px; gap: 24px; }
.hero--stacked .hero-copy { max-width: none; min-width: 0; }
.hero--stacked h1 { margin-bottom: 18px; }
.hero--stacked .hero-services { max-width: none; margin-top: 0; font-size: 13px; }
.hero--stacked .doctor-line { margin-top: 18px; }
.hero--stacked .doctor-line strong { font-size: 14px; line-height: 1.6; }
.hero--stacked .hero-photo { grid-column: auto; grid-row: auto; width: 100%; height: auto; aspect-ratio: 16 / 9; }
.hero--stacked .photo-caption { flex-wrap: wrap; gap: 6px 16px; }
.hero--stacked .photo-caption strong { flex: 1 1 280px; max-width: none; font-size: 14px; line-height: 1.6; }
.hero--stacked .photo-caption span { max-width: none; flex: 0 0 auto; }
.hero--stacked .hero-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 0; }
.hero--stacked .hero-actions .button { min-width: 0; justify-content: space-between; }
.hero-info { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; min-width: 0; }
@media (max-width: 640px) {
  .hero--stacked { gap: 18px; }
  .hero--stacked h1 { margin-bottom: 16px; }
  .hero--stacked .hero-services { font-size: 12px; }
  .hero--stacked .doctor-line { margin-top: 15px; }
  .hero--stacked .doctor-line strong { font-size: 12px; }
  .hero--stacked .hero-photo { aspect-ratio: 4 / 3; }
  .hero--stacked .photo-caption strong { font-size: 12px; }
  .hero--stacked .hero-actions, .hero-info { gap: 12px; }
  .hero--stacked .hero-actions .button { padding-inline: 15px; font-size: 12px; gap: 10px; }
}
@media (max-width: 360px) {
  .hero--stacked .hero-actions .button { padding-inline: 12px; font-size: 11px; }
  .hero-info { gap: 10px; }
}

/* Manually maintained patient reviews; no third-party script or API is loaded. */
.reviews-section { max-width: 1040px; padding-top: 0; padding-bottom: 64px; }
.reviews-section > h2 { text-align: center; font-size: clamp(30px, 3.7vw, 44px); }
.review-stage { display: grid; gap: 16px; margin-top: 26px; }
.review-card { background: var(--color-surface); border: var(--border); border-radius: 24px; padding: 30px; box-shadow: var(--shadow); }
.review-byline { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 6px 14px; margin-bottom: 22px; }
.review-byline strong { font-size: 19px; font-weight: 600; }
.review-rating { color: var(--color-accent); font-size: 20px; letter-spacing: 2px; white-space: nowrap; }
.review-stars-empty { color: var(--color-muted); }
.review-source { grid-column: 1 / -1; color: var(--color-muted); font-size: 11px; }
.review-text { min-height: 0; overflow-y: auto; overscroll-behavior-y: contain; scrollbar-width: thin; scrollbar-color: var(--color-muted) transparent; }
.review-text blockquote { margin: 0; color: var(--color-text); font-size: 15px; line-height: 1.85; white-space: pre-wrap; overflow-wrap: anywhere; }
.review-ellipsis { font-size: 15px; color: var(--color-muted); }
.reviews-ready .review-stage { display: block; position: relative; height: 432px; margin-top: 5px; overflow: hidden; isolation: isolate; touch-action: pan-y; --review-shift: clamp(90px, 23vw, 235px); }
.reviews-ready .review-card { display: flex; flex-direction: column; position: absolute; left: 50%; top: 50%; width: min(480px, 72%); height: 350px; opacity: 0; z-index: 0; pointer-events: none; transform: translate(-50%, -50%) scale(.74); transition: transform 850ms cubic-bezier(.22,.7,.22,1), opacity 650ms ease; }
.reviews-ready .review-card[data-position="0"] { transform: translate(-50%, -50%) translateX(var(--review-drag, 0px)) scale(1); opacity: 1; z-index: 3; pointer-events: auto; cursor: grab; }
.reviews-ready .review-card[data-position="-1"] { transform: translate(-50%, -50%) translateX(calc(-1 * var(--review-shift) + var(--review-drag, 0px))) scale(.86); opacity: .38; z-index: 2; pointer-events: auto; cursor: pointer; }
.reviews-ready .review-card[data-position="1"] { transform: translate(-50%, -50%) translateX(calc(var(--review-shift) + var(--review-drag, 0px))) scale(.86); opacity: .38; z-index: 2; pointer-events: auto; cursor: pointer; }
.reviews-ready .review-stage.is-dragging .review-card { transition: none; cursor: grabbing; user-select: none; }
.reviews-ready .review-card[data-position="-2"] { transform: translate(-50%, -50%) translateX(calc(-2 * var(--review-shift))) scale(.74); }
.reviews-ready .review-card[data-position="2"] { transform: translate(-50%, -50%) translateX(calc(2 * var(--review-shift))) scale(.74); }
.review-controls { display: flex; justify-content: center; align-items: center; flex-wrap: wrap; gap: 12px 24px; }
.review-controls[hidden] { display: none; }
.review-control { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 10px 15px; font-size: 12px; font-weight: 500; border-radius: var(--radius-sm); border: var(--border); background: var(--color-surface); color: var(--color-text); }
.review-control:hover { border-color: var(--color-accent); }
.review-control.review-next { background: var(--color-text); color: var(--color-surface); }
.review-next svg { width: 16px; height: 16px; }
.review-counter { font-size: 12px; color: var(--color-muted); font-variant-numeric: tabular-nums; }
.review-announcement { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); margin: -1px; }
.review-source-note { text-align: center; max-width: 590px; margin: 22px auto 0; font-size: 11px; line-height: 1.9; }
.review-source-note a { color: var(--color-accent); white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 640px) {
  .reviews-section { width: 100%; padding-bottom: 44px; }
  .review-source-note { padding-inline: 25px; }
  .reviews-ready .review-stage { height: 430px; --review-shift: 24vw; }
  .reviews-ready .review-card { width: 78%; height: 360px; padding: 23px; border-radius: 22px; }
  .review-byline { gap: 6px 8px; margin-bottom: 18px; }
  .review-byline strong { font-size: 18px; }
  .review-rating { font-size: 17px; letter-spacing: 1px; }
  .review-text blockquote { font-size: 14px; line-height: 1.9; }
  .review-controls { gap: 12px 18px; }
}
@media (prefers-reduced-motion: reduce) { .reviews-ready .review-card { transition: none; } }

/* First visit: practical information in the Contact page's native accordions. */
.first-visit { padding-top: clamp(64px, 7vw, 96px); max-width: 1040px; margin-inline: auto; scroll-margin-top: 120px; }
.first-visit > h2 { font-size: clamp(32px, 3.8vw, 44px); margin-bottom: 28px; }
.first-visit-faq { padding: 5px 32px; }
.first-visit-faq summary { font-size: 15px; padding-block: 23px; }
.first-visit-faq .faq-plus { color: var(--color-accent); }
.first-visit-faq .faq-answer { padding-right: 24px; }
.first-visit-faq .faq-answer p { font-size: 14px; line-height: 1.85; }
.first-visit-faq .faq-answer p + p { margin-top: 12px; }
.first-visit-faq .faq-answer a { color: var(--color-text); text-decoration: underline; text-underline-offset: 3px; overflow-wrap: anywhere; }
.contact-main .first-visit-jump { display: flex; width: fit-content; }
.catalogue-email { display: flex; width: fit-content; max-width: 100%; justify-content: center; margin: 15px auto 0; font-size: 12px; }
.catalogue-email svg { width: 17px; height: 17px; }
.booking-card--simple { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 88px; padding: 24px 32px; font-size: 20px; font-weight: 600; line-height: 1.5; }
.booking-card--simple:hover { color: var(--color-surface); background: color-mix(in srgb, var(--color-text) 85%, var(--color-accent)); }
.booking-card--simple > svg { width: 22px; height: 22px; }
@media (max-width: 640px) {
  .first-visit { padding-top: 52px; scroll-margin-top: 103px; }
  .first-visit > h2 { margin-bottom: 24px; }
  .first-visit-faq { padding-inline: 22px; }
  .first-visit-faq summary { font-size: 14px; padding-block: 21px; gap: 16px; }
  .first-visit-faq .faq-answer { padding-right: 0; }
  .booking-card--simple { min-height: 80px; padding: 22px 26px; font-size: 18px; }
}
