:root {
  --cream: #f5f4ef; --paper: #fffdfa; --sand: #e7e6df;
  --olive: #9caf8c; --olive-dark: #526a57; --deep-green: #465e4d; --footer-green: #293d32; --accent: #8eb35d; --brown: #382f29; --ink: #28231f;
  --muted: #665f58; --line: rgba(58, 48, 41, 0.18);
  --serif: "Instrument Serif", Georgia, serif; --sans: "DM Sans", system-ui, sans-serif;
  --content-max: 1440px; --page-gutter: clamp(24px, 7vw, 108px);
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 76px; }
body { margin: 0; overflow-x: hidden; background: var(--paper); color: var(--ink); font-family: var(--sans); font-size: 20px; line-height: 1.7; }
body.menu-open { overflow: hidden; }
img { display: block; width: 100%; }
main img { border-radius: 7px; }
.hero > img, .mood-section > img, .closing-section > img { border-radius: 0; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
p { margin: 0 0 1rem; }
h1, h2, h3 { margin: 0; font-family: var(--serif); font-weight: 400; line-height: .98; text-wrap: balance; }
h2 { font-size: clamp(2.8rem, 5vw, 5.2rem); letter-spacing: -.035em; }
h3 { font-size: clamp(1.7rem, 2.4vw, 2.4rem); }
.page-container { width: min(calc(100% - 2 * var(--page-gutter)), var(--content-max)); margin-inline: auto; }
.section { padding: clamp(82px, 9vw, 142px) 0; }
.eyebrow { margin-bottom: 18px; color: var(--olive-dark); font-size: .95rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.skip-link { position: fixed; z-index: 200; top: 12px; left: 12px; transform: translateY(-160%); padding: 10px 16px; background: var(--ink); color: #fff; }
.skip-link:focus { transform: translateY(0); }

.site-header { position: sticky; z-index: 100; top: 0; border-bottom: 1px solid var(--line); background: rgba(251,249,244,.94); backdrop-filter: blur(14px); }
.nav-wrap { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 28px; padding-block: 6px; }
.brand { display: inline-flex; align-items: center; gap: 12px; flex: 0 0 auto; }
.brand-logo { width: 46px; height: 46px; flex: 0 0 46px; object-fit: contain; }
.brand-mark { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid var(--olive); border-radius: 50%; color: var(--olive-dark); font-family: var(--serif); font-size: 1.4rem; }
.brand strong, .brand small { display: block; }
.brand strong { color: var(--brown); font-family: var(--serif); font-size: 1.45rem; font-weight: 400; line-height: 1; }
.brand small { margin-top: 3px; color: var(--muted); font-size: .68rem; letter-spacing: .06em; text-transform: uppercase; }
.site-header .brand strong, .site-header .brand small { color: #2a4931; }
.primary-nav { display: flex; align-items: center; gap: clamp(18px, 2.2vw, 34px); font-size: 1.3rem; }
.primary-nav > a:not(.button) { position: relative; white-space: nowrap; }
.primary-nav > a:not(.button)::after { content: ""; position: absolute; right: 100%; bottom: -6px; left: 0; height: 1px; background: var(--olive); transition: right .25s ease; }
.primary-nav > a:not(.button):hover::after, .primary-nav > a:not(.button):focus-visible::after { right: 0; }
.menu-toggle { display: none; width: 44px; height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: transparent; }
.menu-toggle span { display: block; width: 21px; height: 1px; margin: 5px auto; background: var(--ink); transition: transform .25s ease, opacity .25s ease; }
.button, .text-button { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid var(--olive-dark); background: var(--olive-dark); color: #fff; font-size: 1.02rem; font-weight: 600; line-height: 1.1; transition: background .25s ease, color .25s ease, transform .25s ease; }
.button { padding: 13px 24px; border-radius: 6px; }
.button-small { min-height: 46px; padding: 11px 19px; }
.primary-nav .button-small { font-size: 1.28rem; }
.button:hover, .text-button:hover { border-color: #d2dcb6; background: #d2dcb6; color: var(--deep-green); transform: translateY(-2px); }
.button:active, .text-button:active { transform: translateY(0); }
.button-light { border-color: var(--paper); background: var(--paper); color: var(--brown); }
.button-light:hover { border-color: var(--deep-green); background: var(--deep-green); color: #fff; }
.hero .hero-cta { border-color: var(--olive-dark); background: var(--olive-dark); color: #fff; }
.hero .hero-cta:hover, .hero .hero-cta:focus-visible { border-color: #d2dcb6; background: #d2dcb6; color: var(--deep-green); }
.button-outline { background: transparent; color: var(--olive-dark); }
.button-outline:hover { background: var(--olive-dark); color: #fff; }
a:focus-visible, button:focus-visible { outline: 3px solid var(--olive); outline-offset: 4px; }

.hero { position: relative; min-height: min(860px, calc(100dvh - 76px)); display: grid; align-items: center; overflow: visible; background: var(--brown); color: #fff; }
.hero > img, .hero-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.hero > img { object-fit: cover; object-position: center 42%; }
.hero-overlay { background: linear-gradient(90deg, rgba(31,25,21,.84) 0%, rgba(31,25,21,.57) 43%, rgba(31,25,21,.1) 78%), linear-gradient(0deg, rgba(31,25,21,.32), transparent 40%); }
.hero-content { position: relative; z-index: 2; padding: 110px 0 150px; }
.hero-kicker { margin-bottom: 20px; font-size: .95rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.hero h1 { max-width: 850px; font-size: clamp(4rem, 8vw, 8.4rem); letter-spacing: -.045em; }
.hero-lead { max-width: 670px; margin: 28px 0 34px; color: rgba(255,255,255,.88); font-size: clamp(1.05rem, 1.5vw, 1.3rem); }
.hero-details { position: absolute; z-index: 3; bottom: -52px; left: 50%; width: min(760px, calc(100% - 2 * var(--page-gutter))); display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); transform: translateX(-50%); overflow: hidden; border: 0; border-radius: 18px; background: #B9C8B0; box-shadow: 0 16px 38px rgba(29,50,34,.22); color: var(--ink); backdrop-filter: blur(8px); }
.hero-details div { display: flex; align-items: center; justify-content: center; min-width: 0; min-height: 104px; padding: 19px 34px; text-align: center; }
.hero-details div + div { border-left: 1px solid rgba(204,222,194,.26); }
.hero-details strong { display: flex; flex-direction: column; align-items: center; gap: 4px; color: var(--ink); font-weight: 500; line-height: 1.15; }
.hero-details small { color: var(--ink); font-size: .76rem; font-weight: 500; letter-spacing: .045em; }
.detail-numbers { color: var(--ink); font-family: var(--sans); font-size: 1.78rem; font-weight: 600; letter-spacing: -.025em; white-space: nowrap; }
.detail-services { color: var(--ink); font-size: 1.02rem; font-weight: 600; white-space: nowrap; }

.intro-section { background: var(--paper); }
.intro-head { max-width: 980px; text-align: center; }
.intro-head > p:last-child { max-width: 810px; margin: 28px auto 0; color: var(--muted); font-size: inherit; }
.intro-gallery { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-top: clamp(48px, 7vw, 88px); }
.intro-gallery figure { position: relative; height: clamp(280px, 31vw, 470px); overflow: hidden; margin: 0; }
.intro-gallery img { height: 100%; object-fit: cover; transition: transform .55s ease; }
.intro-gallery figcaption { position: absolute; right: 0; bottom: 0; left: 0; padding: 36px 16px 14px; background: linear-gradient(transparent, rgba(25,21,18,.72)); color: #fff; font-size: .88rem; letter-spacing: .04em; }
.philosophy-section { background: #f0f4e3; }
.philosophy-grid { display: grid; grid-template-columns: minmax(0, .88fr) minmax(0, 1.12fr); gap: clamp(48px, 9vw, 130px); align-items: center; }
.philosophy-copy { max-width: 650px; }
.philosophy-copy h2 { font-size: clamp(3rem, 5vw, 5.4rem); }
.philosophy-copy > p:last-child { max-width: 590px; margin-top: 28px; color: var(--muted); }
.philosophy-image { height: clamp(420px, 44vw, 640px); overflow: hidden; }
.philosophy-image img { height: 100%; object-fit: cover; }

.treatments-section { background: var(--paper); }
.treatments-section .section-heading { display: block; max-width: 920px; margin: 0 auto clamp(54px, 7vw, 90px); text-align: center; }
.treatments-section .section-heading .eyebrow { margin-bottom: 18px; }
.treatments-section .section-heading > p:last-child { max-width: 650px; margin: 24px auto 0; }
.section-heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(300px, .55fr); gap: 40px 90px; align-items: end; margin-bottom: clamp(54px, 7vw, 90px); }
.section-heading .eyebrow { grid-column: 1 / -1; margin-bottom: -18px; }
.section-heading > p:last-child { color: var(--muted); }
.treatment-list { display: grid; gap: 14px; border: 0; }
.treatment-item { display: grid; grid-template-columns: minmax(180px, 300px) minmax(320px, 1fr) minmax(180px, .38fr); gap: clamp(28px, 5vw, 72px); align-items: center; overflow: hidden; padding: 18px; border: 0; border-radius: 16px; background: #fff; box-shadow: 0 10px 32px rgba(52,72,58,.055); }
.treatment-image { height: 210px; overflow: hidden; }
.treatment-image img { height: 100%; object-fit: cover; transition: transform .55s ease; }
.treatment-item:nth-child(2) .treatment-image img { object-position: center 58%; }
.duration { display: block; margin-bottom: 12px; color: var(--olive-dark); font-size: 1.12rem; font-weight: 600; letter-spacing: .065em; line-height: 1.25; text-transform: uppercase; }
.treatment-copy h3 { font-size: clamp(2.05rem, 3vw, 3rem); }
.treatment-copy p { max-width: 720px; margin: 14px 0 0; color: var(--muted); }
.treatment-action { display: flex; flex-direction: column; align-items: stretch; gap: 18px; text-align: right; }
.treatment-action strong { font-family: var(--serif); font-size: clamp(2.05rem, 3vw, 3rem); font-weight: 400; line-height: .98; white-space: nowrap; }
.text-button { min-height: 58px; padding: 16px 26px; border-color: var(--olive-dark); border-radius: 6px; background: var(--olive-dark); color: #fff; font-size: 1.1rem; }
.text-button:hover, .text-button:focus-visible { border-color: #d2dcb6; background: #d2dcb6; color: var(--deep-green); }
.treatment-featured { background: #dfe9d8; box-shadow: 0 10px 32px rgba(52,72,58,.055); }

.about-section { background: var(--deep-green); color: #fff; }
.about-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr); gap: clamp(50px, 9vw, 140px); align-items: center; }
.about-photo { position: relative; isolation: isolate; height: min(680px, 64vw); min-height: 480px; }
.about-photo::before { content: ""; position: absolute; z-index: -1; top: clamp(14px, 1.4vw, 22px); right: clamp(-22px, -1.4vw, -14px); bottom: clamp(-22px, -1.4vw, -14px); left: clamp(14px, 1.4vw, 22px); border-radius: 7px; background: #a1bc98; }
.about-photo img { position: relative; z-index: 1; height: 100%; object-fit: cover; object-position: center 42%; }
.about-copy { max-width: 650px; }
.about-copy .eyebrow { color: var(--sand); }
.about-copy h2 { margin-bottom: 38px; }
.about-copy p { color: rgba(255,255,255,.72); }
.about-copy .about-intro { color: #fff; font-family: var(--serif); font-size: 2rem; }

.audience-section { background: var(--paper); }
.audience-heading { max-width: 900px; margin: 0 auto clamp(54px, 7vw, 90px); text-align: center; }
.audience-heading > p:last-child { max-width: 650px; margin: 24px auto 0; color: var(--muted); }
.audience-bento { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-template-rows: repeat(2, minmax(280px, auto)); gap: 14px; }
.audience-tile { position: relative; min-width: 0; overflow: hidden; border-radius: 20px; }
.audience-tile-copy { position: relative; z-index: 2; }
.audience-tile span { display: block; margin-bottom: 14px; color: var(--olive-dark); font-size: 1.08rem; font-weight: 600; letter-spacing: .07em; line-height: 1; }
.audience-tile h3 { font-size: clamp(2rem, 3.2vw, 3.3rem); }
.audience-tile p { max-width: 540px; margin: 14px 0 0; color: var(--muted); }
.audience-sitting { grid-column: 1 / 9; grid-row: 1; min-height: 360px; color: #fff; }
.audience-sitting > img, .audience-image-shade { position: absolute; inset: 0; width: 100%; height: 100%; }
.audience-sitting > img { object-fit: cover; object-position: center 46%; }
.audience-image-shade { background: linear-gradient(0deg, rgba(32,38,33,.7), rgba(32,38,33,.04) 72%); }
.audience-sitting .audience-tile-copy { position: absolute; right: 0; bottom: 0; left: 0; padding: clamp(28px, 4vw, 52px); }
.audience-sitting span, .audience-sitting p { color: rgba(255,255,255,.82); }
.audience-active { grid-column: 9 / 13; grid-row: 1; display: flex; align-items: flex-end; padding: clamp(30px, 4vw, 50px); background: #f0f4e3; }
.audience-slow { grid-column: 1 / 6; grid-row: 2; display: flex; align-items: flex-end; width: 100%; min-height: 330px; padding: clamp(30px, 4vw, 50px); background: #ddd5c8; }
.audience-carry { grid-column: 6 / 13; grid-row: 2; width: 100%; min-height: 330px; background: var(--deep-green); color: #fff; }
.audience-carry .audience-tile-copy { width: 62%; padding: clamp(30px, 3.2vw, 46px); }
.audience-carry h3 { font-size: clamp(2rem, 2.7vw, 2.8rem); }
.audience-carry span, .audience-carry p { color: rgba(230,239,224,.76); }
.audience-carry > img { position: absolute; z-index: 1; right: -2%; bottom: 0; width: 48%; height: 92%; object-fit: contain; object-position: right bottom; }
.audience-tile > img { transition: transform .55s ease; }

.mood-section { position: relative; min-height: 650px; display: grid; align-items: center; overflow: hidden; color: #fff; }
.mood-section > img, .mood-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.mood-section > img { object-fit: cover; }
.mood-overlay { background: linear-gradient(90deg, rgba(35,27,22,.82), rgba(35,27,22,.28) 70%); }
.mood-content { position: relative; z-index: 2; padding: 100px 0; }
.mood-content .eyebrow { color: var(--sand); }
.mood-content h2 { max-width: 850px; }
.mood-content > p:last-child { max-width: 680px; margin-top: 24px; color: rgba(255,255,255,.82); }

.approach-section { background: var(--paper); }
.approach-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); gap: clamp(60px, 10vw, 150px); align-items: center; }
.approach-image { height: clamp(470px, 52vw, 720px); overflow: hidden; }
.approach-image img { height: 100%; object-fit: cover; }
.approach-copy { max-width: 700px; padding-top: 0; }
.approach-copy h2 { margin-bottom: 30px; font-size: clamp(2.7rem, 4vw, 4.4rem); }
.approach-copy p { color: var(--muted); }
.approach-copy blockquote { width: calc(100% + min(70px, 5vw)); margin: 48px 0 0; padding: 28px 0 0; border-top: 1px solid var(--line); color: var(--olive-dark); font-family: var(--serif); font-size: clamp(1.85rem, 2.2vw, 2.1rem); font-style: italic; line-height: 1.05; white-space: nowrap; }
.program-section { background: var(--cream); color: var(--ink); }
.program-grid { display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(356px, 1fr); gap: clamp(50px, 8vw, 110px); align-items: stretch; }
.program-copy { padding: clamp(12px, 3vw, 40px) 0; }
.program-section .eyebrow { color: var(--olive-dark); }
.program-price { margin: 34px 0 0; color: #71813d; font-family: var(--serif); font-size: clamp(2rem, 3.2vw, 3.5rem); }
.program-description { max-width: 650px; margin: 28px 0 0; color: var(--muted); }
.program-details { max-width: 660px; margin-top: 30px; }
.program-list-label { margin: 0 0 8px; color: var(--ink); font-weight: 600; }
.program-details ul { margin: 0 0 36px; padding: 0; list-style: none; }
.program-details li { position: relative; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 14px; align-items: center; min-height: 96px; padding: 24px 0; color: var(--ink); font-family: var(--serif); font-size: clamp(1.25rem, 1.75vw, 1.7rem); line-height: 1.2; }
.program-details li:not(:last-child)::after { content: ""; position: absolute; right: 76px; bottom: 0; left: 0; height: 1px; background: var(--line); }
.program-details li::before { content: "✦"; color: var(--accent); font-family: Georgia, serif; font-size: 1.25em; line-height: 1; text-align: center; }
.program-image { position: relative; align-self: stretch; height: auto; min-height: 0; margin: clamp(12px, 3vw, 40px) 0; overflow: hidden; }
.program-image img { position: absolute; inset: 0; height: 100%; object-fit: cover; }

.process-section { padding-bottom: clamp(42px, 4vw, 64px); background: var(--paper); }
.process-grid { display: grid; grid-template-columns: minmax(320px, .74fr) minmax(0, 1.26fr); gap: 6px; align-items: start; }
.process-intro { position: relative; z-index: 2; width: calc(100% + 92px); padding-top: 18px; }
.process-intro h2 { max-width: 560px; }
.process-subtitle { max-width: 550px; margin-top: 38px; font-size: clamp(1.8rem, 2.5vw, 2.5rem); line-height: 1.05; }
.process-intro > p:not(.eyebrow) { max-width: 550px; margin: 18px 0 48px; color: var(--muted); font-size: inherit; }
.process-intro img { width: 100%; height: 250px; margin: 0 0 63px; object-fit: cover; }
.process-list { position: relative; justify-self: end; width: 82%; display: grid; gap: 18px; margin: 0; padding: 0; list-style: none; }
.process-list::before { content: ""; position: absolute; z-index: 0; top: 70px; bottom: 70px; left: 34px; width: 2px; background: rgba(70,94,77,.34); }
.process-list li { position: relative; z-index: 1; display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 22px; align-items: center; padding: 0; border: 0; }
.process-list li > span { width: 70px; height: 70px; display: grid; place-items: center; border-radius: 50%; background: var(--deep-green); color: #fff; font-family: var(--serif); font-size: 1.65rem; font-variant-numeric: tabular-nums; }
.process-card { width: 100%; padding: 30px 34px; border-radius: 10px; background: #eae2d6; }
.process-card h3 { font-size: clamp(1.775rem, calc(3vw - 4px), 2.75rem); }
.process-card p { max-width: 680px; margin: 10px 0 0; color: var(--muted); }
.process-action { display: none; }

.booking-section { padding-top: clamp(42px, 4vw, 64px); background: var(--paper); }
.booking-grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(340px, .85fr); background: var(--sand); }
.booking-photo { min-height: 590px; overflow: hidden; }
.booking-photo img { height: 100%; object-fit: cover; }
.booking-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(42px, 6vw, 88px); }
.booking-copy h2 { font-size: clamp(2.8rem, 4.5vw, 4.8rem); }
.booking-copy > p:not(.eyebrow) { margin: 26px 0 32px; color: var(--muted); }

.faq-section { position: relative; isolation: isolate; background: url("images/pattern.png") center / cover no-repeat; }
.faq-section::before { content: ""; position: absolute; z-index: 0; inset: 0; background: rgba(104,100,93,.5); pointer-events: none; }
.faq-shell { position: relative; z-index: 1; padding: clamp(52px, 7vw, 92px); border-radius: 20px; background: rgba(243,245,240,.9); box-shadow: 0 18px 48px rgba(52,72,58,.08); }
.faq-shell header { max-width: 900px; margin: 0 auto clamp(46px, 6vw, 76px); text-align: center; }
.faq-shell header .eyebrow { color: var(--olive-dark); }
.faq-shell header h2 { font-size: clamp(3rem, 5.2vw, 5.6rem); }
.faq-shell header h2 em { color: #627a63; font-weight: 400; }
.faq-shell header > p:last-child { max-width: 620px; margin: 24px auto 0; color: var(--muted); }
.accordion { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(44px, 7vw, 96px); }
.accordion-column { min-width: 0; }
.accordion-item + .accordion-item { border-top: 1px solid rgba(64,81,66,.2); }
.accordion-item h3 { margin: 0; font-family: var(--serif); }
.accordion-item button { width: 100%; min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 0; border: 0; background: transparent; text-align: left; cursor: pointer; }
.accordion-item button span { font-family: var(--serif); font-size: calc(1.5rem + 2px); font-weight: 400; line-height: 1.15; }
.accordion-item button i { position: relative; width: 34px; height: 34px; flex: 0 0 34px; display: block; overflow: hidden; border: 1.5px solid var(--deep-green); border-radius: 50%; background: var(--deep-green); color: transparent; font-size: 0; font-style: normal; transition: transform .25s ease, background .25s ease, color .25s ease; }
.accordion-item button i::before, .accordion-item button i::after { content: ""; position: absolute; top: 50%; left: 50%; width: 12px; height: 1.5px; border-radius: 2px; background: #fff; transform: translate(-50%, -50%); transition: background .25s ease; }
.accordion-item button i::after { transform: translate(-50%, -50%) rotate(90deg); }
.accordion-item button[aria-expanded="true"] i { transform: rotate(45deg); background: var(--olive-dark); color: #fff; }
.accordion-item button[aria-expanded="true"] i::before, .accordion-item button[aria-expanded="true"] i::after { background: #fff; }
.accordion-item button:hover i { background: transparent; }
.accordion-item button:hover i::before, .accordion-item button:hover i::after { background: var(--deep-green); }
.accordion-panel p { margin: -4px 52px 24px 0; color: var(--muted); }

.location-section { background: var(--paper); }
.location-grid { display: grid; grid-template-columns: minmax(320px, .75fr) minmax(0, 1.25fr); min-height: 590px; }
.location-card { padding: clamp(42px, 6vw, 88px); background: var(--deep-green); color: #fff; }
.location-card .eyebrow { color: var(--sand); }
.location-card > p:not(.eyebrow) { margin: 22px 0 28px; color: rgba(255,255,255,.68); }
.location-card dl { margin: 0 0 34px; }
.location-card dl div { display: grid; grid-template-columns: 90px 1fr; padding: 11px 0; border-top: 1px solid rgba(255,255,255,.18); }
.location-card dl div:last-child { border-bottom: 1px solid rgba(255,255,255,.18); }
.location-card dt { color: rgba(255,255,255,.56); }
.location-card dd { margin: 0; }
.location-card .button-outline { border-color: var(--paper); color: #fff; }
.location-card .button-outline:hover { background: var(--paper); color: var(--brown); }
.location-map { width: 100%; height: 100%; min-height: 500px; border: 0; filter: saturate(.7) sepia(.08); }
.closing-section { position: relative; min-height: 720px; display: grid; align-items: center; overflow: hidden; padding: clamp(96px, 11vw, 142px) 0; background: var(--brown); color: #fff; }
.closing-section > img, .closing-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.closing-section > img { object-fit: cover; object-position: center 38%; }
.closing-overlay { background: linear-gradient(90deg, rgba(24,22,19,.73) 0%, rgba(24,22,19,.59) 50%, rgba(24,22,19,.43) 100%); }
.closing-grid { position: relative; z-index: 2; }
.closing-content { position: relative; top: -38px; width: 100%; text-align: center; }
.closing-grid h2 { font-size: clamp(2.7rem, 5.2vw, 5rem); font-style: italic; line-height: 1; letter-spacing: -.035em; white-space: nowrap; }
.closing-text { max-width: 820px; margin: 60px auto 50px; color: rgba(255,255,255,.92); font-size: 1.45rem; line-height: 1.6; }
.closing-button { min-height: 56px; padding: 16px 30px; border-color: #fcfaf6; border-radius: 9px; background: #fcfaf6; color: var(--deep-green); font-size: 1.08rem; }
.closing-button:hover, .closing-button:focus-visible { border-color: #f0f4e3; background: #f0f4e3; color: var(--deep-green); transform: translateY(-2px); }

.site-footer { padding: 72px 0 26px; background: var(--footer-green); color: rgba(255,255,255,.7); }
.footer-grid { display: grid; grid-template-columns: 1.35fr .65fr 1fr; gap: 54px; }
.brand-light strong { color: #fff; }
.brand-light small, .brand-light .brand-mark { color: var(--sand); }
.brand-light .brand-logo { width: 58px; height: 58px; flex-basis: 58px; }
.footer-grid > div:first-child > p { margin-top: 20px; }
.footer-grid h2 { margin-bottom: 18px; color: #fff; font-family: var(--sans); font-size: .82rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.footer-grid nav a { display: block; margin: 8px 0; }
.footer-grid nav a:hover { color: #fff; }
.footer-bottom { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 16px 30px; margin-top: 24px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.14); font-size: .82rem; }
.footer-legal { display: inline-flex; align-items: center; gap: 9px; }
.footer-legal a { display: inline; margin: 0; transition: color .25s ease; }
.footer-legal a:hover { color: #fff; }
.footer-legal button { margin: 0; padding: 0; border: 0; background: transparent; color: inherit; cursor: pointer; transition: color .25s ease; }
.footer-legal button:hover, .footer-legal button:focus-visible { color: #fff; }

.cookie-panel { position: fixed; z-index: 1000; right: 24px; bottom: 24px; width: min(430px, calc(100vw - 40px)); max-height: calc(100dvh - 48px); overflow-y: auto; padding: 26px; border: 1px solid rgba(70,94,77,.2); border-radius: 12px; background: #fcfaf6; box-shadow: 0 18px 50px rgba(35,49,39,.2); color: var(--ink); opacity: 0; transform: translate(16px, 18px); visibility: hidden; transition: opacity .38s ease, transform .38s ease, visibility .38s ease; }
.cookie-panel.is-open { opacity: 1; transform: none; visibility: visible; }
.cookie-panel-head { display: grid; grid-template-columns: 52px 1fr 32px; gap: 14px; align-items: center; margin-bottom: 18px; }
.cookie-panel-head > img { width: 52px; height: 52px; object-fit: contain; }
.cookie-kicker { margin: 0 0 2px; color: var(--olive-dark); font-size: .76rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; }
.cookie-panel h2 { font-size: 2rem; letter-spacing: -.02em; }
.cookie-panel h3 { font-size: 1.35rem; line-height: 1.1; }
.cookie-panel p { margin-bottom: 12px; color: var(--muted); font-size: .94rem; line-height: 1.55; }
.cookie-close { width: 32px; height: 32px; display: grid; place-items: center; align-self: start; padding: 0; border: 1px solid rgba(70,94,77,.24); border-radius: 50%; background: transparent; color: var(--deep-green); font-family: var(--sans); font-size: 1.4rem; line-height: 1; cursor: pointer; transition: background .25s ease, color .25s ease; }
.cookie-close:hover { background: var(--deep-green); color: #fff; }
.cookie-privacy-link { display: inline-block; color: var(--olive-dark); font-size: .86rem; text-decoration: underline; text-underline-offset: 3px; }
.cookie-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 20px; }
.cookie-action, .cookie-settings-link { min-height: 42px; padding: 10px 15px; border-radius: 6px; font-family: var(--sans); font-size: .82rem; font-weight: 600; cursor: pointer; transition: background .25s ease, color .25s ease, transform .25s ease; }
.cookie-action:hover, .cookie-settings-link:hover { transform: translateY(-1px); }
.cookie-accept, .cookie-save { border: 1px solid var(--deep-green); background: var(--deep-green); color: #fff; }
.cookie-accept:hover, .cookie-save:hover { background: var(--footer-green); }
.cookie-essential { border: 1px solid var(--olive-dark); background: transparent; color: var(--deep-green); }
.cookie-essential:hover { background: #f0f4e3; }
.cookie-settings-link { border: 0; background: transparent; color: var(--olive-dark); text-decoration: underline; text-underline-offset: 3px; }
.cookie-settings { margin: 0; }
.cookie-category { display: grid; grid-template-columns: 1fr auto; gap: 18px; align-items: center; padding: 17px 0; border-top: 1px solid rgba(70,94,77,.18); }
.cookie-category:last-of-type { border-bottom: 1px solid rgba(70,94,77,.18); }
.cookie-category p { margin: 7px 0 0; font-size: .85rem; }
.cookie-switch { display: grid; justify-items: center; gap: 5px; cursor: pointer; }
.cookie-switch input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }
.cookie-switch span { position: relative; width: 44px; height: 24px; border-radius: 999px; background: #d6ddd3; transition: background .25s ease; }
.cookie-switch span::after { content: ""; position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #fff; box-shadow: 0 1px 4px rgba(35,49,39,.18); transition: transform .25s ease; }
.cookie-switch input:checked + span { background: var(--deep-green); }
.cookie-switch input:checked + span::after { transform: translateX(20px); }
.cookie-switch input:focus-visible + span { outline: 3px solid var(--olive); outline-offset: 3px; }
.cookie-switch input:disabled + span { opacity: .7; }
.cookie-switch em { color: var(--muted); font-size: .66rem; font-style: normal; white-space: nowrap; }
.cookie-fab { position: fixed; z-index: 999; bottom: 20px; left: 20px; width: 48px; height: 48px; padding: 3px; border: 1px solid rgba(70,94,77,.2); border-radius: 50%; background: #fcfaf6; box-shadow: 0 8px 24px rgba(35,49,39,.2); cursor: pointer; opacity: 0; transform: translateY(12px); transition: opacity .35s ease, transform .35s ease, box-shadow .25s ease; }
.cookie-fab.is-visible { opacity: 1; transform: none; }
.cookie-fab:hover { box-shadow: 0 10px 28px rgba(35,49,39,.28); }
.cookie-fab img { width: 100%; height: 100%; border-radius: 50%; object-fit: contain; }
.cookie-fab span { position: absolute; bottom: 7px; left: calc(100% + 10px); padding: 6px 9px; border-radius: 5px; background: var(--footer-green); color: #fff; font-size: .72rem; line-height: 1; white-space: nowrap; opacity: 0; pointer-events: none; transform: translateX(-4px); transition: opacity .2s ease, transform .2s ease; }
.cookie-fab:hover span, .cookie-fab:focus-visible span { opacity: 1; transform: none; }
.safety-section { padding-block: clamp(86px, 9vw, 138px); background: var(--cream); }
.safety-shell { display: grid; grid-template-columns: minmax(360px, .88fr) minmax(480px, 1.12fr); gap: clamp(56px, 8vw, 124px); align-items: start; }
.safety-image { width: min(88%, 520px); height: 220px; margin-top: 46px; overflow: hidden; border-radius: 8px; }
.safety-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.safety-copy { max-width: 680px; }
.safety-copy h2 { max-width: 720px; font-size: clamp(3.1rem, 4.8vw, 5.2rem); }
.safety-intro { max-width: 720px; margin: 28px 0 0; color: var(--muted); }
.safety-emphasis { max-width: 650px; margin: 24px 0 0; color: var(--deep-green); font-family: var(--serif); font-size: clamp(1.5rem, 2vw, 1.9rem); font-style: italic; line-height: 1.25; }
.safety-details { padding-top: 4px; }
.safety-details h3 { margin-bottom: 22px; font-size: clamp(2.25rem, 3vw, 3.1rem); }
.safety-list { margin: 0 0 36px; padding: 0; list-style: none; }
.safety-list li { position: relative; min-height: 82px; display: flex; align-items: center; padding: 22px 10px 22px 40px; border-bottom: 1px solid rgba(70,94,77,.2); color: var(--ink); font-family: var(--serif); font-size: clamp(1.35rem, 1.7vw, 1.65rem); line-height: 1.3; }
.safety-list li:last-child { border-bottom: 0; }
.safety-list li::before { content: '✦'; position: absolute; left: 5px; color: var(--accent); font-size: .92rem; }
.safety-button { text-decoration: none; }

/* Kezelés előtti tudnivalók */
.info-page { background: #fcfaf6; }
.info-page .site-header { background: rgba(252,250,246,.96); }
.info-hero { position: relative; min-height: 800px; padding: 166px 0 190px; background: #34483b url('images/hero fontos.jpg') center 42% / cover no-repeat; color: #fff; overflow: hidden; }
.info-hero::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(20,31,24,.8) 0%, rgba(24,36,28,.61) 38%, rgba(24,36,28,.17) 72%, rgba(24,36,28,.05) 100%); }
.info-hero-grid { position: relative; z-index: 1; display: flex; align-items: flex-start; min-height: 444px; }
.info-hero-copy { max-width: 760px; margin-top: -34px; }
.info-hero .eyebrow { color: #d2dcb6; }
.info-hero h1 { max-width: 760px; margin: 14px 0 30px; color: #fff; font-size: clamp(3.7rem, 6.2vw, 6.5rem); line-height: .91; letter-spacing: -.045em; text-wrap: balance; }
.info-hero .info-lead { max-width: 680px; margin: 0; color: rgba(255,255,255,.88); font-size: 1.2rem; line-height: 1.75; }
.info-statement { position: relative; z-index: 2; display: flow-root; padding: 0 0 42px; background: #f3f5f0; color: #f8f4ee; }
.info-statement .page-container { width: min(1120px, calc(100% - 2 * var(--page-gutter))); margin-top: -170px; padding: 72px 80px 78px; background: var(--deep-green); border-radius: 12px; box-shadow: 0 24px 60px rgba(34,57,41,.14); }
.info-statement p { max-width: 940px; margin: 0 auto; font-family: var(--serif); font-size: clamp(3.1rem, 5.4vw, 5.8rem); font-style: italic; line-height: .98; letter-spacing: -.035em; text-align: center; text-wrap: balance; }
.info-content { background: #fcfaf6; }
.info-section { padding: 112px 0 122px; }
.info-section-grid { display: grid; grid-template-columns: minmax(270px, .78fr) minmax(0, 1.22fr); gap: clamp(64px, 9vw, 145px); align-items: start; }
.info-section-heading { position: static; }
.info-section h2,
.info-signal h2,
.info-closing h2 { font-size: clamp(3rem, 5vw, 5.4rem); line-height: .94; letter-spacing: -.035em; text-wrap: balance; }
.info-section-heading p,
.info-consult-intro p { max-width: 480px; margin-top: 30px; color: var(--muted); }
.info-section--avoid { background: #f3f5f0; }
.info-avoid-image { width: min(100%, 440px); height: 220px; margin-top: 42px; overflow: hidden; border-radius: 10px; }
.info-avoid-image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.info-section--avoid .info-section-body { width: min(100%, 650px); justify-self: end; }
.info-section-body > :last-child { margin-bottom: 0; }
.info-list { display: grid; margin: 0; padding: 0; list-style: none; }
.info-list li { position: relative; padding: 19px 0 19px 34px; border-bottom: 1px solid rgba(70,94,77,.18); color: #3e463f; line-height: 1.55; }
.info-list li:first-child { padding-top: 0; }
.info-list li:last-child { padding-bottom: 0; border-bottom: 0; }
.info-list li::before { content: '✦'; position: absolute; top: 1.05em; left: 0; color: #8eb35d; }
.info-list li:first-child::before { top: .05em; }
.info-list--strong li { padding-block: 26px; font-size: 1.28rem; line-height: 1.5; }
.info-list--strong li:first-child { padding-top: 0; }
.info-list--strong li::before { top: 1.28em; }
.info-list--strong li:first-child::before { top: .05em; }
.info-section--consult { background: #eee8de; }
.info-consult-grid { display: block; }
.info-consult-intro { max-width: 920px; margin: 0 auto 64px; text-align: center; }
.info-consult-intro h2 { max-width: 900px; margin-inline: auto; }
.info-consult-intro p { max-width: 720px; margin: 24px auto 0; }
.info-consult-content { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, 360px) minmax(0, 1fr); gap: clamp(36px, 5vw, 76px); align-items: center; }
.info-consult-image { height: 470px; margin: 0; overflow: hidden; border-radius: 12px; }
.info-consult-image img { width: 100%; height: 100%; object-fit: cover; }
.info-consult-list li { padding-block: 22px; border-bottom: 0; font-size: 1.12rem; }
.info-consult-list--left li { padding-right: 30px; padding-left: 0; text-align: right; }
.info-consult-list--left li::before { right: 0; left: auto; }
.info-consult-list--right li { padding-right: 0; padding-left: 30px; }
.info-note { max-width: 920px; margin: 64px auto 0; padding: 26px 30px; background: #fcfaf6; border-left: 4px solid #8eb35d; color: var(--deep-green); font-family: var(--serif); font-size: 1.55rem; line-height: 1.35; }
.info-signal { padding: 118px 0; background: #fcfaf6; }
.info-signal-grid { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); align-items: stretch; }
.info-signal-image { min-height: 600px; overflow: hidden; border-radius: 12px 0 0 12px; }
.info-signal-image img { width: 100%; height: 100%; object-fit: cover; }
.info-signal-copy { display: flex; flex-direction: column; justify-content: center; padding: clamp(54px, 7vw, 100px); background: var(--deep-green); color: #f8f4ee; border-radius: 0 12px 12px 0; }
.info-signal-copy h2 { margin-bottom: 34px; color: #fff; }
.info-signal-copy p { color: rgba(255,255,255,.78); }
.info-signal-emphasis { margin-top: 24px; color: #d2dcb6 !important; font-family: var(--serif); font-size: 1.7rem; line-height: 1.32; }
.info-section--medical { background: #f5f1ea; }
.info-medical-wrap > h2 { max-width: 980px; margin: 0 auto 68px; text-align: center; }
.info-medical-grid { display: grid; grid-template-columns: minmax(320px, .82fr) minmax(0, 1.18fr); gap: clamp(64px, 9vw, 140px); align-items: center; }
.info-medical-copy { max-width: 570px; }
.info-medical-copy p { color: var(--muted); }
.info-medical-lead { color: var(--deep-green) !important; font-family: var(--serif); font-size: 2.65rem; line-height: 1.16; }
.info-medical-image { height: 480px; margin: 0; overflow: hidden; border-radius: 12px; }
.info-medical-image img { width: 100%; height: 100%; object-fit: cover; }
.info-closing { position: relative; padding: 118px 0 126px; background: var(--deep-green) url('images/37.jpg') center 48% / cover no-repeat; color: #fff; text-align: center; overflow: hidden; }
.info-closing::before { content: ''; position: absolute; inset: 0; background: rgba(31,65,43,.82); }
.info-closing-inner { position: relative; z-index: 1; max-width: 990px; }
.info-closing h2 { margin-inline: auto; color: #fff; }
.info-closing-inner > p:not(.info-closing-emphasis) { max-width: 780px; margin: 34px auto 0; color: rgba(255,255,255,.84); }
.info-closing-emphasis { margin: 30px auto 0; color: #d2dcb6; font-family: var(--serif); font-size: clamp(2rem, 3.3vw, 3.3rem); font-style: italic; line-height: 1.15; }
.info-cta { display: flex; justify-content: center; flex-wrap: wrap; gap: 14px; margin-top: 40px; }
.info-closing .button-outline { border: 0; background: #fcfaf6; color: var(--deep-green); }
.info-closing .button-outline:hover { background: #eae2d6; }
.info-closing .button:not(.button-outline) { background: #8eb35d; color: #fff; }
.info-closing .button:not(.button-outline):hover { background: #d2dcb6; color: var(--deep-green); }

/* Szöveges aloldalak */
.legal-page { background: #fcfaf6; }
.legal-page .site-header { background: rgba(252,250,246,.96); }
.legal-hero { padding: 158px 0 88px; background: #f3f5f0; }
.legal-hero--privacy { background: linear-gradient(to bottom, #9eae9b 0%, #aab8a8 24%, #c1ccbf 48%, #dce2d9 72%, #fcfaf6 100%); }
.legal-hero--privacy .legal-hero-lead { color: #27302b; }
.legal-hero--privacy + .legal-content { background: #fcfaf6; }
.legal-hero--privacy + .legal-content .legal-list { gap: 6px; }
.legal-hero--privacy + .legal-content .legal-list li { padding-block: 11px; border-bottom: 0; line-height: 1.78; }
.legal-hero--privacy + .legal-content .legal-detail-list > div { padding-block: 13px; border: 0; line-height: 1.65; }
.legal-hero--impressum { background: linear-gradient(to bottom, #9eae9b 0%, #aab8a8 24%, #c1ccbf 48%, #dce2d9 72%, #fcfaf6 100%); }
.legal-hero--impressum .legal-hero-lead { color: #27302b; }
.legal-hero--impressum + .legal-content { background: #fcfaf6; }
.legal-hero--impressum + .legal-content .legal-detail-list > div { padding-block: 13px; border: 0; line-height: 1.65; }
.legal-hero-inner { max-width: 960px; }
.subpage-back { display: inline-flex; margin-bottom: 50px; color: var(--deep-green); font-size: .9rem; font-weight: 600; text-decoration: underline; text-underline-offset: 4px; }
.legal-hero h1 { max-width: 940px; margin: 12px 0 26px; font-size: clamp(3.8rem, 7vw, 7rem); line-height: .9; letter-spacing: -.045em; }
.legal-hero-lead { max-width: 820px; margin: 0; color: var(--muted); font-size: 1.16rem; line-height: 1.75; }
.legal-effective { display: inline-block; margin-top: 28px; color: var(--deep-green); font-weight: 600; }
.legal-content { padding: 104px 0 124px; }
.legal-article { width: min(calc(100% - 2 * var(--page-gutter)), 900px); margin-inline: auto; }
.legal-section { display: grid; grid-template-columns: 74px minmax(0, 1fr); gap: 28px; padding: 58px 0; border-bottom: 1px solid rgba(70,94,77,.18); }
.legal-section:first-child { padding-top: 0; }
.legal-section:last-child { padding-bottom: 0; border-bottom: 0; }
.legal-number { padding-top: 7px; color: var(--olive-dark); font-family: var(--serif); font-size: 1.4rem; line-height: 1; }
.legal-section-body h2 { margin-bottom: 26px; font-size: clamp(2.25rem, 3.8vw, 3.65rem); }
.legal-section-body p { color: var(--muted); }
.legal-section-body strong { color: var(--ink); }
.legal-list { display: grid; gap: 0; margin: 24px 0 28px; padding: 0; list-style: none; }
.legal-list li { position: relative; padding: 13px 0 13px 28px; border-bottom: 1px solid rgba(70,94,77,.13); color: var(--muted); line-height: 1.55; }
.legal-list li:last-child { border-bottom: 0; }
.legal-list li::before { content: '✦'; position: absolute; top: 13px; left: 0; color: var(--accent); font-size: .78rem; }
.legal-detail-list { margin: 0; }
.legal-detail-list > div { display: grid; grid-template-columns: minmax(190px, .62fr) minmax(0, 1.38fr); gap: 28px; padding: 19px 0; border-bottom: 1px solid rgba(70,94,77,.15); }
.legal-detail-list > div:first-child { border-top: 1px solid rgba(70,94,77,.15); }
.legal-detail-list dt { color: var(--deep-green); font-weight: 600; }
.legal-detail-list dd { margin: 0; color: var(--muted); }
.legal-note { margin-top: 26px; padding-left: 22px; border-left: 3px solid var(--accent); color: var(--deep-green) !important; }
.legal-actions { display: flex; flex-wrap: wrap; gap: 13px; margin-top: 32px; }
.inline-cookie-button { padding: 0; border: 0; background: transparent; color: var(--deep-green); font-weight: 600; text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.footer-legal .is-active { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.reveal { opacity: 0; transform: translateY(22px); transition: opacity .78s cubic-bezier(.22,.61,.36,1), transform .78s cubic-bezier(.22,.61,.36,1); transition-delay: var(--reveal-delay, 0ms); }
.reveal.visible { opacity: 1; transform: none; }
.image-reveal { transform: translateY(18px) scale(.985); }
.image-reveal.visible { transform: none; }

@keyframes hero-reveal { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
@keyframes hero-image-reveal { from { opacity: 0; transform: scale(1.008); } to { opacity: 1; transform: none; } }
@keyframes hero-details-reveal { from { opacity: 0; transform: translate(-50%, 14px); } to { opacity: 1; transform: translate(-50%, 0); } }
.hero > img { opacity: 0; animation: hero-image-reveal 1s cubic-bezier(.22,.61,.36,1) .05s forwards; }
.hero-kicker, .hero h1, .hero-lead, .hero-content .button { opacity: 0; animation: hero-reveal .78s cubic-bezier(.22,.61,.36,1) forwards; }
.hero-kicker { animation-delay: .12s; }
.hero h1 { animation-delay: .23s; }
.hero-lead { animation-delay: .34s; }
.hero-content .button { animation-delay: .45s; }
.hero-details { opacity: 0; animation: hero-details-reveal .78s cubic-bezier(.22,.61,.36,1) .6s forwards; }

@media (hover: hover) and (pointer: fine) {
  .intro-gallery figure:hover img, .treatment-item:hover .treatment-image img, .audience-tile:hover > img { transform: scale(1.018); }
  .treatment-item { transition: background-color .3s ease, box-shadow .3s ease; }
  .treatment-item:hover { background-color: #fdfcf8; box-shadow: 0 12px 34px rgba(52,72,58,.075); }
  .treatment-featured:hover { background-color: #dbe6d4; }
}

@media (max-width: 1050px) {
  :root { --page-gutter: clamp(28px, 5vw, 56px); }
  .primary-nav { gap: 16px; font-size: 1.2rem; }
  .treatment-item { grid-template-columns: 220px 1fr; }
  .treatment-action { grid-column: 2; flex-direction: row; align-items: center; justify-content: space-between; text-align: left; }
  .section-heading { grid-template-columns: 1fr; }
  .section-heading .eyebrow { margin-bottom: -22px; }
  .about-grid, .approach-grid { gap: 60px; }
  .approach-copy blockquote { font-size: 1.3rem; }
  .safety-shell { grid-template-columns: minmax(300px, .8fr) minmax(0, 1.2fr); gap: 44px; }
  .safety-image { min-height: 0; }
  .safety-copy h2 { font-size: clamp(2.8rem, 5vw, 4.2rem); }
}
@media (max-width: 820px) {
  :root { --page-gutter: clamp(20px, 5vw, 42px); }
  body { font-size: 17px; }
  body.menu-open .cookie-panel, body.menu-open .cookie-fab { opacity: 0; visibility: hidden; pointer-events: none; }
  .eyebrow, .hero-kicker { font-size: .92rem; }
  .site-header { -webkit-backdrop-filter: none; backdrop-filter: none; }
  .menu-toggle { display: block; position: relative; z-index: 4; }
  .menu-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .menu-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .primary-nav { position: fixed; inset: 0; z-index: 3; height: 100dvh; min-height: 100dvh; flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 24px; overflow-y: auto; overscroll-behavior: contain; padding: 120px var(--page-gutter) max(50px, env(safe-area-inset-bottom)); background: var(--paper); opacity: 0; visibility: hidden; transform: translateY(-12px); transition: opacity .25s ease, visibility .25s ease, transform .25s ease; font-size: 1.5rem; }
  .primary-nav.open { opacity: 1; visibility: visible; transform: none; }
  .hero { min-height: 760px; align-items: end; }
  .hero > img { object-position: 58% center; }
  .hero-overlay { background: linear-gradient(0deg, rgba(31,25,21,.9), rgba(31,25,21,.08) 80%); }
  .hero-content { padding: 180px 0 160px; }
  .hero h1 { font-size: clamp(3.6rem, 13vw, 6.6rem); }
  .hero-details { right: auto; left: 50%; width: min(700px, calc(100% - 2 * var(--page-gutter))); }
  .intro-gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .intro-gallery figure { height: clamp(240px, 34vw, 340px); }
  .philosophy-grid, .about-grid, .approach-grid, .program-grid, .process-grid, .booking-grid, .faq-grid, .location-grid, .closing-grid { grid-template-columns: 1fr; }
  .philosophy-copy { max-width: 760px; }
  .philosophy-image { height: 560px; }
  .about-photo { height: 620px; min-height: 0; }
  .about-copy, .audience-heading, .approach-copy, .program-details { max-width: none; }
  .approach-copy { padding-top: 0; }
  .approach-copy blockquote { width: 100%; font-size: 1.7rem; }
  .approach-image { height: 560px; }
  .audience-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-template-rows: auto; }
  .audience-sitting { grid-column: 1 / -1; grid-row: auto; min-height: 380px; }
  .audience-active { grid-column: 1; grid-row: auto; min-height: 280px; }
  .audience-slow { grid-column: 2; grid-row: auto; width: 100%; min-height: 280px; }
  .audience-carry { grid-column: 1 / -1; grid-row: auto; width: 100%; min-height: 340px; }
  .program-image { height: 560px; min-height: 0; margin-block: 0; }
  .process-intro { width: 100%; max-width: 680px; }
  .process-intro img { max-width: 560px; height: 320px; }
  .process-list { justify-self: stretch; width: 100%; }
  .booking-photo { min-height: 440px; }
  .location-card { order: 2; }
  .location-map { min-height: 440px; }
  .accordion { grid-template-columns: 1fr; gap: 0; }
  .accordion-column + .accordion-column { border-top: 1px solid rgba(64,81,66,.2); }
  .accordion-item button span { font-size: calc(1.3rem + 2px); }
  .safety-shell { grid-template-columns: 1fr; gap: 48px; align-items: start; }
  .safety-copy { max-width: none; }
  .info-hero { min-height: 730px; padding: 142px 0 170px; background-position: 58% center; }
  .info-hero-grid { min-height: 418px; }
  .info-hero-copy { max-width: 720px; margin-top: -24px; }
  .info-statement .page-container { padding-inline: 64px; }
  .info-section-grid,
  .info-medical-grid { grid-template-columns: 1fr; gap: 42px; }
  .info-section-heading { position: static; }
  .info-section-heading h2,
  .info-medical-wrap > h2 { max-width: 760px; }
  .info-note { max-width: 920px; }
  .info-signal-grid { grid-template-columns: 1fr; }
  .info-signal-image { min-height: 480px; border-radius: 12px 12px 0 0; }
  .info-signal-copy { border-radius: 0 0 12px 12px; }
  .info-medical-copy { max-width: 760px; padding-top: 0; }
  .legal-hero { padding: 138px 0 76px; }
  .legal-section { grid-template-columns: 58px minmax(0, 1fr); gap: 20px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 580px) {
  :root { --page-gutter: 20px; }
  .section { padding: 72px 0; }
  h2 { font-size: clamp(2.6rem, 13vw, 4.1rem); }
  .brand small { display: none; }
  .hero { min-height: 700px; }
  .hero-content { padding: 120px 0 160px; }
  .hero h1 { font-size: clamp(3.45rem, 17vw, 5.25rem); }
  .hero-details { bottom: -47px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero-details { border-radius: 14px; }
  .hero-details div { min-height: 94px; padding: 15px 8px; }
  .hero-details div + div { border-top: 0; border-left: 1px solid rgba(204,222,194,.26); }
  .hero-details small { font-size: .62rem; }
  .detail-numbers { font-size: 1.32rem; }
  .detail-services { max-width: 145px; font-size: .75rem; line-height: 1.25; white-space: normal; }
  .intro-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .intro-gallery figure { height: 240px; }
  .intro-gallery figcaption { padding: 36px 12px 12px; font-size: .82rem; }
  .philosophy-image { height: 360px; }
  .treatment-item { grid-template-columns: 1fr; gap: 22px; padding: 14px 14px 22px; }
  .treatment-image { height: 240px; }
  .treatment-action { grid-column: auto; flex-direction: column; align-items: stretch; text-align: left; }
  .text-button { width: 100%; }
  .treatment-featured { box-shadow: 0 10px 32px rgba(52,72,58,.055); }
  .about-photo { height: 470px; }
  .audience-bento { grid-template-columns: 1fr; }
  .audience-sitting, .audience-active, .audience-slow, .audience-carry { grid-column: 1; grid-row: auto; width: 100%; }
  .audience-sitting { min-height: 350px; }
  .audience-active, .audience-slow { min-height: 240px; }
  .audience-carry { min-height: 390px; }
  .audience-carry .audience-tile-copy { width: 72%; padding: 30px 26px; }
  .audience-carry > img { right: -12%; width: 65%; height: 78%; }
  .mood-section { min-height: 560px; }
  .approach-image { height: 350px; min-height: 0; }
  .program-image { height: 430px; min-height: 0; }
  .approach-copy blockquote { white-space: normal; }
  .process-intro img { height: 250px; }
  .process-list { gap: 24px; }
  .process-list::before { content: none; }
  .process-list li { display: block; }
  .process-list li > span { width: 52px; height: 52px; margin: 0 0 10px 18px; font-size: 1.22rem; }
  .process-card { padding: 26px 22px; }
  .process-button-desktop { display: none; }
  .process-action { display: flex; justify-content: center; margin-top: 22px; }
  .process-section { padding-bottom: 48px; }
  .booking-section { padding-top: 48px; }
  .booking-photo { min-height: 350px; }
  .booking-copy { padding: 38px 28px 44px; }
  .accordion-item button { min-height: 76px; }
  .faq-shell { padding: 42px 24px; border-radius: 14px; }
  .faq-shell header { margin-bottom: 34px; }
  .faq-shell header h2 { font-size: clamp(2.8rem, 14vw, 4rem); }
  .location-map { min-height: 350px; }
  .location-card { padding: 38px 28px; }
  .closing-section { min-height: 640px; }
  .closing-content { top: -28px; }
  .closing-grid h2 { font-size: clamp(3.05rem, 13vw, 3.4rem); line-height: 1.05; white-space: normal; }
  .closing-text { margin: 48px auto 42px; font-size: 1.2rem; }
  .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 40px 24px; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
  .footer-bottom { grid-column: 1 / -1; flex-direction: column; }
  .footer-legal { flex-wrap: wrap; }
  .cookie-panel { right: 12px; bottom: 12px; width: calc(100vw - 24px); max-height: calc(100dvh - 24px); padding: 22px 20px; }
  .cookie-panel-head { grid-template-columns: 46px 1fr 32px; }
  .cookie-panel-head > img { width: 46px; height: 46px; }
  .cookie-panel h2 { font-size: 1.8rem; }
  .cookie-actions { flex-direction: column; }
  .cookie-action, .cookie-settings-link { width: 100%; }
  .cookie-fab { bottom: 14px; left: 14px; width: 44px; height: 44px; }
  .cookie-fab span { display: none; }
  .safety-section { padding-block: 72px; }
  .safety-shell { gap: 48px; }
  .safety-image { width: 100%; height: 210px; margin-top: 36px; }
  .safety-copy h2 { font-size: clamp(2.8rem, 13vw, 4rem); }
  .safety-intro { margin-top: 24px; }
  .safety-emphasis { margin-top: 20px; }
  .safety-details h3 { font-size: 2.35rem; }
  .safety-list li { min-height: 0; padding-block: 21px; font-size: 1.28rem; }
  .info-hero { min-height: 670px; padding: 110px 0 148px; background-position: 62% center; }
  .info-hero::before { background: linear-gradient(90deg, rgba(20,31,24,.84) 0%, rgba(24,36,28,.66) 58%, rgba(24,36,28,.24) 100%); }
  .info-hero-grid { min-height: 412px; }
  .info-hero-copy { margin-top: -14px; }
  .info-hero h1 { font-size: clamp(3.15rem, 15vw, 4.5rem); }
  .info-hero .info-lead { font-size: 1.05rem; }
  .info-statement { padding: 0 0 34px; }
  .info-statement .page-container { width: calc(100% - 2 * var(--page-gutter)); margin-top: -152px; padding: 44px 24px 48px; border-radius: 10px; }
  .info-statement p { font-size: clamp(2.65rem, 13vw, 4.2rem); }
  .info-section { padding: 76px 0 82px; }
  .info-section-grid,
  .info-medical-grid { gap: 34px; }
  .info-consult-intro { margin-bottom: 42px; text-align: left; }
  .info-consult-intro h2,
  .info-consult-intro p { margin-left: 0; }
  .info-consult-content { grid-template-columns: 1fr; gap: 0; }
  .info-consult-image { order: -1; width: 100%; height: 360px; margin-bottom: 28px; }
  .info-consult-list--left li { padding-right: 0; padding-left: 29px; text-align: left; }
  .info-consult-list--left li::before { right: auto; left: 0; }
  .info-consult-list li { padding-block: 17px; font-size: 1rem; }
  .info-consult-list--right { margin-top: 20px; }
  .info-consult-list--right li:first-child { padding-top: 17px; border-top: 0; }
  .info-consult-list--right li:first-child::before { top: 1.05em; }
  .info-note { margin-top: 42px; }
  .info-section h2,
  .info-signal h2,
  .info-closing h2 { font-size: clamp(2.7rem, 12vw, 3.65rem); }
  .info-list li { padding: 17px 0 17px 29px; }
  .info-list--strong li { font-size: 1rem; }
  .info-note { padding: 24px 22px; font-size: 1.35rem; }
  .info-signal { padding: 78px 0; }
  .info-signal-image { min-height: 330px; }
  .info-signal-copy { padding: 44px 26px 50px; }
  .info-signal-emphasis { font-size: 1.48rem; }
  .info-medical-lead { font-size: 2.15rem; }
  .info-medical-wrap > h2 { margin-bottom: 42px; }
  .info-medical-image { height: 340px; }
  .info-closing { padding: 80px 0 88px; }
  .info-closing-inner > p:not(.info-closing-emphasis) { margin-top: 28px; }
  .info-closing-emphasis { margin-top: 26px; }
  .info-cta { flex-direction: column; align-items: stretch; }
  .info-cta .button { width: 100%; }
  .legal-hero { padding: 116px 0 62px; }
  .subpage-back { margin-bottom: 38px; }
  .legal-hero h1 { font-size: clamp(3.15rem, 15vw, 4.5rem); }
  .legal-hero-lead { font-size: 1.05rem; }
  .legal-content { padding: 72px 0 88px; }
  .legal-section { grid-template-columns: 1fr; gap: 16px; padding: 44px 0; }
  .legal-section-body { min-width: 0; }
  .legal-number { padding-top: 0; font-size: 1.15rem; }
  .legal-section-body h2 { margin-bottom: 22px; font-size: 2.55rem; }
  .legal-detail-list > div,
  .legal-hero--privacy + .legal-content .legal-detail-list > div { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 20px 0; }
  .legal-detail-list dt,
  .legal-detail-list dd { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
  .legal-actions { flex-direction: column; }
  .legal-actions .button { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
  .hero > img, .hero-kicker, .hero h1, .hero-lead, .hero-content .button, .hero-details { animation: none !important; }
  .reveal, .image-reveal, .hero > img, .hero-kicker, .hero h1, .hero-lead, .hero-content .button { opacity: 1; transform: none; }
  .hero-details { opacity: 1; transform: translateX(-50%); }
  .cookie-panel, .cookie-fab { transition: none; }
}
