:root{--ink:#263025;--olive:#59643f;--olive-dark:#37402c;--clay:#b97547;--cream:#f5f0e6;--paper:#fbf8f2;--line:rgba(38,48,37,.18)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"DM Sans",sans-serif;font-size:16px;line-height:1.65}
a{color:inherit}
.site-header{height:92px;padding:0 clamp(22px,5vw,76px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(251,248,242,.92);backdrop-filter:blur(12px);z-index:10}
.brand{text-decoration:none;display:flex;flex-direction:column}
.brand-name{font-family:"Fraunces",serif;font-size:1.35rem}
.brand-line{font-size:.62rem;letter-spacing:.16em;color:var(--olive);font-weight:600}
.brand-line i,footer i{display:inline-block;width:3px;height:3px;background:var(--clay);border-radius:50%;vertical-align:middle;margin:0 5px}
nav{display:flex;gap:30px}
nav a{text-decoration:none;font-size:.9rem}
nav a:hover{color:var(--clay)}
.menu-button{display:none}
.quick-contact{min-height:44px;padding:7px clamp(22px,5vw,76px);display:flex;align-items:center;justify-content:flex-end;gap:20px;background:var(--olive-dark);color:#fff;font-size:.82rem;letter-spacing:.04em}
.quick-contact span{margin-right:auto;text-transform:uppercase;letter-spacing:.13em;color:#d9deca;font-size:.7rem}
.quick-contact a{font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.55)}
.quick-contact .social-link{width:28px;height:28px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.38);border-radius:50%}
.quick-contact .social-link:hover{background:rgba(255,255,255,.12)}
.social-link svg{width:15px;height:15px;fill:currentColor}
.hero{min-height:calc(100svh - 92px);padding:clamp(55px,8vw,120px) clamp(22px,6vw,92px);display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(35px,7vw,110px);align-items:center;overflow:hidden}
.eyebrow,.section-number{text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:.72rem;color:var(--olive);margin:0 0 24px}
.hero h1,.manifesto h2,.offers h2,.contact h2{font-family:"Fraunces",serif;font-weight:400;line-height:1.05;letter-spacing:-.035em;margin:0}
.hero h1{font-size:clamp(3rem,6vw,6.25rem)}
em{font-weight:400;color:var(--clay)}
.intro{font-size:clamp(1.05rem,1.4vw,1.25rem);max-width:600px;margin:32px 0;color:#4e584b}
.hero-actions{display:flex;align-items:center;gap:26px;flex-wrap:wrap}
.button{display:inline-block;background:var(--olive);color:white;text-decoration:none;padding:15px 22px;border-radius:2px;font-size:.9rem;font-weight:600}
.button:hover{background:var(--olive-dark)}
.text-link{text-decoration:none;border-bottom:1px solid var(--ink);font-size:.9rem}
.hero-image{margin:0;position:relative}
.hero-image img{display:block;width:100%;height:min(68vh,720px);object-fit:cover;object-position:center 55%;border-radius:48% 48% 3px 3px}
.hero-image figcaption{position:absolute;right:-10px;bottom:38px;background:var(--paper);padding:10px 16px;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.manifesto{padding:clamp(80px,11vw,150px) clamp(22px,8vw,130px);background:var(--cream)}
.manifesto-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:clamp(40px,9vw,140px)}
.manifesto h2,.offers h2,.contact h2{font-size:clamp(2.4rem,4.5vw,5rem)}
.manifesto-grid>div{font-size:1.05rem}
.manifesto-grid p:first-child{margin-top:0}
.note{font-size:.82rem;padding-top:18px;border-top:1px solid var(--line);color:#657060}
.three-steps{display:grid;grid-template-columns:repeat(3,1fr);padding:0 clamp(22px,6vw,92px);background:var(--cream)}
.three-steps article{padding:55px clamp(25px,4vw,56px);border-left:1px solid var(--line)}
.three-steps article:last-child{border-right:1px solid var(--line)}
.three-steps span,.offer-index{font-size:.72rem;letter-spacing:.12em;color:var(--clay)}
.three-steps h3,.offer-list h3{font-family:"Fraunces",serif;font-size:2rem;font-weight:400;margin:12px 0}
.three-steps p{color:#5b6558}
.offers{padding:clamp(75px,9vw,120px) clamp(22px,7vw,110px)}
.offers-heading{position:static;display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:36px}
.offers-heading p:last-child{color:#657060}
.offer-list{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.offer-list article{border:1px solid var(--line);background:var(--cream);min-width:0}
.offer-card>a{display:block;height:100%;text-decoration:none}
.offer-card img{display:block;width:100%;height:220px;object-fit:cover}
.offer-card>a>div:not(.retreat-card-images){padding:24px}
.offer-list h3{margin:6px 0 8px;line-height:1.08}
.offer-list p{margin:0 0 12px;color:#576153}
.retreat-card-images{height:220px;display:grid;grid-template-columns:1fr 1fr;background:#dfe5dd}
.retreat-card-images img{height:220px;object-position:center}
.retreat-card-images img:first-child{object-fit:cover;object-position:center}
.retreat-card-images img:last-child{object-position:center 30%}
.retreat-card{grid-column:span 2}
.offer-list .price{font-size:.82rem;text-transform:uppercase;letter-spacing:.08em;color:var(--olive);font-weight:600}
.offer-link{display:inline-block;margin-top:5px;color:var(--olive-dark);font-weight:600;text-underline-offset:5px}
.story{background:var(--olive-dark);color:var(--cream);padding:clamp(80px,10vw,140px) clamp(22px,8vw,130px);display:grid;grid-template-columns:1fr .75fr;gap:clamp(55px,10vw,160px);align-items:center}
.story .section-number{color:#c9d0b7}
.story h2{font-family:"Fraunces",serif;font-size:clamp(2.4rem,4.5vw,4.7rem);font-weight:400;line-height:1.06}
.story p{color:#e2e4d8;max-width:700px}
.story blockquote{font-family:"Fraunces",serif;font-size:clamp(2.2rem,4.3vw,4.4rem);line-height:1.12;color:#d69a69;margin:0}
.contact{text-align:center;padding:clamp(90px,12vw,170px) 22px}
.contact p{max-width:560px;margin:28px auto}
.contact .button{margin-top:6px}
.contact-actions{max-width:820px;margin:0 auto;display:flex;flex-wrap:wrap;justify-content:center;gap:10px}
.contact-actions .button{margin:0}
.direct-contact a{text-underline-offset:4px}
.contact .location{font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;color:var(--olive);margin-top:35px}
footer{padding:28px clamp(22px,5vw,76px);border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:.72rem;letter-spacing:.1em;color:#626b5f}
.reveal{animation:rise .9s ease both}
.hero-image{animation-delay:.15s}
@keyframes rise{from{opacity:0;transform:translateY(20px)}
to{opacity:1;transform:none}
}
.sound-popup{width:min(820px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:0;border:0;background:#fbf8f2;color:#263025;box-shadow:0 20px 80px rgba(20,29,19,.3);overflow:auto}
.sound-popup::backdrop{background:rgba(20,29,19,.66)}
.sound-popup-layout{display:grid;grid-template-columns:42% 58%}
.sound-popup-layout>img{width:100%;height:100%;min-height:480px;object-fit:cover}
.sound-popup-copy{position:relative;padding:48px 42px 38px;font-family:"DM Sans",sans-serif;font-size:1rem;line-height:1.55}
.sound-popup-close{position:absolute;right:18px;top:14px;border:0;background:transparent;color:#263025;font-size:2rem;line-height:1;cursor:pointer;padding:4px 10px}
.sound-popup-kicker,.sound-popup-signature{font-size:.72rem;letter-spacing:.15em;color:#59643f;font-weight:600}
.sound-popup h2{font-family:"Fraunces",serif;font-size:clamp(2.1rem,4vw,3.3rem);line-height:1.1;font-weight:400;margin:20px 0 24px}
.sound-popup p{margin:0 0 14px}.sound-popup .sound-popup-event{font-weight:600;font-size:1.18rem;color:#37402c}
.sound-popup-cta{display:inline-block;background:#59643f;color:#fff;text-decoration:none;font-weight:600;padding:14px 20px;margin:12px 0 24px}
.sound-popup .sound-popup-note{font-size:.88rem;color:#596255;margin-bottom:24px}
@media(max-width:650px){.sound-popup-layout{display:block}.sound-popup-layout>img{height:180px;min-height:0;display:block}.sound-popup-copy{padding:30px 26px}.sound-popup h2{margin:12px 0 16px}.sound-popup-close{top:10px;right:10px;background:#fbf8f2}}
@media(max-width:800px){.site-header{height:74px}
.quick-contact{justify-content:flex-start;overflow-x:auto;white-space:nowrap;gap:18px}
.quick-contact span{display:none}
.menu-button{display:flex;background:none;border:0;width:42px;height:42px;align-items:center;justify-content:center;flex-direction:column;gap:7px}
.menu-button span{width:22px;height:1px;background:var(--ink)}
nav{position:absolute;top:74px;left:0;right:0;background:var(--paper);padding:24px;display:none;flex-direction:column;border-bottom:1px solid var(--line)}
nav.open{display:flex}
.hero{grid-template-columns:1fr;padding-top:50px}
.hero-image{max-width:570px}
.hero-image img{height:58vh}
.manifesto-grid,.story{grid-template-columns:1fr}
.three-steps{grid-template-columns:1fr}
.three-steps article,.three-steps article:last-child{border-right:0;border-left:0;border-top:1px solid var(--line)}
.offers-heading{display:block;margin-bottom:28px}
.offer-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow:visible;padding-bottom:0}
.offer-list article,.offer-list article:last-child{display:block;min-height:0;padding:0;border:1px solid var(--line)}
.offer-card img,.retreat-card-images,.retreat-card-images img{height:150px}
.offer-card>a>div:not(.retreat-card-images){padding:18px}
.offer-list h3{font-size:1.35rem}
.offer-list p{display:none}
.retreat-card{grid-column:1/-1}
.story{gap:70px}
footer{flex-direction:column;gap:10px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}
.reveal{animation:none}
}

/* Coastal photography and grounded content update */
.hero-image img{object-position:center 48%}
.coastal-location{position:relative;min-height:580px;display:grid;align-items:end;overflow:hidden}
.coastal-location>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 32%}
.coastal-location::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(25,31,24,.84) 0%,rgba(25,31,24,.5) 44%,rgba(25,31,24,.05) 78%)}
.coastal-location-copy{position:relative;z-index:1;max-width:760px;padding:clamp(70px,10vw,145px) clamp(22px,8vw,130px);color:#fff}
.coastal-location-copy .section-number{color:#f2cfad}
.coastal-location-copy h2,.life-now h2{font-family:"Fraunces",serif;font-size:clamp(2.6rem,5vw,5.4rem);font-weight:400;line-height:1.04;letter-spacing:-.035em;margin:0}
.coastal-location-copy p:last-child{max-width:560px;font-size:1.08rem}
.story{grid-template-columns:1fr .9fr;gap:clamp(55px,8vw,120px)}
.story-visuals{display:grid;grid-template-columns:1.08fr .72fr;gap:16px;align-items:start}
.story-visuals img{display:block;width:100%;object-fit:cover}
.story-portrait{height:470px;object-position:center 38%}
.story-action{height:310px;margin-top:70px}
.story .story-visuals blockquote{grid-column:1/-1;font-size:clamp(2rem,3.2vw,3.5rem);margin:18px 0 0}
.life-now{display:grid;grid-template-columns:.9fr 1.1fr;align-items:center;background:var(--cream)}
.life-now>img{width:100%;height:clamp(520px,62vw,820px);object-fit:cover;object-position:center 40%}
.life-now>div{padding:clamp(60px,9vw,130px)}
.life-now h2{color:var(--ink)}
.life-now p:last-child{max-width:590px;font-size:1.08rem;color:#586153}
@media(max-width:800px){
  .hero{min-height:auto;padding-bottom:70px}
  .hero-image img{height:44vh;min-height:380px}
  .coastal-location{min-height:520px}
  .coastal-location::after{background:linear-gradient(0deg,rgba(25,31,24,.9) 0%,rgba(25,31,24,.38) 62%,rgba(25,31,24,.04) 100%)}
  .coastal-location-copy{padding-top:230px}
  .three-steps{display:flex;overflow-x:auto;gap:14px;padding:28px 22px 38px;scroll-snap-type:x mandatory;scrollbar-width:none}
  .three-steps::-webkit-scrollbar{display:none}
  .three-steps article,.three-steps article:last-child{flex:0 0 82vw;max-width:360px;min-height:260px;border:1px solid var(--line);background:var(--paper);scroll-snap-align:start}
  .offers{display:block;padding-top:75px;padding-bottom:75px}
  .offers-heading{margin-bottom:38px}
  .offer-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;overflow:visible;padding-bottom:0}
  .offer-list article,.offer-list article:last-child{display:block;min-height:0;padding:0;border:1px solid var(--line);background:var(--cream)}
  .offer-index{display:block;margin-bottom:14px}
  .story,.life-now{grid-template-columns:1fr}
  .story{padding-top:75px;padding-bottom:75px}
  .story-visuals{grid-template-columns:1fr}
  .story-portrait{height:390px}
  .story-action{display:none}
  .life-now>img{height:390px}
  .contact{padding-top:80px;padding-bottom:90px}
}

.qualifications{padding:40px 24px;text-align:center;border-top:1px solid #cbd0c4;border-bottom:1px solid #cbd0c4}.qualifications h2{margin:0 0 28px;font-size:clamp(1.5rem,3vw,2rem)}.qualification-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:28px 36px;max-width:800px;margin:0 auto}.qualification-badges figure{margin:0;flex:0 1 180px}.qualification-badges img{display:block;width:160px;height:160px;object-fit:contain;margin:0 auto 14px}.qualification-badges figcaption{font-size:1rem;line-height:1.5}@media(max-width:480px){.qualification-badges{gap:24px 16px}.qualification-badges figure{flex-basis:140px}.qualification-badges img{width:140px;height:140px}}

.training-card{display:flex;flex-direction:column;justify-content:center;gap:12px;box-sizing:border-box;width:160px;height:160px;margin:0 auto 14px;padding:14px;border:1px solid #a7b09a;border-radius:12px;background:#f4f2ea;color:#4e5b42;text-decoration:none}.training-card span{font-family:Georgia,serif;font-size:23px;line-height:1.15;letter-spacing:1px}.training-card small{font-size:12px;line-height:1.4}.training-card:hover{background:#e8ecdf}.training-card:focus-visible{outline:3px solid #4e5b42;outline-offset:4px}@media(max-width:480px){.training-card{width:140px;height:140px}.training-card span{font-size:21px}}

/* Keep the announcement visible without blocking page links. */
.sound-popup[open]{position:fixed;inset:auto 16px 16px auto;margin:0;z-index:30;width:min(720px,calc(100% - 32px));max-height:calc(100dvh - 32px)}
.sound-popup-close{min-width:44px;min-height:44px;z-index:1}

.practice-marquee{position:relative;overflow:hidden;padding:18px 0 42px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--cream)}
.practice-marquee-track{display:flex;width:max-content;animation:practice-scroll 28s linear infinite;font-family:"Fraunces",serif;font-size:1.55rem}
.practice-marquee-group{display:flex;flex-shrink:0;gap:48px;padding-right:48px;white-space:nowrap}
.practice-marquee-group span::after{content:"✦";margin-left:48px;color:var(--clay)}
.practice-marquee-toggle{position:absolute;right:18px;bottom:8px;border:1px solid var(--line);background:var(--paper);color:var(--ink);padding:2px 10px;font:inherit;font-size:.875rem}
.practice-marquee.is-paused .practice-marquee-track{animation-play-state:paused}
@keyframes practice-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.practice-marquee-track{animation:none;width:100%}.practice-marquee-group{flex-wrap:wrap;gap:16px;padding:0 20px;white-space:normal}.practice-marquee-group span::after{margin-left:16px}.practice-marquee-group:nth-child(2),.practice-marquee-toggle{display:none}.practice-marquee{padding-bottom:18px}}
