
:root { --ink:#111815; --forest:#18231e; --pine:#26362e; --paper:#f0eadf; --paper-light:#f8f5ef; --muted:#c7c1b6; --vermillion:#a44332; --gold:#c2a878; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper-light); color:var(--ink); font-family:"Helvetica Neue",Helvetica,Arial,sans-serif; -webkit-font-smoothing:antialiased; }
.skip-link { position:fixed; z-index:100000; top:10px; left:10px; padding:12px 16px; color:#fff; background:#0d1310; transform:translateY(-180%); }
.skip-link:focus { transform:translateY(0); }
a { color:inherit; text-decoration:none; }
img { display:block; width:100%; }
.site-header { height:88px; padding:0 4.5vw; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:36px; background:var(--forest); color:#fff; border-bottom:1px solid rgba(255,255,255,.12); position:relative; z-index:10; }
.brand { display:flex; align-items:center; gap:13px; justify-self:start; }
.calligraphy-mark { width:36px; height:64px; flex:0 0 auto; object-fit:contain; opacity:.96; }
.brand-name { display:flex; flex-direction:column; font-size:11px; line-height:1.25; text-transform:uppercase; letter-spacing:.15em; }
.brand-name strong { font-size:12px; font-weight:600; }
.desktop-nav { display:flex; gap:32px; font-size:12px; text-transform:uppercase; letter-spacing:.13em; }
.desktop-nav a,.nav-cta { transition:opacity .2s ease; }
.desktop-nav a:hover,.nav-cta:hover { opacity:.68; }
.nav-cta { justify-self:end; padding:12px 19px; border:1px solid rgba(255,255,255,.5); font-size:11px; text-transform:uppercase; letter-spacing:.16em; }
.hero { min-height:calc(100vh - 88px); display:grid; grid-template-columns:minmax(0,.92fr) minmax(540px,1.08fr); background:var(--forest); color:#fff; }
.hero-copy { padding:clamp(72px,9vw,136px) 6vw 58px; display:flex; flex-direction:column; justify-content:center; position:relative; }
.hero-copy:before { content:""; width:270px; height:270px; border:1px solid rgba(255,255,255,.055); border-radius:50%; position:absolute; right:-80px; top:58px; }
.eyebrow { margin:0 0 32px; color:var(--gold); font-size:11px; font-weight:600; letter-spacing:.22em; text-transform:uppercase; }
.eyebrow.dark { color:var(--vermillion); }
.hero h1,.section h2,.legacy h2 { margin:0; font-family:Georgia,"Times New Roman",serif; font-weight:400; letter-spacing:-.045em; line-height:.95; }
.hero h1 { max-width:700px; font-size:clamp(60px,6.4vw,108px); }
h1 em,h2 em { color:var(--gold); font-weight:400; }
.hero-lede { max-width:570px; margin:35px 0 0; color:rgba(255,255,255,.72); font-size:clamp(16px,1.2vw,19px); line-height:1.75; }
.hero-actions { margin-top:40px; display:flex; align-items:center; gap:31px; flex-wrap:wrap; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:54px; padding:0 26px; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; transition:transform .2s ease,background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--vermillion); color:#fff; }
.button-dark { background:var(--forest); color:#fff; }
.text-link { font-size:12px; letter-spacing:.08em; text-transform:uppercase; border-bottom:1px solid rgba(255,255,255,.35); padding-bottom:7px; }
.text-link.light { color:#fff; }
.text-link span { margin-left:5px; }
.hero-note { max-width:510px; margin-top:70px; display:flex; gap:20px; align-items:flex-start; }
.hero-note .line { width:46px; height:1px; margin-top:9px; flex:0 0 auto; background:var(--gold); }
.hero-note p { margin:0; color:rgba(255,255,255,.49); font-family:Georgia,serif; font-style:italic; font-size:13px; line-height:1.55; }
.hero-visual { position:relative; overflow:hidden; background:#8a887e; }
.hero-image { margin:0; position:absolute; overflow:hidden; }
.hero-image img { height:100%; object-fit:cover; filter:saturate(.72) contrast(1.06); }
.hero-image-main { inset:0 0 30% 0; }
.hero-image-main img { object-position:50% 52%; }
.hero-image-detail img { object-position:58% 50%; }
.hero-image-detail { width:54%; height:41%; right:0; bottom:0; border:10px solid var(--forest); border-right:0; border-bottom:0; }
.hero-visual:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(17,24,21,.14),transparent 40%),linear-gradient(0deg,rgba(17,24,21,.45),transparent 35%); pointer-events:none; }
.hero-seal { position:absolute; z-index:2; left:36px; bottom:34px; width:132px; height:132px; display:grid; place-items:center; }
.hero-enso svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.hero-enso path { fill:none; stroke-linecap:round; }
.hero-enso .enso-primary { stroke:#d15849; stroke-width:9; opacity:.92; }
.hero-enso .enso-highlight { stroke:#e37868; stroke-width:2.5; opacity:.42; }
.hero-enso .enso-finish { stroke:#9f392f; stroke-width:5; opacity:.48; }
.hero-enso-copy { position:absolute; z-index:1; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; color:#f5f2e9; text-align:center; text-shadow:0 1px 8px rgba(18,24,21,.18); transform:translateX(5px); }
.hero-enso-copy strong { font:italic 15px Georgia,"Times New Roman",serif; letter-spacing:.09em; margin-left:.09em; }
.hero-enso-copy small { margin-top:5px; font:600 6px/1.45 Arial,sans-serif; letter-spacing:.16em; text-transform:uppercase; }
.principles { display:grid; grid-template-columns:repeat(4,1fr); border-bottom:1px solid #d6d0c5; background:var(--paper); }
.principles span { padding:23px 24px; text-align:center; border-right:1px solid #d6d0c5; color:#5b5b52; font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.16em; }
.principles span:last-child { border-right:0; }
.section { padding:clamp(90px,10vw,150px) 7vw; }
.intro { display:grid; grid-template-columns:.72fr 1.5fr; gap:8vw; background:var(--paper-light); }
.section-kicker { display:flex; gap:22px; padding-top:9px; align-items:flex-start; }
.section-kicker span { color:var(--vermillion); font:24px Georgia,serif; }
.section-kicker p { margin:5px 0; font-size:10px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; }
.intro-copy h2,.programs-heading h2,.visit-copy h2 { font-size:clamp(48px,5.5vw,82px); }
.intro-copy p { max-width:780px; margin:42px 0 0; color:#5d5f59; font-size:18px; line-height:1.85; }
.programs { display:grid; grid-template-columns:.8fr 1.2fr; gap:9vw; background:var(--paper); border-top:1px solid #d8d1c6; }
.program-list { border-top:1px solid #bcb6ab; }
.program { display:grid; grid-template-columns:66px 1fr; gap:22px; padding:30px 0 34px; border-bottom:1px solid #bcb6ab; }
.program>span { color:var(--vermillion); font:italic 13px Georgia,serif; padding-top:6px; }
.program h3 { margin:0; font:31px Georgia,serif; font-weight:400; }
.program p { margin:12px 0 20px; color:#5d5f59; line-height:1.7; max-width:590px; }
.program a { font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.program a span { color:var(--vermillion); margin-left:6px; }
.legacy { display:grid; grid-template-columns:minmax(380px,.88fr) 1.12fr; background:var(--forest); color:#fff; }
.legacy-image { min-height:760px; overflow:hidden; position:relative; }
.legacy-image:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(18,28,23,.42),transparent 50%); }
.legacy-image img { width:100%; height:100%; object-fit:cover; object-position:70% center; filter:saturate(.62) sepia(.04) contrast(1.06); }
.legacy-copy { padding:clamp(80px,10vw,145px) 8vw; display:flex; flex-direction:column; justify-content:center; }
.legacy h2 { font-size:clamp(50px,5.6vw,85px); }
.legacy-copy>p:not(.eyebrow) { margin:38px 0 0; max-width:650px; color:rgba(255,255,255,.67); font-size:17px; line-height:1.85; }
.legacy blockquote { margin:42px 0; padding:0 0 0 25px; border-left:1px solid var(--gold); max-width:570px; font:italic 22px/1.55 Georgia,serif; color:#e7dfd1; }
.legacy .text-link { align-self:flex-start; }
.visit { display:grid; grid-template-columns:1fr .9fr; gap:9vw; align-items:center; background:var(--paper-light); }
.visit-copy>p:not(.eyebrow) { margin:30px 0 34px; max-width:560px; color:#62625d; font-size:17px; line-height:1.75; }
.visit-card { padding:46px; background:var(--paper); border:1px solid #d1c9bb; box-shadow:24px 24px 0 #e3dccf; }
.card-label { margin:0 0 28px; color:var(--vermillion); font-size:10px; font-weight:600; letter-spacing:.17em; text-transform:uppercase; }
.visit-card address { font:34px/1.35 Georgia,serif; font-style:normal; }
.visit-links { margin:33px 0; display:flex; flex-direction:column; gap:8px; color:#5e5f5a; font-size:14px; }
.visit-card-footer { padding-top:23px; border-top:1px solid #c9c1b4; display:flex; justify-content:space-between; gap:20px; font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
footer { min-height:190px; padding:45px 5vw; display:grid; grid-template-columns:1fr 1fr 1fr; align-items:center; gap:30px; background:#0d1310; color:#fff; }
.footer-brand { display:flex; align-items:center; gap:14px; }
.footer-calligraphy { width:32px; height:56px; opacity:.9; }
.footer-brand p { margin:0; font-size:11px; line-height:1.4; text-transform:uppercase; letter-spacing:.15em; }
.footer-note { margin:0; text-align:center; color:rgba(255,255,255,.6); font:italic 14px Georgia,serif; }
.copyright { margin:0; text-align:right; color:rgba(255,255,255,.37); font-size:10px; letter-spacing:.08em; }
@media (max-width:1020px) {
  .site-header { grid-template-columns:1fr auto; }
  .desktop-nav { display:none; }
  .hero { grid-template-columns:1fr; }
  .hero-copy { min-height:700px; padding-right:10vw; }
  .hero-visual { height:620px; }
  .intro,.programs { grid-template-columns:1fr; gap:60px; }
  .legacy { grid-template-columns:.85fr 1.15fr; }
  .legacy-image { min-height:680px; }
  .visit { gap:5vw; }
}
@media (max-width:720px) {
  .site-header { height:74px; padding:0 20px; }
  .calligraphy-mark { width:29px; height:51px; }
  .footer-calligraphy { width:32px; height:56px; }
  .brand-name strong { font-size:10px; }
  .brand-name span { font-size:9px; }
  .nav-cta { padding:10px 12px; }
  .hero-copy { min-height:auto; padding:82px 24px 72px; }
  .hero-copy:before { display:none; }
  .hero h1 { font-size:clamp(53px,16vw,72px); }
  .hero-lede { font-size:16px; }
  .hero-note { margin-top:52px; }
  .hero-visual { height:520px; }
  .hero-image-main { inset:0 0 34% 0; }
  .hero-image-detail { width:62%; height:44%; }
  .hero-seal { width:102px; height:102px; left:20px; bottom:26px; }
  .hero-enso-copy { transform:translateX(4px); }
  .hero-enso-copy strong { font-size:12px; }
  .hero-enso-copy small { margin-top:4px; font-size:5px; letter-spacing:.14em; }
  .principles { grid-template-columns:1fr 1fr; }
  .principles span:nth-child(2) { border-right:0; }
  .principles span:nth-child(-n+2) { border-bottom:1px solid #d6d0c5; }
  .section { padding:84px 24px; }
  .intro-copy h2,.programs-heading h2,.visit-copy h2,.legacy h2 { font-size:48px; }
  .intro-copy p { margin-top:28px; font-size:16px; }
  .program { grid-template-columns:44px 1fr; gap:10px; }
  .legacy { grid-template-columns:1fr; }
  .legacy-image { min-height:510px; }
  .legacy-copy { padding:82px 24px; }
  .legacy blockquote { font-size:19px; }
  .visit { grid-template-columns:1fr; gap:60px; }
  .visit-card { padding:31px 24px; box-shadow:12px 12px 0 #e3dccf; }
  .visit-card address { font-size:27px; }
  .visit-card-footer { flex-direction:column; }
  footer { grid-template-columns:1fr; text-align:center; padding:55px 24px; }
  .footer-brand { justify-content:center; }
  .copyright { text-align:center; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  * { transition:none!important; }
  .motion-film video,.motion-toggle { display:none; }
  .motion-film .motion-fallback { display:block; }
}

/* Shared navigation and interior pages */
.mobile-menu { display:none; }
.footer-nav { display:flex; justify-content:center; gap:22px; font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.footer-meta { text-align:right; color:rgba(255,255,255,.42); font-size:10px; line-height:1.7; letter-spacing:.06em; }
.footer-meta p { margin:0; }

.film-section { display:grid; grid-template-columns:.78fr 1.22fr; gap:8vw; align-items:center; background:var(--paper-light); }
.film-copy h2 { font:400 clamp(46px,5vw,76px)/.98 Georgia,serif; letter-spacing:-.045em; margin:0; }
.film-copy>p:not(.eyebrow) { color:#62625d; font-size:17px; line-height:1.8; margin:30px 0; }
.ink-link { border-color:#aaa397; }
.film-frame { position:relative; overflow:hidden; background:#0d1310; aspect-ratio:16/9; }
.film-frame iframe { border:0; position:absolute; inset:0; width:100%; height:100%; }
.motion-frame { box-shadow:0 28px 70px rgba(21,28,24,.17); }
.motion-film { position:relative; width:100%; height:100%; overflow:hidden; background:#111916; }
.motion-film video,.motion-film .motion-fallback { width:100%; height:100%; object-fit:cover; filter:saturate(.78) contrast(1.05); }
.motion-film .motion-fallback { display:none; }
.motion-film:after { content:""; position:absolute; inset:0; pointer-events:none; background:linear-gradient(180deg,transparent 58%,rgba(9,14,12,.32)); }
.motion-toggle { position:absolute; z-index:3; right:17px; bottom:17px; width:38px; height:38px; border:1px solid rgba(255,255,255,.55); border-radius:50%; color:#fff; background:rgba(12,19,16,.48); backdrop-filter:blur(7px); cursor:pointer; font:600 12px Arial,sans-serif; }
.motion-toggle:hover,.motion-toggle:focus-visible { background:rgba(12,19,16,.82); outline:2px solid #fff; outline-offset:2px; }
.film-caption { position:absolute; z-index:2; left:24px; bottom:20px; color:#fff; pointer-events:none; }
.film-caption span { display:block; margin-bottom:7px; color:var(--gold); font-size:9px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }
.film-caption p { margin:0; font:italic 16px Georgia,serif; letter-spacing:.02em; }
.feature-film { position:relative; overflow:hidden; width:100%; aspect-ratio:16/9; background:#0d1310; }
.feature-film video { display:block; width:100%; height:100%; object-fit:cover; background:#0d1310; }

.page-hero { min-height:720px; display:grid; grid-template-columns:.94fr 1.06fr; background:var(--forest); color:#fff; }
.page-hero-copy { padding:clamp(90px,10vw,145px) 7vw; display:flex; flex-direction:column; justify-content:center; }
.page-hero-copy h1,.simple-hero h1 { margin:0; font:400 clamp(60px,6.3vw,100px)/.95 Georgia,serif; letter-spacing:-.05em; }
.page-hero-copy>p:not(.eyebrow) { max-width:650px; color:rgba(255,255,255,.69); font-size:18px; line-height:1.8; margin:34px 0 38px; }
.page-hero-copy .button { align-self:flex-start; }
.page-hero-image { min-height:650px; overflow:hidden; position:relative; }
.page-hero-image:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,rgba(24,35,30,.32),transparent 42%); }
.page-hero-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.68) contrast(1.04); }
.page-hero-video .motion-film { position:absolute; inset:0; }
.page-hero-video .motion-film:after { background:linear-gradient(90deg,rgba(24,35,30,.3),transparent 42%),linear-gradient(0deg,rgba(10,16,13,.2),transparent 35%); }
.page-hero-start .page-hero-image img { object-position:46% center; }
.youth-hero .page-hero-image img { object-position:center; filter:saturate(.7) contrast(1.04); }
.practice-hero .page-hero-image img { object-position:center; }
.dojo-hero .page-hero-image img { object-position:center; }

.inner-section { display:grid; grid-template-columns:.62fr 1.38fr; gap:8vw; }
.content-lead h2 { margin:0; max-width:900px; font:400 clamp(48px,5.4vw,80px)/.98 Georgia,serif; letter-spacing:-.045em; }
.content-lead>p { max-width:790px; color:#5e605a; font-size:18px; line-height:1.85; margin:38px 0 0; }
.section-narrow { margin:0 auto; width:min(1180px,86vw); }

.steps { padding-bottom:130px; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #c9c1b5; }
.steps article { padding:36px 40px 25px 0; border-right:1px solid #c9c1b5; }
.steps article:not(:first-child) { padding-left:40px; }
.steps article:last-child { border-right:0; }
.steps span,.benefit-grid span { color:var(--vermillion); font:italic 13px Georgia,serif; }
.steps h3,.benefit-grid h3 { margin:32px 0 15px; font:400 30px Georgia,serif; }
.steps p,.benefit-grid p { margin:0; color:#62635e; line-height:1.75; }
.steps a { color:var(--ink); text-decoration:underline; text-decoration-color:rgba(171,67,49,.48); text-underline-offset:4px; }
.steps a:hover { color:var(--vermillion); }

.faq-section { display:grid; grid-template-columns:.75fr 1.25fr; gap:9vw; background:var(--paper); }
.faq-section h2 { font-size:clamp(48px,5vw,76px); }
.faq-list { border-top:1px solid #bfb8ab; }
.faq-list details { border-bottom:1px solid #bfb8ab; padding:25px 0; }
.faq-list summary { cursor:pointer; list-style:none; padding-right:35px; position:relative; font:400 22px Georgia,serif; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary:after { content:"+"; position:absolute; right:4px; top:-2px; color:var(--vermillion); font:300 24px Arial,sans-serif; }
.faq-list details[open] summary:after { content:"−"; }
.faq-list details p { margin:18px 50px 4px 0; color:#5e605a; line-height:1.75; }
.membership-rates { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:24px 0 20px; }
.membership-rates>div { padding:20px 16px; border:1px solid #c8c1b5; background:rgba(255,255,255,.26); }
.membership-rates dt { min-height:32px; color:#4b4d48; font-size:10px; font-weight:600; letter-spacing:.11em; line-height:1.5; text-transform:uppercase; }
.membership-rates dd { margin:0; }
.membership-price { padding:9px 0 8px; color:var(--ink); font:400 27px Georgia,serif; }
.membership-price span { color:#6b6d67; font:400 11px Arial,sans-serif; letter-spacing:.05em; text-transform:uppercase; }
.membership-description { color:#6b6d67; font-size:12px; line-height:1.5; }
.faq-list details p.membership-note { margin-top:0; font-size:13px; }

.closing-cta { padding:130px 7vw; text-align:center; background:var(--forest); color:#fff; }
.closing-cta h2 { margin:0 auto 42px; max-width:900px; font:400 clamp(52px,6vw,90px)/.98 Georgia,serif; letter-spacing:-.045em; }
.closing-cta .button { margin:auto; }
.paper-cta { background:var(--paper-light); color:var(--ink); }
.paper-cta>p:not(.eyebrow) { max-width:630px; margin:-20px auto 35px; color:#62635e; font-size:17px; line-height:1.75; }

.benefit-grid { display:grid; grid-template-columns:repeat(4,1fr); padding-bottom:130px; border-top:1px solid #c9c1b5; }
.benefit-grid article { padding:36px 30px 30px; border-right:1px solid #c9c1b5; }
.benefit-grid article:first-child { padding-left:0; }
.benefit-grid article:last-child { border-right:0; padding-right:0; }
.story-split { display:grid; grid-template-columns:1.05fr .95fr; min-height:720px; background:var(--forest); color:#fff; }
.story-image { overflow:hidden; }
.story-image img { width:100%; height:100%; object-fit:cover; filter:saturate(.68) contrast(1.08); }
.story-copy { padding:clamp(80px,9vw,135px) 8vw; display:flex; flex-direction:column; justify-content:center; }
.story-copy h2 { margin:0; font:400 clamp(50px,5.5vw,82px)/.98 Georgia,serif; letter-spacing:-.045em; }
.story-copy>p:not(.eyebrow) { color:rgba(255,255,255,.68); font-size:17px; line-height:1.82; margin:34px 0 22px; }
.story-copy ul { list-style:none; margin:0 0 37px; padding:0; border-top:1px solid rgba(255,255,255,.18); }
.story-copy li { padding:14px 0; border-bottom:1px solid rgba(255,255,255,.18); font-size:13px; letter-spacing:.04em; }
.story-copy li:before { content:"—"; color:var(--gold); margin-right:12px; }
.story-copy .text-link { align-self:flex-start; }
.voices-section { display:grid; grid-template-columns:1.18fr .82fr; background:var(--forest); color:#fff; }
.voices-media { display:flex; align-items:center; padding:7vw 0 7vw 7vw; }
.voices-media .feature-film { box-shadow:0 35px 80px rgba(0,0,0,.28); }
.voices-copy { padding:clamp(80px,9vw,135px) 7vw; display:flex; flex-direction:column; justify-content:center; }
.voices-copy h2 { margin:0; font:400 clamp(50px,5.4vw,80px)/.98 Georgia,serif; letter-spacing:-.045em; }
.voices-copy>p:not(.eyebrow) { color:rgba(255,255,255,.7); font-size:17px; line-height:1.82; margin:32px 0; }
.voices-note { padding-top:19px; border-top:1px solid rgba(255,255,255,.2); color:var(--gold); font-size:9px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }

.discipline-section { background:var(--paper-light); }
.discipline-section article { display:grid; grid-template-columns:70px 1fr 1.05fr; gap:5vw; align-items:center; padding:80px 0; border-bottom:1px solid #cbc4b9; }
.discipline-section article:first-child { padding-top:0; }
.discipline-number { align-self:start; margin:8px 0; color:var(--vermillion); font:italic 15px Georgia,serif; }
.discipline-section h2 { font-size:clamp(46px,4.5vw,70px); }
.discipline-section article div>p:not(.eyebrow) { color:#60615b; font-size:17px; line-height:1.8; }
.discipline-section img { height:350px; object-fit:cover; filter:saturate(.7) contrast(1.04); }
.discipline-section article:nth-child(1) img { object-position:60% center; }
.discipline-section article:nth-child(2) img { object-position:center; }
.discipline-section article:nth-child(3) img { object-position:61% center; }
.discipline-motion { height:350px; }
.philosophy-strip { padding:110px 12vw; background:var(--paper); text-align:center; }
.philosophy-strip p { max-width:1050px; margin:0 auto 25px; font:italic 34px/1.5 Georgia,serif; }
.philosophy-strip span { color:var(--vermillion); font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; }

.lineage { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr); align-items:center; gap:22px; padding-bottom:130px; }
.lineage article { min-height:390px; padding:0; overflow:hidden; border:1px solid #c9c1b5; display:grid; grid-template-rows:210px 1fr; background:rgba(255,255,255,.2); }
.lineage-portrait { position:relative; overflow:hidden; background:#d7d0c4; border-bottom:1px solid #c9c1b5; }
.lineage-portrait:after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(17,24,21,.18),transparent 44%); pointer-events:none; }
.lineage-portrait img { width:100%; height:100%; object-fit:cover; object-position:center top; filter:grayscale(1) sepia(.1) saturate(.7) contrast(1.05); opacity:.92; transition:transform .45s ease; }
.lineage article:hover .lineage-portrait img { transform:scale(1.018); }
.lineage-card-copy { padding:26px 28px 29px; display:flex; flex-direction:column; justify-content:space-between; }
.lineage article span { color:var(--vermillion); font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.lineage h3 { margin:24px 0 0; font:400 29px/1.2 Georgia,serif; }
.lineage h3 small { color:#6c6d67; font-size:15px; font-style:italic; }
.lineage>i { color:var(--vermillion); font-style:normal; }
.lineage-practice { min-height:640px; display:grid; grid-template-columns:1.16fr .84fr; background:var(--forest); color:#fff; }
.lineage-practice-image { position:relative; min-height:640px; margin:0; overflow:hidden; }
.lineage-practice-image:after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,transparent 55%,rgba(11,18,15,.18)),linear-gradient(0deg,rgba(10,16,13,.48),transparent 36%); pointer-events:none; }
.lineage-practice-image img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.68) contrast(1.06); }
.lineage-practice-image figcaption { position:absolute; z-index:1; left:34px; bottom:28px; color:rgba(255,255,255,.78); font:italic 13px Georgia,serif; letter-spacing:.03em; }
.lineage-practice-copy { padding:clamp(80px,8vw,130px) 7vw; display:flex; flex-direction:column; justify-content:center; }
.lineage-practice-copy h2 { margin:0; font:400 clamp(48px,5vw,76px)/.98 Georgia,serif; letter-spacing:-.045em; }
.lineage-practice-copy>p:not(.eyebrow) { margin:34px 0 0; color:rgba(255,255,255,.68); font-size:17px; line-height:1.82; }
.instructors { background:var(--paper); display:grid; grid-template-columns:.72fr 1.28fr; gap:8vw; }
.instructors-heading h2 { margin:0; font:400 clamp(54px,5vw,78px)/1 Georgia,serif; letter-spacing:-.045em; }
.instructor-list { border-top:1px solid #bbb4a8; }
.instructor-list article { display:grid; grid-template-columns:112px 1fr; gap:28px; padding:30px 0; border-bottom:1px solid #bbb4a8; }
.instructor-list img { width:112px; height:112px; border-radius:50%; object-fit:cover; filter:saturate(.68); }
.instructor-list article div>p { margin:0; color:var(--vermillion); font-size:9px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
.instructor-list h3 { margin:7px 0 11px; font:400 27px Georgia,serif; }
.instructor-list article div>span { display:block; color:#5e605a; font-size:14px; line-height:1.7; }

.simple-hero { padding:130px 7vw 125px; background:var(--forest); color:#fff; }
.simple-hero h1 { max-width:1050px; }
.simple-hero>p:not(.eyebrow) { max-width:670px; color:rgba(255,255,255,.68); font-size:18px; line-height:1.8; margin:35px 0 0; }
.calendar-section { background:var(--paper-light); }
.calendar-heading { display:flex; align-items:end; justify-content:space-between; gap:40px; margin-bottom:45px; }
.calendar-heading h2 { font-size:clamp(48px,5vw,76px); }
.class-paths { display:grid; grid-template-columns:1fr 1fr; border:1px solid #c8c1b5; }
.class-paths article { min-height:240px; padding:40px; border-right:1px solid #c8c1b5; border-bottom:1px solid #c8c1b5; }
.class-paths article:nth-child(2n) { border-right:0; }
.class-paths article:nth-child(n+3) { border-bottom:0; }
.class-paths span { color:var(--vermillion); font:italic 13px Georgia,serif; }
.class-paths h3 { margin:28px 0 13px; font:400 31px Georgia,serif; }
.class-paths p { max-width:500px; margin:0; color:#60615b; line-height:1.75; }
.calendar-callout { display:flex; align-items:center; justify-content:space-between; gap:40px; padding:28px 32px; background:var(--forest); color:#fff; }
.calendar-callout p { margin:0; color:rgba(255,255,255,.65); font-size:13px; line-height:1.6; }
.calendar-callout a { flex:0 0 auto; font-size:10px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }
.visit-details { display:grid; grid-template-columns:repeat(3,1fr); padding-bottom:130px; }
.visit-details article { padding:50px 42px; border:1px solid #c8c1b5; border-right:0; }
.visit-details article:last-child { border-right:1px solid #c8c1b5; }
.visit-details h3 { margin:0 0 22px; font:400 30px Georgia,serif; }
.visit-details article>p:not(.eyebrow) { min-height:120px; color:#60615b; line-height:1.75; }
.visit-details a { font-size:10px; font-weight:600; letter-spacing:.13em; text-transform:uppercase; }

.media-hero { padding-bottom:150px; }
.events-hero { background-color:var(--forest); background-position:center; background-size:cover; }
.featured-event { display:grid; grid-template-columns:.38fr 1.15fr .67fr; gap:6vw; align-items:start; background:var(--paper-light); }
.event-date { padding-top:6px; color:var(--vermillion); }
.event-date strong { display:block; font:400 clamp(62px,6vw,94px)/.88 Georgia,serif; letter-spacing:-.06em; }
.event-date span { display:block; margin-top:18px; font-size:11px; font-weight:600; line-height:1.6; letter-spacing:.16em; text-transform:uppercase; }
.event-main h2 { margin:0; font:400 clamp(48px,5.3vw,80px)/.98 Georgia,serif; letter-spacing:-.045em; }
.event-main .event-byline { color:var(--vermillion); font:italic 18px Georgia,serif; }
.event-main>p:not(.eyebrow) { max-width:720px; color:#60615b; line-height:1.8; }
.event-main .button { margin-top:25px; }
.event-details { border-top:1px solid #bfb8ab; }
.event-details div { padding:24px 0; border-bottom:1px solid #bfb8ab; }
.event-details span { color:var(--vermillion); font-size:9px; font-weight:600; letter-spacing:.15em; text-transform:uppercase; }
.event-details p { margin:10px 0 0; color:#4f514c; line-height:1.7; }
.event-note { padding:90px 7vw; display:flex; align-items:center; justify-content:space-between; gap:50px; background:var(--forest); color:#fff; }
.event-note h2 { margin:0; font:400 clamp(46px,5vw,72px)/1 Georgia,serif; letter-spacing:-.045em; }
.video-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px 35px; }
.video-grid .featured-video { grid-column:1/-1; }
.video-grid article>p { margin:22px 0 8px; color:var(--vermillion); font:italic 13px Georgia,serif; }
.video-grid h2 { font-size:30px; letter-spacing:-.02em; }
.video-grid .featured-video h2 { font-size:42px; }
.curated-videos article>span { display:block; max-width:720px; color:#62635e; line-height:1.75; }
.curated-videos .featured-video .feature-film { box-shadow:0 32px 70px rgba(21,28,24,.15); }
.archive-section { display:grid; grid-template-columns:.65fr 1.35fr; gap:7vw; background:var(--paper); }
.archive-heading h2 { margin:0; font:400 clamp(46px,4.8vw,72px)/1 Georgia,serif; letter-spacing:-.04em; }
.archive-heading>p:not(.eyebrow) { color:#60615b; line-height:1.8; }
.archive-video-grid { display:grid; grid-template-columns:1fr 1fr; gap:38px 25px; }
.archive-video-grid article:first-child { grid-column:1/-1; }
.archive-video-grid h3 { margin:18px 0 0; font:400 22px/1.25 Georgia,serif; }
.photo-story { display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:300px; gap:6px; padding:6px; background:var(--forest); }
.photo-story figure { margin:0; overflow:hidden; position:relative; }
.photo-story .photo-wide { grid-column:span 2; grid-row:span 2; }
.photo-story figure:last-child { grid-column:span 2; }
.photo-story img { width:100%; height:100%; object-fit:cover; filter:saturate(.66) contrast(1.06); transition:transform .5s ease; }
.photo-story .focus-right img { object-position:62% center; }
.photo-story .focus-jo img { object-position:44% center; }
.photo-story figure:after { content:""; position:absolute; inset:auto 0 0; height:44%; background:linear-gradient(0deg,rgba(13,19,16,.72),transparent); pointer-events:none; }
.photo-story figcaption { position:absolute; z-index:1; left:22px; bottom:19px; color:#fff; font:italic 15px Georgia,serif; letter-spacing:.02em; }
.photo-story figure:hover img { transform:scale(1.025); }

/* WordPress-managed pages and future journal posts */
.wp-content { width:min(920px,86vw); min-height:55vh; margin:0 auto; padding-left:0; padding-right:0; }
.wp-content>h1 { margin:0 0 45px; font:400 clamp(52px,6vw,86px)/.98 Georgia,serif; letter-spacing:-.045em; }
.wp-entry-content { color:#4f514c; font-size:17px; line-height:1.82; }
.wp-entry-content h2,.wp-post-card h2 { color:var(--ink); font:400 38px/1.12 Georgia,serif; letter-spacing:-.025em; }
.wp-entry-content h3 { color:var(--ink); font:400 27px/1.2 Georgia,serif; }
.wp-entry-content a { color:var(--vermillion); text-decoration:underline; text-underline-offset:3px; }
.wp-entry-content img { height:auto; }
.wp-post-card { padding:42px 0; border-top:1px solid #c9c1b5; }
.wp-post-card h2 { margin:5px 0 18px; }
.wp-post-meta { color:var(--vermillion); font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.nav-links { display:flex; justify-content:space-between; gap:20px; padding-top:35px; border-top:1px solid #c9c1b5; }

@media (max-width:1150px) {
  .desktop-nav { gap:20px; }
  .film-section,.instructors,.voices-section { grid-template-columns:1fr; }
  .film-copy { max-width:780px; }
  .voices-media { padding:8vw 7vw 0; }
  .voices-copy { padding-top:75px; }
  .benefit-grid { grid-template-columns:1fr 1fr; }
  .benefit-grid article:nth-child(2) { border-right:0; }
  .benefit-grid article:nth-child(-n+2) { border-bottom:1px solid #c9c1b5; }
}

@media (max-width:820px) {
  .desktop-nav { display:none; }
  .site-header { grid-template-columns:1fr auto auto; gap:12px; }
  .mobile-menu { display:block; position:relative; order:2; }
  .mobile-menu summary { list-style:none; cursor:pointer; border:1px solid rgba(255,255,255,.45); padding:10px 12px; font-size:9px; letter-spacing:.15em; text-transform:uppercase; }
  .mobile-menu summary::-webkit-details-marker { display:none; }
  .mobile-menu nav { position:absolute; z-index:30; right:0; top:46px; width:min(280px,85vw); padding:14px; background:#0d1310; border:1px solid rgba(255,255,255,.2); box-shadow:0 16px 45px rgba(0,0,0,.28); display:flex; flex-direction:column; }
  .mobile-menu nav a { padding:14px 10px; border-bottom:1px solid rgba(255,255,255,.12); font-size:11px; letter-spacing:.12em; text-transform:uppercase; }
  .nav-cta { order:3; }
  .page-hero { grid-template-columns:1fr; min-height:0; }
  .page-hero-copy { min-height:620px; }
  .page-hero-image { min-height:520px; }
  .inner-section,.faq-section,.story-split { grid-template-columns:1fr; }
  .steps { grid-template-columns:1fr; }
  .steps article,.steps article:not(:first-child) { padding:32px 0; border-right:0; border-bottom:1px solid #c9c1b5; }
  .membership-rates { grid-template-columns:1fr; }
  .benefit-grid { padding-bottom:90px; }
  .story-image { min-height:520px; }
  .discipline-section article { grid-template-columns:45px 1fr; }
  .discipline-section article img { grid-column:1/-1; }
  .lineage { grid-template-columns:1fr; }
  .lineage article { min-height:170px; grid-template-columns:140px 1fr; grid-template-rows:1fr; }
  .lineage-portrait { min-height:170px; border-right:1px solid #c9c1b5; border-bottom:0; }
  .lineage-card-copy { padding:28px; }
  .lineage>i { transform:rotate(90deg); justify-self:center; }
  .lineage-practice { grid-template-columns:1fr; }
  .lineage-practice-image { min-height:520px; }
  .visit-details { grid-template-columns:1fr; }
  .visit-details article { border-right:1px solid #c8c1b5; border-bottom:0; }
  .visit-details article:last-child { border-bottom:1px solid #c8c1b5; }
  .video-grid { grid-template-columns:1fr; }
  .video-grid .featured-video { grid-column:auto; }
  .archive-section { grid-template-columns:1fr; }
  .featured-event { grid-template-columns:1fr; }
  .event-date { display:flex; align-items:end; gap:22px; }
  .event-date span { margin:0 0 4px; }
  .event-note { align-items:flex-start; flex-direction:column; }
  .photo-story { grid-template-columns:1fr 1fr; grid-auto-rows:260px; }
  .photo-story .photo-wide { grid-column:1/-1; }
  footer { grid-template-columns:1fr; }
  .footer-nav { flex-wrap:wrap; }
  .footer-meta { text-align:center; }
}

@media (max-width:560px) {
  .site-header { grid-template-columns:1fr auto; }
  .nav-cta { display:none; }
  .page-hero-copy { min-height:570px; padding:80px 24px; }
  .page-hero-copy h1,.simple-hero h1 { font-size:52px; }
  .page-hero-image { min-height:420px; }
  .inner-section { gap:40px; }
  .content-lead h2,.faq-section h2 { font-size:46px; }
  .benefit-grid { grid-template-columns:1fr; }
  .benefit-grid article,.benefit-grid article:first-child,.benefit-grid article:last-child { padding:30px 0; border-right:0; border-bottom:1px solid #c9c1b5; }
  .story-copy { padding:80px 24px; }
  .discipline-section article { grid-template-columns:1fr; gap:25px; }
  .lineage article { min-height:155px; grid-template-columns:118px 1fr; }
  .lineage-portrait { min-height:155px; }
  .lineage-card-copy { padding:23px 21px; }
  .lineage h3 { font-size:25px; }
  .lineage-practice-image { min-height:420px; }
  .lineage-practice-image figcaption { left:24px; bottom:22px; }
  .lineage-practice-copy { padding:80px 24px; }
  .discipline-number { margin-bottom:0; }
  .discipline-section article img { grid-column:auto; height:280px; }
  .philosophy-strip { padding:80px 24px; }
  .philosophy-strip p { font-size:27px; }
  .instructor-list article { grid-template-columns:80px 1fr; gap:20px; }
  .instructor-list img { width:80px; height:80px; }
  .simple-hero { padding:95px 24px; }
  .simple-hero .hero-actions { align-items:flex-start; flex-direction:column; }
  .calendar-heading { align-items:flex-start; flex-direction:column; }
  .class-paths { grid-template-columns:1fr; }
  .class-paths article,.class-paths article:nth-child(2n),.class-paths article:nth-child(n+3) { min-height:0; border-right:0; border-bottom:1px solid #c8c1b5; }
  .class-paths article:last-child { border-bottom:0; }
  .calendar-callout { align-items:flex-start; flex-direction:column; }
  .photo-story { grid-template-columns:1fr; grid-auto-rows:280px; }
  .photo-story .photo-wide,.photo-story figure:last-child { grid-column:auto; grid-row:auto; }
  .voices-media { padding:55px 24px 0; }
  .voices-copy { padding:65px 24px 80px; }
  .archive-video-grid { grid-template-columns:1fr; }
  .archive-video-grid article:first-child { grid-column:auto; }
}
