/* Shared editorial layouts and progressive enhancements. */
:root { --paper: #edeae3; --ink: #171716; --soft-line: #c4c1b9; --movement: cubic-bezier(.22,.61,.36,1); }
.site-rail::after { content: ''; position: absolute; right: 0; top: 0; width: 2px; height: 100%; background: #171716; transform-origin: top; transform: scaleY(var(--scroll-progress,0)); pointer-events: none; }
.hero-picture img { transform: translate3d(var(--hero-x,0px),var(--hero-y,0px),0) scale(1.035); transition: transform 1.25s var(--movement); }
.hero-shade { transition: background 750ms ease; }
.workshop-card, .hero-wordmark { transition: opacity 600ms ease, transform 750ms var(--movement); }
.hero-reveal { position: absolute; right: 4.3%; bottom: 5.5%; z-index: 2; display: inline-flex; align-items: center; gap: 26px; min-height: 50px; padding: 6px 0; border: 0; border-bottom: 1px solid rgba(255,255,255,.72); background: transparent; color: #fff; font-size: 13px; line-height: 1.2; letter-spacing: .1em; text-transform: uppercase; transition: gap 220ms ease, color 220ms ease; }
.hero-reveal:hover { gap: 34px; }
.hero-reveal span:last-child { font-size: 24px; line-height: .7; font-weight: 200; }
.hero.is-exploring .hero-shade { background: rgba(0,0,0,.045); }
.hero.is-exploring .hero-picture img { transform: translate3d(var(--hero-x,0px),var(--hero-y,0px),0) scale(1.08); }
.hero.is-exploring .workshop-card, .hero.is-exploring .hero-wordmark { opacity: 0; transform: translateY(15px); pointer-events: none; }
.hero.is-exploring .hero-reveal { padding: 8px 15px; background: rgba(18,18,18,.7); border-color: transparent; }
.hero-reveal:focus-visible { outline-color: #fff; }
.image-crossfade { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }

/* Interior routes receive a family mood and exploratory navigation. */
body:not(.page-family--home) .page-header { position: relative; min-height: min(78svh,820px); display: flex; flex-direction: column; justify-content: flex-end; padding-top: 105px; padding-bottom: clamp(65px,6vw,115px); border-bottom: 1px solid #d4d2cd; }
body:not(.page-family--home) .page-header::after { content: ''; position: absolute; bottom: clamp(35px,3vw,58px); left: var(--page-gutter); right: var(--page-gutter); height: 1px; background: currentColor; opacity: .25; }
body:not(.page-family--home) .page-header .breadcrumb { position: absolute; top: 48px; left: var(--page-gutter); }
body:not(.page-family--home) .page-header h1 { font-size: clamp(75px,8.5vw,155px); line-height: .89; max-width: 1250px; }
body:not(.page-family--home) .page-header .page-intro { margin-left: 43%; max-width: 690px; }
.page-family--workshops .page-header { background: #e9e6df; }
.page-family--coaching .page-header { background: #efeee9; }
.page-family--discover .page-header { background: #1d2429; color: #f9f9f7; }
.page-family--discover .page-header .breadcrumb { color: #d1d5d6; }
.page-family--apparel .page-header { background: #e0dfda; }
.page-family--contact .page-header { background: #e9e7e2; }
.page-family--careers .page-header { background: #e8e7e3; }
.interior-image { position: relative; height: min(72svh,800px); min-height: 420px; }
.interior-image img { transition: transform 800ms var(--movement), filter 700ms ease; }
.interior-image:hover img { transform: scale(1.025); }
.image-expand { position: absolute; bottom: 35px; right: var(--page-gutter); z-index: 2; min-height: 46px; display: inline-flex; align-items: center; gap: 35px; border: 0; border-bottom: 1px solid rgba(255,255,255,.8); padding: 8px 12px; background: rgba(12,12,12,.57); color: #fff; font-size: 12px; letter-spacing: .11em; text-transform: uppercase; }
.image-expand span:last-child { font-size: 23px; }
.photo-dialog { width: 100vw; max-width: none; height: 100dvh; max-height: none; border: 0; padding: 0; background: #0c0c0c; color: #fff; }
.photo-dialog::backdrop { background: #070707; }
.photo-dialog img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; }
.photo-dialog__close { position: absolute; z-index: 1; top: 28px; right: 32px; width: 52px; height: 52px; border: 1px solid #fff; border-radius: 50%; background: rgba(10,10,10,.8); color: #fff; font-size: 30px; line-height: 1; }
.photo-dialog__caption { position: absolute; z-index: 1; bottom: 32px; left: 35px; max-width: 70%; padding: 6px 12px; background: rgba(10,10,10,.66); font-size: 14px; }
.page-section.section-split { padding-top: clamp(100px,9vw,170px); padding-bottom: clamp(110px,10vw,190px); }
.page-section.section-split > .eyebrow { border-top: 1px solid #9f9f9b; padding-top: 18px; width: fit-content; }
.page-section.section-split .display { font-size: clamp(62px,6.2vw,120px); line-height: .94; }
.detail-list { grid-template-columns: 1fr; gap: 0; margin-top: 90px; border-bottom: 1px solid #b6b5ae; }
.detail-list article { display: grid; grid-template-columns: 10% 40% 1fr; gap: 25px; align-items: baseline; padding: 34px 0; }
.detail-list h3 { margin: 0; font-size: clamp(29px,3.1vw,59px); letter-spacing: -.035em; transition: transform 250ms ease; }
.detail-list article:hover h3 { transform: translateX(8px); }
.detail-list p { max-width: 470px; }
.route-list.has-preview { grid-template-columns: minmax(0,1fr) minmax(300px,.78fr); align-items: start; gap: clamp(65px,8vw,160px); }
.route-list__links { min-width: 0; padding-top: 35px; }
.route-list.has-preview .route-list__links a { font-family: var(--font-display); font-size: clamp(36px,3.8vw,73px); letter-spacing: -.04em; padding: clamp(26px,2.8vw,48px) 0; }
.route-list__links a:hover, .route-list__links a:focus-visible { padding-left: 12px; }
.route-list__preview { position: sticky; top: 30px; max-height: 68svh; aspect-ratio: 3/4; overflow: hidden; background: #d5d3ce; }
.route-list__preview img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity 400ms ease, transform 650ms var(--movement); }
.route-list__preview img.is-behind { opacity: 0; transform: scale(1.035); }
.collection-placeholder { min-height: 460px; background: #1b1b1a; color: #faf9f7; padding: clamp(45px,7vw,115px); }
.collection-placeholder h2 { font-family: var(--font-display); font-weight: 400; letter-spacing: -.045em; font-size: clamp(65px,7.6vw,145px); }

@media (max-width: 1200px) {
  .route-list.has-preview { gap: 45px; }
}
@media (max-width: 900px) {
  .hero-reveal { top: 105px; bottom: auto; right: 5%; }
  body:not(.page-family--home) .page-header { min-height: 68svh; }
  body:not(.page-family--home) .page-header .page-intro { margin-left: 30%; }
  .route-list.has-preview { grid-template-columns: 1fr .7fr; gap: 35px; }
  .route-list.has-preview .route-list__links a { font-size: 39px; }
}
@media (max-width: 600px) {
  .site-rail::after { top: auto; bottom: 0; right: auto; left: 0; height: 2px; width: 100%; transform-origin: left; transform: scaleX(var(--scroll-progress,0)); }
  .hero-picture img { transform: scale(1.035); }
  .hero.is-exploring .hero-picture img { transform: scale(1.08); }
  .hero-reveal { top: auto; right: 20px; bottom: 18px; z-index: 3; gap: 9px; min-height: 44px; font-size: 10px; letter-spacing: .05em; padding-bottom: 2px; }
  .hero-reveal span:last-child { font-size: 18px; }
  .hero-reveal:hover { gap: 11px; }
  body:not(.page-family--home) .page-header { min-height: 66svh; padding-top: 125px; padding-bottom: 85px; }
  body:not(.page-family--home) .page-header .breadcrumb { top: 30px; }
  body:not(.page-family--home) .page-header h1 { font-size: clamp(54px,13vw,84px); }
  body:not(.page-family--home) .page-header .page-intro { margin-left: 0; font-size: 21px; }
  .interior-image { height: 53svh; min-height: 340px; }
  .image-expand { right: var(--page-gutter); bottom: 20px; font-size: 10px; }
  .photo-dialog__close { top: 20px; right: 20px; }
  .photo-dialog__caption { left: 20px; bottom: 20px; }
  .page-section.section-split { padding-top: 75px; padding-bottom: 85px; }
  .page-section.section-split .display { font-size: 57px; }
  .detail-list { margin-top: 50px; }
  .detail-list article { display: block; padding: 26px 0; }
  .detail-list h3 { margin: 18px 0 14px; font-size: 37px; }
  .route-list.has-preview { display: block; }
  .route-list__links { padding-top: 0; }
  .route-list.has-preview .route-list__links a { font-size: clamp(32px,9vw,48px); padding: 25px 0; }
  .route-list__preview { display: none; }
  .collection-placeholder { min-height: 350px; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-picture img, .hero.is-exploring .hero-picture img { transform: none; }
}
@media (max-width: 360px) and (max-height: 650px) {
  .workshop-card { bottom: 200px; }
}
/* Text remains readable before its subtle entrance. */
.is-awaiting-view { transform: translateY(16px); }
.is-awaiting-view.is-in-view { transform: translateY(0); transition: transform 850ms var(--movement); }
html:not(.js-enabled) .practice__tabs { display: none; }
html:not(.js-enabled) .practice__panels [hidden] { display: block !important; margin-bottom: 20px; }
