@font-face {
  font-family: 'Cormorant Garamond';
  src: url('./fonts/CormorantGaramond-SemiBold.woff2') format('woff2');
  font-weight: 600;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'Hedvig Letters Serif';
  src: url('./fonts/HedvigLettersSerif-Variable.woff2') format('woff2');
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: 'National Park';
  src: url('./fonts/NationalPark-Variable.woff2') format('woff2');
  font-weight: 200 800;
  font-style: normal;
  font-display: swap;
}

:root {
  --paper: #f6efe4;
  --paper-light: #fff9ef;
  --paper-deep: #eee2d0;
  --ink: #182a22;
  --muted: #4c574b;
  --forest: #233f35;
  --forest-field: #1e382f;
  --forest-dark: #172e26;
  --olive: #909030;
  --blue: #306090;
  --purple: #603090;
  --line: #cfc4b0;
  --focus: var(--blue);
  --photo-light-shadow: 0 0 2px rgb(255 249 239 / .94), 0 0 5px rgb(255 249 239 / .76);
  --photo-dark-shadow: 0 0 2px rgb(26 25 17 / .95), 0 0 5px rgb(26 25 17 / .76);
  --wordmark: 'Cormorant Garamond', Georgia, serif;
  --display: 'Hedvig Letters Serif', Georgia, serif;
  --body: 'National Park', Arial, sans-serif;
  --map-self: #e7baab;
  --map-relationships: #e2c48a;
  --map-surroundings: #b9c7a3;
  --map-routines: #bdd1e2;
  --gutter: clamp(22px, 5vw, 76px);
  --page-width: 1320px;
  --header-height: 82px;
  --section-space: clamp(54px, 6.25vw, 94px);
  --panel-radius: clamp(18px, 1.8vw, 28px);
  --hero-edge-height: clamp(45px, 6.2vw, 95px);
}

* { box-sizing: border-box; }
html { scroll-padding-top: calc(var(--header-height) + 12px); }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 400 17px/1.6 var(--body);
}
h1, h2, h3, p { margin-top: 0; }
h1, h2, h3 {
  font-family: var(--display);
  font-weight: 400;
  line-height: 1.12;
  text-wrap: balance;
}
h1 { font-size: clamp(43px, 4.8vw, 70px); letter-spacing: -.038em; margin-bottom: 23px; }
h2 { font-size: clamp(32px, 3.25vw, 48px); letter-spacing: -.027em; margin-bottom: 22px; }
h3 { font-size: clamp(24px, 2.1vw, 32px); letter-spacing: -.024em; margin-bottom: 13px; }
p { margin-bottom: 17px; }
p:last-child { margin-bottom: 0; }
a { color: inherit; text-decoration-thickness: 1px; text-underline-offset: 5px; }
a:hover { text-decoration-thickness: 2px; }
button, input, textarea { font: inherit; }
button, a, input, textarea, summary { -webkit-tap-highlight-color: transparent; }
button, summary { cursor: pointer; }
button { color: inherit; }
img { display: block; max-width: 100%; }
ul { padding-left: 1.18em; }
li + li { margin-top: 7px; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 5px; }
[hidden] { display: none !important; }
.keep-together { white-space: nowrap; }

.lead, .section-heading p, .closing-layout p { text-wrap: pretty; }

.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
  border: 0;
}
.skip-link {
  position: fixed;
  top: -100px;
  left: 20px;
  z-index: 100;
  padding: 12px 20px;
  background: var(--forest-dark);
  color: var(--paper-light);
}
.skip-link:focus { top: 12px; }
.container {
  width: calc(100% - var(--gutter) * 2);
  max-width: var(--page-width);
  margin-inline: auto;
}
.section { position: relative; padding-block: var(--section-space); }
.image-panel {
  --panel-fill: var(--paper-deep);
  --panel-fade: linear-gradient(90deg,
    color-mix(in srgb, var(--panel-fill) 94%, transparent),
    color-mix(in srgb, var(--panel-fill) 80%, transparent) 38%,
    color-mix(in srgb, var(--panel-fill) 28%, transparent) 62%,
    transparent 80%);
  border-radius: var(--panel-radius);
  background-color: var(--panel-fill);
  background-image: var(--panel-fade), var(--panel-image);
  background-position: center, var(--panel-position, center);
  background-size: cover;
  background-repeat: no-repeat;
}
.lead { max-width: 36ch; font-size: clamp(17px, 1.45vw, 22px); line-height: 1.55; }
.line-icon { display: block; width: 37px; height: 37px; flex: none; }
.actions { display: flex; gap: 13px 18px; flex-wrap: wrap; align-items: center; margin-top: 23px; }

.button {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  min-height: 48px;
  padding: 10px 24px;
  border: 1px solid #536955;
  border-radius: 999px;
  background-color: #506650;
  background-image: linear-gradient(to bottom, rgb(255 249 239 / .055), transparent 75%);
  color: var(--paper-light);
  font-size: 15px;
  font-weight: 440;
  line-height: 1.35;
  text-align: center;
  text-decoration: none;
  transition: background-color .48s ease, border-color .48s ease, color .48s ease;
}
.button:hover {
  background-color: #405742;
  border-color: #405742;
  text-decoration: none;
}
.button-outline {
  border-color: #596756;
  background-color: transparent;
  background-image: none;
  color: var(--ink);
}
.button-outline:hover { background-color: #e6e3d1; border-color: #596756; }
.button-light, .button-peach {
  border-color: #e5c6a5;
  background-color: #e7ccb0;
  color: var(--ink);
}
.button-light:hover, .button-peach:hover { background-color: #f0d9bf; border-color: #e5c6a5; }
.button-outline-light {
  border-color: #ecdcc7;
  color: var(--paper-light);
  background-color: transparent;
  background-image: none;
}
.button-outline-light:hover { background-color: rgb(255 249 239 / .12); border-color: #ecdcc7; }
.button-small { min-height: 42px; padding: 9px 18px; font-size: 14px; }
.text-link {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 15px;
  font-weight: 530;
  text-decoration-color: #717640;
}
.section-heading {
  display: grid;
  grid-template-columns: 1fr minmax(260px, .7fr);
  align-items: end;
  gap: 16px 35px;
  margin-bottom: 32px;
}
.section-heading h2, .section-heading p { margin-bottom: 0; }
.section-heading p { max-width: 44ch; font-size: 16px; }
.forest-section {
  --focus: var(--paper-light);
  background: var(--forest-field);
  color: var(--paper-light);
}
.forest-section .text-link { text-decoration-color: #cfba9a; }

.site-header {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  min-height: var(--header-height);
  gap: 18px;
  padding: 14px var(--gutter);
  background: var(--paper-light);
  box-shadow: 0 3px 18px rgb(24 42 34 / .08);
}
.brand {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  gap: 10px;
  font: 600 2rem/1 var(--wordmark);
  letter-spacing: -.01em;
  text-decoration: none;
}
.brand-mark {
  flex: none;
  width: 50px;
  aspect-ratio: 1057 / 1029;
  color: var(--forest);
  background-color: currentColor;
  mask: url('./brand-mark.svg') center / contain no-repeat;
}
.brand-description {
  display: block;
  margin-top: 4px;
  font: 400 12px/1.4 var(--body);
  letter-spacing: .012em;
}
.main-navigation { display: flex; align-items: center; gap: clamp(12px, 1.7vw, 26px); margin-inline-start: auto; }
.main-navigation > a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
  white-space: nowrap;
  text-decoration: none;
}
.main-navigation > a:hover, .main-navigation > a[aria-current] {
  text-decoration: underline;
  text-decoration-color: #717640;
  text-underline-offset: 7px;
}
.header-cta { flex: none; min-height: 44px; white-space: nowrap; }
.header-cta-short { display: none; }
.menu-toggle {
  display: none;
  flex: none;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid #596756;
  border-radius: 999px;
  background: transparent;
}
.menu-icon {
  position: relative;
  width: 18px;
  height: 1.5px;
  border-radius: 1px;
  background: currentColor;
}
.menu-icon::before, .menu-icon::after {
  position: absolute;
  inset-inline: 0;
  height: inherit;
  border-radius: inherit;
  background: currentColor;
  content: "";
}
.menu-icon::before { top: -5px; }
.menu-icon::after { top: 5px; }
.menu-toggle[aria-expanded="true"] .menu-icon { background: transparent; }
.menu-toggle[aria-expanded="true"] .menu-icon::before {
  top: 0;
  transform: rotate(45deg);
}
.menu-toggle[aria-expanded="true"] .menu-icon::after {
  top: 0;
  transform: rotate(-45deg);
}

.closing-section {
  --closing-space: clamp(48px, 5.4vw, 74px);
  padding-block: var(--closing-space);
  background: var(--paper-deep);
}
.closing-section.forest-section { background: var(--forest-dark); }
.closing-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 24px 58px;
}
.closing-layout p { max-width: 56ch; }
.closing-layout .actions { margin-top: 0; }

.ridge-transition {
  position: relative;
  height: clamp(142px, 22.7vw, 330px);
  overflow: hidden;
}
.ridge-transition img { width: 100%; height: 100%; object-fit: cover; object-position: center 45%; }
.ridge-transition::after {
  position: absolute;
  content: "";
  inset: var(--ridge-fade-start, 72%) 0 -1px;
  background: linear-gradient(transparent, var(--ridge-ground, var(--forest-field)) 96%);
}
.footer-landscape {
  --footer-ridge-height: clamp(123px, 16.8vw, 380px);
  padding-bottom: 0;
}
.footer-ridge {
  --ridge-fade-start: 76%;
  --ridge-ground: var(--forest-dark);
  height: var(--footer-ridge-height);
  margin-top: var(--closing-space, var(--section-space));
}
.footer-ridge img { object-position: center 23%; }

.site-footer {
  --focus: var(--paper-light);
  padding: 40px var(--gutter) 29px;
  background: var(--forest-dark);
  color: var(--paper-light);
}
.footer-main {
  max-width: var(--page-width);
  margin-inline: auto;
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 26px;
}
.site-footer .brand-mark { color: #e1d1b6; }
.footer-main nav { display: flex; flex-wrap: wrap; gap: 4px 28px; }
.footer-main nav a { display: inline-flex; align-items: center; min-height: 44px; font-size: 14px; text-decoration: none; }
.footer-main nav a:hover { text-decoration: underline; }

@media (max-width: 1080px) {
  .brand { font-size: 1.625rem; }
  .brand-mark { width: 44px; }
  .brand-description { font-size: 11px; }
  .main-navigation > a { font-size: 13px; }
}
@media (max-width: 890px) {
  :root { --header-height: 70px; }
  .site-header { flex-wrap: wrap; gap: 9px; padding-block: 10px; }
  .site-header .brand { margin-inline-end: auto; }
  .has-menu .menu-toggle { display: grid; place-items: center; }
  .main-navigation { order: 1; width: 100%; flex-wrap: wrap; gap: 4px 18px; }
  .main-navigation > a { font-size: 15px; }
  .has-menu .main-navigation {
    display: none;
    position: absolute;
    inset: 100% 0 auto;
    max-height: calc(100dvh - var(--header-height));
    overflow-y: auto;
    padding: 8px var(--gutter) 16px;
    background: inherit;
    box-shadow: 0 12px 22px rgb(24 42 34 / .13);
  }
  .has-menu .main-navigation.is-open { display: flex; }
  .closing-layout { grid-template-columns: 1fr; }
  .footer-main { flex-direction: column; }
}
@media (max-width: 640px) {
  .site-header .brand-mark { width: 39px; }
  .brand { gap: 8px; }
  .brand-description { font-size: 10px; }
  .main-navigation.is-open { flex-direction: column; align-items: stretch; flex-wrap: nowrap; }
  .main-navigation.is-open > a { flex: none; }
  .section-heading { grid-template-columns: 1fr; margin-bottom: 25px; }
  .closing-layout h2 { margin-bottom: 14px; }
  .footer-main nav { display: grid; }
}
@media (max-width: 480px) {
  .site-header { gap: 7px; padding-inline: clamp(12px, 3.6vw, 22px); }
  .site-header .brand { gap: 5px; font-size: 1.5rem; }
  .site-header .brand-mark { width: 34px; }
  .site-header .brand-description { display: none; }
  .header-cta { padding-inline: 12px; font-size: 13px; }
}
@media (max-width: 389px) {
  .header-cta-label { display: none; }
  .header-cta-short { display: inline; }
}
@media (max-width: 360px) {
  .site-header { gap: 6px; }
  .site-header .brand { font-size: 1.375rem; }
  .site-header .brand-mark { width: 30px; }
  .header-cta { padding-inline: 10px; }
}
@media (prefers-reduced-motion: no-preference) {
  .scroll-reveal {
    --reveal-x: 0px;
    --reveal-y: clamp(18px, 2.45vw, 34px);
    --panel-slide: clamp(14px, 3vw, 44px);
  }
  .scroll-reveal.is-revealed {
    transition: transform .84s cubic-bezier(.2, .67, .32, 1), opacity .68s ease;
  }
  .scroll-reveal.reveal-left { --reveal-x: calc(-1 * var(--panel-slide)); --reveal-y: 0px; }
  .scroll-reveal.reveal-right { --reveal-x: var(--panel-slide); --reveal-y: 0px; }
  .scroll-reveal:not(.is-revealed, :focus-within, :target) {
    transform: translate3d(var(--reveal-x), var(--reveal-y), 0);
    opacity: .68;
  }
  .scroll-reveal:is(:focus-within, :target) { transition: none; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

.home-hero {
  --sun-x: .595;
  --sun-y: .544;
  --lens-drop: .28;
  --flare-mirror-x: -1;
  position: relative;
  isolation: isolate;
  display: grid;
  align-items: center;
  min-height: clamp(540px, 45.25vw, 760px);
  overflow: hidden;
  background: #ecdbc4;
}
.hero-picture, .hero-picture img, .hero-contours {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.hero-picture { z-index: -2; }
.hero-picture img { object-fit: cover; object-position: 50% 65%; }
.hero-motion {
  display: none;
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
  .hero-motion.is-ready { display: block; }
}
.hero-mist {
  position: absolute;
  inset: 0 auto auto 0;
  width: var(--photo-width);
  height: var(--photo-height);
  transform: translate(var(--photo-left), var(--photo-top));
}
.hero-mist > span {
  position: absolute;
  inset: 0;
  mask-image: var(--mist-mask);
}
.hero-mist > span::before {
  content: "";
  position: absolute;
  inset: 54% calc(-2 * var(--mist-drift)) 5%;
  opacity: var(--mist-opacity);
  background: url("hero-motion/mist-field.webp") center var(--mist-texture-y) / 100% 300% no-repeat;
  translate: calc(var(--mist-drift) * var(--mist-scroll, 0)) 0;
  animation: hero-mist-drift 4.8s cubic-bezier(.21, .38, .44, 1) forwards;
}
.hero-mist > span:nth-child(1) {
  --mist-texture-y: 0%;
  --mist-mask: radial-gradient(ellipse 35% 5.2% at 52% 69%, black 14%, transparent 100%);
  --mist-opacity: .52;
  --mist-drift: clamp(7px, 1.48vw, 24px);
}
.hero-mist > span:nth-child(2) {
  --mist-texture-y: 50%;
  --mist-mask: radial-gradient(ellipse 39% 5.5% at 32% 74.8%, black 13%, transparent 100%);
  --mist-opacity: .72;
  --mist-drift: clamp(14px, 2.96vw, 48px);
}
.hero-mist > span:nth-child(3) {
  --mist-texture-y: 100%;
  --mist-mask: radial-gradient(ellipse 34% 5.8% at 20% 82%, black 12%, transparent 100%);
  --mist-opacity: .43;
  --mist-drift: clamp(28px, 5.92vw, 96px);
}
@keyframes hero-mist-drift {
  from { transform: translateX(0); }
  to { transform: translateX(var(--mist-drift)); }
}
.hero-flare {
  position: absolute;
  inset: 0 auto auto 0;
  opacity: 0;
  mix-blend-mode: screen;
  transform: translate(var(--sun-left), var(--sun-top));
}
.hero-flare::before {
  position: absolute;
  content: "";
  inset: 0 auto auto 0;
  width: clamp(132px, 19vw, 286px);
  aspect-ratio: 1;
  background: radial-gradient(circle closest-side,
    rgb(255 253 225 / .98) 0%,
    rgb(255 241 179 / .88) 10%,
    rgb(255 209 130 / .60) 21%,
    rgb(255 184 100 / .31) 40%,
    rgb(255 194 127 / .10) 68%,
    transparent);
  transform: translate(-50%, -50%);
}
.hero-flare > span {
  position: absolute;
  inset: 0 auto auto 0;
  width: var(--flare-diameter);
  aspect-ratio: 1;
  background: radial-gradient(circle closest-side,
    rgb(var(--flare-tint) / .26) 10%,
    rgb(var(--flare-tint) / .14) 49%,
    rgb(var(--flare-tint) / var(--flare-rim)) 73%,
    rgb(var(--flare-tint) / .24) 86%,
    transparent);
  transform: translate(
    calc(var(--flare-axis-x) * var(--flare-mirror-x) * var(--flare-distance) * var(--flare-reach) - 50%),
    calc(var(--flare-axis-y) * var(--flare-distance) * var(--flare-reach) - 50%)
  ) scale(var(--flare-scale));
}
.hero-flare > span:nth-child(1) {
  --flare-distance: .23;
  --flare-diameter: clamp(27px, 3.5vw, 53px);
  --flare-tint: 255 222 151;
  --flare-rim: .86;
}
.hero-flare > span:nth-child(2) {
  --flare-distance: .46;
  --flare-diameter: clamp(39px, 5vw, 75px);
  --flare-tint: 255 239 193;
  --flare-rim: .72;
}
.hero-flare > span:nth-child(3) {
  --flare-distance: .76;
  --flare-diameter: clamp(56px, 7.5vw, 111px);
  --flare-tint: 205 225 197;
  --flare-rim: .48;
}
.hero-contours { z-index: -1; pointer-events: none; }
.hero-contours path {
  fill: none;
  stroke: var(--contour-ink, #fff9eb);
  stroke-width: .9px;
  stroke-opacity: var(--contour-opacity, .48);
  vector-effect: non-scaling-stroke;
}
.hero-content { padding: 68px 0 clamp(92px, 8vw, 127px) clamp(0px, 2.6vw, 45px); }
.hero-content h1 {
  max-width: min(590px, 53vw);
  font-size: clamp(49px, 5.03vw, 81px);
  line-height: 1.03;
  margin-bottom: 16px;
}
.hero-subheading {
  max-width: 27ch;
  font: 400 clamp(23px, 2vw, 31px)/1.3 var(--display);
  letter-spacing: -.038em;
  margin-bottom: 13px;
}
.hero-description { max-width: 43ch; font-size: 16px; line-height: 1.55; }
.hero-content .button-outline { background-color: rgb(255 249 239 / .22); }
.hero-content .button-outline:hover { background-color: rgb(255 249 239 / .55); }
.hero-edge, .field-edge {
  position: absolute;
  inset: auto 0 -1px;
  width: 100%;
  height: var(--hero-edge-height);
  fill: var(--paper);
  pointer-events: none;
}
.whole-life { z-index: 1; padding-block: clamp(23px, 3.4vw, 53px) 36px; }
.whole-life-layout {
  display: grid;
  grid-template-columns: minmax(0, .91fr) minmax(310px, 1.26fr) minmax(0, .61fr);
  align-items: center;
  gap: clamp(23px, 3.15vw, 47px);
}
.whole-life-copy h2 { font-size: clamp(30px, 2.63vw, 42px); text-wrap: initial; }
.whole-life-copy p { max-width: 36ch; }
.whole-life-focus { padding-left: clamp(17px, 2.4vw, 37px); border-left: 1px solid var(--line); }
.whole-life-focus h3 { font-size: clamp(22px, 1.9vw, 29px); }
.whole-life-focus ul { margin: 0; font-size: 16px; }
.whole-life-focus li::marker { color: #525d32; }

.life-map {
  position: relative;
  isolation: isolate;
  width: 100%;
  max-width: 492px;
  aspect-ratio: 1.36;
  margin-inline: auto;
}
.map-area {
  position: absolute;
  display: grid;
  width: 52%;
  height: 44%;
  place-items: center;
  padding: 7px;
  border: 1px solid rgb(255 249 238 / .72);
  border-radius: 50%;
  background-color: color-mix(in srgb, var(--map-tone) 44%, transparent);
  text-align: center;
  text-decoration: none;
  transition: background-color .48s ease;
}
.map-area:hover { background-color: color-mix(in srgb, var(--map-tone) 57%, transparent); }
.map-area:focus-visible { z-index: 4; }
.map-label { display: grid; justify-items: center; gap: 1px; }
.map-label .line-icon { width: clamp(23px, 2.6vw, 35px); height: auto; }
.map-label strong {
  font: 400 clamp(14px, 1.55vw, 23px)/1.12 var(--display);
  letter-spacing: -.035em;
}
.map-label > span { font-size: clamp(10px, .92vw, 13px); line-height: 1.25; max-width: 15ch; }
.map-self .map-label > span { max-width: none; }
.map-self { --map-tone: var(--map-self); --map-entry-y: -36%; left: 24%; top: 0; align-items: start; padding-top: 3.4%; }
.map-relationships { --map-tone: var(--map-relationships); --map-entry-x: -48%; left: 0; top: 28%; justify-items: start; padding-left: 6%; }
.map-surroundings { --map-tone: var(--map-surroundings); --map-entry-x: 48%; right: 0; top: 28%; justify-items: end; padding-right: 6%; }
.map-routines { --map-tone: var(--map-routines); --map-entry-y: 43%; left: 24%; bottom: 0; align-items: end; padding-bottom: 3.6%; }
.map-center {
  position: absolute;
  z-index: 5;
  inset: 35% 36%;
  display: grid;
  place-items: center;
  border: 1px solid rgb(255 249 238 / .72);
  border-radius: 50%;
  background: #513960;
  color: var(--paper-light);
  font: 400 clamp(22px, 2.2vw, 32px)/1 var(--display);
  pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
  .whole-life, .approach-overview { overflow-x: clip; }
  .map-assembling .map-area {
    transform: translate(
      calc(var(--map-entry-x, 0px) * var(--map-distance, 1)),
      calc(var(--map-entry-y, 0px) * var(--map-distance, 1))
    );
    opacity: calc(1 - .34 * var(--map-distance, 1));
  }
  .map-assembling .map-center { transform: scale(calc(1 - .14 * var(--map-distance, 1))); }
}

.coaching-landscape { position: relative; }
.coaching-landscape .ridge-transition { margin-top: -34px; }
.coaching-field {
  --focus: var(--paper-light);
  margin-top: -1px;
  padding-top: clamp(32px, 3.9vw, 57px);
  padding-bottom: clamp(70px, 6.4vw, 94px);
  background: var(--forest-field);
  color: var(--paper-light);
}
.coaching-field .section-heading { grid-template-columns: 1fr minmax(220px, .55fr); }
.field-edge { height: clamp(30px, 4vw, 57px); fill: var(--paper-light); }
.approach-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 24px);
}
.approach-card {
  --focus: var(--blue);
  --panel-fill: #f6dfc8;
  --panel-position: center 80%;
  --card-foot-space: clamp(32px, 3.2vw, 46px);
  --panel-fade: linear-gradient(180deg,
    color-mix(in srgb, var(--panel-fill) 43%, transparent),
    color-mix(in srgb, var(--panel-fill) 30%, transparent) calc(100% - var(--card-foot-space)),
    color-mix(in srgb, var(--panel-fill) 8%, transparent) calc(100% - var(--card-foot-space) * .42),
    transparent);
  display: flex;
  padding: clamp(17px, 1.9vw, 27px) clamp(17px, 2vw, 30px) var(--card-foot-space);
  color: var(--ink);
}
.scene-connection-sky { --panel-image: url('./generated/connection-sky.webp'); }
.scene-freedom-sky { --panel-image: url('./generated/freedom-sky.webp'); --panel-fill: #ded0e0; }
.scene-world-sky { --panel-image: url('./generated/world-sky.webp'); --panel-fill: #dce2c9; --panel-position: center 21%; }
.scene-world-sky p, .scene-world-sky .text-link { text-shadow: var(--photo-light-shadow); }
.scene-freedom-sky .text-link { color: #0b120d; }
.approach-card-copy {
  display: flex;
  flex-direction: column;
  align-items: start;
}
.approach-card h3 {
  margin: 7px 0 8px;
  max-width: 21ch;
  text-wrap: initial;
}
.approach-card p { max-width: 36ch; font-size: 15px; line-height: 1.5; margin-bottom: 4px; text-wrap: pretty; }
.approach-card .text-link { margin-top: auto; }
.approach-card .line-icon { width: 32px; height: 32px; color: #384730; }

.service-pair-section { background: var(--paper-light); }
.service-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(17px, 2.2vw, 32px); }
.service-feature {
  --focus: var(--paper-light);
  --panel-fade: linear-gradient(90deg,
    color-mix(in srgb, var(--panel-fill) 61%, transparent),
    color-mix(in srgb, var(--panel-fill) 47%, transparent) 29%,
    color-mix(in srgb, var(--panel-fill) 19%, transparent) 54%,
    transparent 75%);
  display: flex;
  align-items: center;
  min-height: clamp(270px, 23vw, 350px);
  padding: clamp(25px, 3.3vw, 47px);
  color: var(--paper-light);
}
.service-energy {
  --panel-image: url('./generated/resonance-room.webp');
  --panel-fill: #2b261c;
  --panel-position: 75% center;
}
.service-coaching {
  --panel-image: url('./generated/garden-threshold.webp');
  --panel-fill: #223328;
  --panel-position: center 56%;
}
.service-copy { max-width: min(34ch, 54%); }
.service-feature h2 { font-size: clamp(28px, 2.55vw, 39px); text-wrap: initial; margin-bottom: 13px; }
.service-feature p { font-size: 16px; margin-bottom: 6px; }
.service-coaching p { max-width: 26ch; text-shadow: var(--photo-dark-shadow); }
.service-feature .text-link { text-decoration-color: #d6bfa3; }

.ways-section { background: #efe4d3; }
.ways-layout {
  display: grid;
  grid-template-columns: minmax(200px, .77fr) minmax(0, 3fr);
  align-items: start;
  gap: clamp(22px, 3vw, 50px);
}
.ways-intro { padding-top: 8px; }
.ways-intro h2 { font-size: clamp(32px, 2.8vw, 42px); text-wrap: initial; }
.ways-intro p { max-width: 29ch; }
.package-inquiry { margin-top: 10px; }
.hero-subheading { text-wrap: balance; }
.hero-description, .whole-life-copy p, .service-feature p, .ways-intro p { text-wrap: pretty; }
.package-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(14px, 1.55vw, 24px);
}
.package-card {
  --package-inset: clamp(14px, 1.4vw, 22px);
  container-type: inline-size;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--panel-radius);
  background: #fff8eb;
  box-shadow: 0 12px 25px -20px rgb(64 48 25 / .4);
}
.package-reclaim { background: #fbefdf; }
.package-rebirth { background: #f1efdd; }
.package-image {
  position: relative;
  flex: none;
  aspect-ratio: var(--package-image-ratio, 1.75);
}
.package-image img {
  position: absolute;
  inset: 0 auto auto 0;
  width: 100%;
  height: calc(100% + clamp(86px, 8vw, 122px));
  object-fit: cover;
  mask-image: linear-gradient(to bottom,
    #000 15%,
    rgb(0 0 0 / .97) 27%,
    rgb(0 0 0 / .86) 40%,
    rgb(0 0 0 / .64) 53%,
    rgb(0 0 0 / .38) 66%,
    rgb(0 0 0 / .15) 80%,
    rgb(0 0 0 / .03) 94%,
    transparent);
}
.package-image::after {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgb(27 28 21 / .69), rgb(27 28 21 / .3) 34%, transparent 78%);
  content: "";
  pointer-events: none;
}
.package-title, .package-discount {
  position: absolute;
  z-index: 1;
  top: var(--package-inset);
}
.package-title {
  left: var(--package-inset);
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--paper-light);
}
.package-title h3 {
  margin: 0;
  color: inherit;
  text-shadow: 0 0 1px rgb(26 25 17 / .95), var(--photo-dark-shadow);
}
.package-title .line-icon { width: 30px; height: 30px; }
.package-discount {
  right: var(--package-inset);
  padding: 4px 9px;
  border-radius: 999px;
  background: #f3d8a6;
  color: #3d301d;
  font-size: 12px;
  font-weight: 670;
  line-height: 1.2;
  white-space: nowrap;
}
.package-copy {
  position: relative;
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: start;
  padding: clamp(11px, 1.3vw, 20px) var(--package-inset) clamp(17px, 2vw, 29px);
}
.package-services {
  display: grid;
  width: 100%;
  flex: 1;
  align-content: start;
  grid-template-columns: minmax(0, .78fr) minmax(0, 1.22fr);
  margin: 0 0 clamp(15px, 1.6vw, 24px);
  padding: 0;
  list-style: none;
}
.package-service {
  display: flex;
  align-items: center;
  gap: clamp(6px, .6vw, 10px);
  font-size: clamp(12px, .97vw, 15px);
  line-height: 1.2;
}
.package-service > span { white-space: nowrap; }
.package-service + .package-service {
  margin: 0;
  padding-inline-start: clamp(9px, 1.05vw, 16px);
  border-inline-start: 1px solid #bdb59f;
}
.package-service strong {
  font: 400 clamp(27px, 2.6vw, 40px)/1 var(--display);
  font-variant-numeric: tabular-nums;
  letter-spacing: -.045em;
}
.package-price {
  margin: 0;
  font: 400 clamp(29px, 3vw, 42px)/1 var(--display);
  letter-spacing: -.045em;
}
.package-saving {
  margin: 7px 0 18px;
  color: #315b3d;
  font-size: clamp(16px, 1.22vw, 19px);
  font-weight: 650;
  line-height: 1.25;
}
.package-saving strong { font-weight: 740; }
.package-copy .button { min-width: 113px; }
@container (max-width: 285px) {
  .package-services { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .package-service + .package-service {
    padding: 8px 0 0;
    border: 0;
    border-top: 1px solid #bdb59f;
  }
}
@container (max-width: 150px) {
  .package-label-detail { display: none; }
}
.package-card.scroll-reveal { --panel-slide: clamp(8px, 1.2vw, 17px); }
.package-card.scroll-reveal:first-child { --reveal-x: calc(-1 * var(--panel-slide)); }
.package-card.scroll-reveal:nth-child(2) { --reveal-x: 0px; --reveal-y: 14px; }
.package-card.scroll-reveal:last-child { --reveal-x: var(--panel-slide); }
.page-home .closing-section { background: var(--paper-light); }

@media (max-width: 1040px) {
  .ways-layout { grid-template-columns: 1fr; }
  .ways-intro { max-width: 650px; }
  .ways-intro p { max-width: 43ch; }
  .whole-life-layout { grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); }
  .whole-life-focus { grid-column: 1 / -1; display: flex; align-items: baseline; gap: 26px; border: 0; padding-left: 0; }
  .whole-life-focus h3 { margin: 0; }
  .whole-life-focus ul { display: flex; flex-wrap: wrap; column-gap: 29px; }
  .whole-life-focus li { margin-top: 0; }
}
@media (max-width: 860px) {
  .service-pair { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
  .home-hero {
    --sun-x: .300;
    --sun-y: .770;
    --lens-drop: .47;
    --flare-mirror-x: 1;
    min-height: max(610px, 109vw);
    align-items: start;
    background: #f2dfc5;
  }
  .hero-picture img { object-position: 50% 100%; }
  .hero-mist > span::before { inset-block: 77% 6%; }
  .hero-mist > span:nth-child(1) {
    --mist-mask: radial-gradient(ellipse 34% 2.1% at 46% 83.4%, black 4%, transparent 100%);
  }
  .hero-mist > span:nth-child(2) {
    --mist-mask: radial-gradient(ellipse 45% 2.6% at 16% 86.8%, black 4%, transparent 100%);
  }
  .hero-mist > span:nth-child(3) {
    --mist-mask: radial-gradient(ellipse 31% 2.1% at 19% 90.7%, black 4%, transparent 100%);
  }
  .hero-content { padding: clamp(35px, 8vw, 58px) 0 clamp(230px, 54vw, 345px); }
  .hero-content h1 { max-width: 12.8ch; font-size: clamp(42px, 7.6vw, 60px); }
  .hero-subheading { max-width: 26ch; font-size: clamp(21px, 4.7vw, 26px); }
  .hero-description { max-width: 38ch; }
  .hero-contours { height: 46%; top: auto; }
  .hero-contours path { stroke-opacity: var(--contour-opacity, .43); }
  .whole-life-layout { grid-template-columns: 1fr; gap: 26px; }
  .whole-life-copy p { max-width: 45ch; }
  .whole-life-focus { display: block; border-top: 1px solid var(--line); padding-top: 18px; }
  .whole-life-focus ul { margin-top: 10px; }
  .map-label strong { font-size: clamp(15px, 4.1vw, 21px); }
  .map-label > span { font-size: clamp(11px, 2.9vw, 13px); }
  .map-label .line-icon { width: clamp(22px, 6vw, 33px); }
  .map-self { --map-entry-y: -24px; }
  .coaching-landscape .ridge-transition { margin-top: -20px; }
  .coaching-field .section-heading { grid-template-columns: 1fr; }
  .approach-cards { grid-template-columns: 1fr; }
  .approach-card { padding-inline: clamp(20px, 5vw, 34px); }
  .package-grid {
    grid-template-columns: none;
    grid-auto-flow: column;
    grid-auto-columns: min(76vw, 310px);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-color: #71765a #dfd1bc;
    margin-inline: calc(-1 * var(--gutter));
    padding: 3px var(--gutter) 16px;
    scroll-padding-inline: var(--gutter);
  }
  .package-grid:focus-visible { outline-offset: -3px; }
  .package-card { scroll-snap-align: start; }
}
@media (max-width: 760px) and (orientation: portrait) {
  .ways-section { padding-block: clamp(31px, 7.8vw, 54px); }
  .ways-layout { gap: 17px; }
  .ways-intro { padding-top: 0; }
  .ways-intro h2 { font-size: clamp(28px, 7.35vw, 38px); margin-bottom: 10px; }
  .ways-intro p { margin-bottom: 7px; font-size: clamp(15px, 3.65vw, 17px); line-height: 1.45; }
  .package-grid {
    --portrait-card-gutter: clamp(12px, 3.6vw, 24px);
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-flow: row;
    grid-auto-columns: auto;
    gap: clamp(6px, 1.8vw, 14px);
    overflow: visible;
    scroll-snap-type: none;
    margin-inline: calc(var(--portrait-card-gutter) - var(--gutter));
    padding: 2px 0 6px;
  }
  .package-card {
    --package-inset: clamp(7px, 1.85vw, 13px);
    border-radius: clamp(12px, 3.2vw, 23px);
  }
  .package-card.scroll-reveal { --panel-slide: 6px; }
  .package-image { aspect-ratio: 1.58; }
  .package-image img {
    height: calc(100% + clamp(53px, 14vw, 96px));
    mask-image: linear-gradient(to bottom,
      #000 12%,
      rgb(0 0 0 / .88) 26%,
      rgb(0 0 0 / .64) 40%,
      rgb(0 0 0 / .37) 54%,
      rgb(0 0 0 / .15) 70%,
      rgb(0 0 0 / .03) 88%,
      transparent);
  }
  .package-copy { padding: 7px var(--package-inset) clamp(8px, 2.2vw, 15px); }
  .package-title { flex-direction: column; align-items: start; gap: 3px; }
  .package-title h3 { font-size: clamp(15px, 4.7vw, 24px); }
  .package-title .line-icon { width: clamp(18px, 4.9vw, 26px); height: auto; }
  .package-discount { padding: 3px 5px; font-size: clamp(9px, 2.35vw, 11px); }
  .package-services { gap: 6px; margin-bottom: 11px; }
  .package-service { gap: 4px; font-size: clamp(10.5px, 2.7vw, 14px); }
  .package-service + .package-service { padding-top: 6px; }
  .package-service strong { font-size: clamp(20px, 5.5vw, 28px); }
  .package-price { font-size: clamp(23px, 6vw, 32px); white-space: nowrap; }
  .package-saving { margin: 5px 0 9px; font-size: clamp(13px, 3.15vw, 16px); }
  .package-copy .button {
    min-width: 0;
    min-height: 44px;
    width: 100%;
    padding: 6px 3px;
    font-size: clamp(11px, 2.95vw, 14px);
    line-height: 1.2;
  }
}
@media (max-width: 540px) {
  .hero-content .actions { gap: 10px; }
  .hero-content .button { font-size: 14px; padding-inline: 16px; }
  .service-feature {
    --panel-fade: linear-gradient(180deg,
      color-mix(in srgb, var(--panel-fill) 62%, transparent),
      color-mix(in srgb, var(--panel-fill) 47%, transparent) calc(100% - 112px),
      color-mix(in srgb, var(--panel-fill) 14%, transparent) calc(100% - 56px),
      transparent);
    padding: 26px 23px 126px;
  }
  .service-copy { max-width: 34ch; }
  .whole-life-focus ul { display: block; }
  .whole-life-focus li + li { margin-top: 5px; }
}
@media (max-width: 385px) {
  .map-area { padding-inline: 5px; }
  .map-relationships { padding-left: 5%; }
  .map-surroundings { padding-right: 5%; }
}
@media (max-width: 360px) {
  .hero-content h1 { font-size: clamp(35px, 10.6vw, 42px); }
  .map-center { inset: 36% 38%; font-size: 21px; }
  .map-relationships { padding-left: 3.7%; }
  .map-surroundings { padding-right: 3.7%; }
  .map-relationships strong, .map-surroundings strong { font-size: 14px; }
  .map-label > span { font-size: 10.5px; max-width: 13ch; }
}

.split-opening { padding-block: clamp(26px, 4.4vw, 68px); background: var(--paper-deep); }
.split-opening-inner {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr);
  align-items: center;
  gap: clamp(27px, 5vw, 78px);
}
.opening-copy { padding-block: 10px; }
.opening-copy h1 { max-width: 15ch; }
.opening-image {
  width: 100%;
  height: clamp(315px, 33vw, 480px);
  object-fit: cover;
}
.accent-image {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: var(--panel-radius);
}
.accent-image .hero-contours { z-index: 1; }
.opening-contours path:nth-of-type(2) { stroke: var(--contour-thread, var(--contour-ink, #fff9eb)); }
.opening-contours .contour-portrait { display: none; }
.photo-opening {
  --opening-shade: 248 231 207;
  --opening-wash: linear-gradient(90deg,
    rgb(var(--opening-shade) / .55),
    rgb(var(--opening-shade) / .43) 30%,
    rgb(var(--opening-shade) / .18) 48%,
    transparent 67%);
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: grid;
  align-items: center;
  min-height: clamp(460px, 41vw, 625px);
  padding-block: clamp(52px, 5vw, 75px) clamp(100px, 9.2vw, 141px);
  background: #e7ccb0;
}
.opening-picture, .opening-picture img, .photo-opening::after {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}
.opening-picture { z-index: -3; }
.opening-picture img { object-fit: cover; object-position: var(--opening-photo-position, center 38%); }
.photo-opening::after {
  content: "";
  z-index: -2;
  background: var(--opening-wash);
  pointer-events: none;
}
.photo-opening > .container { padding-left: clamp(0px, 2.6vw, 45px); }
.photo-opening .opening-copy { max-width: min(53vw, 630px); }
.photo-opening h1 { max-width: 17ch; }
.approach-opening {
  --contour-ink: #ffe3bc;
  --contour-thread: #f8c7a6;
}
.approach-opening .lead { max-width: 37ch; color: #132019; }
.coaching-opening {
  --opening-photo-position: center top;
  --contour-ink: #f3e1b0;
  --contour-thread: #e9e6c5;
}
.coaching-opening .lead, .about-opening .lead { text-shadow: var(--photo-light-shadow); }
.coaching-opening .text-link {
  padding: 3px 8px;
  border-radius: 6px;
  background: rgb(255 249 239 / .9);
}
.sessions-opening {
  --opening-shade: 28 22 16;
  --opening-photo-position: center 48%;
  --contour-ink: #dce4ca;
  --contour-thread: #f1d0a7;
  --focus: var(--paper-light);
  color: var(--paper-light);
  background: #413426;
}
.sessions-opening .hero-edge { fill: var(--paper-light); }
.sessions-opening .lead { text-shadow: var(--photo-dark-shadow); }
.about-opening {
  --opening-shade: 249 234 207;
  --opening-photo-position: center 48%;
  --contour-ink: #8f7954;
  --contour-thread: #a68555;
  --contour-opacity: .40;
  z-index: 1;
  margin-bottom: calc(-1 * var(--hero-edge-height));
  mask:
    linear-gradient(#000, #000) top / 100% calc(100% - var(--hero-edge-height) + 1px) no-repeat,
    url('./hero-curve-mask.svg') bottom / 100% var(--hero-edge-height) no-repeat;
  background: #ebdbc0;
}
.about-opening .lead { max-width: 33ch; }
.short-opening .opening-image { height: clamp(235px, 21.5vw, 320px); }
.short-opening .opening-copy h1 { font-size: clamp(37px, 4.2vw, 63px); }
.questions-opening {
  --contour-ink: #fff1d0;
  --contour-thread: #a48b5a;
  background: #eae4d2;
}
.policies-opening {
  --contour-ink: #edcb93;
  --contour-thread: #d9e1c7;
  background: #e5e7d9;
}

.approach-overview-inner {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  align-items: center;
  gap: clamp(32px, 7vw, 104px);
}
.approach-overview-inner p { max-width: 47ch; text-wrap: pretty; }
.life-area-section { background: var(--paper-light); }
.life-area-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.life-area-panel {
  --panel-position: 74% center;
  --panel-fade: radial-gradient(ellipse 70.71% 70.71% at left top,
    color-mix(in srgb, var(--panel-fill) 64%, transparent),
    color-mix(in srgb, var(--panel-fill) 49%, transparent) 26%,
    color-mix(in srgb, var(--panel-fill) 27%, transparent) 57%,
    color-mix(in srgb, var(--panel-fill) 6%, transparent) 85%,
    transparent);
  display: flex;
  align-items: stretch;
  min-height: clamp(265px, 22vw, 320px);
  padding: clamp(23px, 2.75vw, 40px);
  scroll-margin-top: 22px;
}
.life-area-panel#self {
  --panel-fill: color-mix(in srgb, var(--map-self) 49%, var(--paper-light));
  --panel-image: url('./generated/area-self.webp');
}
.life-area-panel#relationships {
  --panel-fill: color-mix(in srgb, var(--map-relationships) 47%, var(--paper-light));
  --panel-image: url('./generated/area-relationships.webp');
}
.life-area-panel#surroundings {
  --panel-fill: color-mix(in srgb, var(--map-surroundings) 58%, var(--paper-light));
  --panel-image: url('./generated/area-surroundings.webp');
}
.life-area-panel#routines {
  --panel-fill: color-mix(in srgb, var(--map-routines) 58%, var(--paper-light));
  --panel-image: url('./generated/area-routines.webp');
}
.life-area-copy {
  display: flex;
  flex-direction: column;
  align-items: start;
  max-width: min(51%, 31ch);
}
.life-area-panel .line-icon { margin-bottom: 9px; color: #445b40; }
.life-area-panel p { flex: 1; margin-bottom: 5px; font-size: 16px; text-wrap: pretty; }

.detail-panel {
  --panel-fade: linear-gradient(to bottom,
    color-mix(in srgb, var(--panel-fill) 59%, transparent),
    color-mix(in srgb, var(--panel-fill) 42%, transparent) 17%,
    color-mix(in srgb, var(--panel-fill) 17%, transparent) 35%,
    transparent 50%);
  display: flex;
  align-items: center;
  min-height: clamp(275px, 25vw, 360px);
  padding: clamp(26px, 4.2vw, 59px);
  scroll-margin-top: 24px;
}
.detail-panel + .detail-panel { margin-top: 20px; }
.detail-copy { max-width: min(58%, 545px); }
.detail-copy h3 { font-size: clamp(29px, 3.1vw, 47px); text-wrap: initial; }
.detail-copy p { max-width: 48ch; text-wrap: pretty; }
.detail-copy .approach-subheading { margin-bottom: 10px; font-weight: 580; }
.detail-copy .line-icon { margin-bottom: 11px; color: #425940; }
.connection-panel {
  --panel-fill: #f1dfc8;
  --panel-image: url('./generated/coaching-connection.webp');
  --panel-position: center 64%;
}
.freedom-panel {
  --panel-fill: #e4dbe7;
  --panel-image: url('./generated/coaching-freedom.webp');
  --panel-position: center 59%;
}
.freedom-panel .line-icon { color: var(--purple); }
.world-panel {
  --panel-fill: #e2e8d1;
  --panel-image: url('./generated/coaching-world.webp');
  --panel-position: center 68%;
}

.page-energy .site-header { --focus: var(--paper-light); background: #292820; color: var(--paper-light); }
.page-energy .site-header .brand-mark { color: #ddccb0; }
.page-energy .menu-toggle { border-color: #bcb39f; }
.energy-hero {
  --focus: var(--paper-light);
  position: relative;
  display: grid;
  align-items: center;
  min-height: clamp(470px, 44vw, 660px);
  isolation: isolate;
  overflow: hidden;
  background: #29251a;
  color: var(--paper-light);
}
.energy-hero > picture, .energy-hero-image, .energy-contours { position: absolute; inset: 0; width: 100%; height: 100%; }
.energy-hero > picture { z-index: -2; }
.energy-hero-image { object-fit: cover; object-position: center 54%; }
.energy-contours { z-index: -1; pointer-events: none; }
.energy-contours path {
  fill: none;
  stroke: #f0d8b8;
  stroke-width: .9px;
  stroke-opacity: .43;
  vector-effect: non-scaling-stroke;
}
.energy-hero-copy { padding: 58px 0 clamp(110px, 10vw, 154px) clamp(0px, 2.6vw, 45px); }
.energy-hero-copy h1 { max-width: 11ch; }
.energy-hero-copy .lead { max-width: min(39ch, 43vw); }
.energy-hero-copy .actions { max-width: 49vw; }
.energy-practices { padding-top: clamp(38px, 4vw, 63px); }
.practice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.practice-tile { overflow: hidden; border-radius: var(--panel-radius); background: #eee2cc; }
.breathwork-tile { background: #e4e7d9; }
.practice-tile img { width: 100%; height: clamp(160px, 20vw, 260px); object-fit: cover; }
.practice-tile > div { padding: clamp(22px, 3.1vw, 43px); }
.practice-tile .line-icon { margin-bottom: 10px; color: #4e5d39; }
.practice-tile p { max-width: 43ch; text-wrap: pretty; }
.modality-note { margin-top: 23px; color: var(--muted); }
.photo-feature {
  --focus: var(--paper-light);
  --feature-ground: var(--paper-light);
  --feature-sky-height: calc(var(--footer-ridge-height) * .9);
  --feature-fade-length: clamp(100px, 12vw, 220px);
  --feature-bottom-scrim: linear-gradient(to top,
    var(--feature-ground) var(--feature-sky-height),
    color-mix(in srgb, var(--feature-ground) 86%, transparent) calc(var(--feature-sky-height) + var(--feature-fade-length) * .24),
    color-mix(in srgb, var(--feature-ground) 46%, transparent) calc(var(--feature-sky-height) + var(--feature-fade-length) * .54),
    color-mix(in srgb, var(--feature-ground) 11%, transparent) calc(var(--feature-sky-height) + var(--feature-fade-length) * .82),
    transparent calc(var(--feature-sky-height) + var(--feature-fade-length)));
  --feature-wash: linear-gradient(90deg,
    rgb(var(--feature-shade) / .62),
    rgb(var(--feature-shade) / .44) 32%,
    rgb(var(--feature-shade) / .16) 52%,
    transparent 70%);
  color: var(--paper-light);
  background-color: var(--feature-ground);
  background-image: var(--feature-bottom-scrim), var(--feature-wash), var(--feature-photo);
  background-position: center, center, var(--feature-position, center);
  background-size: cover;
  background-repeat: no-repeat;
}
.photo-feature > .container {
  display: flex;
  align-items: center;
  min-height: clamp(265px, 26vw, 405px);
  padding-left: clamp(0px, 2.6vw, 45px);
}
.photo-feature-copy { max-width: min(58%, 560px); }
.photo-feature-copy p { max-width: 48ch; text-wrap: pretty; }
.photo-feature-copy .text-link { text-decoration-color: #e2c7a5; }
.energy-options-section {
  --feature-shade: 46 25 17;
  --feature-photo: url('./generated/folded-linen.webp');
}
.energy-options-section .photo-feature-copy p:last-of-type { color: #fffdf9; }
.about-story {
  --focus: var(--blue);
  --feature-wash: none;
  --feature-photo: url('./generated/window-leaves.webp');
  --feature-position: center 48%;
  padding-top: calc(var(--section-space) + var(--hero-edge-height) * .58);
  color: var(--ink);
}
.about-story .photo-feature-copy { max-width: min(100%, 33ch); }
.about-story .text-link { text-decoration-color: currentColor; }
.about-story .photo-feature-copy p { text-shadow: var(--photo-light-shadow); }

.session-single-section { padding-block: clamp(31px, 4vw, 57px); background: var(--paper-light); }
.single-session {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 13px clamp(19px, 4vw, 57px);
}
.single-session h2 { font-size: clamp(29px, 2.7vw, 40px); margin-bottom: 9px; }
.single-price { margin: 0; font-size: 14px; }
.single-price strong { font: 400 39px/1.08 var(--display); letter-spacing: -.038em; }
.single-price > span { display: block; margin-top: 5px; }
.packages-section { --package-image-ratio: 1.95; background: #efe4d3; scroll-margin-top: 20px; }
.package-actions { margin-top: 12px; }

.contact-opening {
  --opening-photo-position: center 58%;
  --opening-shade: 249 233 209;
  --contour-ink: #fbe2bc;
  --contour-thread: #eee7ce;
  background: #d5ad7b;
}
.contact-opening .hero-edge { fill: var(--paper-deep); }
.contact-opening .opening-copy .button { margin-top: 5px; }
.contact-section {
  padding-top: clamp(20px, 3.3vw, 50px);
  background: var(--paper-deep);
}
.inquiry-layout { max-width: 960px; }
.contact-form-wrap {
  padding: clamp(24px, 3.8vw, 54px);
  border: 1px solid #d4c4ae;
  border-radius: var(--panel-radius);
  background: var(--paper-light);
}
.contact-form-wrap h2 {
  margin-bottom: 9px;
  font-size: clamp(31px, 3vw, 45px);
}
.contact-identity {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}
#form-purpose, .question-hint { font-size: 15px; color: var(--muted); }
#form-purpose { margin-bottom: 18px; }
.question-hint { margin-bottom: 8px; text-wrap: pretty; }
fieldset { margin: 0; border: 0; padding: 0; min-width: 0; }
.form-row { margin-bottom: 16px; }
label { display: block; font-size: 16px; font-weight: 560; margin-bottom: 6px; }
label span, .interest-options legend span { font-weight: 400; font-size: 14px; }
input, textarea, select {
  display: block;
  width: 100%;
  min-height: 48px;
  padding: 11px 14px;
  border: 1px solid #7b826e;
  border-radius: 12px;
  color: var(--ink);
  background: #fffdf7;
  font-size: 16px;
}
.contact-form-wrap select {
  appearance: none;
  padding-right: 34px;
  background-image: linear-gradient(45deg, transparent 50%, var(--ink) 50%),
    linear-gradient(135deg, var(--ink) 50%, transparent 50%);
  background-position: right 19px center, right 14px center;
  background-size: 5px 5px;
  background-repeat: no-repeat;
}
textarea { resize: vertical; }
input:user-invalid, textarea:user-invalid { border-color: #9c3434; }
.interest-options {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 7px;
  margin-bottom: 16px;
}
.interest-options legend { font-size: 16px; font-weight: 560; margin-bottom: 7px; }
.interest-options label {
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 44px;
  font-size: 15px;
  font-weight: 400;
  margin: 0;
  padding: 5px 10px;
  border-radius: 10px;
  background: #f5eee2;
  cursor: pointer;
}
.interest-options label:has(input:checked) { background: #e8ebdc; }
.interest-options input { flex: none; width: 17px; height: 17px; min-height: 17px; padding: 0; accent-color: var(--forest); }
.package-interest { padding: 9px 14px; border-radius: 12px; background: #e8ead8; font-size: 15px; }
.inquiry-preview { margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--line); }
.inquiry-preview pre { font: 400 16px/1.6 var(--body); white-space: pre-wrap; overflow-wrap: anywhere; }
.inquiry-preview p { font-size: 15px; }
.inquiry-feedback:not(:empty) { margin: 16px 0 0; }
.inquiry-feedback[data-error] { color: #842d2d; }
.contact-form-wrap button:disabled { cursor: wait; }
.inquiry-questions {
  max-width: 980px;
  margin: clamp(20px, 3.4vw, 46px) auto 0;
  border: 1px solid #d4c4ae;
  border-radius: var(--panel-radius);
}
.inquiry-questions > summary { padding-left: clamp(19px, 3vw, 34px); font-weight: 560; }
.inquiry-questions[open] > .inquiry-answers {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 3vw, 32px);
  padding: 10px clamp(16px, 3vw, 34px) clamp(18px, 3vw, 32px);
}
.inquiry-answers h3 { font-size: clamp(22px, 2vw, 27px); }
.inquiry-answers details { background: #f5eee2; }
.inquiry-answers summary { font-size: 16px; font-weight: 560; }
.inquiry-answers p { font-size: 16px; }

.faq-layout, .policy-layout {
  display: grid;
  grid-template-columns: minmax(0, .64fr) minmax(0, 1.36fr);
  align-items: start;
  gap: clamp(24px, 6vw, 90px);
}
.faq-intro .text-link, .policy-nav .text-link { display: flex; width: fit-content; }
.faq-secondary { background: #ece5d5; }
.faq-list { display: grid; gap: 8px; }
.faq-list p { text-wrap: pretty; }
details { background: var(--paper-light); border-radius: 14px; }
summary {
  position: relative;
  min-height: 53px;
  padding: 15px 45px 15px 18px;
  border-radius: 14px;
  font-size: 17px;
  font-weight: 700;
  list-style: none;
}
summary::-webkit-details-marker { display: none; }
summary::after { position: absolute; right: 17px; top: 10px; content: '+'; font-size: 24px; font-weight: 400; }
details[open] > summary::after { content: '−'; }
details > div { padding: 0 25px 19px 18px; }
.policy-copy { display: grid; gap: 20px; }
.policy-copy article {
  padding: clamp(21px, 3.5vw, 44px);
  scroll-margin-top: 22px;
  border-radius: var(--panel-radius);
  background: var(--paper-light);
}
.policy-copy h2 { font-size: clamp(28px, 2.8vw, 40px); }
.policy-copy p, .session-terms { max-width: 59ch; text-wrap: pretty; }

.booking-preview { background: var(--paper-light); }
.booking-preview > .container { max-width: 760px; }
.booking-preview h1 { font-size: clamp(36px, 4vw, 59px); }
.preview-choice {
  display: none;
  padding: clamp(22px, 4vw, 43px);
  border: 1px solid var(--line);
  border-radius: var(--panel-radius);
  background: var(--paper);
}
.preview-choice:target, .preview-options:not(:has(.preview-choice:target)) > #book-session { display: block; }
.preview-choice h2 { margin-bottom: 12px; }
.preview-choice p { text-wrap: pretty; }
.preview-price { font: 400 clamp(35px, 4vw, 48px)/1.1 var(--display); }

@media (max-width: 980px) {
  .life-area-grid { grid-template-columns: 1fr; }
}
@media (min-width: 761px) and (max-width: 1100px) {
  .connection-panel .detail-copy { max-width: min(51%, 37ch); }
  .about-story { --feature-position: left center; }
  .about-story .photo-feature-copy { max-width: min(100%, 30ch); }
}
@media (max-width: 890px) {
  .interest-options { grid-template-columns: 1fr; }
  .photo-opening {
    --opening-scene-height: clamp(186px, 43vw, 272px);
    --opening-wash: linear-gradient(180deg,
      rgb(var(--opening-shade) / .55),
      rgb(var(--opening-shade) / .36) calc(100% - var(--opening-scene-height)),
      rgb(var(--opening-shade) / .13) calc(100% - var(--opening-scene-height) * .58),
      transparent calc(100% - var(--opening-scene-height) * .22));
    min-height: 0;
    padding-block: clamp(43px, 7vw, 58px) var(--opening-scene-height);
  }
  .photo-opening > .container { padding-left: 0; }
  .photo-opening .opening-copy { padding-block: 0; max-width: 460px; }
  .photo-opening .opening-contours {
    top: auto;
    height: calc(var(--opening-scene-height) + var(--hero-edge-height) * .25);
  }
  .photo-opening .contour-wide { display: none; }
  .opening-contours .contour-portrait { display: block; }
  .coaching-opening { --opening-photo-position: 45% top; }
  .sessions-opening { --opening-photo-position: 15% center; }
  .about-opening { --opening-photo-position: 17% center; --opening-scene-height: clamp(218px, 48vw, 286px); }
  .contact-opening { --opening-photo-position: 83% center; --opening-scene-height: clamp(213px, 48vw, 280px); }
  .detail-copy { max-width: 51%; }
}
@media (max-width: 760px) {
  .split-opening-inner, .approach-overview-inner,
  .faq-layout, .policy-layout { grid-template-columns: 1fr; }
  .opening-copy { padding-block: 7px 0; }
  .opening-copy h1 { max-width: 17ch; }
  .split-opening .opening-image { height: clamp(205px, 57vw, 345px); }
  .short-opening .opening-image { height: clamp(165px, 43vw, 250px); }
  .accent-image .opening-contours { height: 100%; }
  .approach-overview-inner { gap: 24px; }
  .detail-panel, .life-area-panel {
    --scene-height: clamp(114px, 29vw, 170px);
    min-height: 0;
    padding: clamp(23px, 5.9vw, 39px);
    padding-bottom: calc(var(--scene-height) + 16px);
  }
  .detail-copy { max-width: 100%; }
  .connection-panel .detail-copy, .freedom-panel .detail-copy, .world-panel .detail-copy { max-width: min(100%, 34ch); }
  .life-area-copy { max-width: min(100%, 27ch); }
  .detail-panel { --panel-position: 39% center; }
  .connection-panel { --panel-position: 22% center; }
  .life-area-panel#self { --panel-position: 24% center; }
  .life-area-panel#relationships {
    --panel-position: 18% top;
  }
  .life-area-panel#surroundings { --panel-position: 22% center; }
  .life-area-panel#routines { --panel-position: 16% center; }
  .energy-hero { min-height: max(515px, 92vw); align-items: start; }
  .energy-hero-image { object-position: center bottom; }
  .energy-hero-copy { padding: 47px 0 clamp(185px, 53vw, 285px); }
  .energy-hero-copy h1 { max-width: 12ch; }
  .energy-hero-copy .lead { max-width: 35ch; }
  .energy-hero-copy .actions { max-width: none; }
  .energy-contours { height: 42%; top: auto; }
  .photo-feature {
    --feature-wash: linear-gradient(180deg,
      rgb(var(--feature-shade) / .62),
      rgb(var(--feature-shade) / .44) 38%,
      rgb(var(--feature-shade) / .18) 63%,
      transparent 78%);
  }
  .photo-feature > .container { padding-left: 0; }
  .photo-feature-copy { max-width: min(100%, 460px); }
  .about-story { --feature-position: 14% center; --feature-wash: none; }
  .about-story .photo-feature-copy { max-width: min(100%, 25ch); }
  .contact-opening {
    --opening-scene-height: clamp(236px, 48vw, 280px);
    --contact-picture-top: clamp(43px, 13vw, 70px);
    background: #e6d2b7;
  }
  .contact-opening .opening-picture {
    top: var(--contact-picture-top);
    height: calc(100% - var(--contact-picture-top));
    mask-image: linear-gradient(transparent, #000 42%);
  }
  .contact-opening h1 {
    margin-bottom: 16px;
    font-size: clamp(36px, 10.3vw, 49px);
  }
  .inquiry-questions[open] > .inquiry-answers { grid-template-columns: 1fr; }
  .faq-layout { gap: 13px; }
  .faq-intro h2 { margin-bottom: 8px; }
  .faq-intro .text-link, .policy-nav .text-link { display: inline-flex; margin-right: 12px; }
}
@media (max-width: 540px) {
  .practice-grid { grid-template-columns: 1fr; }
  .detail-panel .detail-copy p:last-child { text-shadow: var(--photo-light-shadow); }
  .single-session { grid-template-columns: 1fr; }
  .single-session .button { justify-self: start; margin-top: 5px; }
  .packages-section { --package-image-ratio: 1.75; }
  .detail-copy .line-icon, .practice-tile .line-icon { width: 32px; height: 32px; }
  .contact-identity { grid-template-columns: 1fr; gap: 0; }
}
@media (max-width: 410px) {
  .approach-opening h1, .coaching-opening h1 { font-size: clamp(35px, 10.5vw, 43px); }
  .contact-form-wrap { padding-inline: 19px; }
  .interest-options { grid-template-columns: 1fr; }
  .energy-hero-copy .button { padding-inline: 15px; font-size: 14px; }
}
