:root {
  --navy: #07131d;
  --navy-2: #0a1a26;
  --ink: #10171b;
  --ivory: #f1eee7;
  --stone: #d9d4ca;
  --paper: #f8f5ef;
  --white: #fbfaf7;
  --gold: #a98e62;
  --gold-soft: #c6b28f;
  --line-dark: rgba(13, 25, 32, 0.17);
  --line-light: rgba(255, 255, 255, 0.18);
  --sans: "Helvetica Neue", Helvetica, Arial, sans-serif;
  --serif: "Iowan Old Style", "Palatino Linotype", Palatino, "Times New Roman", serif;
  --pad-x: clamp(1.25rem, 4vw, 5rem);
  --section-y: clamp(6.5rem, 12vw, 11.5rem);
  --max: 1600px;
  --ease: cubic-bezier(.22, 1, .36, 1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--navy); }
body {
  margin: 0;
  color: var(--ink);
  background: var(--ivory);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, a { -webkit-tap-highlight-color: transparent; }
::selection { background: var(--gold); color: var(--navy); }

.skip-link {
  position: fixed;
  left: 1rem;
  top: 1rem;
  z-index: 999;
  padding: .75rem 1rem;
  background: var(--white);
  color: var(--navy);
  transform: translateY(-180%);
  transition: transform .2s ease;
}
.skip-link:focus { transform: translateY(0); }

.site-header {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 60;
  display: grid;
  grid-template-columns: minmax(14rem, 1fr) auto minmax(14rem, 1fr);
  align-items: center;
  gap: 2rem;
  padding: 1.15rem var(--pad-x);
  color: var(--white);
  border-bottom: 1px solid transparent;
  transition: background .45s ease, border-color .45s ease, padding .45s ease, color .45s ease;
}
.site-header.is-scrolled {
  padding-top: .8rem;
  padding-bottom: .8rem;
  background: rgba(7, 19, 29, .86);
  border-color: rgba(255,255,255,.12);
  backdrop-filter: blur(18px);
}
.brand { display: inline-flex; flex-direction: column; width: fit-content; text-transform: uppercase; }
.brand__name { font-size: .76rem; font-weight: 600; letter-spacing: .21em; }
.brand__line { margin-top: .22rem; color: rgba(255,255,255,.56); font-size: .56rem; letter-spacing: .17em; }
.primary-nav { display: flex; align-items: center; gap: clamp(.72rem, 1.35vw, 1.4rem); }
.primary-nav a {
  position: relative;
  padding: .45rem 0;
  font-size: .66rem;
  letter-spacing: .105em;
  text-transform: uppercase;
  color: rgba(255,255,255,.72);
  transition: color .25s ease;
}
.primary-nav a::after {
  content: "";
  position: absolute;
  left: 0;
  right: 100%;
  bottom: .16rem;
  height: 1px;
  background: var(--gold-soft);
  transition: right .35s var(--ease);
}
.primary-nav a:hover, .primary-nav a:focus-visible { color: var(--white); }
.primary-nav a:hover::after, .primary-nav a:focus-visible::after { right: 0; }
.booking--header { justify-self: end; }
.booking {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  padding: .78rem 1.05rem .76rem;
  border: 1px solid rgba(255,255,255,.34);
  font-size: .66rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  transition: color .35s ease, background .35s ease, border-color .35s ease;
}
.booking:hover, .booking:focus-visible { color: var(--navy); background: var(--white); border-color: var(--white); }
.menu-toggle { display: none; }

.hero {
  position: relative;
  min-height: 100svh;
  overflow: hidden;
  color: var(--white);
  background:
    radial-gradient(circle at 72% 36%, rgba(61, 87, 99, .22), transparent 28%),
    linear-gradient(135deg, #07131d 0%, #091824 52%, #06111a 100%);
}
.tension-field, .hero__veil, .grain { position: absolute; inset: 0; width: 100%; height: 100%; }
.tension-field { z-index: 0; opacity: .92; }
.hero__veil {
  z-index: 1;
  background:
    linear-gradient(90deg, rgba(7,19,29,.90) 0%, rgba(7,19,29,.50) 48%, rgba(7,19,29,.30) 100%),
    linear-gradient(180deg, rgba(7,19,29,.25) 0%, transparent 50%, rgba(7,19,29,.82) 100%);
}
.grain {
  z-index: 2;
  pointer-events: none;
  opacity: .085;
  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='.82' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E");
  mix-blend-mode: soft-light;
}
.hero__inner {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: min(var(--max), 100%);
  min-height: 100svh;
  margin: 0 auto;
  padding: clamp(9rem, 17vh, 13rem) var(--pad-x) clamp(8.5rem, 16vh, 11rem);
}
.hero__eyebrow, .kicker, .section__index {
  margin: 0;
  font-size: .66rem;
  font-weight: 500;
  letter-spacing: .2em;
  text-transform: uppercase;
}
.hero__eyebrow { color: var(--gold-soft); }
.hero__title {
  max-width: 11ch;
  margin: clamp(2.4rem, 6vh, 4.7rem) 0 0;
  font-family: var(--serif);
  font-size: clamp(4.25rem, 9.5vw, 10.6rem);
  font-weight: 400;
  line-height: .82;
  letter-spacing: -.055em;
}
.hero__title span, .hero__title em { display: block; }
.hero__title em { margin-left: clamp(1.2rem, 7vw, 8rem); color: var(--gold-soft); font-weight: 400; }
.hero__statement {
  width: min(34rem, 100%);
  margin: clamp(2rem, 5vh, 3.8rem) 0 0 clamp(1.2rem, 7vw, 8rem);
  padding-left: 1.2rem;
  border-left: 1px solid rgba(255,255,255,.26);
  color: rgba(255,255,255,.72);
  font-family: var(--serif);
  font-size: clamp(1.05rem, 1.8vw, 1.45rem);
  line-height: 1.4;
}
.hero__statement p { margin: 0; }
.hero__actions { display: flex; align-items: center; gap: 1.8rem; margin: 2.2rem 0 0 clamp(1.2rem, 7vw, 8rem); }
.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .9rem;
  min-height: 3.25rem;
  padding: .9rem 1.25rem .85rem;
  border: 1px solid transparent;
  font-size: .67rem;
  font-weight: 500;
  letter-spacing: .15em;
  line-height: 1;
  text-transform: uppercase;
  transition: transform .35s var(--ease), background .35s ease, color .35s ease, border-color .35s ease;
}
.button:hover, .button:focus-visible { transform: translateY(-2px); }
.button--light { color: var(--navy); background: var(--white); }
.button--light:hover, .button--light:focus-visible { background: var(--gold-soft); }
.button--dark { color: var(--white); background: var(--navy); }
.button--dark:hover, .button--dark:focus-visible { background: #183041; }
.button--outline { color: var(--white); border-color: rgba(255,255,255,.35); }
.button--outline:hover, .button--outline:focus-visible { color: var(--navy); background: var(--white); border-color: var(--white); }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: .7rem;
  padding: .55rem 0;
  color: rgba(255,255,255,.74);
  border-bottom: 1px solid rgba(255,255,255,.24);
  font-size: .69rem;
  letter-spacing: .13em;
  text-transform: uppercase;
  transition: color .25s ease, border-color .25s ease;
}
.text-link:hover, .text-link:focus-visible { color: var(--white); border-color: var(--gold-soft); }
.text-link--dark { color: rgba(10,24,32,.68); border-color: rgba(10,24,32,.23); }
.text-link--dark:hover, .text-link--dark:focus-visible { color: var(--navy); border-color: var(--gold); }
.hero__foot {
  position: absolute;
  z-index: 3;
  left: var(--pad-x);
  right: var(--pad-x);
  bottom: 1.55rem;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: end;
  color: rgba(255,255,255,.42);
  font-size: .56rem;
  letter-spacing: .16em;
  text-transform: uppercase;
}
.hero__foot > :last-child { justify-self: end; }
.scroll-cue { display: grid; place-items: center; width: 2rem; height: 4.5rem; }
.scroll-cue__line { position: relative; display: block; width: 1px; height: 100%; overflow: hidden; background: rgba(255,255,255,.16); }
.scroll-cue__line::after {
  content: "";
  position: absolute;
  left: 0;
  top: -40%;
  width: 1px;
  height: 40%;
  background: var(--gold-soft);
  animation: scroll-line 2.4s ease-in-out infinite;
}
@keyframes scroll-line { 0% { transform: translateY(0); } 70%,100% { transform: translateY(350%); } }

.intro { opacity: 0; transform: translateY(18px); animation: intro-in 1.15s var(--ease) forwards; }
.intro--1 { animation-delay: .15s; }
.intro--2 { animation-delay: .32s; }
.intro--3 { animation-delay: .58s; }
.intro--4 { animation-delay: .78s; }
.intro--5 { animation-delay: 1.05s; }
@keyframes intro-in { to { opacity: 1; transform: none; } }

.section { position: relative; overflow: hidden; padding: var(--section-y) var(--pad-x); }
.section > * { width: min(var(--max), 100%); margin-left: auto; margin-right: auto; }
.section--ivory { background: var(--ivory); }
.section--stone { background: var(--stone); }
.section--navy { color: var(--white); background: var(--navy); }
.section--ink { color: var(--white); background: var(--ink); }
.section__index { margin-bottom: clamp(3.5rem, 7vw, 7rem); color: rgba(12, 29, 38, .46); }
.section__index--light { color: rgba(255,255,255,.45); }
.display-title {
  margin: 0;
  font-family: var(--serif);
  font-size: clamp(3.1rem, 6.8vw, 7.75rem);
  font-weight: 400;
  line-height: .96;
  letter-spacing: -.045em;
}
.display-title--light { color: var(--white); }
.kicker { margin-bottom: 1.7rem; color: var(--gold-soft); }
.kicker--dark { color: #6f6049; }

.statement__grid { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(18rem, .65fr); gap: clamp(4rem, 10vw, 11rem); align-items: start; }
.statement__copy { padding-top: clamp(.8rem, 4vw, 3.5rem); font-size: clamp(1.05rem, 1.5vw, 1.35rem); line-height: 1.65; }
.statement__copy p { margin: 0 0 1.45rem; }
.statement__anchor { margin-top: 3rem !important; padding-top: 2rem; border-top: 1px solid var(--line-dark); font-family: var(--serif); font-size: clamp(1.45rem, 2.2vw, 2.1rem); line-height: 1.35; }
.statement__copy .text-link { margin-top: 2rem; }

.coherence { min-height: 90svh; display: flex; flex-direction: column; justify-content: center; }
.coherence__halo { position: absolute; width: 62vw; height: 62vw; max-width: 850px; max-height: 850px; left: 56%; top: 54%; transform: translate(-50%, -50%); border: 1px solid rgba(198,178,143,.13); border-radius: 50%; box-shadow: 0 0 150px rgba(87,114,125,.12) inset; }
.coherence__halo::before, .coherence__halo::after { content: ""; position: absolute; inset: 10%; border: 1px solid rgba(198,178,143,.09); border-radius: 50%; }
.coherence__halo::after { inset: 23%; }
.coherence__grid { position: relative; z-index: 2; display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(18rem, .7fr); gap: clamp(4rem, 10vw, 12rem); align-items: end; }
.coherence__intro .display-title { max-width: 9ch; }
.coherence__copy { max-width: 36rem; color: rgba(255,255,255,.7); font-size: clamp(1.05rem, 1.5vw, 1.32rem); line-height: 1.7; }
.coherence__copy p { margin: 0 0 1.6rem; }
.coherence__words { position: relative; z-index: 2; display: flex; justify-content: space-between; margin-top: clamp(6rem, 13vw, 13rem); padding-top: 1.4rem; border-top: 1px solid var(--line-light); color: rgba(255,255,255,.34); font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; }

.journey__heading { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(18rem, .58fr); gap: clamp(3rem, 9vw, 10rem); align-items: end; }
.journey__heading .display-title { max-width: 11ch; }
.journey__lead { margin: 0 0 .7rem; font-size: clamp(1rem, 1.5vw, 1.28rem); line-height: 1.7; }
.journey__frames { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(.75rem, 1.5vw, 1.4rem); margin-top: clamp(4.5rem, 9vw, 8rem); }
.journey-frame { min-width: 0; }
.journey-frame__image {
  position: relative;
  min-height: clamp(30rem, 56vw, 55rem);
  overflow: hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.05), transparent),
    radial-gradient(circle at 50% 34%, #233541, #101e27 60%, #09141b 100%);
}
.journey-frame__image::before {
  content: "";
  position: absolute;
  inset: 7%;
  border: 1px solid rgba(255,255,255,.09);
}
.axis { position: absolute; display: block; background: rgba(198,178,143,.34); transform-origin: center; }
.axis--one { left: 50%; top: 16%; width: 1px; height: 68%; transform: rotate(-2.5deg); }
.axis--two { left: 26%; top: 51%; width: 48%; height: 1px; transform: rotate(4deg); }
.axis--shifted.axis--one { transform: rotate(-1deg); }
.axis--shifted.axis--two { transform: rotate(1.8deg); }
.axis--current.axis--one { transform: rotate(0deg); }
.axis--current.axis--two { transform: rotate(.4deg); }
.photo-note { position: absolute; inset: auto 1.2rem 1.2rem; color: rgba(255,255,255,.34); font-size: .58rem; letter-spacing: .15em; text-transform: uppercase; }
.journey-frame__meta { display: flex; justify-content: space-between; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--line-dark); font-size: .61rem; letter-spacing: .11em; text-transform: uppercase; }
.journey-frame__meta span:last-child { color: rgba(16,23,27,.46); text-align: right; }
.journey__footer { display: flex; align-items: flex-end; justify-content: space-between; gap: 3rem; margin-top: 2rem; }
.journey__footer p { max-width: 42rem; margin: 0; font-family: var(--serif); font-size: clamp(1.45rem, 2.6vw, 2.5rem); line-height: 1.3; }

.performance__grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(20rem, .68fr); gap: clamp(4rem, 11vw, 13rem); }
.performance__title { max-width: 8ch; }
.performance__copy { align-self: end; color: rgba(255,255,255,.7); font-size: clamp(1.04rem, 1.4vw, 1.28rem); line-height: 1.72; }
.performance__copy > p { margin: 0 0 1.55rem; }
.performance__benefits { list-style: none; margin: 3rem 0; padding: 1.2rem 0; border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); }
.performance__benefits li { padding: .55rem 0; color: var(--white); font-family: var(--serif); font-size: clamp(1.45rem, 2.5vw, 2.3rem); }

.sessions__grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(22rem, .72fr); gap: clamp(4rem, 11vw, 12rem); align-items: start; }
.sessions__grid .display-title { max-width: 9ch; }
.session-card { padding: clamp(2rem, 4vw, 3.6rem); color: var(--white); background: var(--navy); }
.session-card > p:first-child { margin: 0; color: var(--gold-soft); font-size: .66rem; letter-spacing: .16em; line-height: 1.6; text-transform: uppercase; }
.session-card__facts { display: flex; justify-content: space-between; gap: 2rem; margin: 2.4rem 0; padding: 1.4rem 0; border-top: 1px solid var(--line-light); border-bottom: 1px solid var(--line-light); font-family: var(--serif); font-size: clamp(1.55rem, 2.5vw, 2.25rem); }
.session-card__body { margin: 0 0 2.5rem; color: rgba(255,255,255,.7); font-size: 1.06rem; line-height: 1.7; }

.about__grid { display: grid; grid-template-columns: minmax(18rem, .72fr) minmax(0, 1.1fr); gap: clamp(4rem, 11vw, 13rem); align-items: center; }
.portrait-placeholder { position: relative; min-height: clamp(33rem, 55vw, 50rem); overflow: hidden; background: #0d202d; }
.portrait-placeholder__field { position: absolute; inset: 0; background: radial-gradient(ellipse at 48% 32%, rgba(198,178,143,.18), transparent 28%), linear-gradient(148deg, transparent 0 45%, rgba(255,255,255,.035) 45% 46%, transparent 46% 100%); }
.portrait-placeholder__field::before { content: ""; position: absolute; left: 50%; top: 14%; width: 36%; height: 70%; transform: translateX(-50%); border: 1px solid rgba(198,178,143,.2); border-radius: 48% 48% 30% 30% / 28% 28% 68% 68%; }
.portrait-placeholder span { position: absolute; left: 1.4rem; bottom: 1.4rem; color: rgba(255,255,255,.34); font-size: .6rem; letter-spacing: .16em; text-transform: uppercase; }
.about__copy .display-title { max-width: 10ch; }
.about__copy > p:not(.kicker) { max-width: 42rem; margin: 2.6rem 0; color: rgba(255,255,255,.7); font-size: clamp(1.04rem, 1.5vw, 1.3rem); line-height: 1.72; }

.closing { position: relative; overflow: hidden; padding: clamp(9rem, 18vw, 18rem) var(--pad-x); color: var(--white); text-align: center; background: linear-gradient(145deg, #0a1b27, #06111a); }
.grain--soft { opacity: .055; }
.closing__inner { position: relative; z-index: 2; width: min(1000px, 100%); margin: 0 auto; }
.closing h2 { margin: 0; font-family: var(--serif); font-size: clamp(3.4rem, 7vw, 7.5rem); font-weight: 400; line-height: .98; letter-spacing: -.045em; }
.closing__inner > p:not(.kicker) { margin: 2rem 0 3rem; color: var(--gold-soft); font-family: var(--serif); font-size: clamp(1.35rem, 2.4vw, 2.1rem); }

.site-footer { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 2rem; padding: 2.4rem var(--pad-x); color: rgba(255,255,255,.54); background: #040c12; border-top: 1px solid rgba(255,255,255,.09); font-size: .63rem; letter-spacing: .1em; line-height: 1.8; text-transform: uppercase; }
.site-footer > div { display: flex; flex-direction: column; }
.site-footer > div:nth-child(2) { align-items: center; }
.site-footer > div:last-child { align-items: flex-end; }
.site-footer strong { color: rgba(255,255,255,.78); font-weight: 500; }
.site-footer a:hover, .site-footer a:focus-visible { color: var(--white); }

.js .reveal { opacity: 0; transform: translateY(28px); transition: opacity 1s var(--ease), transform 1s var(--ease); }
.js .reveal.is-visible { opacity: 1; transform: none; }

:focus-visible { outline: 2px solid var(--gold-soft); outline-offset: 4px; }

@media (max-width: 1080px) {
  .site-header { grid-template-columns: 1fr auto auto; }
  .primary-nav { position: fixed; inset: 0; z-index: -1; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 1.2rem; padding: 7rem var(--pad-x) 4rem; color: var(--white); background: rgba(7,19,29,.98); opacity: 0; visibility: hidden; transform: translateY(-12px); transition: opacity .4s ease, visibility .4s ease, transform .4s var(--ease); }
  .primary-nav.is-open { opacity: 1; visibility: visible; transform: none; }
  .primary-nav a { font-family: var(--serif); font-size: clamp(2.6rem, 8vw, 5rem); font-weight: 400; letter-spacing: -.02em; text-transform: none; }
  .primary-nav a::after { display: none; }
  .menu-toggle { position: relative; z-index: 2; display: inline-flex; align-items: center; gap: .7rem; justify-self: end; padding: .65rem 0; color: var(--white); background: none; border: 0; font: inherit; }
  .menu-toggle__label { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }
  .menu-toggle__lines { position: relative; display: block; width: 1.2rem; height: .8rem; }
  .menu-toggle__lines i { position: absolute; left: 0; width: 100%; height: 1px; background: currentColor; transition: transform .35s var(--ease), top .35s var(--ease); }
  .menu-toggle__lines i:first-child { top: 2px; }
  .menu-toggle__lines i:last-child { top: 8px; }
  .menu-toggle[aria-expanded="true"] .menu-toggle__lines i:first-child { top: 5px; transform: rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-toggle__lines i:last-child { top: 5px; transform: rotate(-45deg); }
  .booking--header { justify-self: end; }
  .statement__grid, .coherence__grid, .journey__heading, .performance__grid, .sessions__grid, .about__grid { grid-template-columns: 1fr; }
  .statement__copy, .coherence__copy, .performance__copy { max-width: 45rem; }
  .journey__heading .display-title, .performance__title, .sessions__grid .display-title, .about__copy .display-title { max-width: 12ch; }
  .about__grid { gap: 4rem; }
  .portrait-placeholder { max-width: 42rem; }
}

@media (max-width: 760px) {
  :root { --pad-x: 1.15rem; --section-y: 6.7rem; }
  .site-header { grid-template-columns: 1fr auto; gap: 1rem; padding-top: .85rem; padding-bottom: .85rem; }
  .brand__line { display: none; }
  .booking--header { position: fixed; z-index: 45; right: 1rem; bottom: 1rem; box-shadow: 0 10px 30px rgba(0,0,0,.24); color: var(--navy); background: var(--white); border-color: var(--white); }
  .booking--header:hover, .booking--header:focus-visible { background: var(--gold-soft); }
  .hero__inner { justify-content: flex-end; padding-top: 8.5rem; padding-bottom: 10rem; }
  .hero__title { font-size: clamp(4.05rem, 20vw, 6.4rem); line-height: .84; }
  .hero__title em { margin-left: .65rem; }
  .hero__statement, .hero__actions { margin-left: .65rem; }
  .hero__statement { font-size: 1.05rem; }
  .hero__actions { flex-direction: column; align-items: flex-start; gap: .8rem; }
  .hero__actions .button { display: none; }
  .hero__foot { left: var(--pad-x); right: var(--pad-x); grid-template-columns: 1fr auto; }
  .hero__foot > :last-child { display: none; }
  .scroll-cue { justify-self: end; }
  .display-title { font-size: clamp(3.2rem, 15vw, 5.4rem); }
  .section__index { margin-bottom: 3rem; }
  .coherence { min-height: auto; }
  .coherence__halo { width: 95vw; height: 95vw; left: 70%; }
  .coherence__words { flex-direction: column; gap: .8rem; }
  .journey__frames { display: flex; width: auto; margin-right: calc(var(--pad-x) * -1); overflow-x: auto; scroll-snap-type: x mandatory; overscroll-behavior-inline: contain; scrollbar-width: none; }
  .journey__frames::-webkit-scrollbar { display: none; }
  .journey-frame { flex: 0 0 82vw; scroll-snap-align: start; }
  .journey-frame__image { min-height: 68vh; }
  .journey__footer { align-items: flex-start; flex-direction: column; }
  .session-card__facts { flex-direction: column; gap: .3rem; }
  .portrait-placeholder { min-height: 70vh; }
  .site-footer { grid-template-columns: 1fr; padding-bottom: 7.5rem; }
  .site-footer > div:nth-child(2), .site-footer > div:last-child { align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .tension-field { display: none; }
  .js .reveal, .intro { opacity: 1; transform: none; }
}

.static-preview .intro { opacity: 1 !important; transform: none !important; animation: none !important; }
.static-preview .reveal { opacity: 1 !important; transform: none !important; transition: none !important; }

.section--paper{background:var(--paper)}.two-col{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(20rem,.7fr);gap:clamp(4rem,10vw,12rem);align-items:start}.large-serif{margin:0;font-family:var(--serif);font-size:clamp(2.8rem,5.2vw,6rem);font-weight:400;line-height:1.02;letter-spacing:-.04em}.prose{color:rgba(16,23,27,.7);font-size:clamp(1.04rem,1.45vw,1.3rem);line-height:1.75}.prose p{margin:0 0 1.7rem}.prose--light{color:rgba(255,255,255,.68)}.serif-callout{font-family:var(--serif);font-size:clamp(1.5rem,2.6vw,2.6rem);line-height:1.35}.serif-callout--light{color:var(--gold-soft)}.smallcaps{color:rgba(16,23,27,.52);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase}.inline-actions{display:flex;gap:1.2rem;align-items:center;flex-wrap:wrap;margin-top:2.5rem}.footer-links{display:flex;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.image-slot>img{position:absolute;z-index:3;inset:1rem;width:calc(100% - 2rem);height:calc(100% - 2rem);object-fit:contain;object-position:center bottom}.image-slot>img~*{opacity:0}.primary-nav a.is-active{color:var(--white)}.primary-nav a.is-active::after{right:0}
.page-hero{position:relative;min-height:72svh;overflow:hidden;padding:10rem var(--pad-x) 6rem}.page-hero--navy{color:var(--white);background:linear-gradient(145deg,#07131d,#0a1d2a)}.page-hero--ink{color:var(--white);background:var(--ink)}.page-hero--stone{background:var(--stone)}.page-hero--ivory{background:var(--ivory)}.page-hero__inner{position:relative;z-index:2;display:flex;flex-direction:column;justify-content:flex-end;width:min(var(--max),100%);min-height:calc(72svh - 16rem);margin:auto}.page-hero__index{margin:0 0 2.3rem;color:var(--gold);font-size:.66rem;letter-spacing:.2em;text-transform:uppercase}.page-hero__title{max-width:12ch;margin:0;font-family:var(--serif);font-size:clamp(4rem,8.5vw,9.5rem);font-weight:400;line-height:.88;letter-spacing:-.055em}.page-hero__lead{max-width:46rem;margin:2.8rem 0 0;color:rgba(255,255,255,.66);font-size:clamp(1.08rem,1.7vw,1.45rem);line-height:1.65}.page-hero--stone .page-hero__lead,.page-hero--ivory .page-hero__lead{color:rgba(16,23,27,.64)}
.manifesto{padding-top:clamp(8rem,16vw,16rem);padding-bottom:clamp(8rem,16vw,16rem)}.manifesto__inner{max-width:1250px;text-align:center}.manifesto h2{margin:0;font-family:var(--serif);font-size:clamp(3.4rem,7vw,7.8rem);font-weight:400;line-height:1;letter-spacing:-.05em}.method-grid,.audience-grid,.benefit-grid,.steps-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line-dark);border-left:1px solid var(--line-dark)}.method-grid article,.audience-grid article,.benefit-grid article,.steps-grid article{padding:clamp(2.2rem,5vw,4.8rem);border-right:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}.method-grid span,.audience-grid span,.benefit-grid span,.steps-grid span{display:block;margin-bottom:3rem;color:#7a674c;font-size:.65rem;letter-spacing:.16em}.method-grid h2,.benefit-grid h2,.steps-grid h2{margin:0;font-family:var(--serif);font-size:clamp(2.1rem,4vw,4.4rem);font-weight:400;line-height:1.08}.method-grid p,.benefit-grid p,.steps-grid p{color:rgba(16,23,27,.68);line-height:1.7}.audience-grid p{margin:0;font-family:var(--serif);font-size:clamp(1.7rem,3vw,3rem);line-height:1.2}.benefit-grid{grid-template-columns:repeat(3,1fr)}.section-lead{max-width:60rem;margin:5rem auto 0;text-align:center;font-family:var(--serif);font-size:clamp(1.6rem,2.8vw,2.7rem);line-height:1.35}.dark-details{margin:0 0 2rem;border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light)}.dark-details summary{padding:1rem 0;cursor:pointer;color:var(--white);font-size:.67rem;letter-spacing:.13em;text-transform:uppercase}.dark-details p{color:rgba(255,255,255,.67);line-height:1.7}
.case-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(20rem,.65fr);gap:clamp(4rem,9vw,10rem);align-items:end}.perspective-tabs{display:flex;gap:.3rem;margin:5rem 0 1.5rem;border-bottom:1px solid var(--line-dark)}.perspective-tabs button{padding:.9rem 1rem;background:none;border:0;border-bottom:1px solid transparent;color:rgba(16,23,27,.5);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;cursor:pointer}.perspective-tabs button.is-active{color:var(--ink);border-color:var(--gold)}.journey-panel{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(.75rem,1.5vw,1.4rem)}.journey-panel[hidden]{display:none}.milestones{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-light)}.milestones li{display:flex;justify-content:space-between;padding:1.2rem 0;border-bottom:1px solid var(--line-light)}.milestones span{font-family:var(--serif);font-size:1.4rem}.milestones small{color:rgba(255,255,255,.45)}.journey-quote{margin:0;color:var(--white);font-family:var(--serif);font-size:clamp(2.5rem,5vw,5.5rem);line-height:1.08}.journey-quote cite{display:block;margin-top:2rem;color:var(--gold-soft);font-family:var(--sans);font-size:.65rem;font-style:normal;letter-spacing:.16em;text-transform:uppercase}
.finder-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line-light);border-left:1px solid var(--line-light)}.finder-grid article{min-height:17rem;padding:2.2rem;border-right:1px solid var(--line-light);border-bottom:1px solid var(--line-light);display:flex;flex-direction:column}.finder-grid span{color:rgba(255,255,255,.45);font-size:.66rem}.finder-grid strong{margin:auto 0 1rem;color:var(--white);font-family:var(--serif);font-size:clamp(1.7rem,3vw,3rem);font-weight:400;line-height:1.15}.finder-grid small{color:var(--gold-soft)}.session-group-label{margin-bottom:3rem;color:#756248;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase}.session-detail{border-top:1px solid var(--line-dark)}.session-detail:last-child{border-bottom:1px solid var(--line-dark)}.session-detail summary{display:grid;grid-template-columns:1fr auto;gap:2rem;padding:2.2rem 0;cursor:pointer;list-style:none}.session-detail summary::-webkit-details-marker{display:none}.session-detail summary strong{display:block;font-family:var(--serif);font-size:clamp(1.9rem,3.7vw,4rem);font-weight:400;line-height:1.08}.session-detail summary small{color:rgba(16,23,27,.5);font-size:.65rem;letter-spacing:.1em;text-transform:uppercase}.session-facts{display:grid;grid-template-columns:auto auto 1.2rem;gap:1.3rem;align-items:center;font-family:var(--serif);font-size:1.3rem}.session-facts i{width:1.2rem;height:1px;background:var(--ink)}.session-content{max-width:56rem;padding:0 0 3.5rem;color:rgba(16,23,27,.7);line-height:1.75}.session-content .button{margin-top:1rem}
.portrait-section{padding-top:0}.portrait-slot{position:relative;max-width:42rem;min-height:62rem;margin:auto;background:#0d202d}.portrait-slot .portrait-placeholder__field{position:absolute;inset:0;background:radial-gradient(ellipse at 48% 30%,rgba(198,178,143,.18),transparent 28%)}.portrait-slot span{position:absolute;left:1.4rem;bottom:1.4rem;color:rgba(255,255,255,.35);font-size:.6rem;letter-spacing:.15em;text-transform:uppercase}.timeline{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-dark)}.timeline li{display:grid;grid-template-columns:minmax(10rem,.35fr) 1fr;gap:2rem;padding:2rem 0;border-bottom:1px solid var(--line-dark)}.timeline span{color:#756248;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase}.timeline p{margin:0;font-family:var(--serif);font-size:clamp(1.5rem,2.7vw,2.8rem);line-height:1.25}
.steps-grid{border-color:var(--line-light)}.steps-grid article{color:var(--white);border-color:var(--line-light)}.steps-grid p{color:rgba(255,255,255,.67)}.faq-list{max-width:1200px}.faq-item{border-top:1px solid var(--line-dark)}.faq-item:last-child{border-bottom:1px solid var(--line-dark)}.faq-item summary{position:relative;padding:2rem 3rem 2rem 0;cursor:pointer;list-style:none;font-family:var(--serif);font-size:clamp(1.6rem,3vw,3rem)}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary i{position:absolute;right:.2rem;top:50%;width:1.2rem;height:1px;background:var(--ink)}.faq-item summary i::after{content:"";position:absolute;width:100%;height:1px;background:var(--ink);transform:rotate(90deg)}.faq-item[open] summary i::after{transform:rotate(0)}.faq-item p{max-width:55rem;margin:0;padding:0 0 2.4rem;color:rgba(16,23,27,.68);line-height:1.75}
.contact-grid{display:grid;grid-template-columns:minmax(20rem,.55fr) minmax(0,1fr);gap:clamp(3rem,8vw,8rem)}.contact-card{padding:clamp(2rem,5vw,4.5rem);color:var(--white);background:var(--navy)}.contact-card h2{font-family:var(--serif);font-size:clamp(2.7rem,5vw,5rem);font-weight:400}.contact-card p{color:rgba(255,255,255,.67);line-height:1.8}.contact-links{display:flex;flex-direction:column;margin:2rem 0;border-top:1px solid var(--line-light)}.contact-links a{padding:1rem 0;border-bottom:1px solid var(--line-light);color:rgba(255,255,255,.7)}.map-art{position:relative;min-height:43rem;overflow:hidden;background:#d9d4ca}.map-art__lake{position:absolute;width:70%;height:120%;right:-24%;top:-10%;border-radius:50%;background:#bdc7c5}.map-art__route{position:absolute;left:28%;top:-5%;width:1px;height:115%;background:#88765a;transform:rotate(28deg)}.map-art__pin{position:absolute;left:51%;top:47%;width:1.1rem;height:1.1rem;border:2px solid var(--navy);border-radius:50%;background:var(--gold)}.map-art strong,.map-art small{position:absolute;left:2rem}.map-art strong{bottom:4rem;font-family:var(--serif);font-size:2.3rem;font-weight:400}.map-art small{bottom:2rem;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase}.draft-note{padding:1.4rem;border:1px solid #a48960;background:#eee6d8}.closing--compact{padding-top:clamp(7rem,13vw,12rem);padding-bottom:clamp(7rem,13vw,12rem)}
.light-hero .site-header:not(.is-scrolled){color:var(--navy)}.light-hero .site-header:not(.is-scrolled) .brand__line{color:rgba(7,19,29,.45)}.light-hero .site-header:not(.is-scrolled) .primary-nav a{color:rgba(7,19,29,.65)}.light-hero .site-header:not(.is-scrolled) .booking{color:var(--navy);border-color:rgba(7,19,29,.3)}.light-hero .site-header:not(.is-scrolled) .menu-toggle{color:var(--navy)}
[id]{scroll-margin-top:6rem}
@media(max-width:1080px){.two-col,.case-head,.contact-grid{grid-template-columns:1fr}.method-grid,.audience-grid,.benefit-grid,.steps-grid{grid-template-columns:1fr 1fr}.light-hero .site-header:not(.is-scrolled) .primary-nav{color:var(--white)}.light-hero .site-header:not(.is-scrolled) .primary-nav a{color:rgba(255,255,255,.72)}.light-hero.menu-open .site-header:not(.is-scrolled) .menu-toggle{color:var(--white)}}
@media(max-width:760px){.hero__title{font-size:clamp(3.7rem,17vw,5.7rem)}.hero__title em{margin-left:.25rem}.page-hero{min-height:76svh;padding-top:8rem;padding-bottom:4rem}.page-hero__inner{min-height:calc(76svh - 12rem)}.page-hero__title{font-size:clamp(3rem,12.5vw,4.7rem);line-height:.93;max-width:100%}.page-hero__lead{margin-top:2rem}.method-grid,.audience-grid,.benefit-grid,.steps-grid,.finder-grid{grid-template-columns:1fr}.journey-panel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin-right:calc(var(--pad-x)*-1)}.journey-panel .journey-frame{flex:0 0 82vw;scroll-snap-align:start}.session-detail summary{grid-template-columns:1fr}.session-facts{grid-template-columns:auto auto 1fr}.session-facts i{justify-self:end}.timeline li{grid-template-columns:1fr;gap:.7rem}.portrait-slot{min-height:70vh}.footer-links{justify-content:flex-start}.map-art{min-height:32rem}}


/* Refinements after visual review */
.journeys-title {
  max-width: 11.5ch;
  line-height: .98;
  letter-spacing: -.045em;
}
#journey-title { line-height: 1.01; }

.benefit-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}
.benefit-grid article {
  min-width: 0;
  padding-left: clamp(2rem, 3.2vw, 3.4rem);
  padding-right: clamp(2rem, 3.2vw, 3.4rem);
}
.benefit-grid h2 {
  max-width: 100%;
  font-size: clamp(2.1rem, 3.35vw, 4.25rem);
  line-height: 1.06;
  letter-spacing: -.035em;
}

.finder-note {
  max-width: 48rem;
  margin: 2rem 0 0;
  color: rgba(255,255,255,.56);
  font-size: .78rem;
  line-height: 1.65;
  letter-spacing: .035em;
}

@media (max-width: 1080px) {
  .benefit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .journeys-title { line-height: 1.02; }
  .benefit-grid { grid-template-columns: 1fr; }
  .benefit-grid h2 { font-size: clamp(2.3rem, 11vw, 3.6rem); }
}


/* Practice photography */
.practice-preview__image {
  position: relative;
  margin: 0 0 clamp(4rem, 8vw, 8rem);
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: var(--stone);
}
.practice-preview__image img,
.practice-exterior img,
.practice-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.practice-preview__image img { object-position: center 48%; }
.practice-preview__copy { margin-top: 0; }

.practice-exterior {
  position: relative;
  height: min(92svh, 980px);
  overflow: hidden;
  background: var(--stone);
}
.practice-exterior::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(7,19,29,.08), transparent 25%, transparent 78%, rgba(7,19,29,.16));
  pointer-events: none;
}
.practice-exterior img {
  object-position: center center;
}
.practice-gallery-section { overflow: hidden; }
.practice-gallery {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(18rem, .72fr);
  gap: clamp(1rem, 2vw, 2rem);
  align-items: start;
}
.practice-gallery figure { margin: 0; }
.practice-gallery__main,
.practice-gallery__side {
  position: relative;
  min-height: clamp(34rem, 62vw, 58rem);
  overflow: hidden;
  background: var(--stone);
}
.practice-gallery__side { min-height: 0; align-self: start; background: transparent; }
.practice-gallery__side img { height: auto; object-fit: contain; object-position: center top; }
.practice-gallery figcaption {
  position: absolute;
  left: 1.4rem;
  bottom: 1.2rem;
  padding: .52rem .72rem;
  color: var(--white);
  background: rgba(7,19,29,.72);
  backdrop-filter: blur(10px);
  font-size: .61rem;
  letter-spacing: .14em;
  text-transform: uppercase;
}
@media (max-width: 900px) {
  .practice-preview__image { aspect-ratio: 4 / 3; }
  .practice-gallery { grid-template-columns: 1fr; }
  .practice-gallery__main { min-height: 64vw; }
  .practice-gallery__side { min-height: 0; max-height: none; }
  .practice-exterior { height: 76svh; }
}
@media (max-width: 560px) {
  .practice-preview__image { margin-left: calc(var(--pad-x) * -1); margin-right: calc(var(--pad-x) * -1); }
  .practice-exterior { height: 68svh; }
  .practice-exterior img { object-position: center center; }
  .practice-gallery { margin-left: calc(var(--pad-x) * -1); margin-right: calc(var(--pad-x) * -1); }
  .practice-gallery__main { min-height: 78vw; }
  .practice-gallery__side { min-height: 0; }
}


/* Session category separation */
.session-category{border-top:1px solid rgba(16,23,27,.13)}
.session-category--deep{background:var(--ivory)}
.session-category--energy{background:var(--stone)}
.session-category-intro{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(20rem,.65fr);gap:clamp(3rem,8vw,9rem);align-items:end;margin-bottom:clamp(3.5rem,7vw,6.5rem)}
.session-category-intro .large-serif{max-width:10ch}
.session-category-intro__copy{max-width:38rem;margin:0;color:rgba(16,23,27,.68);font-size:clamp(1.04rem,1.45vw,1.3rem);line-height:1.75}
@media(max-width:760px){
  .session-category-intro{grid-template-columns:1fr;gap:1.5rem;margin-bottom:3rem}
  .session-category-intro .large-serif{max-width:none}
}


/* V11 — clickable session overview */
.finder-grid .finder-card {
  min-height: 17rem;
  padding: 2.2rem;
  border-right: 1px solid var(--line-light);
  border-bottom: 1px solid var(--line-light);
  display: flex;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
  transition: background-color .28s ease, transform .28s ease;
}
.finder-grid .finder-card:hover,
.finder-grid .finder-card:focus-visible {
  background: rgba(255,255,255,.045);
}
.finder-card__cta {
  margin-top: 1.35rem;
  color: rgba(255,255,255,.56);
  font-size: .58rem;
  font-style: normal;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.session-detail { scroll-margin-top: 7.5rem; }

/* V11 — precise map, loaded only after consent */
.map-panel {
  position: relative;
  min-height: 43rem;
  overflow: hidden;
  display: grid;
  place-items: center;
  background:
    linear-gradient(125deg, rgba(198,178,143,.13), transparent 44%),
    repeating-linear-gradient(0deg, rgba(7,19,29,.035) 0 1px, transparent 1px 48px),
    repeating-linear-gradient(90deg, rgba(7,19,29,.035) 0 1px, transparent 1px 48px),
    #d9d4ca;
}
.map-panel__inner {
  width: min(31rem, calc(100% - 4rem));
  padding: clamp(2rem,5vw,4rem);
  background: rgba(245,241,233,.92);
  border: 1px solid rgba(7,19,29,.13);
  backdrop-filter: blur(14px);
}
.map-panel h2 {
  margin: .4rem 0 1rem;
  font-family: var(--serif);
  font-size: clamp(2.4rem,5vw,4.4rem);
  font-weight: 400;
  line-height: 1;
}
.map-panel p { color: rgba(16,23,27,.68); line-height: 1.7; }
.map-panel small { display:block; margin-top:1rem; color:rgba(16,23,27,.5); }
.map-panel__route { display:inline-block; margin-top:1.6rem; font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; }
.map-panel iframe { width:100%; min-height:43rem; height:100%; border:0; }

/* V11 — show the complete building, including sky and entrance */
.practice-exterior-intro { padding-bottom: clamp(2.2rem,5vw,4rem); }
.practice-exterior-intro .large-serif { max-width: 15ch; }
.practice-exterior {
  height: auto !important;
  padding: 0 var(--pad-x) clamp(5rem,9vw,9rem);
  overflow: visible;
  background: var(--ivory);
}
.practice-exterior::after { display:none; }
.practice-exterior img {
  width: min(100%, 92rem);
  height: auto;
  max-height: none;
  margin: 0 auto;
  object-fit: contain;
  object-position: center;
}
@media (max-width:760px) {
  .finder-grid .finder-card { min-height: 14rem; }
  .map-panel, .map-panel iframe { min-height: 34rem; }
  .practice-exterior { padding-left:0; padding-right:0; }
}




/* V14 — portable test links and refined responsive typography */
html, body { max-width: 100%; overflow-x: hidden; }
main { min-width: 0; overflow-x: clip; }
section, article, div { min-width: 0; }

.display-title,
.page-hero__title,
.journeys-title,
.large-serif,
.serif-callout,
.statement__anchor,
.journey-quote,
.session-card h2,
.session-detail strong {
  -webkit-hyphens: none;
  hyphens: none;
  overflow-wrap: normal;
  word-break: normal;
  text-wrap: balance;
}

.title-line { display: block; }
.coherence__intro .title-line { white-space: nowrap; }
.coherence__intro .display-title {
  max-width: none;
  font-size: clamp(3rem, 5.2vw, 6.4rem);
  line-height: .98;
}

@media (max-width: 1080px) {
  .coherence__intro .display-title { max-width: 100%; }
}

@media (max-width: 760px) {
  .display-title {
    max-width: 100%;
    font-size: clamp(2.45rem, 10vw, 3.8rem);
    line-height: .99;
    letter-spacing: -.042em;
  }
  .page-hero__title {
    max-width: 100%;
    font-size: clamp(2.5rem, 10vw, 3.85rem);
    line-height: .99;
    letter-spacing: -.042em;
  }
  .journeys-title {
    max-width: 100%;
    font-size: clamp(2.4rem, 9.6vw, 3.65rem);
    line-height: 1.01;
  }
  .large-serif {
    max-width: 100%;
    font-size: clamp(2.2rem, 9.3vw, 3.45rem);
    line-height: 1.03;
  }
  .coherence__intro .display-title {
    font-size: clamp(2.45rem, 9.8vw, 3.7rem);
  }
  .statement__grid,
  .two-col,
  .case-head,
  .contact-grid,
  .session-category-intro {
    width: 100%;
    min-width: 0;
  }
  .journey-panel,
  .journey__frames {
    max-width: 100%;
    overscroll-behavior-x: contain;
  }
  .journey-panel .journey-frame,
  .journey__frames .journey-frame {
    flex-basis: calc(100vw - 2.3rem);
    max-width: calc(100vw - 2.3rem);
  }
}


/* V15 — robust phone typography: no automatic hyphenation */
h1, h2, h3,
.display-title, .page-hero__title, .journeys-title, .large-serif,
.serif-callout, .statement__anchor, .journey-quote,
.session-card h2, .session-detail strong, .practice-intro__headline {
  -webkit-hyphens: none !important;
  hyphens: none !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
}
@media (max-width: 760px) {
  .display-title,
  .page-hero__title,
  .journeys-title,
  .large-serif {
    font-size: clamp(2.35rem, 9.2vw, 3.15rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.04em !important;
    text-wrap: wrap !important;
  }
  .coherence__intro .display-title {
    font-size: clamp(2.65rem, 10.4vw, 3.45rem) !important;
  }
  .coherence__intro .title-line { white-space: normal !important; }
  .journeys-title { max-width: 9.5ch !important; }
  .practice-intro__headline,
  .practice-intro .display-title { max-width: 10ch !important; }
}

@media (min-width:1081px) and (max-width:1320px){.site-header{grid-template-columns:minmax(11rem,1fr) auto minmax(11rem,1fr);gap:1.2rem}.primary-nav{gap:.72rem}.primary-nav a{font-size:.61rem;letter-spacing:.085em}.booking{padding:.72rem .82rem;font-size:.61rem}}


/* V17 portrait integration */
.portrait-placeholder.portrait-placeholder--image{min-height:0;aspect-ratio:4/5;background:#0d202d}
.portrait-placeholder.portrait-placeholder--image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.portrait-slot.portrait-slot--image{min-height:0;aspect-ratio:4/5;overflow:hidden;background:#0d202d}
.portrait-slot.portrait-slot--image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}


/* V18 — Boban Journey with four direct comparison pairs */
.journey__frames { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 72rem; }
.boban-case .case-head { align-items: start; }
.journey-summary { max-width: 38rem; color: rgba(16,23,27,.68); line-height: 1.7; }
.journey-summary .serif-callout { margin-top: 0; color: var(--ink); }
.comparison-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: clamp(4rem,8vw,8rem) clamp(1.4rem,3vw,3rem); margin-top: clamp(5rem,9vw,9rem); }
.comparison-card { min-width: 0; padding-top: 1.2rem; border-top: 1px solid var(--line-dark); }
.comparison-card__title { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; margin-bottom: 1.3rem; }
.comparison-card__title span { color: #756248; font-size: .62rem; letter-spacing: .16em; }
.comparison-card__title h3 { margin: 0; font-family: var(--serif); font-size: clamp(1.65rem,2.6vw,2.8rem); font-weight: 400; }
.comparison-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: clamp(.45rem,.8vw,.8rem); align-items: start; }
.comparison-pair figure { min-width: 0; margin: 0; }
.comparison-pair img { display: block; width: 100%; height: auto; background: #ddd5c6; }
.comparison-pair figcaption { display: flex; flex-direction: column; gap: .25rem; padding: .85rem 0 0; border-top: 1px solid rgba(16,23,27,.16); }
.comparison-pair figcaption strong { font-size: .62rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.comparison-pair figure:last-child figcaption strong { color: #756248; }
.comparison-pair figcaption span { color: rgba(16,23,27,.48); font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; }
.journey-feedback { align-self: end; }
.journey-feedback__statement { max-width: 12ch; margin: 0; color: var(--white); font-family: var(--serif); font-size: clamp(2.7rem,5.5vw,5.8rem); line-height: 1.02; letter-spacing: -.035em; }
.journey-feedback__body { max-width: 38rem; margin: 2rem 0 1.4rem; color: rgba(255,255,255,.72); font-size: clamp(1.03rem,1.4vw,1.25rem); line-height: 1.72; }
.journey-feedback small { color: var(--gold-soft); font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; }
@media (max-width: 900px) {
  .comparison-grid { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .journey__frames { max-width: none; }
  .comparison-grid { gap: 4.5rem; margin-top: 4rem; }
  .comparison-card__title { margin-bottom: 1rem; }
  .comparison-pair { gap: .4rem; }
  .comparison-pair figcaption strong { font-size: .55rem; letter-spacing: .085em; }
  .comparison-pair figcaption span { font-size: .51rem; letter-spacing: .07em; }
}

/* V18.1 — keep the long German outcome headline inside its column */
.journey-feedback__statement { font-size: clamp(2.7rem,3.6vw,4.2rem); max-width: none; }


/* V19 — show both homepage Journey images side by side on phones */
@media (max-width: 760px) {
  #journeys .journey__frames {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .45rem;
    width: 100%;
    max-width: none;
    margin-right: 0;
    overflow: visible;
    scroll-snap-type: none;
  }
  #journeys .journey-frame {
    flex: none;
    width: auto;
    min-width: 0;
    scroll-snap-align: none;
  }
  #journeys .journey-frame__image {
    min-height: 0;
    aspect-ratio: 682 / 2048;
    background: #d8d0c1;
  }
  #journeys .journey-frame__image::before {
    display: none;
  }
  #journeys .image-slot > img {
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: contain;
    object-position: center bottom;
  }
  #journeys .journey-frame__meta {
    display: grid;
    grid-template-columns: 1fr;
    gap: .25rem;
    padding: .8rem 0;
    font-size: .52rem;
    line-height: 1.35;
  }
  #journeys .journey-frame__meta span:last-child {
    text-align: left;
  }
}


/* V21 — final refinements for Thomas page and Praxis page */
.portrait-section { padding-top: clamp(2rem, 4vw, 3.5rem); padding-bottom: clamp(4rem, 7vw, 6rem); }
.portrait-slot.portrait-slot--image { max-width: 30rem; margin-inline: auto; aspect-ratio: 4 / 5; border: 1px solid rgba(255,255,255,.08); box-shadow: 0 22px 60px rgba(0,0,0,.24); }
.portrait-slot.portrait-slot--image img { object-position: center top; }

.practice-exterior-intro { padding-bottom: clamp(1.8rem, 4vw, 3rem); }
.practice-exterior-intro .large-serif { max-width: 12ch; }
.practice-exterior { padding-top: 0; }
.practice-exterior img {
  display: block;
  width: min(100%, 72rem);
  max-width: 72rem;
  max-height: none;
  height: auto;
  margin: 0 auto;
  border: 1px solid rgba(16,23,27,.08);
  box-shadow: 0 18px 54px rgba(16,23,27,.08);
}

.practice-gallery {
  align-items: start;
  grid-template-columns: 1fr;
  gap: clamp(1.25rem, 2vw, 2rem);
}
.practice-gallery__main { min-height: 0; }
.practice-gallery__main img {
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center;
}
.practice-gallery__stack {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 2vw, 2rem);
}
.practice-gallery__side { background: transparent; min-height: 0; }
.practice-gallery__side img {
  width: 100%;
  height: auto;
  object-fit: contain;
  object-position: center top;
}

@media (max-width: 980px) {
  .practice-gallery { grid-template-columns: 1fr; }
  .practice-gallery__stack { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 760px) {
  .portrait-slot.portrait-slot--image { max-width: min(100%, 26rem); }
  .practice-exterior img { width: 100%; max-width: 100%; max-height: none; }
  .practice-gallery__stack { grid-template-columns: 1fr; }
}


/* V24 — Copyright notice */
.site-footer .copyright-note { max-width: 28rem; }
@media (min-width: 761px) {
  .site-footer > div:last-child { min-width: 0; }
}


/* V25 — bilingual DE/EN navigation */
.language-switch {
  display: inline-flex;
  align-items: center;
  gap: .36rem;
  margin-left: .15rem;
  padding-left: .85rem;
  border-left: 1px solid rgba(255,255,255,.18);
  color: rgba(255,255,255,.48);
  font-size: .58rem;
  letter-spacing: .12em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}
.language-switch a,
.language-switch__active {
  padding: .45rem 0;
  color: rgba(255,255,255,.62);
  font-family: var(--sans);
  font-size: .58rem;
  font-weight: 500;
  letter-spacing: .12em;
  line-height: 1;
  text-transform: uppercase;
}
.language-switch__active { color: var(--gold-soft); }
.language-switch a::after { display: none !important; }
.language-switch a:hover,
.language-switch a:focus-visible { color: var(--white); }
.light-hero .site-header:not(.is-scrolled) .language-switch { border-color: rgba(7,19,29,.18); color: rgba(7,19,29,.42); }
.light-hero .site-header:not(.is-scrolled) .language-switch a { color: rgba(7,19,29,.60); }
.light-hero .site-header:not(.is-scrolled) .language-switch__active { color: #756248; }
@media (max-width:1080px) {
  .language-switch {
    margin-top: .9rem;
    margin-left: 0;
    padding-top: 1.15rem;
    padding-left: 0;
    border-top: 1px solid rgba(255,255,255,.18);
    border-left: 0;
    font-size: .74rem;
  }
  .primary-nav .language-switch a,
  .primary-nav .language-switch__active {
    padding: .2rem 0;
    font-family: var(--sans);
    font-size: .74rem;
    letter-spacing: .14em;
    text-transform: uppercase;
  }
  .light-hero .site-header:not(.is-scrolled) .language-switch { border-color: rgba(255,255,255,.18); }
  .light-hero .site-header:not(.is-scrolled) .language-switch a { color: rgba(255,255,255,.70); }
  .light-hero .site-header:not(.is-scrolled) .language-switch__active { color: var(--gold-soft); }
}
html[lang="en"] .page-hero__title,
html[lang="en"] .display-title,
html[lang="en"] .large-serif { text-wrap: balance; }


/* V26 — mobile language access, persistent menu and final phone alignment */
.header-language-switch { display: none; }
.practice-title-line { display: inline; }

/* Keep the fixed header independent of horizontal overflow on iOS Safari. */
html, body { overflow-x: clip !important; }
.site-header {
  position: fixed !important;
  inset: 0 0 auto 0 !important;
  z-index: 80;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  backface-visibility: hidden;
}

@media (max-width: 760px) {
  .site-header {
    grid-template-columns: minmax(0, 1fr) auto auto;
    column-gap: .72rem;
  }
  .header-language-switch {
    display: inline-flex;
    align-items: center;
    justify-self: end;
    gap: .3rem;
    color: rgba(255,255,255,.45);
    font-size: .58rem;
    font-weight: 500;
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .header-language-switch a,
  .header-language-switch__active {
    padding: .55rem 0;
    color: rgba(255,255,255,.76);
  }
  .header-language-switch__active { color: var(--gold-soft); }
  .header-language-switch a:hover,
  .header-language-switch a:focus-visible { color: var(--white); }
  .light-hero .site-header:not(.is-scrolled) .header-language-switch { color: rgba(7,19,29,.38); }
  .light-hero .site-header:not(.is-scrolled) .header-language-switch a { color: rgba(7,19,29,.67); }
  .light-hero .site-header:not(.is-scrolled) .header-language-switch__active { color: #756248; }
  .menu-toggle { gap: .5rem; }

  /* Exactly two lines for the building title on phones. */
  .practice-exterior-intro .large-serif {
    max-width: none !important;
    font-size: clamp(2.45rem, 12.2vw, 3.15rem) !important;
    line-height: 1.04 !important;
  }
  .practice-title-line {
    display: block;
    white-space: nowrap;
  }

  /* Remove the earlier edge-to-edge offset and centre every practice image. */
  .practice-gallery {
    width: 100%;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }
  .practice-gallery figure,
  .practice-gallery__stack,
  .practice-gallery__main,
  .practice-gallery__side { width: 100%; }
  .practice-gallery img {
    display: block;
    width: 100%;
    max-width: 100%;
    margin-left: auto;
    margin-right: auto;
  }
}

@media (max-width: 390px) {
  .site-header { column-gap: .55rem; }
  .brand__name { font-size: .68rem; letter-spacing: .17em; }
  .header-language-switch,
  .header-language-switch a,
  .header-language-switch__active { font-size: .54rem; }
  .menu-toggle__label { font-size: .57rem; }
}


/* V27 — robust iPhone/tablet header: language + menu always visible */
@media (max-width: 1080px) {
  .site-header {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    grid-template-rows: auto !important;
    align-items: center !important;
    column-gap: clamp(.45rem, 1.8vw, .8rem) !important;
  }
  .brand {
    position: relative !important;
    z-index: 3 !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0;
    overflow: hidden;
  }
  .header-language-switch {
    position: relative !important;
    z-index: 3 !important;
    display: inline-flex !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-items: center;
    justify-self: end;
    gap: .3rem;
    color: rgba(255,255,255,.45);
    font-size: .58rem;
    font-weight: 500;
    letter-spacing: .12em;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
  }
  .header-language-switch a,
  .header-language-switch__active {
    padding: .55rem 0;
    color: rgba(255,255,255,.76);
    font: inherit;
  }
  .header-language-switch__active { color: var(--gold-soft); }
  .header-language-switch a:hover,
  .header-language-switch a:focus-visible { color: var(--white); }
  .menu-toggle {
    position: relative !important;
    z-index: 3 !important;
    display: inline-flex !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    min-width: max-content;
  }
  .booking--header {
    position: fixed !important;
    z-index: 45 !important;
    top: auto !important;
    right: 1rem !important;
    bottom: 1rem !important;
    left: auto !important;
    color: var(--navy) !important;
    background: var(--white) !important;
    border-color: var(--white) !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.24) !important;
  }
  .light-hero .site-header:not(.is-scrolled) .header-language-switch { color: rgba(7,19,29,.38); }
  .light-hero .site-header:not(.is-scrolled) .header-language-switch a { color: rgba(7,19,29,.67); }
  .light-hero .site-header:not(.is-scrolled) .header-language-switch__active { color: #756248; }
  .light-hero.menu-open .site-header:not(.is-scrolled) .header-language-switch,
  .light-hero.menu-open .site-header:not(.is-scrolled) .header-language-switch a { color: rgba(255,255,255,.72); }
  .light-hero.menu-open .site-header:not(.is-scrolled) .header-language-switch__active { color: var(--gold-soft); }
}

@media (max-width: 760px) {
  .site-header {
    grid-template-columns: minmax(0, 1fr) auto auto !important;
    column-gap: .55rem !important;
  }
  .brand__line { display: none !important; }
  .brand__name {
    font-size: clamp(.62rem, 2.75vw, .72rem) !important;
    letter-spacing: clamp(.13em, 2.8vw, .18em) !important;
    white-space: nowrap;
  }
  .header-language-switch,
  .header-language-switch a,
  .header-language-switch__active {
    font-size: .55rem !important;
    letter-spacing: .1em !important;
  }
  .menu-toggle { gap: .42rem !important; }
  .menu-toggle__label { font-size: .56rem !important; letter-spacing: .11em !important; }
}

@media (max-width: 360px) {
  .site-header { padding-left: .9rem !important; padding-right: .9rem !important; column-gap: .38rem !important; }
  .brand__name { font-size: .58rem !important; letter-spacing: .11em !important; }
  .header-language-switch,
  .header-language-switch a,
  .header-language-switch__active { font-size: .5rem !important; }
  .menu-toggle__label { display: none; }
}


/* V28 — definitive mobile language/menu header; unique stylesheet filename bypasses old caches */
@media (max-width: 1080px) {
  html, body { overflow-x: clip !important; }
  .site-header {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    z-index: 999 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) max-content max-content !important;
    grid-template-rows: auto !important;
    align-items: center !important;
    gap: 0 !important;
    column-gap: clamp(.45rem, 1.7vw, .8rem) !important;
    padding: .9rem max(1rem, env(safe-area-inset-right)) .9rem max(1rem, env(safe-area-inset-left)) !important;
    color: var(--white) !important;
    background: rgba(7,19,29,.92) !important;
    border-bottom: 1px solid rgba(255,255,255,.10) !important;
    -webkit-backdrop-filter: blur(18px) !important;
    backdrop-filter: blur(18px) !important;
    -webkit-transform: none !important;
    transform: none !important;
    backface-visibility: visible !important;
  }
  .brand {
    position: relative !important;
    z-index: 3 !important;
    grid-column: 1 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: hidden !important;
  }
  .brand__name {
    display: block !important;
    overflow: hidden !important;
    color: var(--white) !important;
    white-space: nowrap !important;
    text-overflow: clip !important;
  }
  .brand__line { display: none !important; }
  .header-language-switch {
    position: relative !important;
    z-index: 3 !important;
    display: inline-flex !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-items: center !important;
    justify-self: end !important;
    gap: .28rem !important;
    margin: 0 !important;
    padding: 0 !important;
    color: rgba(255,255,255,.42) !important;
    font-family: var(--sans) !important;
    font-size: .62rem !important;
    font-weight: 500 !important;
    letter-spacing: .10em !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .header-language-switch a,
  .header-language-switch__active {
    display: inline-block !important;
    padding: .65rem .05rem !important;
    color: rgba(255,255,255,.80) !important;
    font: inherit !important;
    text-decoration: none !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .header-language-switch__active { color: var(--gold-soft) !important; }
  .menu-toggle {
    position: relative !important;
    z-index: 3 !important;
    display: inline-flex !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    align-items: center !important;
    justify-self: end !important;
    gap: .48rem !important;
    min-width: max-content !important;
    margin: 0 !important;
    padding: .65rem 0 !important;
    color: var(--white) !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  .menu-toggle__label {
    display: inline !important;
    color: var(--white) !important;
    font-size: .61rem !important;
    letter-spacing: .12em !important;
  }
  .menu-toggle__lines { display: block !important; }
  .booking--header {
    position: fixed !important;
    z-index: 850 !important;
    top: auto !important;
    right: max(1rem, env(safe-area-inset-right)) !important;
    bottom: calc(4.65rem + env(safe-area-inset-bottom)) !important;
    left: auto !important;
    color: var(--navy) !important;
    background: var(--white) !important;
    border-color: var(--white) !important;
    box-shadow: 0 10px 30px rgba(0,0,0,.24) !important;
  }
  .primary-nav {
    position: fixed !important;
    inset: auto !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    min-height: 100vh !important;
    z-index: 2 !important;
    padding-top: 7.5rem !important;
    background: rgba(7,19,29,.985) !important;
  }
  body.menu-open .booking--header { display: none !important; }
  body.menu-open .site-header { background: rgba(7,19,29,.98) !important; }
  body.menu-open .header-language-switch,
  body.menu-open .header-language-switch a,
  body.menu-open .menu-toggle { color: var(--white) !important; }
  body.menu-open .header-language-switch__active { color: var(--gold-soft) !important; }
}

@media (max-width: 760px) {
  .site-header {
    grid-template-columns: minmax(0, 1fr) max-content max-content !important;
    column-gap: .52rem !important;
  }
  .brand__name {
    font-size: clamp(.60rem, 2.65vw, .72rem) !important;
    letter-spacing: clamp(.115em, 2.4vw, .175em) !important;
  }
  .header-language-switch,
  .header-language-switch a,
  .header-language-switch__active { font-size: .58rem !important; }
  .menu-toggle__label { font-size: .58rem !important; }
}

@media (max-width: 360px) {
  .site-header { padding-left: .82rem !important; padding-right: .82rem !important; column-gap: .35rem !important; }
  .brand__name { font-size: .56rem !important; letter-spacing: .08em !important; }
  .header-language-switch,
  .header-language-switch a,
  .header-language-switch__active { font-size: .49rem !important; letter-spacing: .06em !important; }
  .menu-toggle__label { display: none !important; }
}


/* V29 — persistent mobile booking CTA outside the fixed header.
   Keeping it outside .site-header avoids iOS Safari's fixed-position containing-block issue. */
.booking--mobile-fixed { display: none; }

@media (max-width: 1080px) {
  .booking--header { display: none !important; }
  .booking--mobile-fixed {
    display: inline-flex !important;
    position: fixed !important;
    z-index: 700 !important;
    top: auto !important;
    right: 1rem !important;
    bottom: calc(5.35rem + env(safe-area-inset-bottom)) !important;
    left: auto !important;
    align-items: center;
    gap: .58rem;
    padding: .92rem 1.08rem;
    color: var(--navy) !important;
    background: var(--white) !important;
    border: 1px solid var(--white) !important;
    box-shadow: 0 12px 34px rgba(0,0,0,.28);
    font-size: .62rem;
    font-weight: 500;
    letter-spacing: .12em;
    line-height: 1.2;
    text-transform: uppercase;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translateZ(0);
    -webkit-transform: translateZ(0);
  }
  .booking--mobile-fixed:hover,
  .booking--mobile-fixed:focus-visible {
    background: var(--gold-soft) !important;
    border-color: var(--gold-soft) !important;
  }
  body.menu-open .booking--mobile-fixed { display: none !important; }
}

@media (max-width: 390px) {
  .booking--mobile-fixed {
    right: .78rem !important;
    bottom: calc(5.15rem + env(safe-area-inset-bottom)) !important;
    padding: .82rem .92rem;
    font-size: .58rem;
    letter-spacing: .105em;
  }
}




/* V40 — Boban images use the exact uploaded 682 × 2048 crops.
   The homepage frames now use the same 1:3 ratio on desktop and mobile,
   so no dark side margins and no image cropping can occur. */
#journeys .journey-frame__image {
  min-height: 0 !important;
  aspect-ratio: 682 / 2048 !important;
  overflow: hidden;
}
#journeys .journey-frame__image::before {
  display: none !important;
}
#journeys .image-slot > img {
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}
.comparison-pair img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: contain;
}

/* V50 — continuous homepage journey with richer chapter content */
.flow-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(3rem, 6vw, 6rem);
  border: 1px solid rgba(16,23,27,.12);
  background: rgba(16,23,27,.12);
}
.flow-card {
  min-height: 17rem;
  padding: clamp(1.6rem, 3vw, 2.6rem);
  background: var(--ivory);
}
.flow-card > span,
.session-overview-grid article > span,
.first-visit-preview__copy article > span {
  display: block;
  margin-bottom: 2rem;
  color: rgba(16,23,27,.48);
  font-size: .64rem;
  letter-spacing: .125em;
  text-transform: uppercase;
}
.flow-card h3,
.session-overview-grid h3,
.journey-case h3,
.first-visit-preview__copy h3 {
  margin: 0 0 1rem;
  font-family: var(--serif);
  font-size: clamp(1.8rem, 2.6vw, 2.8rem);
  font-weight: 400;
  line-height: 1.05;
}
.flow-card p,
.session-overview-grid p,
.journey-case p,
.first-visit-preview__copy p {
  margin: 0;
  color: rgba(16,23,27,.68);
  line-height: 1.65;
}
.flow-grid--dark {
  border-color: rgba(255,255,255,.12);
  background: rgba(255,255,255,.12);
}
.flow-grid--dark .flow-card {
  color: var(--white);
  background: #0c171e;
}
.flow-grid--dark .flow-card > span,
.flow-grid--dark .flow-card p { color: rgba(255,255,255,.55); }

.journey-cases {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(2rem, 4vw, 4rem);
  margin: clamp(3rem, 6vw, 6rem) 0 2.5rem;
}
.journey-case {
  padding-top: 1.4rem;
  border-top: 1px solid rgba(16,23,27,.18);
}
.journey-case__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.journey-case__heading h3 { margin: 0; text-align: right; }
.journey-case__images {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .75rem;
  margin-bottom: 1.3rem;
}
.journey-case figure { margin: 0; }
.journey-case img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1 / 3;
  object-fit: contain;
  background: #e6dfd3;
}
.journey-case figcaption {
  padding-top: .55rem;
  color: rgba(16,23,27,.5);
  font-size: .56rem;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.sessions-flow__intro {
  display: grid;
  grid-template-columns: minmax(0,1.1fr) minmax(18rem,.7fr);
  gap: clamp(2rem, 6vw, 7rem);
  align-items: end;
}
.session-overview-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: clamp(3rem, 6vw, 6rem);
  background: rgba(16,23,27,.12);
  border: 1px solid rgba(16,23,27,.12);
}
.session-overview-grid article {
  min-height: 19rem;
  padding: clamp(1.6rem, 3vw, 2.4rem);
  background: var(--ivory);
  display: flex;
  flex-direction: column;
}
.session-overview-grid article strong {
  margin-top: auto;
  padding-top: 2rem;
  font-size: .76rem;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.first-visit-preview__grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(18rem, .85fr);
  gap: clamp(3rem, 7vw, 8rem);
  align-items: start;
}
.first-visit-preview__copy {
  display: grid;
  gap: 1px;
  background: rgba(16,23,27,.12);
}
.first-visit-preview__copy article {
  padding: clamp(1.5rem, 3vw, 2.2rem);
  background: var(--stone);
}
.first-visit-preview__copy .text-link { margin-top: 1.4rem; }

@media (max-width: 980px) {
  .flow-grid,
  .session-overview-grid { grid-template-columns: 1fr 1fr; }
  .journey-cases,
  .sessions-flow__intro,
  .first-visit-preview__grid { grid-template-columns: 1fr; }
}
@media (max-width: 620px) {
  .flow-grid,
  .session-overview-grid { grid-template-columns: 1fr; }
  .flow-card,
  .session-overview-grid article { min-height: 0; }
  .journey-case__heading { display: block; }
  .journey-case__heading h3 { text-align: left; margin-top: .35rem; }
  .journey-case__images { gap: .45rem; }
}

.next-chapter { padding-top: clamp(4rem,8vw,8rem); padding-bottom: clamp(4rem,8vw,8rem); }
.next-chapter a {
  display: grid;
  grid-template-columns: 1fr auto;
  grid-template-areas: "small arrow" "title arrow";
  align-items: center;
  gap: .8rem 2rem;
  color: var(--white);
  text-decoration: none;
  border-top: 1px solid rgba(255,255,255,.24);
  border-bottom: 1px solid rgba(255,255,255,.24);
  padding: clamp(1.7rem,4vw,3rem) 0;
}
.next-chapter span { grid-area: small; color: rgba(255,255,255,.5); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; }
.next-chapter strong { grid-area:title; font-family:var(--serif); font-size:clamp(2.6rem,7vw,6.5rem); font-weight:400; line-height:.95; }
.next-chapter i { grid-area:arrow; font-style:normal; font-size:clamp(2rem,5vw,4rem); }


/* V56 — controlled mobile line breaks in the Zusammenhänge card */
@media (max-width: 560px) {
  .flow-card__controlled-breaks span { display: block; }
}


/* V57 — understated professional memberships and recognition */
.recognitions { border-top: 1px solid rgba(16,23,27,.12); }
.recognitions__intro {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(20rem, .72fr);
  gap: clamp(2.5rem, 7vw, 8rem);
  align-items: end;
  margin-bottom: clamp(2.8rem, 6vw, 5rem);
}
.recognitions__intro .large-serif { max-width: 11ch; }
.recognitions__lead {
  max-width: 38rem;
  margin: 0;
  color: rgba(16,23,27,.67);
  font-size: clamp(1rem, 1.35vw, 1.22rem);
  line-height: 1.72;
}
.recognitions__list { border-top: 1px solid rgba(16,23,27,.14); }
.recognitions__item {
  display: grid;
  grid-template-columns: minmax(13rem, .72fr) minmax(0, 1.3fr) auto;
  gap: clamp(1rem, 3vw, 3rem);
  align-items: center;
  padding: clamp(1.25rem, 2.3vw, 1.9rem) 0;
  border-bottom: 1px solid rgba(16,23,27,.12);
  color: inherit;
  text-decoration: none;
}
.recognitions__item strong {
  font-family: var(--serif);
  font-size: clamp(1.35rem, 2.2vw, 2rem);
  font-weight: 400;
  line-height: 1.08;
}
.recognitions__item span {
  color: rgba(16,23,27,.62);
  font-size: clamp(.88rem, 1.1vw, 1rem);
  line-height: 1.55;
}
.recognitions__item i {
  color: rgba(16,23,27,.5);
  font-size: 1rem;
  font-style: normal;
  transition: transform .24s ease, color .24s ease;
}
.recognitions__item:hover i,
.recognitions__item:focus-visible i {
  color: rgba(16,23,27,.9);
  transform: translate(.2rem, -.2rem);
}
@media (max-width: 760px) {
  .recognitions__intro { grid-template-columns: 1fr; gap: 1.3rem; }
  .recognitions__intro .large-serif { max-width: none; }
  .recognitions__item { grid-template-columns: 1fr auto; gap: .5rem 1rem; }
  .recognitions__item strong { grid-column: 1; }
  .recognitions__item span { grid-column: 1 / -1; }
  .recognitions__item i { grid-column: 2; grid-row: 1; }
}


/* V58 — controlled mobile title breaks and long-word protection */
.mobile-title-break { display: none; }
@media (max-width: 760px) {
  .mobile-title-break { display: block; }
  .manifesto h2.manifesto-title--responsive {
    max-width: 100% !important;
    font-size: clamp(2.15rem, 8.8vw, 2.85rem) !important;
    line-height: 1.02 !important;
    letter-spacing: -.045em !important;
    overflow: visible !important;
  }
}


/* V31 — bilingual English site and language-switch refinements */
@media (max-width:1080px){.primary-nav .language-switch{display:none!important}}
html[lang="en"] .primary-nav{letter-spacing:.09em}
html[lang="en"] .page-hero__title,html[lang="en"] .display-title,html[lang="en"] .large-serif{hyphens:none;-webkit-hyphens:none}

/* Bilingual content refinements */
.session-overview__modality,.finder-card__modality{display:block;margin:0 0 .85rem;color:rgba(16,23,27,.58);font-family:var(--sans);font-size:clamp(.68rem,.76vw,.74rem);line-height:1.55;letter-spacing:.085em;text-transform:uppercase}
.finder-grid .finder-card .finder-card__modality{color:rgba(255,255,255,.62);margin-top:.85rem}
.insurer-recognitions__title{grid-column:1/-1;margin:2.7rem 0 .2rem;padding-top:2.2rem;border-top:1px solid rgba(16,23,27,.14)}

/* V32 — English readability and final copy refinements */
html[lang="en"] .statement__anchor br{display:block;content:"";margin-top:.45rem}
@media(max-width:620px){
  .session-overview-grid article>span{font-size:.66rem;letter-spacing:.105em}
  .session-overview__modality,.finder-card__modality{font-size:.71rem;letter-spacing:.075em}
  .session-overview-grid article strong{font-size:.78rem}
}

/* V34 German session modality labels */
.session-modality,.finder-card__modality{display:block;font-family:var(--sans);font-size:.66rem;line-height:1.45;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.72);margin:.45rem 0 .35rem;font-style:normal;font-weight:600}
.finder-card__modality{font-size:.62rem;color:rgba(255,255,255,.68)}
@media(max-width:700px){.session-modality{font-size:.7rem}.finder-card__modality{font-size:.66rem;line-height:1.5}}

/* V37: intentional two-line manifesto statements */
.manifesto-line { display: block; }


/* V38 — intentional journey headline rhythm and session-card alignment */
.journey-proof-title .title-line {
  display: block;
  white-space: nowrap;
}

.session-overview-card--performance h3 {
  transform: translateY(-0.38rem);
  margin-bottom: 0.62rem;
}

.session-overview-card--compact h3 {
  font-size: clamp(1.72rem, 2.25vw, 2.45rem);
}
.session-overview-card--compact .compact-title-line {
  display: block;
  white-space: nowrap;
}

@media (max-width: 760px) {
  .journey-proof-title .title-line {
    white-space: normal;
  }
  .session-overview-card--performance h3 {
    transform: none;
    margin-bottom: 1rem;
  }
  .session-overview-card--compact h3 {
    font-size: clamp(1.8rem, 8.6vw, 2.65rem);
  }
  .session-overview-card--compact .compact-title-line {
    white-space: normal;
  }
}


/* V39 — light-card modality contrast and finder-card title alignment */
.session-overview-grid .session-modality {
  color: rgba(16,23,27,.58);
}

/* Single-line Performance title should align with the two-line titles above it,
   rather than being pushed down by the generic auto margin. */
.finder-grid .finder-card:nth-child(2) strong {
  margin: 1.4rem 0 1rem;
}

@media (max-width: 760px) {
  .finder-grid .finder-card:nth-child(2) strong {
    margin: 1.25rem 0 1rem;
  }
}


/* V40 — clickable session overview cards */
.session-overview-grid .session-overview-card {
  min-height: 19rem;
  padding: clamp(1.6rem, 3vw, 2.4rem);
  background: var(--ivory);
  display: flex;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
  position: relative;
  transition: background-color .25s ease, transform .25s ease;
}
.session-overview-grid .session-overview-card > span {
  display: block;
  margin-bottom: 2rem;
  color: rgba(16,23,27,.48);
  font-size: .64rem;
  letter-spacing: .125em;
  text-transform: uppercase;
}
.session-overview-grid .session-overview-card strong {
  margin-top: auto;
  padding-top: 2rem;
  font-size: .76rem;
  letter-spacing: .10em;
  text-transform: uppercase;
}
.session-overview-card__cta {
  display: block;
  margin-top: .9rem;
  color: rgba(16,23,27,.52);
  font-family: var(--sans);
  font-size: .66rem;
  font-style: normal;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.session-overview-grid .session-overview-card:hover,
.session-overview-grid .session-overview-card:focus-visible {
  background: #f2efe8;
}
.session-overview-grid .session-overview-card:focus-visible {
  outline: 2px solid rgba(16,23,27,.55);
  outline-offset: -3px;
}
@media (max-width: 980px) {
  .session-overview-grid .session-overview-card { min-height: 0; }
}
@media (max-width: 700px) {
  .session-overview-grid .session-overview-card > span {font-size:.66rem;letter-spacing:.105em}
  .session-overview-grid .session-overview-card strong{font-size:.78rem}
  .session-overview-card__cta{font-size:.7rem}
}
