/*
 * MEDOS public design-QA layer
 *
 * Purpose: keep the preferred ~1500px desktop rail while making every public
 * page use the same visual grammar: one outer alignment rail, one readable
 * copy measure, one spacing rhythm, equal card geometry and predictable CTAs.
 *
 * This file intentionally sits LAST in the public stylesheet stack. It is an
 * alignment/refinement layer, not a second redesign. No dark patterns: the UX
 * rules here are ordinary Gestalt hierarchy, grouping, rhythm and clear CTA
 * priority.
 */

:root {
  --qa-max: 1500px;
  --qa-gutter: clamp(22px, 3.2vw, 52px);
  --qa-panel-padding: clamp(20px, 3vw, 48px);
  --qa-section-y: clamp(52px, 5vw, 76px);
  --qa-section-y-tight: clamp(46px, 4.5vw, 72px);
  --qa-gap: clamp(28px, 4vw, 64px);
  --qa-copy: 720px;
  --qa-copy-wide: 820px;
  --qa-radius: 20px;
  --qa-radius-small: 14px;
  --qa-line: #d8e4e9;
  --qa-soft: #f4f9fb;
  --qa-shadow: 0 18px 48px rgba(23, 43, 56, .08);
  --qa-shadow-soft: 0 10px 30px rgba(23, 43, 56, .055);
}

/* Shared public shell: every page using header.php belongs to this system.
   Page classes describe content layouts, never opt a page into typography or
   navigation. The shell selector intentionally outranks old page overrides. */

html.refresh-root { scroll-padding-top: calc(var(--medos-header-height) + 20px); }
html.refresh-root body.medos-site {
  font-family: var(--medos-font);
  color: var(--refresh-ink);
  line-height: 1.6;
}
html.refresh-root body.medos-site :is(h1, h2, h3, h4) {
  font-family: var(--medos-font);
  font-weight: 750;
  line-height: 1.2;
  letter-spacing: -.025em;
  hyphens: none;
  overflow-wrap: anywhere;
  text-wrap: balance;
}
html.refresh-root body.medos-site h1 {
  font-size: var(--medos-h1);
  line-height: 1.12;
  letter-spacing: -.035em;
}
html.refresh-root body.medos-site.home-v2 h1 {
  font-size: clamp(2.125rem, 1.55rem + 1.5vw, 3.125rem);
}
html.refresh-root body.medos-site h2 { font-size: var(--medos-h2); }
html.refresh-root body.medos-site h3 { font-size: var(--medos-h3); }
/* Long treatment names must fit their navigation cells on every platform. */
html.refresh-root body.medos-site .method-jump-nav a { min-width: 0; overflow-wrap: anywhere; }
html.refresh-root body.medos-site :is(.news-card, .legal-page article, .portal-auth-card, .patient-card, .patient-news) h2 {
  font-size: clamp(1.375rem, 1.2rem + .6vw, 1.75rem);
}
html.refresh-root body.medos-site .eyebrow {
  font-size: .875rem;
  font-weight: 700;
  line-height: 1.5;
  letter-spacing: .09em;
}
html.refresh-root body.medos-site :is(button, input, select, textarea) { font-family: var(--medos-font); }
html.refresh-root body.medos-site .button {
  min-height: 46px;
  padding: 11px 19px;
  border-radius: 9px;
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.4;
  box-shadow: none;
}
html.refresh-root body.medos-site .button-primary { background: var(--medos-blue-text); color: #fff; }
html.refresh-root body.medos-site .button-primary:hover { background: #006486; }
html.refresh-root body.medos-site .button-secondary {
  border: 1px solid var(--qa-line);
  background: #fff;
  color: var(--refresh-ink);
}
html.refresh-root body.medos-site .button:hover { transform: none; }
html.refresh-root body.medos-site .site-header {
  display: grid;
  grid-template-columns: 166px minmax(0, 1fr) auto;
  gap: clamp(16px, 2vw, 30px);
  min-height: var(--medos-header-height);
  height: auto;
  padding: 9px max(var(--qa-gutter), calc((100% - var(--qa-max)) / 2));
  position: sticky;
  top: 0;
  border-bottom: 1px solid var(--qa-line);
  box-shadow: 0 4px 18px rgba(23, 43, 56, .055);
}
html.refresh-root body.medos-site .site-header .brand img {
  width: 166px;
  height: auto;
  max-height: 52px;
}
html.refresh-root body.medos-site .desktop-nav { display: flex; gap: clamp(14px, 1.5vw, 25px); font-size: .875rem; }
html.refresh-root body.medos-site .desktop-nav a { white-space: nowrap; }
html.refresh-root body.medos-site .desktop-nav a.active { color: var(--medos-blue-text); }
html.refresh-root body.medos-site .header-actions { display: flex; gap: 10px; flex-shrink: 0; }
html.refresh-root body.medos-site .header-cta { display: inline-flex; font-size: .875rem; white-space: nowrap; }
html.refresh-root body.medos-site .mobile-menu { display: none; }
html.refresh-root body.medos-site .mobile-menu summary {
  width: 46px;
  height: 46px;
  border: 1px solid var(--qa-line);
  border-radius: 9px;
  box-shadow: none;
}
html.refresh-root body.medos-site .mobile-menu nav {
  top: calc(100% + 12px);
  right: 0;
  width: min(350px, calc(100vw - 40px));
  border: 1px solid var(--qa-line);
  border-radius: var(--qa-radius-small);
}
html.refresh-root body.medos-site .mobile-menu nav a[aria-current="page"] {
  background: var(--qa-soft);
  color: var(--medos-blue-text);
  border-radius: 7px;
}
html.refresh-root body.medos-site .subpage-hero {
  min-height: 0;
  padding: clamp(46px, 5vw, 80px) max(var(--qa-gutter), calc((100% - var(--qa-max)) / 2));
  background: var(--qa-soft);
}
html.refresh-root body.medos-site .subpage-hero h1 { margin: 0 0 20px; max-width: 900px; }
html.refresh-root body.medos-site .subpage-hero > p:last-child { max-width: var(--qa-copy); margin-bottom: 0; font-size: 1.125rem; line-height: 1.6; }
html.refresh-root body.medos-site :is(.portal-shell, .patient-dashboard) {
  min-height: 0;
  padding: clamp(46px, 5vw, 80px) max(var(--qa-gutter), calc((100% - var(--qa-max)) / 2));
  background: var(--qa-soft);
}
html.refresh-root body.medos-site .portal-shell {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 600px);
  align-items: start;
  gap: var(--qa-gap);
}
html.refresh-root body.medos-site .portal-welcome { padding-top: 12px; }
html.refresh-root body.medos-site .portal-welcome h1 { max-width: 12ch; }
html.refresh-root body.medos-site .portal-welcome > p:not(.eyebrow) { max-width: 44ch; font-size: 1.125rem; line-height: 1.6; }
html.refresh-root body.medos-site .portal-welcome ul { gap: 8px; margin-top: 24px; }
html.refresh-root body.medos-site .portal-welcome li::before { color: var(--medos-blue-text); }
html.refresh-root body.medos-site :is(.portal-auth-card, .patient-card, .patient-news) {
  padding: clamp(24px, 3vw, 40px);
  border: 1px solid var(--qa-line);
  border-radius: var(--qa-radius);
  box-shadow: var(--qa-shadow-soft);
}
html.refresh-root body.medos-site .portal-tabs { margin: 0 0 28px; border-radius: 10px; }
html.refresh-root body.medos-site .portal-tabs a { min-height: 46px; padding: 10px 6px; border-radius: 7px; font-size: .875rem; }
html.refresh-root body.medos-site .portal-tabs a.active { color: var(--medos-blue-text); }
html.refresh-root body.medos-site .portal-auth-card h2 { margin: 0 0 12px; }
html.refresh-root body.medos-site .portal-auth-card > p { margin: 0 0 24px; }
html.refresh-root body.medos-site :is(.portal-form, .contact-form-card, .booking-form) label { font-size: .875rem; }
html.refresh-root body.medos-site :is(.portal-form, .contact-form-card, .booking-form) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
  min-height: 48px;
  width: 100%;
  border-radius: 9px;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
}
html.refresh-root body.medos-site .portal-form small { font-size: .875rem; color: #536674; }
html.refresh-root body.medos-site .portal-form .privacy-check { display: flex; align-items: flex-start; gap: 10px; font-weight: 400; }
html.refresh-root body.medos-site .portal-form .privacy-check input { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 3px; }
html.refresh-root body.medos-site .legal-page {
  width: min(var(--qa-max), calc(100% - 2 * var(--qa-gutter)));
  max-width: none;
  margin: 0 auto;
  padding: var(--qa-section-y-tight) 0 var(--qa-section-y);
  gap: 24px;
}
html.refresh-root body.medos-site .legal-page article { padding: clamp(24px, 3vw, 40px); border-radius: var(--qa-radius-small); background: #fff; }
html.refresh-root body.medos-site .legal-page article > p { max-width: 78ch; }
html.refresh-root body.medos-site .dashboard-hello { align-items: start; gap: 32px; }
html.refresh-root body.medos-site .dashboard-hello h1 span { color: var(--medos-blue-text); }
html.refresh-root body.medos-site :is(.dashboard-profile > a, .practice-info dt, .patient-news-grid span) { color: var(--medos-blue-text); font-size: .875rem; }
html.refresh-root body.medos-site .dashboard-profile > span { background: var(--medos-blue-text); }
html.refresh-root body.medos-site :is(.dashboard-profile small, .patient-booking-list p) { color: #536674; }
html.refresh-root body.medos-site .patient-status { font-size: .8125rem; }
html.refresh-root body.medos-site .patient-status.accepted { color: #176b40; }
html.refresh-root body.medos-site .patient-status.pending { color: #775500; }
html.refresh-root body.medos-site > footer {
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 1fr) minmax(0, .7fr);
  padding: clamp(46px, 5vw, 68px) max(var(--qa-gutter), calc((100% - var(--qa-max)) / 2)) 28px;
  gap: clamp(28px, 4vw, 64px);
}
html.refresh-root body.medos-site > footer .footer-title { font-size: .875rem; }
html.refresh-root body.medos-site .decision-page {
  padding: clamp(46px, 5vw, 80px) var(--qa-gutter);
  background: var(--qa-soft);
}
html.refresh-root body.medos-site .decision-card {
  max-width: 820px;
  margin: 0 auto;
  padding: clamp(24px, 4vw, 48px);
  background: #fff;
  border: 1px solid var(--qa-line);
  border-radius: var(--qa-radius);
  box-shadow: var(--qa-shadow-soft);
}
.decision-card h1 { margin: 0 0 24px; }
.decision-card .facts, .decision-card .notice { padding: 20px; background: var(--qa-soft); border-radius: 10px; margin-block: 24px; }
.decision-card .facts strong { display: block; }
.decision-card .actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.decision-card .decision-reject { border: 1px solid #a13a2d; color: #a13a2d; background: #fff; }
/* The aspect ratio must not turn min-height into an implicit minimum width. */
html.refresh-root body.medos-site .medos-panorama {
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: clamp(280px, 42vw, 680px);
  aspect-ratio: auto;
}
html.refresh-root body.medos-site .medos-panorama-large { margin-inline: 0; }
.medos-panorama:not(.is-ready) canvas { visibility: hidden; pointer-events: none; }
.medos-panorama:not(.is-ready) .medos-panorama-topline span:first-child { width: auto; height: auto; padding: 8px 12px; border-radius: 9px; }
html.refresh-root body.medos-site :is(.home-team-photo, .practice-v2-team-photo) { aspect-ratio: auto; }
html.refresh-root body.medos-site :is(.home-team-photo, .practice-v2-team-photo) img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  object-fit: contain;
}
html.refresh-root body.medos-site :is(.home-team-photo, .practice-v2-team-photo) figcaption {
  margin: 0;
  padding: 12px 16px;
  font-size: .8125rem;
  line-height: 1.5;
}
html.refresh-root body.medos-site .medos-panorama-switcher { width: max-content; max-width: calc(100% - 20px); }
html.refresh-root body.medos-site .medos-panorama-switcher button { min-width: 0; white-space: normal; line-height: 1.3; }

@media (max-width: 1230px) {
  html.refresh-root body.medos-site .header-contact-link { display: none; }
}
@media (max-width: 1100px) {
  html.refresh-root body.medos-site .site-header { grid-template-columns: minmax(0, 1fr) auto auto; }
  html.refresh-root body.medos-site .desktop-nav { display: none; }
  html.refresh-root body.medos-site .mobile-menu { display: block; }
  html.refresh-root body.medos-site > footer { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
  html.refresh-root body.medos-site .portal-shell { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  html.refresh-root body.medos-site .portal-welcome { padding-top: 0; }
  html.refresh-root body.medos-site .portal-welcome h1 { max-width: 18ch; }
}
@media (max-width: 760px) {
  :root { --medos-header-height: 68px; }
  html.refresh-root body.medos-site .site-header { padding: 8px var(--qa-gutter); gap: 8px; }
  html.refresh-root body.medos-site .site-header .brand img { width: 144px; }
  html.refresh-root body.medos-site .header-actions { gap: 6px; }
  html.refresh-root body.medos-site .header-cta { display: none; }
  html.refresh-root body.medos-site .portal-welcome ul { margin-top: 16px; font-size: .875rem; gap: 4px; }
  html.refresh-root body.medos-site .portal-auth-card { padding: 24px 20px; }
  html.refresh-root body.medos-site > footer { grid-template-columns: minmax(0, 1fr); padding-bottom: calc(100px + env(safe-area-inset-bottom, 0px)); }
  html.refresh-root body.medos-site .mobile-booking-bar {
    display: grid;
    grid-template-columns: minmax(0, 1.45fr) repeat(2, minmax(0, 1fr));
    gap: 6px;
    padding: 6px;
    left: 12px;
    right: 12px;
    border-radius: 14px;
  }
  html.refresh-root body.medos-site .mobile-booking-action {
    min-width: 0;
    width: 100%;
    padding: 6px 4px;
    gap: 4px;
    font-size: .875rem;
    line-height: 1.3;
    white-space: normal;
    overflow-wrap: normal;
    border-radius: 9px;
  }
  html.refresh-root body.medos-site .mobile-booking-action > span { display: none; }
  html.refresh-root body.medos-site .mobile-booking-action::before { display: none; }
}

/* -------------------------------------------------------------------------
   Global rails / rhythm
   ------------------------------------------------------------------------- */

html.refresh-root .subpage-main {
  /* Header participates in normal flow. The historical 104px padding created
     the blank strip visible on MTT/Pilates/contact pages. */
  padding-top: 0 !important;
}

html.refresh-root .site-header {
  min-height: 76px;
  height: auto;
  padding: 9px max(var(--qa-gutter), calc((100vw - var(--qa-max)) / 2));
  grid-template-columns: minmax(160px, 190px) minmax(0, 1fr) auto;
  column-gap: clamp(18px, 2.5vw, 38px);
  background: rgba(255, 255, 255, .98);
  backdrop-filter: blur(12px);
  z-index: 1000;
}

html.refresh-root .site-header .brand img {
  width: 166px;
  height: auto;
  max-height: 52px;
}

html.refresh-root .desktop-nav {
  justify-content: center;
  gap: clamp(14px, 1.5vw, 25px);
}

html.refresh-root .header-actions {
  gap: 10px;
}

html.refresh-root :where(.button, button.button) {
  min-height: 46px;
  border-radius: 9px;
}

html.refresh-root :where(.eyebrow) {
  margin-bottom: 12px;
  letter-spacing: .105em;
}

/* A consistent readable line length is more important than filling the whole
   1500px rail with text. */
html.refresh-root :where(.therapy-heading, .leistungen-vergleich-kopf) > p:last-child,
html.refresh-root :where(.home-section-heading, .practice-v2-heading) > p,
html.refresh-root :where(.appointment-choice > header, .public-courses-page-intro) > p {
  max-width: var(--qa-copy);
}

/* -------------------------------------------------------------------------
   Modern hero system: same top edge, columns and visual weight
   ------------------------------------------------------------------------- */

body.mtt-v2 .therapy-hero,
body.pilates-v2 .therapy-hero,
body.methods-v2 .methods-v2-hero,
body.practice-v2 .practice-v2-hero,
body.home-v2 .home-hero {
  padding-top: clamp(56px, 5.4vw, 84px);
  padding-bottom: clamp(56px, 5.4vw, 84px);
  padding-left: max(var(--qa-gutter), calc((100vw - var(--qa-max)) / 2));
  padding-right: max(var(--qa-gutter), calc((100vw - var(--qa-max)) / 2));
  gap: clamp(38px, 5vw, 78px);
  align-items: center;
}

body.mtt-v2 .therapy-hero,
body.pilates-v2 .therapy-hero {
  grid-template-columns: minmax(0, .92fr) minmax(480px, 1.08fr);
  min-height: 0;
}

body.mtt-v2 .therapy-hero > div,
body.pilates-v2 .therapy-hero > div,
body.methods-v2 .methods-v2-hero-copy,
body.practice-v2 .practice-v2-hero-copy,
body.home-v2 .home-hero-copy {
  max-width: 640px;
}

body.mtt-v2 .therapy-hero h1,
body.pilates-v2 .therapy-hero h1,
body.methods-v2 .methods-v2-hero h1,
body.practice-v2 .practice-v2-hero h1,
body.home-v2 .home-hero h1 {
  margin-top: 0;
  margin-bottom: 20px;
  text-wrap: balance;
  line-height: 1.04;
}

body.mtt-v2 .therapy-hero > div > p:not(.eyebrow),
body.pilates-v2 .therapy-hero > div > p:not(.eyebrow),
body.methods-v2 .methods-v2-hero-copy > p:not(.eyebrow),
body.practice-v2 .practice-v2-hero-copy > p:not(.eyebrow),
body.home-v2 .home-hero-lead {
  max-width: 62ch;
}

body.mtt-v2 .therapy-hero figure,
body.pilates-v2 .therapy-hero figure,
body.methods-v2 .methods-v2-hero figure,
body.practice-v2 .practice-v2-hero figure,
body.home-v2 .home-practice-photo {
  margin: 0;
  border-radius: var(--qa-radius);
  overflow: hidden;
  box-shadow: var(--qa-shadow);
}

body.mtt-v2 .therapy-hero figure img,
body.pilates-v2 .therapy-hero figure img {
  width: 100%;
  aspect-ratio: 4 / 3;
  height: auto;
  object-fit: cover;
}

body.mtt-v2 .therapy-hero figcaption,
body.pilates-v2 .therapy-hero figcaption {
  padding: 11px 15px 13px;
}

/* Compact legacy-style heroes used by contact, appointments, courses/news. */
body.contact-v2 .subpage-hero,
body.appointments-v2 .subpage-hero,
body.courses-v2 .subpage-hero,
body.news-v2 .subpage-hero {
  min-height: 0;
  padding: clamp(58px, 5vw, 82px) max(var(--qa-gutter), calc((100vw - var(--qa-max)) / 2));
}

body.contact-v2 .subpage-hero h1,
body.appointments-v2 .subpage-hero h1,
body.courses-v2 .subpage-hero h1,
body.news-v2 .subpage-hero h1 {
  max-width: 760px;
  margin: 0 0 20px;
  line-height: 1.02;
  text-wrap: balance;
}

body.contact-v2 .subpage-hero > p:last-child,
body.appointments-v2 .subpage-hero > p:last-child,
body.courses-v2 .subpage-hero > p:last-child,
body.news-v2 .subpage-hero > p:last-child {
  max-width: var(--qa-copy);
  margin-bottom: 0;
}

/* -------------------------------------------------------------------------
   Shared service comparison: equal geometry and aligned actions
   ------------------------------------------------------------------------- */

.leistungen-vergleich {
  width: min(var(--qa-max), calc(100% - (2 * var(--qa-gutter))));
  max-width: none;
  margin: 0 auto;
  padding: var(--qa-section-y) 0;
}

.leistungen-vergleich-kopf {
  max-width: var(--qa-copy-wide);
  margin: 0 0 clamp(30px, 3vw, 46px);
}

.leistungen-vergleich-kopf h2 {
  margin-bottom: 14px;
  text-wrap: balance;
}

.leistungen-vergleich-liste {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: clamp(18px, 2vw, 28px);
  padding: 0;
  margin: 0;
  list-style: none;
}

.leistungen-karte {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: clamp(24px, 2.3vw, 34px);
  border-radius: var(--qa-radius);
  border: 1px solid var(--qa-line);
  background: #fff;
  box-shadow: none;
}

.leistungen-karte.is-active {
  border-width: 2px;
  box-shadow: var(--qa-shadow-soft);
}

.leistungen-karte h3 {
  margin-top: 4px;
  margin-bottom: 12px;
}

.leistungen-karte-fakten {
  margin-block: 18px 20px;
}

.leistungen-karte-beispiel {
  margin-top: auto;
  border-radius: 14px;
}

/* Seit repoops#140 (S4) stehen ZWEI Beispielkaesten in einer Karte. Ein
   `margin-top: auto` im Flex-Spaltenstapel saugt den freien Platz auf; bei
   ZWEI solchen Raendern wird der freie Platz zu gleichen Teilen auf beide
   verteilt, und zwischen die beiden Kaesten geriete eine Luecke. Nur der
   erste Kasten soll schieben, das Paar bleibt zusammen. Sichtbar ist das nur
   ueber 1100px, weil `min-height: 100%` darunter aufgehoben ist - und kein
   Gatter misst Abstaende. Gefunden von der QA (Angela) im Review zu #98. */
.leistungen-karte-beispiel + .leistungen-karte-beispiel {
  margin-top: 0;
}

.leistungen-karte-aktionen {
  margin-top: 22px;
  padding-top: 0;
}

.leistungen-vergleich-hinweis {
  margin: 22px 0 0;
}

/* -------------------------------------------------------------------------
   MTT / Pilates detail sections
   ------------------------------------------------------------------------- */

body.mtt-v2 :where(.mtt-story, .therapy-process),
body.pilates-v2 .pilates-intro {
  width: min(var(--qa-max), calc(100% - (2 * var(--qa-gutter))));
  max-width: none;
  margin: 0 auto;
  padding: var(--qa-section-y) 0;
}

body.mtt-v2 .therapy-process,
body.pilates-v2 .pilates-intro {
  border-top: 1px solid rgba(56, 85, 109, .09);
  padding-inline: var(--qa-panel-padding);
}

.therapy-heading {
  max-width: var(--qa-copy-wide);
  margin: 0 0 clamp(30px, 3vw, 46px);
}

.therapy-heading h2 {
  text-wrap: balance;
  margin-bottom: 12px;
}

.therapy-process-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 28px);
}

.therapy-process-grid article {
  min-height: 100%;
  border-radius: var(--qa-radius-small);
}

.therapy-flex-note {
  margin-top: clamp(22px, 2.5vw, 34px);
  border-radius: var(--qa-radius-small);
}

body.mtt-v2 .mtt-collage {
  margin-top: 0;
}

body.mtt-v2 .mtt-photo-6 img { object-position: 50% 36%; }

@media (min-width: 901px) {
  /* Photo height stops growing when the centred content reaches its limit. */
  body.mtt-v2 .mtt-collage {
    grid-template-rows: repeat(3, clamp(170px, 20vw, 260px));
  }
  body.practice-v2 .practice-photo-tour-card {
    grid-template-rows: clamp(260px, 32vw, 480px) auto;
  }
  body.practice-v2 .practice-photo-tour-card-wide {
    grid-template-rows: clamp(330px, 38vw, 560px) auto;
  }
}

.therapy-page-cta {
  width: min(var(--qa-max), calc(100% - (2 * var(--qa-gutter))));
  max-width: none;
  margin: 0 auto var(--qa-section-y);
  padding: clamp(28px, 3.2vw, 44px);
  border-radius: var(--qa-radius);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 28px;
}

.therapy-page-cta > div {
  max-width: 760px;
}

/* -------------------------------------------------------------------------
   Physiotherapy/methods page
   ------------------------------------------------------------------------- */

body.methods-v2 .method-jump-nav,
body.methods-v2 .static-therapy-page {
  width: min(var(--qa-max), calc(100% - (2 * var(--qa-gutter))));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

body.methods-v2 .method-jump-nav {
  margin-top: 0;
  margin-bottom: 0;
  padding: 24px 0;
}

body.methods-v2 .static-therapy-page {
  padding: var(--qa-section-y) 0;
}

body.methods-v2 .static-therapy-intro {
  gap: var(--qa-gap);
  margin-bottom: clamp(38px, 4vw, 58px);
}

body.methods-v2 .static-therapy-method {
  gap: clamp(34px, 4.5vw, 70px);
  padding-block: clamp(42px, 4.5vw, 68px);
}

body.methods-v2 .method-photo,
body.methods-v2 .method-static-copy {
  min-width: 0;
}

/* -------------------------------------------------------------------------
   Team & Practice: map, team and photo sections share the same rail
   ------------------------------------------------------------------------- */

body.practice-v2 .practice-v2-section {
  width: min(var(--qa-max), calc(100% - (2 * var(--qa-gutter))));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
  padding-top: var(--qa-section-y);
  padding-bottom: var(--qa-section-y);
  /* This section is already centred and width-limited. Viewport-based side
     padding would consume its content width again on large screens. */
  padding-inline: 0;
}

body.practice-v2 .practice-v2-heading {
  grid-template-columns: minmax(0, 1fr);
  gap: 14px;
  margin-bottom: clamp(28px, 3vw, 40px);
  text-align: left;
}

body.practice-v2 .practice-v2-heading > p {
  max-width: 65ch;
  margin: 0;
}

body.practice-v2 .practice-v2-hero-team,
body.practice-v2 .practice-v2-hero-team img {
  aspect-ratio: auto;
  height: auto;
}

body.practice-v2 .practice-v2-hero-team img {
  display: block;
  width: 100%;
  object-fit: contain;
}

body.practice-v2 .practice-v2-hero-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 18px 24px;
  margin-top: 28px;
}

body.practice-v2 .practice-v2-text-link {
  color: var(--refresh-blue);
  font-weight: 700;
  text-underline-offset: 5px;
}

body.practice-v2 .practice-v2-profiles {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 2.5vw, 36px);
  margin-top: 0;
}

body.practice-v2 .practice-v2-profile {
  grid-template-columns: minmax(0, 1fr);
  gap: 22px;
  padding: 0 0 24px;
  border: 0;
  border-bottom: 1px solid var(--qa-line);
  border-radius: 0;
  text-align: left;
}

body.practice-v2 .practice-v2-profile-media {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 5;
  border-radius: 16px;
}

body.practice-v2 .practice-v2-profile-copy h3 {
  font-size: clamp(1.25rem, 1.7vw, 1.6rem);
}

body.practice-v2 .practice-v2-profile-copy .team-role {
  margin-bottom: 8px;
  font-size: .75rem;
}

body.practice-v2 .practice-photo-tour {
  border-top: 1px solid var(--qa-line);
  border-bottom: 1px solid var(--qa-line);
}

body.practice-v2 .practice-photo-tour-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(20px, 2.5vw, 36px);
}

body.practice-v2 .practice-photo-tour-card {
  grid-template-rows: auto 1fr;
  gap: 20px;
  border: 0;
  border-radius: 0;
  background: transparent;
  overflow: visible;
}

body.practice-v2 .practice-photo-tour-card img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 3 / 2;
  border-radius: 16px;
  object-fit: cover;
}

body.practice-v2 .practice-photo-tour-card figcaption {
  display: block;
  padding: 0;
  text-align: left;
}

body.practice-v2 .practice-photo-tour-card strong {
  font-size: 1.1875rem;
}

body.practice-v2 .practice-photo-tour-card figcaption p {
  margin: 8px 0 0;
  color: var(--refresh-navy);
  font-size: .9375rem;
  line-height: 1.65;
}

body.practice-v2 .erster-termin {
  width: min(var(--qa-max), calc(100% - (2 * var(--qa-gutter))));
  max-width: none;
  padding-inline: 0;
}

@media (max-width: 760px) {
  body.practice-v2 .practice-v2-profiles,
  body.practice-v2 .practice-photo-tour-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: 32px;
  }

  body.practice-v2 .practice-v2-profile {
    grid-template-columns: minmax(96px, .7fr) minmax(0, 1fr);
    align-items: start;
    gap: 20px;
  }

  body.practice-v2 .practice-v2-profile-media {
    border-radius: 12px;
  }
}

body.practice-v2 .practice-v2-location {
  display: grid;
  grid-template-columns: minmax(360px, .78fr) minmax(0, 1.22fr);
  align-items: stretch;
  gap: clamp(38px, 5vw, 72px);
}

body.practice-v2 .practice-v2-map {
  min-height: 0 !important;
  height: auto;
  align-self: stretch;
  display: grid;
  grid-template-rows: minmax(380px, 1fr) auto;
  overflow: hidden;
  border-radius: var(--qa-radius);
  border: 1px solid var(--qa-line);
  background: #fff;
}

body.practice-v2 .practice-v2-map iframe {
  display: block;
  width: 100%;
  height: 100% !important;
  min-height: 380px;
  border: 0;
}

body.practice-v2 .practice-v2-map-info {
  min-height: 78px;
  padding: 16px 20px;
  align-items: center;
}

body.practice-v2 .practice-landmarks {
  gap: 10px;
}

body.practice-v2 .practice-landmarks a {
  min-height: 64px;
  border-radius: 12px;
}

body.practice-v2 .practice-v2-team-layout {
  gap: var(--qa-gap);
  align-items: center;
}

/* -------------------------------------------------------------------------
   Contact page: one clean two-column composition
   ------------------------------------------------------------------------- */

html.refresh-root body.medos-site .medos-external-map {
  position: relative;
  display: block;
  padding: 0;
  min-width: 0;
  min-height: 300px;
  height: 100%;
  background: var(--qa-soft);
}
html.refresh-root body.medos-site .external-map-stage { height: 100%; }
html.refresh-root body.medos-site .external-map-placeholder {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 12px;
  min-height: 300px;
  height: 100%;
  padding: clamp(20px, 2.5vw, 36px);
}
html.refresh-root body.medos-site .external-map-placeholder p {
  max-width: 58ch;
  margin: 0;
  font-size: .875rem;
  color: var(--refresh-navy);
}
html.refresh-root body.medos-site .external-map-placeholder a { margin: 0; }
html.refresh-root body.medos-site .external-map-placeholder .button {
  white-space: normal;
  text-align: left;
}
html.refresh-root body.medos-site .medos-external-map iframe {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 300px;
  border: 0;
}
html.refresh-root body.medos-site .external-map-disable {
  position: absolute;
  bottom: 12px;
  left: 12px;
  min-height: 44px;
  padding: 10px 16px;
  border: 1px solid var(--qa-line);
  border-radius: 8px;
  background: #fff;
  color: var(--refresh-ink);
  font: inherit;
  font-size: .875rem;
  font-weight: 700;
  cursor: pointer;
}
html.refresh-root body.medos-site .medos-external-map [hidden] { display: none; }
html.refresh-root body.medos-site .public-course-dates {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
  font-size: .9375rem;
}

body.contact-v2 .contact-page {
  width: min(var(--qa-max), calc(100% - (2 * var(--qa-gutter))));
  max-width: none;
  margin: 0 auto;
  padding: var(--qa-section-y) 0;
  display: grid;
  grid-template-columns: minmax(330px, .78fr) minmax(520px, 1.22fr);
  gap: clamp(38px, 5vw, 74px);
  align-items: start;
}

body.contact-v2 .contact-details {
  max-width: 520px;
}

body.contact-v2 .contact-form-card {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: clamp(28px, 3vw, 42px);
  border-radius: var(--qa-radius);
  border: 1px solid var(--qa-line);
  box-shadow: var(--qa-shadow-soft);
}

body.contact-v2 .contact-form-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
}

body.contact-v2 .new-patient-card,
body.contact-v2 .opening-times {
  border-radius: var(--qa-radius-small);
}

/* -------------------------------------------------------------------------
   Appointments: equal contact cards, compact online hand-off, clean empty state
   ------------------------------------------------------------------------- */

body.appointments-v2 .appointment-choice {
  width: min(var(--qa-max), calc(100% - (2 * var(--qa-gutter))));
  max-width: none;
  margin: 0 auto;
  padding: var(--qa-section-y-tight) 0;
}

body.appointments-v2 .appointment-choice > header {
  max-width: var(--qa-copy-wide);
  margin-bottom: clamp(28px, 3vw, 40px);
}

body.appointments-v2 .appointment-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

body.appointments-v2 .appointment-choice-grid > a {
  min-height: 158px;
  padding: 24px;
  border-radius: var(--qa-radius-small);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

body.appointments-v2 .appointment-online-divider {
  margin-top: 22px;
  padding: 18px 22px;
  border-radius: 12px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  align-items: center;
  column-gap: 26px;
  row-gap: 2px;
}

body.appointments-v2 .appointment-online-divider > span {
  grid-row: 1 / 3;
}

body.appointments-v2 .appointment-online-divider > strong {
  grid-column: 2;
}

body.appointments-v2 .appointment-online-divider > p {
  grid-column: 2;
  margin: 0;
}

body.appointments-v2 .appointment-online-divider > a {
  grid-column: 3;
  grid-row: 1 / 3;
  white-space: nowrap;
}

body.appointments-v2 .appointment-page {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: var(--qa-section-y) max(var(--qa-gutter), calc((100vw - var(--qa-max)) / 2));
}

body.appointments-v2 .appointment-empty {
  width: min(900px, 100%);
  margin: 0 auto;
  padding: clamp(34px, 4vw, 54px);
  border-radius: 24px;
  box-shadow: var(--qa-shadow);
}

body.appointments-v2 .appointment-intro,
body.appointments-v2 .booking-form {
  width: 100%;
  max-width: var(--qa-max);
  margin-left: auto;
  margin-right: auto;
}

/* -------------------------------------------------------------------------
   Home page: the 1500px rail needs component proportions, not stretched copy
   ------------------------------------------------------------------------- */

body.home-v2 .home-hero {
  grid-template-columns: minmax(0, .9fr) minmax(500px, 1.1fr);
  padding-top: clamp(32px, 4vw, 56px);
  padding-bottom: clamp(36px, 4vw, 60px);
}

body.home-v2 .home-practice-photo img {
  min-height: 0;
  height: clamp(360px, 34vw, 480px);
}

body.home-v2 .home-hero h1 {
  max-width: 18ch;
}

body.home-v2 :where(.home-overview, .home-team) {
  width: min(var(--qa-max), calc(100% - (2 * var(--qa-gutter))));
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}

body.home-v2 .home-overview {
  padding-top: var(--qa-section-y);
  padding-bottom: var(--qa-section-y);
  /* Inner spacing stays bounded independently of the centred outer rail. */
  padding-inline: var(--qa-panel-padding);
}

body.home-v2 .home-team {
  margin-top: 0;
  margin-bottom: var(--qa-section-y);
  gap: var(--qa-gap);
  padding-inline: var(--qa-panel-padding);
}

body.home-v2 .home-section-heading {
  gap: var(--qa-gap);
  align-items: end;
}

body.home-v2 .home-general-facts {
  gap: 18px;
}

body.home-v2 .home-general-facts article {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

html.refresh-root body.home-v2 .home-general-facts h3 {
  margin: 0 0 12px;
  font-size: clamp(1.125rem, 1rem + .4vw, 1.375rem);
  text-wrap: pretty;
}

body.home-v2 .home-general-facts article > a {
  margin-top: auto;
  padding-top: 18px;
  color: var(--medos-blue-text);
  font-weight: 700;
  text-underline-offset: 4px;
}

body.home-v2 .home-place-layout {
  gap: var(--qa-gap);
  align-items: center;
}

/* -------------------------------------------------------------------------
   Courses & news: opt into the same modern rail via bodyClass
   ------------------------------------------------------------------------- */

body.courses-v2 .public-courses-page,
body.news-v2 .content-page {
  width: min(var(--qa-max), calc(100% - (2 * var(--qa-gutter))));
  max-width: none;
  margin: 0 auto;
  padding: var(--qa-section-y) 0;
}

body.courses-v2 .public-courses-page-intro {
  gap: var(--qa-gap);
  margin-bottom: clamp(34px, 4vw, 56px);
}

body.courses-v2 .public-course-list,
body.news-v2 .news-grid-page {
  gap: clamp(18px, 2vw, 28px);
}

/* -------------------------------------------------------------------------
   Footer: same left/right rail as every page above it
   ------------------------------------------------------------------------- */

html.refresh-root footer {
  display: grid;
  grid-template-columns: minmax(240px, 1.2fr) minmax(220px, 1fr) minmax(220px, 1fr) minmax(170px, .7fr);
  gap: clamp(28px, 4vw, 64px);
  align-items: start;
  padding: clamp(46px, 5vw, 68px) max(var(--qa-gutter), calc((100vw - var(--qa-max)) / 2)) 24px;
}

html.refresh-root footer .footer-brand img {
  width: 190px;
  height: auto;
}

html.refresh-root footer .footer-title {
  margin-top: 0;
}

html.refresh-root footer .footer-bottom {
  grid-column: 1 / -1;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 20px;
  margin-top: 4px;
  padding-top: 20px;
  border-top: 1px solid var(--qa-line);
}

/* -------------------------------------------------------------------------
   Responsive design: preserve hierarchy instead of merely shrinking desktop
   ------------------------------------------------------------------------- */

@media (max-width: 1100px) {
  body.mtt-v2 .therapy-hero,
  body.pilates-v2 .therapy-hero,
  body.home-v2 .home-hero,
  body.home-v2 .home-team,
  body.home-v2 .home-place-layout,
  body.practice-v2 .practice-v2-location,
  body.contact-v2 .contact-page {
    grid-template-columns: 1fr;
  }

  body.mtt-v2 .therapy-hero > div,
  body.pilates-v2 .therapy-hero > div,
  body.home-v2 .home-hero-copy,
  body.contact-v2 .contact-details {
    max-width: var(--qa-copy-wide);
  }

  .leistungen-vergleich-liste,
  .therapy-process-grid {
    grid-template-columns: 1fr;
  }

  .leistungen-karte {
    min-height: 0;
  }

  body.appointments-v2 .appointment-choice-grid {
    grid-template-columns: 1fr;
  }

  body.appointments-v2 .appointment-choice-grid > a {
    min-height: 130px;
  }

  html.refresh-root footer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 760px) {
  :root {
    --qa-gutter: 20px;
    --qa-section-y: 44px;
    --qa-section-y-tight: 42px;
  }

  html.refresh-root .site-header {
    min-height: 68px;
    padding-top: 8px;
    padding-bottom: 8px;
  }

  body.mtt-v2 .therapy-hero,
  body.pilates-v2 .therapy-hero,
  body.methods-v2 .methods-v2-hero,
  body.practice-v2 .practice-v2-hero,
  body.home-v2 .home-hero,
  body.contact-v2 .subpage-hero,
  body.appointments-v2 .subpage-hero,
  body.courses-v2 .subpage-hero,
  body.news-v2 .subpage-hero {
    padding-top: 46px;
    padding-bottom: 50px;
  }

  body.home-v2 .home-hero {
    padding-top: 28px;
    padding-bottom: 36px;
    gap: 26px;
  }

  body.home-v2 .home-hero-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  body.home-v2 .home-hero-actions > .button-primary {
    grid-column: 1 / -1;
  }

  html.refresh-root body.home-v2 .home-hero-actions > * {
    min-width: 0;
    width: 100%;
    padding-inline: 8px;
    font-size: .9375rem;
  }

  body.home-v2 .home-practice-photo img {
    height: 300px;
  }

  body.home-v2 .home-notice-card {
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 6px 12px;
    margin-top: 16px;
  }

  body.home-v2 .home-notice-card > span:first-child {
    grid-column: 1 / -1;
  }

  body.home-v2 .home-notice-card a {
    grid-column: 2;
    grid-row: 2;
    white-space: normal;
  }

  body.contact-v2 .contact-form-row {
    grid-template-columns: 1fr;
  }

  body.appointments-v2 .appointment-online-divider {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
  }

  body.appointments-v2 .appointment-online-divider > a {
    margin-top: 8px;
    white-space: normal;
  }

  .therapy-page-cta {
    flex-direction: column;
    align-items: stretch;
  }

  .therapy-page-cta .button {
    width: 100%;
  }

  html.refresh-root footer {
    grid-template-columns: 1fr;
    gap: 30px;
  }

  html.refresh-root footer .footer-bottom {
    grid-column: 1;
    flex-direction: column;
    align-items: flex-start;
  }
}

/* Layout refinement: contact and editorial pages. */
/* Compact, personal contact: introduction and useful actions share one space. */
html.refresh-root body.medos-site .contact-intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(340px, .76fr);
  align-items: center;
  gap: clamp(36px, 6vw, 100px);
  padding-block: clamp(36px, 4.2vw, 66px);
  background: linear-gradient(115deg, #f3f9fb 0%, #f3f9fb 60%, #eaf5f8 100%);
  border-bottom: 1px solid var(--qa-line);
}
html.refresh-root body.medos-site .contact-intro-copy { min-width: 0; max-width: 740px; }
html.refresh-root body.medos-site .contact-intro-copy .eyebrow { margin: 0 0 16px; color: #00769e; }
html.refresh-root body.medos-site .contact-intro h1 { max-width: 15ch; margin: 0 0 22px; }
html.refresh-root body.medos-site .contact-intro-copy > p:not(.eyebrow):not(.contact-intro-note) {
  max-width: 53ch;
  margin: 0 0 24px;
  color: #536674;
  font-size: 1.125rem;
  line-height: 1.65;
}
html.refresh-root body.medos-site .contact-intro-link {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  min-height: 44px;
  color: #00769e;
  font-size: 1rem;
  font-weight: 750;
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 5px;
}
html.refresh-root body.medos-site .contact-intro-link span { font-size: 1.25rem; }
html.refresh-root body.medos-site .contact-intro-copy .contact-intro-note {
  max-width: 48ch;
  margin: 10px 0 0;
  color: #536674;
  font-size: .875rem;
  line-height: 1.55;
}
html.refresh-root body.medos-site .contact-routes {
  width: 100%;
  min-width: 0;
  max-width: 520px;
  justify-self: end;
  padding: 22px 20px 18px;
  border: 1px solid #d4e3e9;
  border-radius: 20px;
  background: #fff;
  box-shadow: 0 16px 40px rgba(23, 43, 56, .055);
}
html.refresh-root body.medos-site .contact-routes-title {
  margin: 0 0 14px;
  padding-inline: 13px;
  color: #172b38;
  font-size: 1.125rem;
  font-weight: 750;
}
html.refresh-root body.medos-site .contact-route {
  display: grid;
  grid-template-columns: 44px minmax(0, 1fr) 20px;
  align-items: center;
  gap: 14px;
  min-height: 82px;
  padding: 15px 12px;
  border: 1px solid transparent;
  border-top-color: #e1ebef;
  border-radius: 10px;
  background: transparent;
  color: #172b38;
  text-align: left;
  text-decoration: none;
}
html.refresh-root body.medos-site .contact-route:hover { background: #f4f9fb; }
html.refresh-root body.medos-site .contact-route::before { display: none; }
html.refresh-root body.medos-site .contact-route-icon {
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: #edf6fa;
  color: #00769e;
}
html.refresh-root body.medos-site .contact-route-whatsapp .contact-route-icon { background: #edf8f2; }
html.refresh-root body.medos-site .contact-route-icon :is(svg, img) { display: block; width: 24px; height: 24px; }
html.refresh-root body.medos-site .contact-route-copy { min-width: 0; display: grid; gap: 3px; }
html.refresh-root body.medos-site .contact-route-copy small {
  color: #536674;
  font-size: .75rem;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.3;
  text-transform: uppercase;
}
html.refresh-root body.medos-site .contact-route-copy strong { color: #172b38; font-size: 1.0625rem; line-height: 1.4; font-weight: 750; }
html.refresh-root body.medos-site .contact-route-copy > span { color: #536674; font-size: .8125rem; line-height: 1.4; overflow-wrap: anywhere; }
html.refresh-root body.medos-site .contact-route-arrow { color: #00769e; font-size: 1.125rem; line-height: 1; text-align: center; }
html.refresh-root body.appointments-v2 .appointment-page { padding-block: clamp(32px, 3.5vw, 54px); background: #fff; }
html.refresh-root body.appointments-v2 .appointment-intro { margin-bottom: 28px; gap: 28px; }
html.refresh-root body.appointments-v2 .appointment-empty {
  width: min(1100px, 100%);
  margin: 0 auto;
  padding: clamp(24px, 3vw, 38px);
  border: 1px solid var(--qa-line);
  border-left: 4px solid #00769e;
  border-radius: 4px 16px 16px 4px;
  background: #f7fbfc;
  box-shadow: none;
}
html.refresh-root body.appointments-v2 .appointment-empty h2 { max-width: 26ch; font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); }
html.refresh-root body.appointments-v2 .appointment-empty p { max-width: 70ch; }
html.refresh-root body.contact-v2 .contact-page { padding-block: clamp(36px, 4vw, 60px); }
html.refresh-root body.contact-v2 .contact-details > h2 { margin: 0 0 20px; }
html.refresh-root body.contact-v2 .contact-details > p { margin: 0 0 24px; }
html.refresh-root body.contact-v2 .contact-details :is(.opening-times, .new-patient-card, .professional-contact) {
  margin: 0;
  padding: 22px 0;
  border: 0;
  border-top: 1px solid var(--qa-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
html.refresh-root body.contact-v2 .contact-details h3 { margin: 0 0 12px; font-size: 1.125rem; }
html.refresh-root body.contact-v2 .contact-details :is(.new-patient-card, .professional-contact) p { font-size: .9375rem; margin: 0 0 12px; }
html.refresh-root body.contact-v2 .opening-times dl { display: grid; grid-template-columns: 80px minmax(0, 1fr); gap: 4px 18px; margin: 0; font-size: .9375rem; }
html.refresh-root body.contact-v2 .opening-times dt { color: #536674; }
html.refresh-root body.contact-v2 .opening-times dd { margin: 0; color: #172b38; }
@media (max-width: 900px) {
  html.refresh-root body.medos-site .contact-intro { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  html.refresh-root body.medos-site .contact-intro h1 { max-width: 18ch; }
  html.refresh-root body.medos-site .contact-routes { max-width: none; justify-self: stretch; }
}
@media (max-width: 540px) {
  html.refresh-root body.medos-site .contact-intro { padding-block: 30px; gap: 24px; }
  html.refresh-root body.medos-site .contact-intro-copy > p:not(.eyebrow):not(.contact-intro-note) { font-size: 1rem; margin-bottom: 16px; }
  html.refresh-root body.medos-site .contact-routes { padding: 18px 12px 14px; border-radius: 16px; }
  html.refresh-root body.medos-site .contact-routes-title { padding-inline: 9px; }
  html.refresh-root body.medos-site .contact-route { grid-template-columns: 38px minmax(0, 1fr) 16px; gap: 10px; min-height: 76px; padding-inline: 8px; }
  html.refresh-root body.medos-site .contact-route-icon { width: 38px; height: 38px; border-radius: 10px; }
  html.refresh-root body.medos-site .contact-route-copy strong { font-size: 1rem; }
  html.refresh-root body.medos-site .contact-route-copy > span { display: none; }
  html.refresh-root body.contact-v2 .contact-page { gap: 28px; }
}

/* Course catalogue: full-width offers with compact, readable practical details. */
html.refresh-root body.courses-v2 .courses-page-hero {
  padding-top: clamp(36px, 4vw, 56px);
  padding-bottom: clamp(30px, 3.4vw, 46px);
  background: #fff;
}

html.refresh-root body.courses-v2 .courses-page-hero h1 {
  margin: 0 0 16px;
}

html.refresh-root body.courses-v2 .courses-page-hero > p:last-child {
  margin: 0;
}

html.refresh-root body.courses-v2 .public-courses-page {
  padding-top: 0;
  padding-bottom: clamp(44px, 5vw, 72px);
}

html.refresh-root body.courses-v2 .public-course-list {
  display: block;
  border-top: 1px solid var(--qa-line);
}

html.refresh-root body.courses-v2 .public-course-card {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(300px, .8fr);
  align-items: start;
  gap: clamp(30px, 5vw, 76px);
  padding: clamp(26px, 3.5vw, 44px) 0;
  border: 0;
  border-bottom: 1px solid var(--qa-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

html.refresh-root body.courses-v2 .public-course-card-head {
  max-width: 64ch;
}

html.refresh-root body.courses-v2 .public-course-card .course-type {
  margin: 0 0 10px;
  color: var(--medos-blue-text);
  font-size: .8125rem;
  font-weight: 700;
  letter-spacing: .075em;
}

html.refresh-root body.courses-v2 .public-course-card h2 {
  margin: 0;
  font-size: clamp(1.5rem, 1.25rem + 1vw, 2rem);
  line-height: 1.25;
}

html.refresh-root body.courses-v2 .public-course-card-head > p:last-child {
  margin-top: 12px;
  margin-bottom: 0;
  color: #526b7a;
  line-height: 1.65;
}

html.refresh-root body.courses-v2 .public-course-practical {
  min-width: 0;
}

html.refresh-root body.courses-v2 .public-course-facts {
  display: block;
  margin: 0;
}

html.refresh-root body.courses-v2 .public-course-facts > div {
  display: grid;
  grid-template-columns: 6.1rem minmax(0, 1fr);
  align-items: baseline;
  gap: 12px;
  padding: 7px 0;
  border-radius: 0;
  background: transparent;
}

html.refresh-root body.courses-v2 .public-course-facts dt {
  margin: 0;
  color: #526b7a;
  font-size: .875rem;
  font-weight: 400;
  line-height: 1.5;
}

html.refresh-root body.courses-v2 .public-course-facts dd {
  margin: 0;
  color: var(--refresh-ink);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
}

html.refresh-root body.courses-v2 .public-course-actions {
  width: auto;
  margin-top: 20px;
  align-items: flex-start;
}

html.refresh-root body.courses-v2 .public-course-actions .button {
  width: auto;
  min-height: 44px;
  padding: 10px 16px;
  font-size: .9375rem;
}

html.refresh-root body.courses-v2 .public-course-support {
  margin: 24px 0 0;
  color: #526b7a;
  font-size: .9375rem;
  line-height: 1.65;
}

html.refresh-root body.courses-v2 .public-course-phone {
  display: inline;
  color: var(--medos-blue-text);
  font-size: inherit;
  font-weight: 600;
  text-align: left;
  text-decoration: underline;
  text-underline-offset: 3px;
}

html.refresh-root body.courses-v2 .news-empty {
  display: grid;
  justify-items: start;
  gap: 16px;
  min-height: 0;
  max-width: 720px;
  margin: 0;
  padding: 24px 0;
  border: 0;
  border-top: 1px solid var(--qa-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  text-align: left;
}

html.refresh-root body.courses-v2 .news-empty > span {
  width: auto;
  height: auto;
  background: transparent;
  color: var(--medos-blue-text);
  font-size: .8125rem;
  letter-spacing: .075em;
}

@media (max-width: 760px) {
  html.refresh-root body.courses-v2 .public-course-card {
    grid-template-columns: minmax(0, 1fr);
    gap: 20px;
    padding: 26px 0;
  }

  html.refresh-root body.courses-v2 .public-course-facts > div {
    grid-template-columns: 5.5rem minmax(0, 1fr);
    gap: 10px;
  }

  html.refresh-root body.courses-v2 .public-course-actions {
    margin-top: 16px;
  }
}

/* Editorial pages: content determines the height; the shared type scale stays. */
html.refresh-root body.medos-site.news-v2 .subpage-hero,
html.refresh-root body.medos-site .subpage-hero.legal-hero {
  padding-top: clamp(34px, 3.5vw, 52px);
  padding-bottom: clamp(30px, 3.2vw, 46px);
}

/* Dated practice updates read as a list, including when there is only one. */
html.refresh-root body.medos-site.news-v2 .content-page {
  padding-top: clamp(28px, 3vw, 44px);
  padding-bottom: clamp(46px, 5vw, 72px);
}
html.refresh-root body.medos-site.news-v2 .news-grid-page {
  display: block;
}
html.refresh-root body.medos-site.news-v2 .news-grid-page .news-card {
  display: grid;
  grid-template-columns: 150px minmax(0, 1fr);
  grid-template-areas: "meta title" "meta body";
  column-gap: clamp(26px, 4vw, 56px);
  row-gap: 12px;
  min-height: 0;
  padding: 28px 0;
  border: 0;
  border-bottom: 1px solid var(--qa-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  transform: none;
}
html.refresh-root body.medos-site.news-v2 .news-card .news-meta {
  grid-area: meta;
  display: flex;
  flex-direction: column-reverse;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 8px;
  min-width: 0;
  margin: 4px 0 0;
  overflow-wrap: anywhere;
}
html.refresh-root body.medos-site.news-v2 .news-meta time {
  font-size: .875rem;
  letter-spacing: .025em;
}
html.refresh-root body.medos-site.news-v2 .news-card h2 {
  grid-area: title;
  margin: 0;
  max-width: 48ch;
}
html.refresh-root body.medos-site.news-v2 .news-card > p {
  grid-area: body;
  margin: 0;
  max-width: 78ch;
}
html.refresh-root body.medos-site.news-v2 .news-empty {
  min-height: 0;
  padding: 24px 0;
  border: 0;
  border-bottom: 1px solid var(--qa-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

/* One legal document, with section labels alongside comfortable reading lines. */
html.refresh-root body.medos-site .legal-page {
  display: block;
  padding-top: clamp(18px, 2vw, 30px);
}
html.refresh-root body.medos-site .legal-page .legal-grid {
  display: block;
}
html.refresh-root body.medos-site .legal-page article {
  display: grid;
  grid-template-columns: minmax(180px, .32fr) minmax(0, 1fr);
  column-gap: clamp(28px, 4vw, 56px);
  row-gap: 0;
  padding: 28px 0;
  border: 0;
  border-bottom: 1px solid var(--qa-line);
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
html.refresh-root body.medos-site .legal-page article h2 {
  grid-column: 1;
  grid-row: 1;
  margin: 0;
}
html.refresh-root body.medos-site .legal-page article > p {
  grid-column: 2;
  max-width: 78ch;
  margin: 0 0 14px;
}
html.refresh-root body.medos-site .legal-page article > p:last-child {
  margin-bottom: 0;
}

@media (max-width: 760px) {
  html.refresh-root body.medos-site.news-v2 .news-grid-page .news-card {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "meta" "title" "body";
    row-gap: 10px;
    padding: 24px 0;
  }
  html.refresh-root body.medos-site.news-v2 .news-card .news-meta {
    flex-direction: row-reverse;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: baseline;
    gap: 6px 16px;
    margin: 0 0 2px;
  }
  html.refresh-root body.medos-site .legal-page article {
    display: block;
    padding: 24px 0;
  }
  html.refresh-root body.medos-site .legal-page article h2 {
    margin: 0 0 12px;
  }
}
/* Archil's original photographs and the practice's supplied content. */
html.refresh-root body.medos-site .home-practice-collage {
  display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:14px;
  min-width:0; align-self:stretch;
}
html.refresh-root body.medos-site .home-practice-collage figure {
  position:relative; margin:0; min-width:0; min-height:190px;
  overflow:hidden; border-radius:16px; background:#eaf3f7;
}
html.refresh-root body.medos-site .home-practice-collage figure:first-child { grid-row:span 2; }
html.refresh-root body.medos-site .home-practice-collage img { display:block; width:100%; height:100%; min-height:190px; object-fit:cover; }
html.refresh-root body.medos-site .home-practice-collage figcaption {
  position:absolute; left:12px; right:12px; bottom:12px; padding:9px 12px;
  border-radius:9px; background:#fff; color:#203443; font-size:.8125rem; line-height:1.4; font-weight:700;
}
html.refresh-root body.medos-site .home-team-photo img,
html.refresh-root body.medos-site .practice-v2-hero-team img {
  width:100%; height:auto; aspect-ratio:3/2; object-fit:cover; object-position:50% 12%;
}
html.refresh-root body.medos-site img[src*="archil-biniashvili-original.jpg"] { object-position:50% 50%; }
html.refresh-root body.medos-site .practice-v2-profile-media { position:relative; }
html.refresh-root body.medos-site .practice-v2-profile-media img { position:absolute; inset:0; width:100%; height:100%; }
html.refresh-root body.medos-site .home-team-avatar img[src*="archil-biniashvili-original.jpg"] { object-position:50% 43%; }
html.refresh-root body.medos-site .methods-qualification { display:grid; gap:5px; font-size:1rem; }
html.refresh-root body.medos-site .methods-approach {
  width:min(var(--qa-max),calc(100% - 2 * var(--qa-gutter))); margin:0 auto;
  padding-block:clamp(36px,5vw,72px); display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,5vw,72px);
  align-items:center; border-bottom:1px solid var(--qa-line);
}
html.refresh-root body.medos-site .methods-approach h2 { max-width:25ch; margin-bottom:0; }
html.refresh-root body.medos-site .methods-approach > p { margin:0; line-height:1.75; }
html.refresh-root body.medos-site .pilates-benefits { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
html.refresh-root body.medos-site .pilates-benefits article { padding:26px; border:1px solid var(--qa-line); border-radius:16px; background:#fff; }
html.refresh-root body.medos-site .pilates-benefits article > span { color:#316682; font-size:.8125rem; font-weight:800; }
html.refresh-root body.medos-site .pilates-benefits h3 { margin:18px 0 10px; font-size:1.25rem; }
html.refresh-root body.medos-site .pilates-benefits p { margin:0; }
html.refresh-root body.medos-site .pilates-course-details { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:48px; }
html.refresh-root body.medos-site .pilates-course-details article { padding:32px; border-radius:18px; background:#edf6f9; }
html.refresh-root body.medos-site .pilates-course-details h2 { font-size:clamp(1.5rem,2vw,2rem); }
html.refresh-root body.medos-site .pilates-contact > div:last-child { display:flex; flex-wrap:wrap; gap:12px; }
html.refresh-root body.medos-site .medos-landmark-map { height:auto; isolation:isolate; background:#fff; }
html.refresh-root body.medos-site .medos-landmark-map .external-map-stage { height:420px; }
html.refresh-root body.medos-site .medos-landmark-map .external-map-placeholder { padding:20px; }
html.refresh-root body.medos-site .landmark-map-canvas { width:100%; height:100%; background:#eaf1f4; font:inherit; z-index:0; }
html.refresh-root body.medos-site .landmark-map-canvas img.leaflet-tile { max-width:none!important; max-height:none!important; border:0; border-radius:0; box-shadow:none; }
html.refresh-root body.medos-site .landmark-map-canvas .leaflet-control-zoom a { padding:0; color:#203443; }
html.refresh-root body.medos-site .landmark-map-canvas .leaflet-control-attribution { padding:3px 6px; font-size:11px; background:#fff; color:#203443; }
html.refresh-root body.medos-site .landmark-map-canvas .leaflet-control-attribution a { color:#005575; }
html.refresh-root body.medos-site .landmark-pin {
  display:grid; place-items:center; border:3px solid #fff; border-radius:50%;
  background:#415a73; color:#fff; font-size:14px; font-weight:800; box-shadow:0 2px 9px #20344350;
}
html.refresh-root body.medos-site .landmark-pin-medos { background:#00769e; }
html.refresh-root body.medos-site .landmark-map-canvas .leaflet-tooltip { color:#203443; background:#fff; border-color:#d7e4eb; font-size:12px; font-weight:700; }
html.refresh-root body.medos-site .landmark-map-canvas .leaflet-popup-content { color:#203443; font-size:14px; line-height:1.5; }
html.refresh-root body.medos-site .landmark-map-canvas .leaflet-popup-content p { margin:6px 0; font-size:13px; }
html.refresh-root body.medos-site .landmark-map-key { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:20px 20px 12px; background:#fff; }
html.refresh-root body.medos-site .landmark-map-key button {
  display:flex; align-items:center; gap:8px; padding:8px; min-height:44px; border:1px solid #d7e4eb;
  background:#fff; color:#203443; border-radius:8px; font:inherit; font-size:12px; text-align:left; cursor:pointer;
}
html.refresh-root body.medos-site .landmark-map-key button > span { display:flex; align-items:center; justify-content:center; width:24px; height:24px; flex-shrink:0; margin:0; border-radius:50%; background:#415a73; color:#fff; font-size:12px; line-height:1; font-weight:800; }
html.refresh-root body.medos-site .landmark-map-key button:first-child > span { background:#00769e; }
html.refresh-root body.medos-site .medos-landmark-map .external-map-disable { position:static; margin:0 20px 20px auto; line-height:1.4; }
html.refresh-root body.medos-site .medos-landmark-map .external-map-disable:not([hidden]) { display:block; }
html.refresh-root body.medos-site .landmark-map-status { margin:0; padding:8px 20px 16px; font-size:13px; }
html.refresh-root body.practice-v2 .practice-v2-map-info { padding:20px; border-top:1px solid var(--qa-line); gap:16px; text-align:left; }
html.refresh-root body.practice-v2 .practice-v2-map-info > div { min-width:0; }
html.refresh-root body.practice-v2 .practice-v2-map-info > a {
  display:inline-flex; align-items:center; justify-content:center; min-height:44px;
  margin:0; padding:10px 16px; font-size:.875rem; line-height:1.4; text-align:center;
}
@media(max-width:600px) {
  html.refresh-root body.practice-v2 .practice-v2-map-info { align-items:stretch; }
  html.refresh-root body.practice-v2 .practice-v2-map-info > a { width:100%; }
  html.refresh-root body.medos-site .medos-landmark-map .external-map-disable { width:calc(100% - 40px); margin-inline:20px; }
}
@media (max-width:900px) {
  html.refresh-root body.medos-site .pilates-benefits { grid-template-columns:repeat(2,minmax(0,1fr)); }
  html.refresh-root body.medos-site .methods-approach { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  html.refresh-root body.medos-site .home-practice-collage { grid-template-columns:1fr 1fr; gap:10px; }
  html.refresh-root body.medos-site .home-practice-collage figure:first-child { grid-row:auto; grid-column:1/-1; height:230px; }
  html.refresh-root body.medos-site .home-practice-collage figure { min-height:170px; }
  html.refresh-root body.medos-site .home-practice-collage img { min-height:170px; }
  html.refresh-root body.medos-site .home-practice-collage figcaption { left:8px; right:8px; bottom:8px; padding:8px; font-size:.75rem; }
  html.refresh-root body.medos-site .pilates-benefits,html.refresh-root body.medos-site .pilates-course-details { grid-template-columns:1fr; }
  html.refresh-root body.medos-site .pilates-course-details { margin-top:28px; gap:18px; }
  html.refresh-root body.medos-site .pilates-course-details article { padding:24px; }
  html.refresh-root body.medos-site .practice-v2-profile { display:block; }
  html.refresh-root body.medos-site .practice-v2-profile-media { width:min(240px,75%); margin-bottom:22px; }
  html.refresh-root body.medos-site .landmark-map-key { grid-template-columns:1fr; }
}

/* Two practice lines, with a separate message action and optional team contacts. */
html.refresh-root body.medos-site .practice-phone-pair {
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0;
  width:min(100%,440px); min-width:0; padding:6px; border:1px solid #cedee6;
  border-radius:14px; background:#fff;
}
html.refresh-root body.medos-site .practice-phone-pair a {
  display:grid; gap:4px; padding:10px 14px; min-width:0; color:#203443;
  text-decoration:none; border-radius:9px; text-align:left;
}
html.refresh-root body.medos-site .practice-phone-pair a + a { border-left:1px solid #dbe7ed; }
html.refresh-root body.medos-site .practice-phone-pair a:hover { background:#edf6fa; }
html.refresh-root body.medos-site .practice-phone-pair span { color:#536674; font-size:.75rem; font-weight:600; }
html.refresh-root body.medos-site .practice-phone-pair strong { color:#315f7a; font-size:1rem; line-height:1.4; white-space:nowrap; }
html.refresh-root body.home-v2 .home-hero-actions { display:flex; flex-direction:column; align-items:flex-start; gap:14px; }
html.refresh-root body.home-v2 .home-hero-actions > .button-primary { width:auto; padding:15px 23px; }
html.refresh-root body.home-v2 .home-hero-actions > .practice-phone-pair { width:min(100%,440px); padding:6px; }
html.refresh-root body.home-v2 .home-hero-actions > .home-whatsapp-link {
  display:flex; align-items:center; justify-content:center; gap:10px;
  width:min(100%,440px); min-height:46px; margin:0; padding:11px 16px;
  border:1px solid #bed8c9; border-radius:12px; background:#eff8f3;
  color:#23563d; font-size:.9375rem; font-weight:700; text-decoration:none;
}
html.refresh-root body.home-v2 .home-whatsapp-link:hover { background:#e2f1e8; }
html.refresh-root body.medos-site .therapy-hero-actions { flex-wrap:wrap; align-items:center; }
html.refresh-root body.medos-site .header-phone-pair { display:grid; align-content:center; gap:0; }
html.refresh-root body.medos-site .header-phone-pair .header-contact-link {
  display:flex; align-items:center; gap:8px; min-height:28px; padding:2px 0; font-size:.75rem; line-height:1.3; white-space:nowrap;
}
html.refresh-root body.medos-site .header-phone-pair .header-contact-link span { min-width:35px; color:#536674; font-size:.6875rem; font-weight:500; }
html.refresh-root body.medos-site .contact-route-whatsapp {
  margin:6px 0; border:1px solid #bed8c9;
  border-radius:12px; background:#eff8f3;
}
html.refresh-root body.medos-site .contact-route-whatsapp:hover { background:#e2f1e8; }
html.refresh-root body.medos-site .team-phone {
  display:inline-flex; align-items:center; gap:8px; min-height:44px; max-width:100%;
  padding:8px 0; color:#315f7a; font-size:1rem; font-weight:700; line-height:1.5; text-decoration:none;
}
html.refresh-root body.medos-site .team-phone svg { flex-shrink:0; }
html.refresh-root body.medos-site .team-phone span { overflow-wrap:anywhere; }
html.refresh-root body.medos-site .team-phone:hover span { text-decoration:underline; text-underline-offset:4px; }
html.refresh-root body.medos-site .home-team-person .team-phone { font-size:.875rem; }
html.refresh-root body.medos-site .team-contacts {
  width:min(var(--qa-max),calc(100% - 2 * var(--qa-gutter))); margin:0 auto;
  padding-block:clamp(36px,5vw,64px); border-top:1px solid var(--qa-line);
  display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:clamp(24px,4vw,64px); align-items:start;
}
html.refresh-root body.medos-site .team-contacts > div > p:last-child { max-width:48ch; }
html.refresh-root body.medos-site .team-contact-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
html.refresh-root body.medos-site .team-contact-card { padding:24px; border:1px solid #d4e3e9; border-radius:16px; background:#f5f9fb; }
html.refresh-root body.medos-site .team-contact-card .team-role { margin:0 0 8px; font-size:.8125rem; color:#536674; }
html.refresh-root body.medos-site .team-contact-card h3 { margin:0 0 8px; font-size:1.25rem; line-height:1.35; }
html.refresh-root body.medos-site .appointment-empty > a { margin:8px 8px 0 0; }
@media(max-width:1050px) {
  html.refresh-root body.medos-site .header-phone-pair { display:none; }
}
@media(max-width:900px) {
  html.refresh-root body.medos-site .team-contacts { grid-template-columns:1fr; }
}
@media(max-width:600px) {
  html.refresh-root body.medos-site .team-contact-list { grid-template-columns:1fr; }
  html.refresh-root body.medos-site .practice-phone-pair a { padding:10px; }
  html.refresh-root body.medos-site .practice-phone-pair strong { font-size:.875rem; }
  html.refresh-root body.home-v2 .home-hero-actions > .button-primary { width:100%; }
}

/* A focused booking form, with enough room for dates and optional questions. */
html.refresh-root body.course-booking-page .mobile-booking-bar { display:none; }
html.refresh-root body.medos-site .course-booking-shell {
  width:min(1120px,calc(100% - 48px)); margin:0 auto; padding:72px 0;
  display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:64px; align-items:start;
}
html.refresh-root body.medos-site .course-booking-intro h1 { font-size:clamp(2rem,3.6vw,3.2rem); line-height:1.1; margin:12px 0 24px; }
html.refresh-root body.medos-site .course-booking-intro p { margin-bottom:20px; }
html.refresh-root body.medos-site .course-booking-card { min-width:0; padding:32px; border:1px solid #dce7ed; border-radius:24px; background:#fff; box-shadow:0 16px 48px #1837460a; }
html.refresh-root body.medos-site .course-booking-card h2 { font-size:1.6rem; line-height:1.25; margin:0 0 24px; }
html.refresh-root body.medos-site .course-booking-form { display:flex; flex-direction:column; gap:10px; }
html.refresh-root body.medos-site .course-booking-form label { font-weight:700; margin-top:8px; color:#1b303c; }
html.refresh-root body.medos-site .course-booking-form label span { font-weight:400; color:#526575; }
html.refresh-root body.medos-site .course-booking-form input,
html.refresh-root body.medos-site .course-booking-form select,
html.refresh-root body.medos-site .course-booking-form textarea { box-sizing:border-box; width:100%; min-width:0; max-width:100%; padding:13px 14px; font:inherit; font-size:16px; color:#1b303c; background:#fff; border:1px solid #8ba3b2; border-radius:10px; }
html.refresh-root body.medos-site .course-booking-form textarea { resize:vertical; }
html.refresh-root body.medos-site .course-booking-form select { text-overflow:ellipsis; }
html.refresh-root body.medos-site .course-booking-form :is(input,select,textarea):focus-visible { outline:3px solid #007b9f; outline-offset:3px; }
html.refresh-root body.medos-site .course-booking-form .button { margin-top:8px; min-height:52px; }
html.refresh-root body.medos-site .course-booking-details { display:grid; gap:8px; margin:2px 0 12px; padding:16px; border-radius:12px; background:#eff6f9; font-size:.9rem; }
html.refresh-root body.medos-site .course-booking-details div { display:grid; grid-template-columns:54px minmax(0,1fr); gap:12px; }
html.refresh-root body.medos-site .course-booking-details dt { font-weight:700; }
html.refresh-root body.medos-site .course-booking-details dd { margin:0; }
html.refresh-root body.medos-site .course-booking-note { margin:6px 0; font-size:.875rem; color:#526575; line-height:1.55; }
html.refresh-root body.medos-site .course-booking-note a { text-decoration:underline; }
html.refresh-root body.medos-site .course-booking-error { padding:16px; border-radius:10px; background:#fff0ef; color:#8b2020; }
html.refresh-root body.medos-site .course-booking-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
html.refresh-root body.medos-site .course-decision-shell { display:block; max-width:740px; }
html.refresh-root body.medos-site .course-decision-shell h1 { font-size:clamp(1.8rem,4vw,2.5rem); margin:12px 0 24px; }
html.refresh-root body.medos-site .course-decision-shell .course-booking-card > p { margin:20px 0; }
html.refresh-root body.medos-site .course-registration-message { white-space:normal; padding:16px; background:#eff6f9; border-radius:12px; }
@media(max-width:800px) {
  html.refresh-root body.medos-site .course-booking-shell { grid-template-columns:minmax(0,1fr); gap:28px; padding:40px 0; }
}
@media(max-width:480px) {
  html.refresh-root body.medos-site .course-booking-shell { width:calc(100% - 32px); }
  html.refresh-root body.medos-site .course-booking-card { padding:22px 18px; border-radius:18px; }
}
