:root {
  --ink: #202722;
  --graphite: #171c35;
  --deep-green: #202d53;
  --green-2: #465886;
  --ivory: #f4efe7;
  --paper: #fbf8f2;
  --terracotta: #900c25;
  --terracotta-soft: #e8a5ac;
  --sand: #d8c9ae;
  --line: rgba(32, 39, 34, .15);
  --line-light: rgba(244, 239, 231, .22);
  --serif: "Bricolage Grotesque", "Avenir Next", Arial, sans-serif;
  --sans: "Manrope", "Avenir Next", Arial, sans-serif;
  --display: "Manrope", Arial, sans-serif;
  --sidebar: 244px;
  --content: min(1180px, calc(100vw - var(--sidebar) - 72px));
  --ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--paper); font: 16px/1.55 var(--sans); -webkit-font-smoothing: antialiased; }
body::before { content: ""; position: fixed; inset: 0; pointer-events: none; z-index: 100; opacity: .05; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.4'/%3E%3C/svg%3E"); }
a { color: inherit; text-decoration: none; }
button { font: inherit; }
.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; }
.container { width: var(--content); margin-inline: auto; }
.skip-link { position: fixed; top: 10px; left: 10px; z-index: 200; padding: 10px 14px; background: var(--terracotta); color: #fff; transform: translateY(-160%); transition: transform .2s ease; }.skip-link:focus { transform: translateY(0); }

.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 50; display: flex; flex-direction: column; width: var(--sidebar); padding: 32px 24px 24px; color: var(--ivory); background: var(--graphite); }
.sidebar__top { display: flex; align-items: flex-start; justify-content: space-between; }.brand { display: inline-flex; flex-direction: column; gap: 4px; color: var(--ivory); }.brand__wordmark { font: 500 34px/.9 var(--serif); letter-spacing: -.08em; }.brand__descriptor { font: 600 8px/1 var(--display); letter-spacing: .16em; text-transform: uppercase; opacity: .58; }
.sidebar__content { flex: 1; padding-top: 86px; }.sidebar__location { display: flex; align-items: center; gap: 8px; margin-bottom: 28px; color: rgba(244,239,231,.5); font: 600 10px/1.2 var(--display); letter-spacing: .13em; text-transform: uppercase; }.location-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--terracotta-soft); }.side-nav { display: grid; }.side-nav__link { display: flex; align-items: center; justify-content: space-between; padding: 13px 0; border-top: 1px solid var(--line-light); color: rgba(244,239,231,.64); font: 600 12px/1 var(--display); letter-spacing: .04em; transition: color .2s ease, padding-left .2s ease; }.side-nav__link:last-child { border-bottom: 1px solid var(--line-light); }.side-nav__link:hover, .side-nav__link:focus-visible, .side-nav__link.is-active { padding-left: 8px; color: var(--ivory); }.side-nav__link.is-active { color: var(--terracotta-soft); }.side-nav__index { color: rgba(244,239,231,.28); font-size: 9px; letter-spacing: .12em; }.side-nav__link.is-active .side-nav__index { color: var(--terracotta-soft); }
.sidebar__bottom { display: grid; gap: 20px; }.sidebar__cta { display: flex; align-items: flex-end; justify-content: space-between; min-height: 112px; padding: 18px; color: var(--ink); background: var(--ivory); font: 600 12px/1.28 var(--display); letter-spacing: .04em; text-transform: uppercase; transition: background .2s ease, color .2s ease, transform .2s ease; }.sidebar__cta:hover, .sidebar__cta:focus-visible { color: #fff; background: var(--terracotta); transform: translateY(-3px); }.sidebar__cta svg { width: 22px; height: 22px; stroke: currentColor; fill: none; stroke-width: 1.5; }.sidebar__contact { display: flex; align-items: center; gap: 8px; color: rgba(244,239,231,.58); font: 500 11px/1 var(--display); }.sidebar__contact svg { width: 15px; height: 15px; fill: none; stroke: var(--terracotta-soft); stroke-width: 1.5; }.sidebar__toggle { display: none; border: 0; padding: 5px; color: var(--ivory); background: transparent; }.sidebar__toggle svg { width: 25px; height: 25px; fill: none; stroke: currentColor; stroke-width: 1.4; }
.mobile-cta { display: none; }

.site-main { min-height: 100vh; margin-left: var(--sidebar); overflow: hidden; }.site-footer { margin-left: var(--sidebar); color: var(--ivory); background: var(--graphite); }.site-footer__inner, .site-footer__bottom { width: var(--content); margin-inline: auto; }.site-footer__inner { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 50px; padding: 70px 0 55px; }.brand--footer { align-self: start; }.site-footer p { margin: 22px 0 0; color: rgba(244,239,231,.48); font-size: 13px; }.footer-links { display: grid; align-content: start; gap: 11px; color: rgba(244,239,231,.68); font-size: 13px; }.footer-links a:hover, .footer-links a:focus-visible { color: var(--terracotta-soft); }.site-footer__bottom { display: flex; justify-content: space-between; gap: 20px; padding: 16px 0 24px; border-top: 1px solid var(--line-light); color: rgba(244,239,231,.42); font: 600 9px/1.2 var(--display); letter-spacing: .12em; text-transform: uppercase; }

.eyebrow, .kicker, .page-label, .card-number, .data-label { color: var(--terracotta); font: 600 10px/1.3 var(--display); letter-spacing: .15em; text-transform: uppercase; }.kicker--light, .page-label--light { color: var(--terracotta-soft); }.eyebrow { display: flex; align-items: center; gap: 12px; }.eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }.section-label { display: flex; align-items: center; gap: 12px; color: var(--terracotta); font: 600 10px/1.3 var(--display); letter-spacing: .15em; text-transform: uppercase; }.section-label::before { content: ""; width: 28px; height: 1px; background: currentColor; }
h1, h2, h3 { margin: 0; font-family: var(--serif); font-weight: 500; letter-spacing: -.035em; } h1 em, h2 em { color: var(--terracotta); font-weight: 500; } p { margin: 0; }
.btn { display: inline-flex; align-items: center; gap: 14px; width: fit-content; padding: 14px 17px; border: 1px solid transparent; font: 600 10px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease; }.btn:hover, .btn:focus-visible { transform: translateY(-3px); }.btn svg, .inline-arrow svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.5; }.btn--terracotta { color: #fff8f0; background: var(--terracotta); }.btn--terracotta:hover, .btn--terracotta:focus-visible { background: #d47d5f; }.btn--dark { color: var(--ivory); background: var(--graphite); }.btn--light { color: var(--ink); background: var(--ivory); }.btn--outline { color: inherit; border-color: currentColor; background: transparent; }.inline-arrow { display: inline-flex; align-items: center; gap: 10px; padding-bottom: 5px; border-bottom: 1px solid currentColor; font: 600 10px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; transition: gap .2s ease; }.inline-arrow:hover, .inline-arrow:focus-visible { gap: 16px; }

.home-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .9fr); gap: 60px; align-items: stretch; min-height: 665px; padding: 54px max(36px, calc((100vw - var(--sidebar) - 1180px) / 2)) 42px; color: var(--ivory); background: var(--graphite); }.home-hero__copy { display: flex; flex-direction: column; justify-content: center; max-width: 630px; }.home-hero h1 { margin: 30px 0 25px; font-size: clamp(60px, 7vw, 110px); line-height: .88; }.home-hero__lead { max-width: 430px; margin-bottom: 32px; color: rgba(244,239,231,.7); font-size: 17px; line-height: 1.5; }.home-hero__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 22px; }.home-hero__visual { position: relative; min-height: 560px; overflow: hidden; background: var(--deep-green); }.home-hero__visual::before { content: ""; position: absolute; inset: 18px; z-index: 1; border: 1px solid rgba(244,239,231,.4); pointer-events: none; }.photo { position: absolute; inset: 0; background-position: center; background-size: cover; }.photo--hero { background-image: linear-gradient(180deg, rgba(20,35,29,.1), rgba(20,35,29,.62)), url("homepage.jpg"); }.home-hero__caption { position: absolute; right: 28px; bottom: 26px; left: 28px; z-index: 2; display: flex; align-items: center; justify-content: space-between; color: rgba(244,239,231,.78); font: 600 9px/1 var(--display); letter-spacing: .14em; text-transform: uppercase; }.home-hero__caption i { width: 6px; height: 6px; border-radius: 50%; background: var(--terracotta-soft); }.hero-index { position: absolute; top: 38px; left: 38px; z-index: 2; display: grid; place-items: center; width: 78px; height: 78px; border: 1px solid rgba(244,239,231,.58); border-radius: 50%; color: var(--ivory); font: 500 11px/1.3 var(--display); letter-spacing: .15em; text-align: center; text-transform: uppercase; transform: rotate(-12deg); }
.quick-strip { display: grid; grid-template-columns: repeat(4, 1fr); border-bottom: 1px solid var(--line); background: var(--paper); }.quick-strip__item { display: grid; gap: 9px; padding: 24px 25px; border-right: 1px solid var(--line); }.quick-strip__item:last-child { border-right: 0; }.quick-strip__item strong { font: 500 20px/1 var(--serif); }.quick-strip__item span { color: rgba(32,39,34,.57); font-size: 12px; }
.home-section { padding: 105px max(36px, calc((100vw - var(--sidebar) - 1180px) / 2)); }.home-section--dark { color: var(--ivory); background: var(--deep-green); }.home-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 40px; margin-bottom: 45px; }.home-section__head h2 { margin-top: 20px; font-size: clamp(44px, 5vw, 70px); line-height: .94; }.home-section__head p { max-width: 320px; color: rgba(32,39,34,.66); }.home-section--dark .home-section__head p { color: rgba(244,239,231,.68); }
.discipline-preview { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 14px; }.discipline-preview__card { position: relative; display: flex; min-height: 275px; overflow: hidden; padding: 26px; color: var(--ivory); background: var(--green-2); transition: transform .24s var(--ease), box-shadow .24s ease; }.discipline-preview__card:hover, .discipline-preview__card:focus-visible { transform: translateY(-6px); box-shadow: 0 18px 30px rgba(7,24,18,.18); }.discipline-preview__card--tall { grid-row: span 2; min-height: 564px; }.discipline-preview__card--photo { background: var(--green-2); }.discipline-preview__card--photo::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(23,63,55,.08), rgba(23,63,55,.76)), url("homepage3.jpg") center/cover; filter: saturate(.78); }.discipline-preview__card--sand { color: var(--ink); background: var(--sand); }.discipline-preview__card--terracotta { color: #fff8f0; background: var(--terracotta); }.discipline-preview__content { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: space-between; width: 100%; }.discipline-preview h3 { margin: auto 0 14px; font-size: clamp(34px, 4vw, 56px); line-height: .92; }.discipline-preview__card:not(.discipline-preview__card--tall) h3 { font-size: 40px; }.discipline-preview p { max-width: 285px; color: inherit; opacity: .74; font-size: 13px; line-height: 1.45; }.discipline-preview .inline-arrow { margin-top: 24px; width: fit-content; }
.home-method { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(50px, 8vw, 120px); align-items: center; }.home-method__visual { position: relative; min-height: 480px; overflow: hidden; background: var(--terracotta); }.photo--method { background-image: linear-gradient(180deg, rgba(24,63,55,.05), rgba(24,63,55,.56)), url("homepage2.jpg"); filter: saturate(.74); }.home-method__visual::after { content: ""; position: absolute; inset: 18px; border: 1px solid rgba(244,239,231,.52); }.home-method__copy h2 { margin: 24px 0; font-size: clamp(46px, 5vw, 74px); line-height: .94; }.home-method__copy > p { max-width: 520px; color: rgba(32,39,34,.68); }.principles { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 35px; }.principles span { padding: 9px 11px; border: 1px solid var(--line); color: rgba(32,39,34,.67); font: 600 9px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; }
.home-team { display: grid; grid-template-columns: .7fr 1.3fr; gap: 70px; }.home-team h2 { margin: 20px 0; font-size: clamp(46px, 5vw, 74px); line-height: .93; }.home-team__intro p { max-width: 320px; margin-bottom: 25px; color: rgba(244,239,231,.7); }.teacher-teasers { display: grid; gap: 14px; }.teacher-teaser { display: grid; grid-template-columns: 110px 1fr; min-height: 175px; border-top: 1px solid var(--line-light); }.teacher-teaser__photo { margin: 14px 0; background-position: center; background-size: cover; }.teacher-teaser__photo--emanuela { background-image: linear-gradient(145deg, rgba(23,63,55,.25), rgba(21,41,33,.76)), url("large7.jpg"); }.teacher-teaser__photo--donata { background-image: linear-gradient(145deg, rgba(190,101,72,.25), rgba(51,38,30,.72)), url("homepage3.jpg"); }.teacher-teaser__copy { padding: 25px 0 25px 22px; }.teacher-teaser__copy h3 { margin: 9px 0; font-size: 30px; }.teacher-teaser__copy p { max-width: 380px; color: rgba(244,239,231,.64); font-size: 13px; line-height: 1.45; }.teacher-teaser__role { color: var(--terracotta-soft); font: 600 9px/1.2 var(--display); letter-spacing: .12em; text-transform: uppercase; }
.home-contact { display: flex; align-items: center; justify-content: space-between; gap: 50px; padding: 70px max(36px, calc((100vw - var(--sidebar) - 1180px) / 2)); color: #fff8f0; background: var(--terracotta); }.home-contact h2 { max-width: 650px; font-size: clamp(42px, 5vw, 72px); line-height: .94; }.home-contact p { max-width: 280px; margin-top: 16px; color: rgba(255,248,240,.76); }

.page-hero { display: grid; grid-template-columns: 1fr .8fr; gap: 60px; align-items: end; min-height: 375px; padding: 72px max(36px, calc((100vw - var(--sidebar) - 1180px) / 2)) 60px; color: var(--ivory); background: var(--graphite); }.page-hero h1 { margin-top: 23px; font-size: clamp(60px, 8vw, 108px); line-height: .86; }.page-hero__intro { max-width: 320px; padding-bottom: 5px; color: rgba(244,239,231,.68); }.page-hero__meta { display: flex; gap: 18px; margin-top: 23px; color: var(--terracotta-soft); font: 600 10px/1.2 var(--display); letter-spacing: .12em; text-transform: uppercase; }.page-hero__photo { min-height: 255px; background: var(--green-2); }.page-hero__photo .photo { opacity: .8; }.page-content { width: var(--content); margin-inline: auto; padding: 86px 0 120px; }.page-intro { display: grid; grid-template-columns: .75fr 1.25fr; gap: 80px; margin-bottom: 70px; }.page-intro h2 { font-size: clamp(42px, 5vw, 68px); line-height: .94; }.page-intro__text { max-width: 600px; color: rgba(32,39,34,.7); font-size: 17px; }.page-intro__text p + p { margin-top: 16px; }.content-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }.content-card { padding: 28px; border: 1px solid var(--line); background: #fffdf9; }.content-card--dark { color: var(--ivory); border-color: transparent; background: var(--deep-green); }.content-card--terracotta { color: #fff8f0; border-color: transparent; background: var(--terracotta); }.content-card__number { margin-bottom: 52px; }.content-card h3 { margin-bottom: 13px; font-size: 38px; line-height: .94; }.content-card p { color: rgba(32,39,34,.67); font-size: 14px; }.content-card--dark p, .content-card--terracotta p { color: rgba(244,239,231,.72); }.content-card--wide { grid-column: 1 / -1; }.image-band { position: relative; min-height: 330px; overflow: hidden; color: var(--ivory); }.image-band .photo { opacity: .9; }.image-band__content { position: relative; z-index: 1; display: flex; flex-direction: column; justify-content: flex-end; min-height: 330px; padding: 30px; background: linear-gradient(180deg, transparent 30%, rgba(20,31,27,.72)); }.image-band h3 { max-width: 600px; font-size: clamp(40px, 6vw, 72px); line-height: .92; }.image-band p { max-width: 380px; margin-top: 15px; color: rgba(244,239,231,.7); }
.schedule-table { border-top: 1px solid var(--line); }.schedule-row { display: grid; grid-template-columns: 1.2fr .8fr; gap: 22px; padding: 16px 0; border-bottom: 1px solid var(--line); }.schedule-row strong { font-weight: 500; }.price-table { display: grid; grid-template-columns: 1.8fr repeat(3, .6fr); gap: 15px; align-items: start; padding: 17px 0; border-bottom: 1px solid var(--line); font-size: 14px; }.price-table small { display: block; margin-top: 5px; color: rgba(32,39,34,.55); font-size: 11px; }.price-table--head { color: rgba(32,39,34,.5); font: 600 9px/1.2 var(--display); letter-spacing: .1em; text-transform: uppercase; border-bottom: 0; }.verification { display: inline-flex; align-items: center; gap: 9px; margin-bottom: 19px; color: rgba(32,39,34,.54); font: 600 9px/1.2 var(--display); letter-spacing: .1em; text-transform: uppercase; }.verification::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--terracotta); }
.teacher-page-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 15px; }.teacher-profile { display: grid; grid-template-columns: 135px 1fr; gap: 23px; min-height: 250px; padding: 16px; border: 1px solid var(--line); background: #fffdf9; }.teacher-profile__photo { min-height: 215px; background-position: center; background-size: cover; }.teacher-profile__photo--e { background-image: linear-gradient(145deg, rgba(23,63,55,.2), rgba(21,41,33,.78)), url("large7.jpg"); }.teacher-profile__photo--d { background-image: linear-gradient(145deg, rgba(190,101,72,.24), rgba(51,38,30,.78)), url("homepage3.jpg"); }.teacher-profile h3 { margin: 10px 0 13px; font-size: 34px; line-height: .94; }.teacher-profile p { color: rgba(32,39,34,.68); font-size: 13px; line-height: 1.48; }.teacher-profile a { display: inline-flex; margin-top: 20px; color: var(--terracotta); font: 600 10px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; }
.map-panel { position: relative; min-height: 420px; overflow: hidden; background: #e5d4bd; }.map-panel::before { content: ""; position: absolute; inset: 16px; border: 1px solid rgba(32,39,34,.22); }.map-lines { position: absolute; inset: -10%; opacity: .7; background-image: linear-gradient(32deg, transparent 47%, rgba(190,101,72,.3) 48%, rgba(190,101,72,.3) 51%, transparent 52%), linear-gradient(112deg, transparent 45%, rgba(23,63,55,.2) 46%, rgba(23,63,55,.2) 48%, transparent 49%), linear-gradient(90deg, transparent 48%, rgba(32,39,34,.1) 49%, rgba(32,39,34,.1) 50%, transparent 51%); background-size: 110px 110px, 140px 140px, 95px 95px; transform: rotate(-4deg) scale(1.2); }.map-route { position: absolute; top: 48%; left: -10%; width: 120%; height: 18px; border: 2px solid rgba(255,248,240,.7); background: rgba(23,63,55,.68); transform: rotate(-17deg); }.map-route::before { content: ""; position: absolute; top: -8px; left: 52%; width: 12px; height: 12px; border-radius: 50%; background: var(--terracotta); box-shadow: 0 0 0 7px rgba(190,101,72,.2); }.map-caption { position: absolute; top: 39%; left: 52%; display: flex; align-items: center; gap: 10px; color: var(--ink); font: 600 11px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; }.map-caption svg { width: 20px; height: 20px; fill: none; stroke: var(--terracotta); stroke-width: 1.6; }.map-note { margin-top: 12px; color: rgba(32,39,34,.55); font-size: 13px; }
.contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; }.contact-card { min-height: 220px; padding: 30px; color: var(--ivory); background: var(--deep-green); }.contact-card--light { color: var(--ink); background: #fffdf9; border: 1px solid var(--line); }.contact-card h2, .contact-card h3 { margin: 25px 0 15px; font-size: 42px; line-height: .94; }.contact-card p { max-width: 360px; color: rgba(244,239,231,.7); }.contact-card--light p { color: rgba(32,39,34,.66); }.contact-link { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; color: var(--terracotta-soft); font: 600 11px/1 var(--display); letter-spacing: .1em; text-transform: uppercase; }.contact-card--light .contact-link { color: var(--terracotta); }
.events-empty { display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; align-items: center; padding: 48px 0; border-block: 1px solid var(--line); }.events-empty h2 { font-size: clamp(44px, 5vw, 68px); line-height: .94; }.events-empty p { max-width: 460px; color: rgba(32,39,34,.68); }.archive-note { margin-top: 60px; padding: 24px; border-left: 2px solid var(--terracotta); color: rgba(32,39,34,.64); background: #fffdf9; font-size: 13px; }
.legal-copy { max-width: 760px; }.legal-copy h2 { margin: 45px 0 14px; font-size: 38px; }.legal-copy p { color: rgba(32,39,34,.7); }.legal-copy p + p { margin-top: 14px; }.legal-alert { padding: 20px; border-left: 2px solid var(--terracotta); background: #fffdf9; color: rgba(32,39,34,.68); font-size: 14px; }
.motion-ready .reveal { opacity: 0; transform: translateY(20px); transition: opacity .75s var(--ease), transform .75s var(--ease); }.reveal--delay-1 { transition-delay: .08s; }.reveal--delay-2 { transition-delay: .16s; }.motion-ready .is-visible { opacity: 1; transform: translateY(0); }

@media (max-width: 1020px) {
  :root { --sidebar: 0px; --content: min(100% - 42px, 840px); }
  .sidebar { inset: 0 0 auto; width: 100%; height: 73px; padding: 18px 21px; }.sidebar__top { align-items: center; }.brand__wordmark { font-size: 28px; }.sidebar__toggle { display: block; }.sidebar__content { position: absolute; top: 73px; right: 16px; left: 16px; display: none; padding: 14px 18px 22px; background: var(--graphite); box-shadow: 0 20px 40px rgba(0,0,0,.2); }.sidebar.is-open .sidebar__content { display: block; }.sidebar__location { margin: 2px 0 15px; }.sidebar__bottom { display: none; }.side-nav__link { padding: 14px 0; }.mobile-cta { position: fixed; right: 16px; bottom: 16px; left: 16px; z-index: 40; display: block; }.mobile-cta a { display: flex; align-items: center; justify-content: space-between; padding: 15px 17px; color: #fff8f0; background: var(--terracotta); box-shadow: 0 10px 28px rgba(32,39,34,.22); font: 600 11px/1 var(--display); letter-spacing: .08em; text-transform: uppercase; }.mobile-cta svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.5; }.site-main, .site-footer { margin-left: 0; }.site-footer { padding-bottom: 65px; }.home-hero { grid-template-columns: 1fr; min-height: auto; padding-top: 120px; }.home-hero__visual { min-height: 420px; }.page-hero { grid-template-columns: 1fr; min-height: auto; padding-top: 125px; }.page-hero__photo { min-height: 230px; }.site-footer__inner, .site-footer__bottom { width: var(--content); }
}

@media (max-width: 650px) {
  :root { --content: calc(100vw - 32px); }.sidebar { height: 67px; padding: 16px; }.sidebar__content { top: 67px; right: 8px; left: 8px; }.home-hero { padding: 110px 16px 24px; gap: 34px; }.home-hero h1 { margin-top: 22px; font-size: clamp(56px, 16vw, 86px); }.home-hero__lead { font-size: 16px; }.home-hero__visual { min-height: 380px; }.home-hero__visual::before { inset: 13px; }.hero-index { top: 28px; left: 28px; width: 70px; height: 70px; font-size: 9px; }.quick-strip { grid-template-columns: 1fr 1fr; }.quick-strip__item { padding: 18px 16px; }.quick-strip__item:nth-child(2) { border-right: 0; }.quick-strip__item:nth-child(-n+2) { border-bottom: 1px solid var(--line); }.home-section { padding: 75px 16px; }.home-section__head, .home-method, .home-team { display: block; }.home-section__head { margin-bottom: 34px; }.home-section__head p { margin-top: 22px; }.discipline-preview { grid-template-columns: 1fr; }.discipline-preview__card, .discipline-preview__card--tall { min-height: 285px; }.home-method__visual { min-height: 365px; margin-bottom: 40px; }.home-team__intro { margin-bottom: 40px; }.teacher-teaser { grid-template-columns: 90px 1fr; }.teacher-teaser__copy { padding-left: 16px; }.teacher-teaser__copy h3 { font-size: 26px; }.home-contact { display: block; padding: 65px 16px; }.home-contact .btn { margin-top: 30px; }.page-hero { padding: 110px 16px 45px; gap: 40px; }.page-hero h1 { font-size: clamp(58px, 16vw, 82px); }.page-content { width: var(--content); padding: 65px 0 100px; }.page-intro, .content-grid, .teacher-page-grid, .contact-grid, .events-empty { display: block; }.page-intro h2 { margin-bottom: 25px; }.content-card, .teacher-profile, .contact-card { margin-top: 14px; }.teacher-profile { grid-template-columns: 90px 1fr; padding: 12px; gap: 14px; }.teacher-profile__photo { min-height: 180px; }.teacher-profile h3 { font-size: 27px; }.price-table { grid-template-columns: 1.4fr repeat(3, .55fr); gap: 7px; font-size: 11px; }.price-table--head { font-size: 7px; }.price-table small { font-size: 9px; }.schedule-row { grid-template-columns: 1fr auto; }.map-panel { min-height: 335px; margin-top: 30px; }.events-empty h2 { margin-bottom: 24px; }.site-footer__inner { display: block; padding: 55px 0 35px; }.footer-links { margin-top: 28px; }.site-footer__bottom { display: block; padding-bottom: 24px; }.site-footer__bottom span { display: block; margin-top: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; } .reveal { opacity: 1; transform: none; }
}

/* Brand and responsive refinements */
.home-hero h1 em,.page-hero h1 em,.home-section--dark h2 em{color:#e8a5ac}
.home-hero .eyebrow,.home-section--dark .section-label,.home-section--dark .card-number{color:#e8a5ac}
.btn--terracotta{color:white}.discipline-preview__card--terracotta .card-number{color:white}
.brand__logo{display:block;object-fit:contain;width:112px;height:auto;background:white;padding:5px}
.brand__descriptor{font-size:12px;line-height:1.4;letter-spacing:.04em;margin-top:8px}
.sidebar{overflow-y:auto}.sidebar__content{padding-top:32px}.side-nav__link{font-size:14px}.sidebar__cta{font-size:14px;min-height:95px}
.page-hero__photo{position:relative;overflow:hidden}
.discipline-preview__card--photo::before{background-image:linear-gradient(180deg,transparent,rgba(20,30,48,.85)),url("home_box_pilates.jpg")}
.teacher-teaser__photo--emanuela,.teacher-profile__photo--e{background-image:url("emanuela.jpg");background-position:center top}
.teacher-teaser__photo--donata,.teacher-profile__photo--d{background-image:url("donata.jpg");background-position:center top}
.home-hero h1{font-size:clamp(48px,5.6vw,88px);line-height:1.03;letter-spacing:-.04em}
.page-hero h1{font-size:clamp(48px,5.5vw,82px);line-height:1.05;overflow-wrap:normal}
h2,h3{line-height:1.08!important}.home-hero{gap:30px;grid-template-columns:1fr 1fr;min-height:580px}.home-hero__visual{min-height:480px}
.home-section{padding-top:64px;padding-bottom:64px}.home-method__visual{min-height:360px}
.discipline-preview__card--tall{grid-row:auto;min-height:320px}.discipline-preview__card{min-height:320px}
.home-team{gap:35px}.home-method__copy>.inline-arrow{margin-top:28px}
.btn,.inline-arrow{font-size:14px;line-height:1.4;letter-spacing:.02em}
.content-card p,.teacher-profile p,.teacher-teaser__copy p,.discipline-preview p{font-size:16px}
.kicker,.page-label,.card-number,.section-label,.eyebrow,.teacher-teaser__role{font-size:12px;letter-spacing:.08em}
.map-panel{min-height:260px;background:#e9eaf2}.map-access{position:relative;display:flex;align-items:center;justify-content:center;gap:16px;flex-direction:column;min-height:260px;padding:30px}.map-access svg{width:50px;height:50px;fill:none;stroke:var(--terracotta);stroke-width:1.4}
.photo{transition:transform .8s ease}.home-hero__visual:hover .photo{transform:scale(1.025)}
:focus-visible{outline:3px solid #708ccf;outline-offset:5px}
@view-transition{navigation:auto}::view-transition-old(root){animation-duration:150ms}::view-transition-new(root){animation-duration:220ms}
@media(max-height:800px) and (min-width:1021px){.sidebar{padding-top:18px}.sidebar__content{padding-top:20px}.side-nav__link{padding:10px 0}.sidebar__contact{font-size:12px}.brand__logo{width:85px}}
@media(max-width:1020px){.sidebar{overflow:visible}.sidebar__top .brand{flex-direction:row;align-items:center;gap:12px}.sidebar__top .brand__logo{width:53px;height:47px}.brand__descriptor{margin:0}.home-hero{grid-template-columns:1fr}.home-hero__visual{min-height:360px}.sidebar__content{max-height:calc(100dvh - 150px);overflow:auto}}
@media(max-width:650px){.home-hero h1{font-size:clamp(42px,12vw,68px)}.page-hero h1{font-size:clamp(38px,11vw,62px)}.teacher-profile{display:block}.teacher-profile__photo{height:250px;background-size:contain;background-repeat:no-repeat}.home-section{padding-block:48px}.discipline-preview__card--tall,.discipline-preview__card{min-height:250px}.map-note{font-size:14px}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal{opacity:1;transform:none}::view-transition-group(*){animation:none}.photo{transition:none}}

/* Persistent top navigation, shared by every page. */
:root{--sidebar:0px;--content:min(1180px,calc(100vw - 72px));--header-height:88px}
html{scroll-padding-top:calc(var(--header-height) + 20px)}
.site-main{margin-left:0;padding-top:var(--header-height)}
.site-footer{margin-left:0;padding-bottom:0}
.topbar{position:fixed;inset:0 0 auto;z-index:60;height:var(--header-height);padding:12px 36px;color:var(--ivory);background:var(--graphite);border-bottom:1px solid var(--line-light)}
.topbar .sidebar__top{height:100%;display:flex;align-items:center;gap:28px;max-width:1440px;margin:auto}
.topbar .brand{display:flex;flex-direction:row;align-items:center;gap:14px;margin-right:auto;flex-shrink:0}
.topbar .brand__logo{width:60px;height:58px;padding:3px;object-fit:contain}
.topbar .brand__descriptor{margin:0;max-width:130px;font-size:12px;line-height:1.5}
.topbar__primary{display:flex;align-items:center;gap:26px}
.topbar__primary a{font-size:14px;color:var(--ivory);white-space:nowrap;transition:color .2s}
.topbar__primary a:hover,.topbar__primary a[aria-current]{color:var(--terracotta-soft)}
.topbar__cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:12px 16px;font-size:14px;white-space:nowrap;background:var(--terracotta);color:white;transition:background .2s}
.topbar__cta:hover{background:#ac233e}.topbar__cta svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.5}
.topbar .sidebar__toggle{display:grid;place-items:center;min-width:44px;min-height:44px;cursor:pointer}
.topbar__dropdown{position:absolute;right:36px;top:calc(100% + 8px);width:310px;max-height:calc(100dvh - var(--header-height) - 24px);overflow-y:auto;padding:24px;background:var(--graphite);border:1px solid var(--line-light);box-shadow:0 20px 40px #0004}
.topbar__dropdown[hidden]{display:none}
.topbar__dropdown .sidebar__location{margin:0 0 20px}
.home-hero{padding-top:54px}.page-hero{padding-top:72px}
@media(max-width:1050px){.topbar .brand__descriptor{display:none}.topbar .sidebar__top{gap:18px}.topbar__primary{gap:18px}}
@media(max-width:760px){:root{--header-height:74px;--content:calc(100vw - 32px)}.topbar{padding:10px 16px}.topbar .brand__logo{width:51px;height:50px}.topbar__primary{display:none}.topbar .sidebar__top{gap:10px}.topbar__cta{font-size:13px;padding:10px 12px}.topbar__dropdown{left:16px;right:16px;width:auto}.home-hero{padding-top:36px}.page-hero{padding-top:42px}}

/* Shared responsive layout: intrinsic tracks prevent clipped content. */
:root { --gutter: clamp(16px, 3vw, 36px); --content: min(1180px, calc(100% - 2 * var(--gutter))); }
html, body { max-width: 100%; }
.site-main { overflow: visible; }
img { max-width: 100%; height: auto; }
svg { flex-shrink: 0; }
:is(.home-hero,.page-hero,.home-section,.home-contact) { padding-inline: max(var(--gutter), calc((100% - 1180px) / 2)); }
:is(.home-hero,.page-hero,.page-intro,.content-grid,.contact-grid,.teacher-page-grid,.discipline-preview,.home-method,.home-team,.site-footer__inner) > * { min-width: 0; }
h1,h2,h3,p,a,span,strong { overflow-wrap: anywhere; }
h1,h2,h3 { text-wrap: balance; }
.home-hero { grid-template-columns: repeat(2,minmax(0,1fr)); }
.page-hero { grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: clamp(24px,4vw,60px); }
.page-intro { grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(28px,5vw,80px); }
.content-grid,.contact-grid,.teacher-page-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.content-card { display: block; }
.content-card,.contact-card,.teacher-profile { margin-top: 0; }
.discipline-preview { grid-template-columns: repeat(3,minmax(0,1fr)); }
.home-method { grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap: clamp(28px,5vw,80px); }
.home-team { grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
.home-contact > div { min-width: 0; }
.home-contact > .btn { flex-shrink: 0; }
.btn,.inline-arrow,.contact-link { max-width: 100%; min-height: 44px; line-height: 1.5; }
.btn > svg,.btn > span { flex-shrink: 0; }
.btn .inline-arrow { min-height: 0; padding: 0; border: 0; }
.page-hero__meta { flex-wrap: wrap; row-gap: 10px; }
.topbar__primary a { display: flex; align-items: center; min-height: 44px; }
.topbar__cta { font-size: .875rem; line-height: 1.4; white-space: normal; }
.topbar .sidebar__toggle { flex: 0 0 44px; min-height: 44px; }
.side-nav__link { min-height: 44px; gap: 12px; line-height: 1.4; }
.topbar__dropdown { overscroll-behavior: contain; }
.footer-links { font-size: .875rem; }
.footer-links a { padding-block: 6px; }
.site-footer__inner { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 32px; }
.site-footer__bottom { line-height: 1.6; flex-wrap: wrap; }
.schedule-row { grid-template-columns: minmax(0,1fr) minmax(0,1fr); }
.schedule-row strong { text-align: right; }
.price-table { grid-template-columns: minmax(0,1.8fr) repeat(3,minmax(0,.7fr)); gap: 12px; font-size: 1rem; overflow: visible; }
.price-table--head { font-size: .875rem; }
.price-table small { font-size: .875rem; }
.verification { font-size: .75rem; line-height: 1.5; }
.verification::before { flex-shrink: 0; }
.teacher-profile { grid-template-columns: minmax(100px,.7fr) minmax(0,1fr); gap: 20px; }
.teacher-profile__photo { background-size: contain; background-repeat: no-repeat; background-position: center top; }
@media (max-width: 1100px) {
  .teacher-page-grid { grid-template-columns: minmax(0,1fr); }
  .teacher-profile { grid-template-columns: minmax(120px,.35fr) minmax(0,1fr); }
  .discipline-preview { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .discipline-preview__card:first-child { grid-column: 1 / -1; }
  .home-team { grid-template-columns: minmax(0,1fr); gap: 36px; }
  .home-team__intro p { max-width: 600px; }
}
@media (max-width: 900px) {
  .home-hero,.page-hero,.page-intro,.home-method,.events-empty { display: grid; grid-template-columns: minmax(0,1fr); gap: 32px; }
  .home-hero__copy { max-width: 720px; }
  .home-hero__visual { min-height: 0; aspect-ratio: 16 / 9; }
  .home-method__visual { min-height: 0; aspect-ratio: 4 / 3; max-height: 480px; margin: 0; }
  .page-hero__intro { max-width: 580px; }
  .page-hero__photo { min-height: 0; aspect-ratio: 16 / 7; }
  .home-section__head { align-items: flex-start; flex-direction: column; gap: 24px; }
  .home-section__head p { max-width: 580px; margin: 0; }
  .home-contact { align-items: flex-start; flex-direction: column; gap: 28px; }
  .home-contact .btn { margin: 0; }
  .site-footer__inner { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .site-footer__inner > :first-child { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  :root { --header-height: 74px; }
  .topbar { padding-inline: var(--gutter); }
  .topbar .sidebar__top { gap: 8px; }
  .topbar .brand { min-width: 0; flex-shrink: 1; }
  .topbar .brand__logo { width: 45px; height: 45px; flex-shrink: 0; }
  .topbar__cta { max-width: calc(100% - 105px); padding: 8px 10px; }
  .topbar__cta svg { display: none; }
  .topbar__dropdown { left: var(--gutter); right: var(--gutter); padding: 18px; }
  .home-hero h1,.page-hero h1 { font-size: clamp(2.375rem,8.5vw,4rem); }
  .home-section__head h2,.home-method__copy h2,.home-team h2,.home-contact h2,.page-intro h2,.events-empty h2 { font-size: clamp(2rem,6.5vw,3.5rem); }
  .home-hero__lead,.page-hero__intro,.page-intro__text { font-size: 1rem; }
  .content-grid,.contact-grid { grid-template-columns: minmax(0,1fr); }
  .content-card,.contact-card { padding: clamp(20px,4vw,28px); }
  .content-card h3,.contact-card h2,.contact-card h3 { font-size: clamp(1.875rem,7vw,2.625rem); }
  .page-content { padding-block: 48px 72px; }
  .page-intro { margin-bottom: 40px; }
  .page-intro h2,.events-empty h2 { margin: 0; }
  .home-hero__actions { gap: 16px; }
  .site-footer__inner,.site-footer__bottom { padding-inline: 0; }
}
@media (max-width: 600px) {
  .discipline-preview,.home-team { display: grid; grid-template-columns: minmax(0,1fr); }
  .discipline-preview__card:first-child { grid-column: auto; }
  .home-hero__visual { aspect-ratio: 1 / 1; }
  .home-hero__caption { left: 24px; right: 24px; line-height: 1.5; gap: 12px; }
  .hero-index { top: 26px; left: 26px; }
  .home-team__intro { margin: 0; }
  .teacher-profile { display: grid; grid-template-columns: minmax(0,1fr); padding: 20px; }
  .teacher-profile__photo { height: 260px; min-height: 0; }
  .teacher-teaser { grid-template-columns: 78px minmax(0,1fr); }
  .teacher-teaser__copy { min-width: 0; padding-left: 14px; }
  .teacher-teaser__copy h3 { font-size: 1.625rem; }
  .site-footer__inner { display: grid; grid-template-columns: minmax(0,1fr); gap: 24px; }
  .footer-links { margin: 0; }
  .price-table { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; }
  .price-table--head { display: none; }
  .price-table > :first-child { grid-column: 1 / -1; font-weight: 600; }
  .price-table strong::before { content: attr(data-label); display: block; margin-bottom: 4px; font-size: .875rem; font-weight: 400; }
  .price-table strong:empty { display: none; }
  .image-band__content { padding: 24px; }
  .image-band h3 { font-size: clamp(2rem,8vw,3rem); }
  .legal-copy h2 { font-size: 2rem; }
}
@media (max-height: 500px) and (orientation: landscape) {
  :root { --header-height: 64px; }
  .topbar { padding-block: 6px; }
  .topbar .brand__logo { height: 44px; width: 46px; }
  .topbar__dropdown { top: 100%; max-height: calc(100dvh - var(--header-height) - 8px); }
}

/* Embedded map stays interactive and fits both portrait and landscape screens. */
.map-panel { min-height: 0; margin-top: 0; }
.map-panel::before { content: none; }
.map-panel iframe { display: block; width: 100%; height: clamp(340px, 55vw, 520px); border: 0; }
.map-note[hidden] { display: none; }
[data-route-button]:disabled { opacity: .65; cursor: wait; }

/* Quiet, tactile interactions across the site. */
::selection { color: var(--paper); background: var(--terracotta); }
.topbar { height: auto; min-height: 88px; box-shadow: 0 4px 24px #10152a18; }
.topbar .sidebar__top { min-height: 63px; }
.topbar__primary a { position: relative; }
.topbar__primary a::after { content: ""; position: absolute; bottom: 4px; left: 0; right: 0; height: 1px; background: var(--terracotta-soft); transform: scaleX(0); transform-origin: left; transition: transform .25s var(--ease); }
.topbar__primary a[aria-current]::after,.topbar__primary a:focus-visible::after { transform: scaleX(1); }
.topbar__dropdown { transform-origin: top right; animation: menu-enter .2s var(--ease); }
@keyframes menu-enter { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } }
.btn,.topbar__cta,.sidebar__toggle { -webkit-tap-highlight-color: transparent; touch-action: manipulation; }
.btn:active,.topbar__cta:active { transform: translateY(1px); }
a.content-card { transition: transform .3s var(--ease), box-shadow .3s var(--ease), border-color .3s ease; }
.content-card__number { margin-bottom: clamp(28px,4vw,52px); }
.inline-arrow { transition: color .2s ease, gap .25s var(--ease); }
.back-to-top { display: inline-flex; gap: 12px; align-items: center; min-height: 44px; color: var(--ivory); font-size: .75rem; }
.back-to-top span { transition: transform .25s var(--ease); }
.legal-layout { display: grid; grid-template-columns: minmax(190px,.4fr) minmax(0,1fr); align-items: start; gap: clamp(32px,6vw,90px); }
.legal-index { position: sticky; top: calc(var(--header-height) + 28px); display: grid; gap: 8px; }
.legal-index .section-label { margin-bottom: 16px; }
.legal-index a { display: flex; align-items: baseline; gap: 14px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: .875rem; color: var(--terracotta); }
.legal-index a span { color: var(--ink); }
.legal-index a[aria-current] { border-color: var(--terracotta); }
.legal-index a[aria-current] span { color: var(--terracotta); }
.legal-section { padding-block: 40px; border-bottom: 1px solid var(--line); scroll-margin-top: 20px; }
.legal-section h2 { margin: 18px 0; font-size: clamp(2rem,3.5vw,3rem); }
.legal-section .inline-arrow { margin-top: 22px; color: var(--terracotta); }
.legal-alert { line-height: 1.7; }
@media (hover: hover) and (pointer: fine) {
  .topbar__primary a:hover::after { transform: scaleX(1); }
  a.content-card:hover { transform: translateY(-4px); border-color: var(--terracotta); box-shadow: 0 16px 32px #171c3510; }
  .back-to-top:hover span { transform: translateY(-4px); }
}
@media (max-width: 760px) {
  .topbar { min-height: 74px; }
  .topbar .sidebar__top { min-height: 53px; }
  .legal-layout { grid-template-columns: minmax(0,1fr); gap: 28px; }
  .legal-index { position: static; }
  .legal-section { padding-block: 32px; }
}
@media (max-height: 500px) and (orientation: landscape) {
  .topbar { min-height: 64px; }
  .topbar .sidebar__top { min-height: 51px; }
}
@media (prefers-reduced-motion: reduce) {
  .topbar__dropdown { animation: none; }
  a.content-card:hover,.btn:hover,.btn:active,.back-to-top:hover span { transform: none; }
}

.social-links { display: flex; flex-wrap: wrap; gap: 8px 22px; margin-top: 20px; }
.social-links a { display: inline-flex; align-items: center; gap: 12px; min-height: 44px; border-bottom: 1px solid currentColor; font-size: .875rem; }
.social-links a span[aria-hidden] { transition: transform .2s var(--ease); }
.social-links a:hover span[aria-hidden],.social-links a:focus-visible span[aria-hidden] { transform: translate(2px,-2px); }
.contact-social { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 24px; margin-top: 48px; padding-block: 32px; border-block: 1px solid var(--line); }
.contact-social h2 { margin-top: 16px; font-size: clamp(2rem,4vw,3rem); }
.contact-social .social-links { margin: 0; color: var(--terracotta); }
@media (prefers-reduced-motion: reduce) { .social-links a span[aria-hidden] { transform: none !important; } }

.motion-ready .reveal[data-motion-side] { --motion-x: -32px; transform: translate3d(var(--motion-x), 18px, 0); }
.motion-ready .reveal[data-motion-side="right"] { --motion-x: 32px; }
.motion-ready .reveal[data-motion-side].is-visible { transform: translate3d(0, 0, 0); }
@media (prefers-reduced-motion: reduce) { .motion-ready .reveal[data-motion-side] { opacity: 1; transform: none; transition: none; } }
