@charset "UTF-8";

:root {
  color-scheme: light;
  --vitalle-petrol: #4c6971;
  --vitalle-teal: #239a96;
  --vitalle-ink: #1b313f;
  --vitalle-ivory: #f5f7f3;
  --vitalle-mist: #dcece7;
  --vitalle-white: #fff;
  --vitalle-subtle: #e9efec;
  --vitalle-body: #42565b;
  --vitalle-border: rgba(27, 49, 63, .13);
  --vitalle-radius: 16px;
  --vitalle-space-section: clamp(5rem, 10vw, 10rem);
  --vitalle-container: 1280px;
  --serif: "Cormorant Garamond", Georgia, serif;
  --sans: "Manrope", "Avenir Next", sans-serif;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 92px; }
body { margin: 0; background: var(--vitalle-ivory); color: var(--vitalle-ink); font-family: var(--sans); font-size: 15px; -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid var(--vitalle-teal); outline-offset: 4px; }
::selection { background: var(--vitalle-mist); color: var(--vitalle-ink); }
.skip-link { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 12px 16px; transform: translateY(-150%); background: var(--vitalle-white); color: var(--vitalle-ink); }
.skip-link:focus { transform: translateY(0); }
.visually-hidden { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }

.site-header { position: sticky; z-index: 20; top: 0; border-bottom: 1px solid transparent; transition: background-color .25s ease, border-color .25s ease; }
.site-header.is-scrolled { border-color: var(--vitalle-border); background: rgba(245, 247, 243, .96); }
.header-inner { width: min(var(--vitalle-container), calc(100% - 80px)); min-height: 94px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 30px; }
.brand { justify-self: start; display: inline-flex; align-items: center; gap: 11px; min-width: 174px; }
.brand-seal { display: grid; width: 58px; height: 58px; overflow: hidden; flex: 0 0 auto; place-items: center; border: 1px solid rgba(27, 49, 63, .1); border-radius: 50%; background: var(--vitalle-white); }
.brand-seal img { display: block; width: 100%; height: 100%; padding: 4px; object-fit: contain; }
.brand-wordmark { display: flex; flex-direction: column; gap: 1px; }
.brand-wordmark strong { color: var(--vitalle-ink); font: 600 31px/.9 var(--serif); }
.brand-wordmark small { color: var(--vitalle-teal); font-size: 8px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.desktop-nav { display: flex; align-items: center; gap: clamp(16px, 2vw, 28px); }
.desktop-nav a { position: relative; padding: 10px 0; color: var(--vitalle-body); font-size: 11px; font-weight: 600; white-space: nowrap; transition: color .2s ease; }
.desktop-nav a::after { position: absolute; right: 0; bottom: 3px; left: 0; height: 1px; transform: scaleX(0); transform-origin: left; background: var(--vitalle-teal); content: ""; transition: transform .24s ease; }
.desktop-nav a:hover, .desktop-nav a[aria-current="page"] { color: var(--vitalle-ink); }
.desktop-nav a:hover::after { transform: scaleX(1); }
.header-cta { justify-self: end; display: inline-flex; align-items: center; gap: 16px; min-height: 46px; padding: 0 16px 0 19px; border: 1px solid rgba(27, 49, 63, .22); border-radius: 999px; font-size: 11px; font-weight: 700; transition: border-color .2s ease, background-color .2s ease, color .2s ease; }
.header-cta:hover { border-color: var(--vitalle-ink); background: var(--vitalle-ink); color: var(--vitalle-white); }
.arrow { font-size: 16px; }
.menu-toggle, .mobile-nav { display: none; }

.hero { position: relative; width: min(var(--vitalle-container), calc(100% - 80px)); min-height: min(780px, calc(100svh - 95px)); margin: 0 auto; display: grid; grid-template-columns: 1.02fr .98fr; align-items: center; padding: clamp(36px, 5vw, 76px) 0 clamp(80px, 8vw, 122px); }
.hero-copy { position: relative; z-index: 2; padding: 16px 0 20px 3.8%; }
.eyebrow { display: flex; align-items: center; gap: 11px; margin: 0 0 27px; color: var(--vitalle-petrol); font-size: 9px; font-weight: 700; letter-spacing: .17em; line-height: 1.5; text-transform: uppercase; }
.eyebrow-rule { width: 28px; height: 1px; background: var(--vitalle-teal); }
.eyebrow-dot { color: var(--vitalle-teal); }
h1 { max-width: 700px; margin: 0; font: 500 clamp(66px, 6.6vw, 102px)/.81 var(--serif); letter-spacing: -.025em; }
h1 em { color: var(--vitalle-teal); font-weight: 400; }
.hero-description { max-width: 410px; margin: 30px 0 25px; color: var(--vitalle-body); font-size: 15px; line-height: 1.8; }
.hero-actions { display: flex; align-items: center; gap: 25px; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 54px; padding: 0 21px; border: 1px solid transparent; border-radius: 999px; font-size: 11px; font-weight: 700; transition: transform .2s ease, background-color .2s ease; }
.button:hover { transform: translateY(-2px); }
.button-primary { background: var(--vitalle-teal); color: var(--vitalle-white); }
.button-primary:hover { background: var(--vitalle-petrol); }
.button-primary span { font-size: 16px; }
.text-link { display: inline-flex; align-items: center; gap: 10px; color: var(--vitalle-ink); font-size: 11px; font-weight: 700; }
.text-link span { color: var(--vitalle-teal); font-size: 17px; transition: transform .2s ease; }
.text-link:hover span { transform: translateY(3px); }
.hero-note { display: flex; align-items: center; gap: 10px; margin-top: 47px; color: var(--vitalle-petrol); font-size: 10px; font-weight: 600; letter-spacing: .035em; }
.note-mark { position: relative; width: 16px; height: 16px; border: 1px solid rgba(35, 154, 150, .55); border-radius: 50%; }
.note-mark::after { position: absolute; top: 4px; left: 7px; width: 1px; height: 6px; transform: rotate(35deg); background: var(--vitalle-teal); content: ""; }

.hero-visual { position: relative; justify-self: end; width: min(100%, 564px); padding: 31px 29px 22px 22px; }
.visual-index { position: absolute; z-index: 2; top: 5px; right: 28px; left: 21px; display: flex; justify-content: space-between; color: var(--vitalle-petrol); font-size: 9px; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.visual-index span:first-child { color: var(--vitalle-teal); }

.section-pad { padding: var(--vitalle-space-section) max(40px, calc((100% - var(--vitalle-container)) / 2)); }
.section-kicker { display: flex; align-items: center; gap: 12px; color: var(--vitalle-petrol); font-size: 9px; font-weight: 700; letter-spacing: .16em; line-height: 1.5; text-transform: uppercase; }
.section-kicker > span:first-child { color: var(--vitalle-teal); }
.kicker-line { width: 26px; height: 1px; background: var(--vitalle-teal); }
.section-pad h2, .gallery-note h2 { margin: 0; font: 500 clamp(48px, 6.2vw, 84px)/.94 var(--serif); letter-spacing: -.018em; }
.section-pad h2 em, .gallery-note h2 em { color: var(--vitalle-teal); font-weight: 400; }
.manifesto { background: var(--vitalle-mist); }
.manifesto-layout { display: grid; grid-template-columns: 1.4fr .6fr; align-items: end; gap: 9%; margin-top: 56px; }
.manifesto h2 { max-width: 790px; }
.manifesto-aside { position: relative; max-width: 380px; padding: 19px 0 0 34px; border-top: 1px solid rgba(27, 49, 63, .2); }
.manifesto-aside p { margin: 0 0 17px; color: var(--vitalle-body); font-size: 14px; line-height: 1.85; }
.manifesto-aside .text-link { margin-top: 3px; }
.manifesto-mark { position: absolute; top: 18px; left: 0; color: var(--vitalle-teal); font: 500 17px var(--serif); }

.services { padding-top: calc(var(--vitalle-space-section) * .92); padding-bottom: calc(var(--vitalle-space-section) * 1.05); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 48px; margin-bottom: 55px; }
.section-heading .section-kicker { margin-bottom: 24px; }
.section-heading > p { max-width: 355px; margin: 0 0 7px; color: var(--vitalle-body); font-size: 14px; line-height: 1.85; }
.service-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.service-panel { position: relative; min-height: 500px; padding: 23px 27px 30px; overflow: hidden; }
.service-pilates { background: var(--vitalle-subtle); }
.service-physio { background: var(--vitalle-mist); }
.service-topline { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; padding-bottom: 14px; border-bottom: 1px solid var(--vitalle-border); color: var(--vitalle-petrol); font-size: 9px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.service-topline span:last-child { font-size: 15px; }
.service-content { position: relative; z-index: 2; max-width: 440px; padding: 66px 0 0 8%; }
.service-label { margin: 0 0 17px; color: var(--vitalle-teal); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.service-content h3 { margin: 0; font: 500 clamp(45px, 5vw, 68px)/.9 var(--serif); letter-spacing: -.015em; }
.service-content > p:not(.service-label) { max-width: 360px; margin: 22px 0 22px; color: var(--vitalle-body); font-size: 13px; line-height: 1.8; }
.service-link { display: inline-flex; align-items: center; gap: 12px; padding-bottom: 5px; border-bottom: 1px solid rgba(27, 49, 63, .3); font-size: 10px; font-weight: 700; transition: gap .2s ease, border-color .2s ease; }
.service-link:hover { gap: 17px; border-color: var(--vitalle-teal); }
.service-link span { color: var(--vitalle-teal); font-size: 15px; }

.journey { position: relative; overflow: clip; background: var(--vitalle-ink); color: var(--vitalle-white); }
.journey .section-kicker { color: #c5d8d3; }
.journey-heading { margin-bottom: 52px; }
.journey-heading .section-kicker { margin-bottom: 23px; }
.journey-heading-row { display: flex; align-items: end; justify-content: space-between; gap: 48px; }
.journey-heading h2 { max-width: 700px; }
.journey-heading h2 em { color: #83c8bd; }
.journey-heading-row > p { max-width: 365px; margin: 0 0 7px; color: rgba(245, 247, 243, .75); font-size: 13px; line-height: 1.85; }
.journey-layout { display: grid; grid-template-columns: .88fr 1.12fr; align-items: start; gap: 9%; }
.journey-visual { position: sticky; top: 112px; grid-column: 2; grid-row: 1; }
.journey-art-frame { position: relative; padding: 16px; overflow: hidden; background: var(--vitalle-mist); color: var(--vitalle-ink); }
.journey-art-label, .journey-art-footer { position: relative; z-index: 2; display: flex; align-items: center; justify-content: space-between; font-size: 8px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.journey-art-label span { color: var(--vitalle-teal); }
.journey-art { position: relative; height: clamp(330px, 38vw, 490px); margin: 12px 0; overflow: hidden; background-color: #edf2ee; background-image: radial-gradient(rgba(76, 105, 113, .15) .65px, transparent .65px); background-size: 9px 9px; transition: transform .35s ease; transform: rotate(calc((var(--journey-progress, 1) - .5) * 7deg)) scale(.96); }

.journey-art svg { position: absolute; inset: 3% 4%; width: 92%; height: 94%; overflow: visible; }

.journey[data-motion="off"] .journey-art { transform: none; transition: none; }

.journey-art-footer { padding-top: 2px; font: 500 20px/1 var(--serif); letter-spacing: 0; text-transform: none; }
.journey-progress-label { color: var(--vitalle-petrol); font: 700 8px var(--sans); letter-spacing: .13em; }
.motion-toggle { display: none; align-items: center; gap: 7px; margin-top: 15px; padding: 8px 0; border: 0; background: transparent; color: rgba(245, 247, 243, .76); font-size: 10px; cursor: pointer; }
.js .motion-toggle { display: inline-flex; }
.motion-toggle:disabled { color: rgba(245, 247, 243, .56); cursor: default; }
.motion-toggle::before { width: 7px; height: 7px; border: 1px solid #83c8bd; border-radius: 50%; content: ""; }
.motion-toggle[aria-pressed="false"]::before { background: #83c8bd; }
.journey-steps { grid-column: 1; grid-row: 1; margin: 0; padding: 0; list-style: none; }
.journey-step { min-height: clamp(300px, 39vh, 440px); padding: 14px 0 37px; border-top: 1px solid rgba(245, 247, 243, .25); opacity: .56; transition: opacity .35s ease; }
.journey-step.is-active { opacity: 1; }
.journey:not([data-motion="on"]) .journey-step { opacity: 1; }
.step-count { display: flex; align-items: center; gap: 12px; margin-bottom: 36px; color: #83c8bd; font-size: 9px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.step-count span { color: rgba(245, 247, 243, .68); }
.journey-step h3 { max-width: 380px; margin: 0; font: 500 clamp(34px, 4vw, 54px)/.98 var(--serif); }
.journey-step p { max-width: 330px; margin: 16px 0 0; color: rgba(245, 247, 243, .75); font-size: 13px; line-height: 1.8; }
.journey-step .text-link { margin-top: 21px; color: var(--vitalle-white); }
.journey-step .text-link span { color: #83c8bd; }

.clinic { display: grid; grid-template-columns: .9fr 1.1fr; align-items: center; gap: 11%; background: var(--vitalle-mist); }

.clinic-copy .section-kicker { margin-bottom: 24px; }
.clinic-copy h2 { margin-bottom: 25px; }
.clinic-copy > p { max-width: 480px; margin: 0 0 16px; color: var(--vitalle-body); font-size: 14px; line-height: 1.85; }
.clinic-copy .text-link { margin-top: 12px; }

.professional { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 10%; background: var(--vitalle-white); }
.professional-intro .section-kicker { margin-bottom: 24px; }
.professional-note { max-width: 470px; padding: 24px 0 5px; border-top: 1px solid var(--vitalle-border); }
.professional-name { margin: 0 0 12px; font: 500 32px/1.1 var(--serif); }
.professional-note > p:not(.professional-name) { margin: 0 0 20px; color: var(--vitalle-body); font-size: 13px; line-height: 1.8; }

.gallery-note { display: flex; align-items: center; justify-content: space-between; gap: 40px; padding: clamp(56px, 8vw, 100px) max(40px, calc((100% - var(--vitalle-container)) / 2)); border-top: 1px solid var(--vitalle-border); border-bottom: 1px solid var(--vitalle-border); background: var(--vitalle-ivory); }
.gallery-note .section-kicker { margin-bottom: 24px; }
.gallery-note h2 { font-size: clamp(44px, 5.1vw, 69px); }

.contact-steps { display: grid; grid-template-columns: .8fr 1.2fr; gap: 10%; background: var(--vitalle-subtle); }
.contact-steps-heading .section-kicker { margin-bottom: 24px; }
.contact-list { margin: 0; padding: 0; list-style: none; }
.contact-list li { display: flex; min-height: 85px; align-items: center; gap: 27px; border-bottom: 1px solid var(--vitalle-border); }
.contact-list li:first-child { border-top: 1px solid var(--vitalle-border); }
.contact-list span { color: var(--vitalle-teal); font-size: 9px; font-weight: 700; letter-spacing: .12em; }
.contact-list p { margin: 0; font: 500 28px/1.1 var(--serif); }

.faq { display: grid; grid-template-columns: .72fr 1.28fr; gap: 10%; background: var(--vitalle-white); }
.faq-heading .section-kicker { margin-bottom: 24px; }
.faq-heading > p { max-width: 270px; margin: 20px 0 0; color: var(--vitalle-body); font-size: 13px; line-height: 1.75; }
.faq-list { border-top: 1px solid var(--vitalle-border); }
.faq-list details { border-bottom: 1px solid var(--vitalle-border); }
.faq-list summary { position: relative; display: flex; min-height: 72px; align-items: center; padding: 15px 48px 15px 0; font: 500 23px/1.15 var(--serif); cursor: pointer; list-style: none; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { position: absolute; top: 50%; right: 6px; width: 19px; height: 19px; transform: translateY(-50%); border: 1px solid var(--vitalle-border); border-radius: 50%; background: linear-gradient(var(--vitalle-petrol), var(--vitalle-petrol)) center / 7px 1px no-repeat, linear-gradient(var(--vitalle-petrol), var(--vitalle-petrol)) center / 1px 7px no-repeat; content: ""; }
.faq-list details[open] summary::after { background: linear-gradient(var(--vitalle-teal), var(--vitalle-teal)) center / 7px 1px no-repeat; }
.faq-list details > p { max-width: 610px; margin: -1px 45px 21px 0; color: var(--vitalle-body); font-size: 12px; line-height: 1.85; }

.final-cta { overflow: hidden; background: var(--vitalle-petrol); color: var(--vitalle-white); }
.final-cta-inner { position: relative; width: min(var(--vitalle-container), calc(100% - 80px)); margin: 0 auto; padding: clamp(70px, 9vw, 120px) 0; }
.final-cta .section-kicker { margin-bottom: 30px; color: rgba(245, 247, 243, .77); }
.final-cta .section-kicker > span:first-child { color: #9cdbd0; }
.final-cta h2 { position: relative; z-index: 1; margin: 0; font: 500 clamp(58px, 8vw, 112px)/.86 var(--serif); letter-spacing: -.02em; }
.final-cta h2 em { color: #a4ddd3; font-weight: 400; }
.final-cta p { position: relative; z-index: 1; max-width: 370px; margin: 24px 0 22px; color: rgba(245, 247, 243, .81); font-size: 13px; line-height: 1.8; }
.button-light { position: relative; z-index: 1; background: var(--vitalle-white); color: var(--vitalle-ink); }
.button-light:hover { background: var(--vitalle-mist); }
.final-ornament { position: absolute; right: 8%; bottom: -47%; width: min(48vw, 570px); aspect-ratio: 1; border: 1px solid rgba(245, 247, 243, .22); border-radius: 50%; }
.final-ornament::before, .final-ornament::after { position: absolute; inset: 8%; border: 1px solid rgba(245, 247, 243, .15); border-radius: 50%; content: ""; }
.final-ornament::after { inset: 19%; }

.site-footer { padding: 43px max(40px, calc((100% - var(--vitalle-container)) / 2)) 19px; background: var(--vitalle-ink); color: var(--vitalle-white); }
.footer-main { display: grid; grid-template-columns: 1.15fr 1fr 1fr .7fr; align-items: start; gap: 34px; padding-bottom: 42px; }
.footer-brand .brand-wordmark small { color: rgba(245, 247, 243, .59); }
.footer-description { margin: 5px 0 0; color: rgba(245, 247, 243, .7); font-size: 11px; line-height: 1.8; }
.footer-nav, .footer-social { display: flex; align-items: flex-start; flex-direction: column; gap: 12px; }
.footer-nav a, .footer-social a { color: rgba(245, 247, 243, .78); font-size: 10px; transition: color .2s ease; }
.footer-nav a:hover, .footer-social a:hover { color: #9cdbd0; }
.footer-social span { color: #9cdbd0; }
.footer-bottom { display: flex; justify-content: space-between; gap: 20px; padding-top: 16px; border-top: 1px solid rgba(245, 247, 243, .2); color: rgba(245, 247, 243, .58); font-size: 9px; letter-spacing: .04em; }
.footer-bottom a { color: rgba(245, 247, 243, .82); }

@media (max-width: 1120px) {
  .header-inner, .hero { width: min(var(--vitalle-container), calc(100% - 52px)); }
  .header-inner { grid-template-columns: 1fr auto; }
  .desktop-nav { display: none; }
  .header-cta { display: none; }
  .menu-toggle { display: flex; width: 46px; height: 46px; align-items: center; justify-content: center; flex-direction: column; gap: 6px; border: 1px solid var(--vitalle-border); border-radius: 50%; background: transparent; cursor: pointer; }
  .menu-toggle span { width: 17px; height: 1px; background: var(--vitalle-ink); transition: transform .2s ease; }
  .menu-toggle[aria-expanded="true"] span:first-child { transform: translateY(3.5px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:last-child { transform: translateY(-3.5px) rotate(-45deg); }
  .mobile-nav:not([hidden]) { position: fixed; z-index: 21; inset: 94px 0 0; display: flex; align-items: stretch; flex-direction: column; gap: 0; padding: 20px 30px 30px; overflow-y: auto; background: var(--vitalle-ivory); }
  .mobile-nav > a:not(.mobile-nav-cta) { display: flex; min-height: 60px; align-items: center; border-bottom: 1px solid var(--vitalle-border); font: 500 31px/1 var(--serif); }
  .mobile-nav-cta { display: flex; min-height: 54px; align-items: center; justify-content: space-between; margin-top: auto; padding: 0 18px; border-radius: 999px; background: var(--vitalle-teal); color: var(--vitalle-white); font-size: 12px; font-weight: 700; }
  .hero { grid-template-columns: 1.05fr .95fr; }
  .hero-copy { padding-left: 0; }
  h1 { font-size: clamp(64px, 8vw, 92px); }
  .hero-visual { width: min(100%, 500px); }
}

@media (max-width: 840px) {
  .hero { grid-template-columns: 1fr; }
  .hero-visual { width: min(100%, 510px); justify-self: center; margin-top: 42px; }
}

@media (max-width: 700px) {
  html { scroll-padding-top: 74px; }
  .site-header { background: rgba(245, 247, 243, .97); }
  .header-inner { width: calc(100% - 40px); min-height: 74px; grid-template-columns: 1fr auto; gap: 14px; }
  .brand { min-width: 0; gap: 9px; }
  .brand-seal { width: 50px; height: 50px; }
  .brand-wordmark strong { font-size: 27px; }
  .brand-wordmark small { font-size: 7px; }
  .header-cta { display: none; }
  .menu-toggle { position: relative; z-index: 22; }
  .mobile-nav:not([hidden]) { inset: 74px 0 0; padding: 20px 23px max(28px, env(safe-area-inset-bottom)); }
  .mobile-nav > a:not(.mobile-nav-cta) { min-height: 58px; font-size: 29px; }
  .hero { width: calc(100% - 40px); min-height: auto; grid-template-columns: 1fr; padding: 37px 0 61px; }
  .hero-copy { padding: 0; }
  .eyebrow { gap: 8px; margin-bottom: 22px; font-size: 8px; letter-spacing: .13em; }
  .eyebrow-rule { width: 20px; }
  h1 { font-size: clamp(57px, 12.5vw, 82px); line-height: .83; }
  .hero-description { max-width: 380px; margin: 23px 0 21px; font-size: 14px; line-height: 1.75; }
  .hero-actions { gap: 16px 21px; }
  .button { min-height: 51px; padding: 0 17px; gap: 17px; font-size: 10px; }
  .text-link { font-size: 10px; }
  .hero-note { margin-top: 27px; font-size: 9px; }
  .hero-visual { width: min(100% - 10px, 450px); justify-self: center; margin: 31px 5px 0 0; padding: 26px 21px 15px 12px; }
  .visual-index { top: 3px; right: 20px; left: 12px; font-size: 8px; }

}

@media (max-width: 380px) {
  .header-inner, .hero { width: calc(100% - 32px); }
  h1 { font-size: clamp(53px, 12.3vw, 66px); }
  .hero-actions { align-items: flex-start; flex-direction: column; }
  .hero-visual { width: calc(100% - 6px); }
}

@media (max-width: 960px) {
  .section-pad { padding-right: 34px; padding-left: 34px; }
  .manifesto-layout { grid-template-columns: 1fr .7fr; gap: 6%; }
  .service-panel { min-height: 470px; padding-right: 22px; padding-left: 22px; }
  .service-content { padding-left: 2%; }
  .journey-layout { grid-template-columns: .9fr 1.1fr; gap: 6%; }
  .journey-art { height: 370px; }
  .clinic { gap: 7%; }

  .gallery-note { padding-right: 34px; padding-left: 34px; }
  .contact-steps, .faq { gap: 7%; }
  .footer-main { grid-template-columns: 1fr 1fr 1fr; }
  .footer-social { grid-column: 2 / 4; flex-direction: row; gap: 22px; }
}

@media (max-width: 700px) {
  .section-pad { padding: 76px 20px; }
  .section-kicker { gap: 9px; font-size: 8px; }
  .section-pad h2, .gallery-note h2 { font-size: clamp(45px, 11vw, 66px); }
  .manifesto-layout { grid-template-columns: 1fr; gap: 31px; margin-top: 37px; }
  .manifesto-aside { max-width: 440px; padding-left: 28px; }
  .manifesto-aside p { font-size: 13px; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 16px; margin-bottom: 30px; }
  .section-heading .section-kicker { margin-bottom: 18px; }
  .section-heading > p { max-width: 420px; font-size: 13px; }
  .service-pair { grid-template-columns: 1fr; gap: 13px; }
  .service-panel { min-height: 420px; padding: 18px 19px 24px; }
  .service-content { max-width: 380px; padding: 58px 0 0 3%; }
  .service-content h3 { font-size: clamp(47px, 12vw, 65px); }
  .service-content > p:not(.service-label) { max-width: 330px; font-size: 12px; }
  
  .journey-heading { margin-bottom: 32px; }
  .journey-heading .section-kicker { margin-bottom: 18px; }
  .journey-heading-row { align-items: flex-start; flex-direction: column; gap: 17px; }
  .journey-heading-row > p { max-width: 430px; font-size: 12px; }
  .journey-layout { display: flex; flex-direction: column; gap: 28px; }
  .journey-visual { position: sticky; z-index: 3; top: 83px; width: 100%; }
  .journey-art-frame { padding: 11px; }
  .journey-art { height: min(68vw, 300px); min-height: 220px; margin: 8px 0; }
  .journey-art-footer { font-size: 17px; }
  .motion-toggle { margin-top: 8px; }
  .journey-steps { width: 100%; }
  .journey-step { min-height: 310px; padding-top: 13px; }
  .step-count { margin-bottom: 28px; }
  .journey-step h3 { font-size: clamp(37px, 9vw, 49px); }
  .journey-step p { font-size: 12px; }
  .clinic { grid-template-columns: 1fr; gap: 34px; }

  .clinic-copy .section-kicker { margin-bottom: 18px; }
  .clinic-copy h2 { margin-bottom: 18px; }
  .clinic-copy > p { font-size: 13px; }
  .professional { grid-template-columns: 1fr; gap: 30px; }
  .professional-intro .section-kicker { margin-bottom: 18px; }
  .professional-name { font-size: 29px; }
  .gallery-note { align-items: flex-start; flex-direction: column; gap: 30px; padding: 69px 20px; }
  .gallery-note .section-kicker { margin-bottom: 18px; }
  .gallery-note h2 { font-size: clamp(44px, 10vw, 61px); }
  
  .contact-steps, .faq { grid-template-columns: 1fr; gap: 32px; }
  .contact-steps-heading .section-kicker, .faq-heading .section-kicker { margin-bottom: 18px; }
  .contact-list li { min-height: 71px; gap: 20px; }
  .contact-list p { font-size: 24px; }
  .faq-heading > p { margin-top: 14px; }
  .faq-list summary { min-height: 66px; font-size: 21px; }
  .faq-list details > p { margin-right: 24px; font-size: 12px; }
  .final-cta-inner { width: calc(100% - 40px); padding: 75px 0; }
  .final-cta .section-kicker { margin-bottom: 24px; }
  .final-cta h2 { font-size: clamp(54px, 12vw, 82px); }
  .final-ornament { right: -25%; bottom: -21%; width: 71vw; }
  .site-footer { padding: 35px 20px 16px; }
  .footer-main { grid-template-columns: 1fr 1fr; gap: 27px 20px; padding-bottom: 30px; }
  .footer-description { grid-column: 1 / -1; grid-row: 2; }
  .footer-nav { grid-column: 1; grid-row: 3; }
  .footer-social { grid-column: 2; grid-row: 3; flex-direction: column; gap: 12px; }
  .footer-bottom { align-items: flex-start; flex-direction: column; gap: 9px; font-size: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .journey .journey-art { transform: none; }

}

.button-primary, .mobile-nav-cta { background: var(--vitalle-petrol); color: var(--vitalle-white); }
.button-primary:hover { background: var(--vitalle-ink); }
.contact-cta { grid-column: 2; justify-self: start; display: inline-flex; align-items: center; gap: 12px; margin-top: 20px; padding-bottom: 6px; border-bottom: 1px solid rgba(27, 49, 63, .35); font-size: 10px; font-weight: 700; }
.contact-cta span { color: var(--vitalle-teal); font-size: 15px; }
.contact-cta:hover { border-color: var(--vitalle-teal); }
.whatsapp-float { position: fixed; z-index: 18; right: 24px; bottom: max(22px, env(safe-area-inset-bottom)); display: flex; min-height: 57px; align-items: center; gap: 23px; padding: 10px 18px 10px 20px; border-radius: 999px; background: var(--vitalle-petrol); box-shadow: 0 8px 28px rgba(27, 49, 63, .18); color: var(--vitalle-white); transition: background-color .2s ease, transform .2s ease; }
.whatsapp-float:hover { transform: translateY(-2px); background: var(--vitalle-ink); }
.whatsapp-float-copy { display: flex; flex-direction: column; gap: 2px; }
.whatsapp-float-copy strong { font-size: 10px; }
.whatsapp-float-copy small { color: rgba(255, 255, 255, .83); font-size: 8px; }
.whatsapp-float-arrow { font-size: 17px; }

.privacy-page { min-height: 100vh; display: flex; flex-direction: column; }
.privacy-header { width: min(var(--vitalle-container), calc(100% - 80px)); min-height: 94px; margin: 0 auto; display: flex; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--vitalle-border); }
.privacy-content { width: min(760px, calc(100% - 48px)); flex: 1; margin: 0 auto; padding: clamp(65px, 9vw, 110px) 0; }
.privacy-content h1 { margin: 22px 0; font-size: clamp(58px, 8vw, 92px); }
.privacy-content h1 em { color: var(--vitalle-teal); font-weight: 400; }
.privacy-date { color: var(--vitalle-petrol); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.privacy-rule { height: 1px; margin: 35px 0; background: var(--vitalle-border); }
.privacy-content h2 { margin: 31px 0 9px; font: 500 29px/1.1 var(--serif); }
.privacy-content > p:not(.eyebrow):not(.privacy-date) { color: var(--vitalle-body); font-size: 14px; line-height: 1.9; }
.privacy-back { margin-top: 14px; }
.privacy-footer { display: flex; justify-content: space-between; gap: 18px; padding: 18px max(24px, calc((100% - 760px) / 2)); border-top: 1px solid var(--vitalle-border); color: var(--vitalle-body); font-size: 10px; }

@media (max-width: 700px) {
  body:not(.privacy-page) { padding-bottom: 0; }
  .contact-cta { grid-column: 1; margin-top: -12px; }
  .whatsapp-float { display: none; }
  .privacy-header { width: calc(100% - 40px); min-height: 74px; }
  .privacy-header .text-link { font-size: 10px; }
  .privacy-content { padding: 63px 0 75px; }
  .privacy-content h1 { font-size: clamp(55px, 12vw, 75px); }
  .privacy-content > p:not(.eyebrow):not(.privacy-date) { font-size: 13px; }
  .privacy-footer { align-items: flex-start; flex-direction: column; padding: 17px 20px; }
}
