/*
Theme Name: RockTrailSleep
Theme URI: https://rocktrailsleep.com/
Author: RockTrailSleep
Description: Block theme for RockTrailSleep. The stylesheet is the site's own design system; every page section is an editable block, the header and footer are template parts, and the enquiry form is WPForms.
Version: 2.1.0
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: rocktrailsleep
*/

/* =====================================================================
   1. The design system, verbatim from the approved static build.
   ===================================================================== */
:root {
  --ink:#050505; --ink-soft:#111111; --paper:#f5f5f7; --paper-bright:#ffffff;
  --line:rgba(5,5,5,.16); --line-light:rgba(255,255,255,.25);
  --ember:#ffffff; --ember-dark:#111111; --sky:#ffffff;
  --serif:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue",Arial,sans-serif;
  --sans:-apple-system,BlinkMacSystemFont,"SF Pro Text","Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:1rem;line-height:1.5;overflow-x:hidden} body::selection{background:var(--ember);color:var(--paper-bright)} a{color:inherit;text-decoration:none} button,input,select,textarea{font:inherit} button{color:inherit} img{display:block;max-width:100%}
.skip-link{position:fixed;z-index:1000;left:1rem;top:-5rem;background:var(--paper-bright);color:var(--ink);padding:.8rem 1rem;transition:top .2s}.skip-link:focus{top:1rem}
.site-header{position:absolute;z-index:30;top:0;left:0;width:100%;min-height:5.7rem;padding:0 clamp(1.25rem,4vw,4.5rem);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--paper-bright);border-bottom:1px solid var(--line-light)}
.site-header.solid{position:relative;color:var(--ink);background:var(--paper-bright);border-color:var(--line)}
.brand{display:inline-flex;align-items:center;gap:.75rem;width:max-content;font-weight:700;letter-spacing:-.03em}.brand-mark{display:flex;align-items:flex-end;gap:3px;width:20px;height:20px}.brand-mark i{display:block;width:4px;background:currentColor;transform:skew(-18deg)}.brand-mark i:nth-child(1){height:10px}.brand-mark i:nth-child(2){height:18px}.brand-mark i:nth-child(3){height:13px}
.nav-links{display:flex;gap:2rem;font-size:.84rem}.nav-links a,.footer-links a{position:relative}.nav-links a::after,.footer-links a::after{content:"";position:absolute;left:0;right:100%;bottom:-.35rem;height:1px;background:currentColor;transition:right .25s}.nav-links a:hover::after,.nav-links a:focus-visible::after,.nav-links a[aria-current="page"]::after,.footer-links a:hover::after,.footer-links a:focus-visible::after{right:0}.header-cta{justify-self:end;font-size:.84rem;font-weight:700}.header-cta span{margin-left:.5rem}.menu-toggle{display:none;border:0;background:transparent;color:inherit;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}
.hero{position:relative;min-height:100svh;height:max(48rem,100svh);color:var(--paper-bright);overflow:hidden}.hero-slides,.hero-slide,.hero-slide img{position:absolute;inset:0;width:100%;height:100%}.hero-slide{margin:0;opacity:0;visibility:hidden;transition:opacity 1s ease,visibility 1s}.hero-slide.is-active{opacity:1;visibility:visible}.hero-slide img{object-fit:cover;object-position:center;transform:scale(1.04);transition:transform 7.5s ease}.hero-slide.is-active img{transform:scale(1)}.hero-slide:nth-child(2) img{object-position:center 38%}.hero-slide:nth-child(3) img{object-position:center 56%}.hero-wash{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,7,7,.76) 0%,rgba(5,7,7,.37) 48%,rgba(5,7,7,.18) 100%),linear-gradient(0deg,rgba(5,7,7,.68),transparent 48%)}.hero-grid{position:absolute;inset:0;opacity:.18;background-image:linear-gradient(90deg,transparent calc(25% - .5px),rgba(255,255,255,.5) 25%,transparent calc(25% + .5px)),linear-gradient(90deg,transparent calc(75% - .5px),rgba(255,255,255,.5) 75%,transparent calc(75% + .5px))}.hero-location{position:absolute;top:7.6rem;left:clamp(1.25rem,4vw,4.5rem);font-size:.7rem;text-transform:uppercase;letter-spacing:.22em}.hero-location span{color:var(--ember);margin:0 .5rem}.hero-copy{position:absolute;left:clamp(1.25rem,7.5vw,8.5rem);bottom:clamp(8rem,16vh,11rem);max-width:49rem}.eyebrow{margin:0 0 1.25rem;font-size:.72rem;line-height:1.2;font-weight:700;text-transform:uppercase;letter-spacing:.22em;color:var(--ember-dark)}.eyebrow.light{color:var(--sky)}.hero h1{margin:0;font-family:var(--serif);font-size:clamp(4.6rem,10vw,9.3rem);font-weight:400;line-height:.78;letter-spacing:-.065em}.hero h1 span{display:block}.hero h1 span:nth-child(2){margin-left:.58em;font-style:italic;color:var(--sky)}.hero h1 span:nth-child(3){margin-left:.12em}.hero-intro{max-width:38rem;margin:2.2rem 0 0 7rem;font-size:clamp(1rem,1.3vw,1.18rem);line-height:1.6;color:rgba(255,253,247,.84)}.hero-actions{display:flex;align-items:center;gap:1.7rem;margin:1.8rem 0 0 7rem}
.button{min-height:3.4rem;padding:.9rem 1.2rem;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:space-between;gap:1.5rem;font-size:.84rem;line-height:1;font-weight:700;cursor:pointer;transition:background .2s,color .2s,transform .2s,border-color .2s}.button:hover{transform:translateY(-2px)}.button-primary{background:var(--ember);color:#160b06}.button-primary:hover,.button-primary:focus-visible{background:#ff9563}.button-ghost{color:var(--paper-bright);border-color:rgba(255,255,255,.55);background:rgba(0,0,0,.12)}.button-ghost:hover,.button-ghost:focus-visible{background:var(--paper-bright);color:var(--ink)}.button-dark{color:var(--paper-bright);background:var(--ink)}.button-dark:hover,.button-dark:focus-visible{background:var(--ember-dark)}.text-link{font-size:.82rem;font-weight:700;border-bottom:1px solid rgba(255,255,255,.48);padding-bottom:.25rem}.text-link.dark{border-color:var(--ink)}.text-link span{margin-left:.35rem}
.departure-card{position:absolute;z-index:2;right:clamp(1.25rem,4vw,4.5rem);bottom:3.25rem;width:min(30rem,35vw);padding:1.25rem 1.4rem 1.35rem;background:rgba(12,16,15,.58);backdrop-filter:blur(16px);border:1px solid var(--line-light)}.departure-top{display:flex;justify-content:space-between;font-size:.68rem;text-transform:uppercase;letter-spacing:.16em;color:rgba(255,255,255,.67)}.availability{color:var(--sky)}.availability i{display:inline-block;width:.45rem;height:.45rem;margin-right:.35rem;background:var(--sky);border-radius:50%;box-shadow:0 0 0 4px rgba(168,216,232,.12)}.departure-date{margin:1.2rem 0 1.05rem;font-family:var(--serif);font-size:clamp(2.2rem,3.3vw,3.7rem);line-height:.9;letter-spacing:-.055em}.departure-date span{display:block;margin-top:.45rem;font-family:var(--sans);font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ember)}.departure-meta{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-light);padding-top:.9rem}.departure-meta div{display:flex;flex-direction:column;gap:.08rem;padding-left:.85rem;border-left:1px solid var(--line-light)}.departure-meta div:first-child{padding-left:0;border-left:0}.departure-meta strong{font-size:1.05rem}.departure-meta span{font-size:.67rem;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.08em}
.hero-slider-ui{position:absolute;z-index:3;left:clamp(1.25rem,4vw,4.5rem);bottom:2.4rem;display:grid;grid-template-columns:auto auto;gap:.75rem 1rem;align-items:center}.hero-slider-buttons{display:flex;gap:.35rem}.hero-slider-buttons button{width:2.2rem;height:2.2rem;border:1px solid var(--line-light);background:rgba(12,16,15,.34);color:white;cursor:pointer}.hero-dots{display:flex;gap:.42rem}.hero-dots button{width:1.9rem;height:2px;padding:0;border:0;background:rgba(255,255,255,.35);cursor:pointer}.hero-dots button.is-active{background:var(--ember)}.hero-slider-ui p{grid-column:1/-1;margin:0;font-size:.62rem;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.67)}
.section-index{font-size:.67rem;text-transform:uppercase;letter-spacing:.16em;color:#676960}.section-index span{color:var(--ember-dark);margin-right:.8rem;font-weight:700}.section-heading{display:grid;grid-template-columns:.7fr 1.5fr 1fr;align-items:start;column-gap:clamp(2rem,5vw,6rem);margin-bottom:4rem}.section-heading h2,.process-heading h2,.terrain-copy h2,.contact-heading h2,.page-title,.detail-title,.about-heading h1{margin:0;font-family:var(--serif);font-weight:400;font-size:clamp(2.9rem,5.7vw,6.4rem);line-height:.91;letter-spacing:-.055em}.section-heading h2 em,.process-heading h2 em,.terrain-copy h2 em,.contact-heading h2 em,.about-heading h1 em,h2 em{color:var(--ember-dark);font-weight:400}.section-heading p{margin:2.15rem 0 0;color:#555852;line-height:1.7}
.experiences-section{padding:clamp(6rem,11vw,10rem) clamp(1.25rem,7vw,7rem);background:var(--paper)}.experience-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.experience-card{display:block;background:var(--paper-bright);min-width:0}.card-image-wrap{position:relative;aspect-ratio:1.82/1;overflow:hidden;background:#171712}.card-image-wrap img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}.experience-card:hover .card-image-wrap img{transform:scale(1.025)}.card-number{position:absolute;top:1rem;left:1rem;width:2.25rem;height:2.25rem;border:1px solid rgba(255,255,255,.35);display:grid;place-items:center;color:var(--paper-bright);font-size:.65rem;letter-spacing:.08em;background:rgba(0,0,0,.22);backdrop-filter:blur(8px)}.card-copy{padding:2rem}.card-meta{display:flex;gap:.7rem;flex-wrap:wrap;font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;color:#6d706a}.card-meta span+span::before{content:"·";margin-right:.7rem;color:var(--ember-dark)}.card-copy h3,.retreat-card-copy h3{margin:1.05rem 0 .8rem;font-family:var(--serif);font-size:clamp(2rem,3vw,3rem);line-height:1;font-weight:400;letter-spacing:-.04em}.card-copy p,.retreat-card-copy p{max-width:34rem;color:#575a54;line-height:1.65}.card-link{display:inline-block;margin-top:1.2rem;padding:.25rem 0;border-bottom:1px solid var(--ink);font-size:.78rem;font-weight:700}.card-link b{margin-left:.6rem;color:var(--ember-dark)}.retreat-card{grid-column:1/-1;position:relative;min-height:33rem;overflow:hidden;color:var(--paper-bright);background:#111615}.retreat-card-bg{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,12,11,.93),rgba(9,12,11,.38)),var(--retreat-image,url("/wp-content/themes/rocktrailsleep/assets/images/himalaya-dusk.webp")) center 61%/cover no-repeat;transition:transform .8s cubic-bezier(.2,.7,.2,1)}.retreat-card:hover .retreat-card-bg{transform:scale(1.018)}.retreat-card-top{position:absolute;top:0;left:0;right:0;padding:1.3rem;display:flex;justify-content:space-between}.retreat-card-top .card-number{position:static}.retreat-tag{height:max-content;padding:.45rem .7rem;background:var(--ember);color:#160b06;font-size:.62rem;font-weight:700;text-transform:uppercase;letter-spacing:.13em}.retreat-card-copy{position:absolute;left:clamp(2rem,5vw,5rem);bottom:clamp(2rem,5vw,4rem);max-width:43rem}.retreat-card-copy .card-meta{color:rgba(255,255,255,.62)}.retreat-card-copy h3{font-size:clamp(3rem,5vw,5.6rem)}.retreat-card-copy p{color:rgba(255,255,255,.72);font-size:1.04rem}.retreat-card-copy .button{margin-top:1.2rem}.section-action{margin-top:2.5rem;text-align:right}
.process-section{padding:clamp(6rem,10vw,10rem) clamp(1.25rem,7vw,7rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,9vw,9rem);color:var(--paper-bright);background:var(--ink)}.process-heading .section-index{color:rgba(255,255,255,.45)}.process-heading .eyebrow{margin-top:6rem}.process-heading h2{font-size:clamp(3rem,5.2vw,5.8rem)}.process-heading h2 em{color:var(--sky)}.process-list{margin:0;padding:0;list-style:none;align-self:end;border-top:1px solid var(--line-light)}.process-list li{padding:1.5rem 0;display:grid;grid-template-columns:3rem 1fr;gap:1.2rem;border-bottom:1px solid var(--line-light)}.process-list>li>span{font-size:.66rem;color:var(--ember);letter-spacing:.12em}.process-list h3{margin:0;font-family:var(--serif);font-size:1.55rem;font-weight:400}.process-list p{margin:.35rem 0 0;color:rgba(255,255,255,.58)}
.terrain-section{display:grid;grid-template-columns:.9fr 1.1fr;background:var(--paper-bright)}.terrain-image{min-height:46rem}.terrain-image img{width:100%;height:100%;object-fit:cover}.terrain-copy{padding:clamp(5rem,9vw,9rem) clamp(1.5rem,7vw,8rem);display:flex;flex-direction:column;justify-content:center}.terrain-copy .eyebrow{margin-top:4rem}.terrain-copy p:not(.eyebrow){max-width:42rem;color:#595c56;line-height:1.75}.terrain-facts{margin-top:3rem;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.terrain-facts div{padding:1.6rem .8rem;border-right:1px solid var(--line);display:flex;flex-direction:column}.terrain-facts div:first-child{padding-left:0}.terrain-facts div:last-child{border-right:0}.terrain-facts strong{font-family:var(--serif);font-size:2.4rem;font-weight:400}.terrain-facts span{font-size:.64rem;text-transform:uppercase;letter-spacing:.11em;color:#70736c}
.voices-section{padding:clamp(6rem,10vw,9rem) 0;background:#dfe9e9}.voices-section .section-heading{padding:0 clamp(1.25rem,7vw,7rem)}.section-heading.compact{grid-template-columns:.7fr 2.5fr}.testimonial-window{width:100%;overflow:hidden}.testimonial-track{display:flex;width:max-content;gap:1px;animation:testimonialDrift 55s linear infinite}.testimonial-window:hover .testimonial-track,.testimonial-window:focus-within .testimonial-track{animation-play-state:paused}@keyframes testimonialDrift{to{transform:translateX(-50%)}}.voice-card{width:min(74vw,34rem);min-height:25rem;margin:0;padding:clamp(1.5rem,3vw,3rem);display:flex;flex-direction:column;justify-content:space-between;background:#edf4f3}.voice-card.dark-card{background:var(--ink);color:var(--paper-bright)}.voice-card blockquote{margin:0;font-family:var(--serif);font-size:clamp(1.35rem,2.1vw,2rem);line-height:1.4;letter-spacing:-.025em}.voice-card figcaption{display:flex;flex-direction:column;padding-top:2rem;border-top:1px solid currentColor}.voice-card figcaption strong{font-size:.86rem}.voice-card figcaption span{font-size:.66rem;color:#6a6d68;text-transform:uppercase;letter-spacing:.11em}.voice-card.dark-card figcaption span{color:var(--sky)}
.contact-section{padding:clamp(6rem,10vw,10rem) clamp(1.25rem,7vw,7rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(4rem,10vw,10rem);background:var(--ember)}.contact-heading .eyebrow{margin-top:5rem;color:#54200d}.contact-heading h2 em{color:var(--paper-bright)}.contact-heading>p:not(.eyebrow){max-width:32rem;margin-top:2rem;line-height:1.7;color:#572611}.email-link{display:inline-block;margin-top:2rem;border-bottom:1px solid rgba(12,16,15,.55);font-weight:700}.email-link span{margin-left:.5rem}.contact-form{align-self:end;display:grid;grid-template-columns:repeat(2,1fr);gap:1.8rem 1.25rem;padding:clamp(1.5rem,4vw,3rem);background:var(--paper-bright);box-shadow:1.2rem 1.2rem 0 rgba(12,16,15,.92)}.form-row{display:flex;flex-direction:column;gap:.5rem}.form-row.full{grid-column:1/-1}.form-row label{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.form-row input,.form-row select,.form-row textarea{width:100%;min-height:3rem;padding:.6rem .1rem;color:var(--ink);background:transparent;border:0;border-bottom:1px solid #a8aaa3;border-radius:0;outline:0}.form-row textarea{resize:vertical}.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:var(--ember-dark);box-shadow:0 2px 0 var(--ember-dark)}.form-submit{grid-column:1/-1;width:100%;margin-top:.5rem}.form-note{grid-column:1/-1;margin:-.7rem 0 0;font-size:.68rem;color:#70736c}
.site-footer{min-height:11rem;padding:2.5rem clamp(1.25rem,4vw,4.5rem);display:grid;grid-template-columns:1fr 1fr 1fr auto;align-items:center;gap:2rem;color:var(--paper-bright);background:var(--ink)}.site-footer p{margin:0;font-family:var(--serif);font-style:italic;color:var(--sky)}.footer-links{display:flex;gap:1.4rem;font-size:.74rem}.copyright{font-size:.66rem;color:rgba(255,255,255,.42)}

/* Inner pages */
.page-hero{position:relative;min-height:42rem;padding:10rem clamp(1.25rem,7vw,7rem) 5rem;display:flex;align-items:flex-end;color:var(--paper-bright);overflow:hidden;background:var(--ink)}.page-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,8,7,.86),rgba(6,8,7,.18)),linear-gradient(0deg,rgba(6,8,7,.62),transparent 60%)}.page-hero-content{position:relative;z-index:1;max-width:64rem}.page-title,.detail-title{font-size:clamp(4rem,9vw,9rem);line-height:.82;color:var(--paper-bright)}.page-hero-content>p:last-child{max-width:42rem;margin:2rem 0 0;font-size:1.1rem;color:rgba(255,255,255,.74)}.page-meta{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:2rem}.page-meta span{padding:.55rem .75rem;border:1px solid var(--line-light);font-size:.65rem;text-transform:uppercase;letter-spacing:.12em;background:rgba(0,0,0,.18)}
.listing-intro{padding:clamp(5rem,9vw,8rem) clamp(1.25rem,7vw,7rem) 3rem;display:grid;grid-template-columns:.7fr 1.5fr 1fr;gap:clamp(2rem,5vw,6rem)}.listing-intro h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,5vw,5.5rem);font-weight:400;line-height:.95;letter-spacing:-.05em}.listing-intro p{margin:1rem 0 0;color:#5a5d57;line-height:1.75}.listing-grid{padding:0 clamp(1.25rem,7vw,7rem) clamp(6rem,10vw,10rem);display:grid;gap:1px;background:var(--line)}.listing-card{display:grid;grid-template-columns:.75fr 1.25fr;background:var(--paper-bright)}.listing-card-image{min-height:28rem;overflow:hidden}.listing-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.listing-card:hover img{transform:scale(1.025)}.listing-card-copy{padding:clamp(2rem,6vw,6rem);display:flex;flex-direction:column;justify-content:center}.listing-card-copy h2{margin:1rem 0;font-family:var(--serif);font-size:clamp(2.8rem,5vw,5rem);font-weight:400;line-height:.95}.listing-card-copy p{max-width:42rem;color:#5b5e58;line-height:1.7}.listing-card-copy .card-link{width:max-content}
.about-hero{min-height:52rem;display:grid;grid-template-columns:1fr 1fr;background:var(--paper-bright)}.about-photo{min-height:52rem}.about-photo img{width:100%;height:100%;object-fit:cover;object-position:center 35%}.about-heading{padding:10rem clamp(2rem,7vw,8rem) 6rem;display:flex;flex-direction:column;justify-content:flex-end}.about-heading h1 em{display:block}.about-heading>p:not(.eyebrow){max-width:38rem;margin-top:2rem;font-family:var(--serif);font-size:clamp(1.25rem,2vw,1.7rem);line-height:1.55;color:#50534e}.about-story{padding:clamp(6rem,10vw,10rem) clamp(1.25rem,7vw,7rem);display:grid;grid-template-columns:.7fr 1.25fr 1fr;gap:clamp(2rem,5vw,6rem)}.about-story h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,5vw,5.7rem);line-height:.94;font-weight:400;letter-spacing:-.05em}.about-story-copy p{margin:0 0 1.4rem;color:#4f524d;line-height:1.8}.about-belief{padding:clamp(6rem,10vw,10rem) clamp(1.25rem,7vw,7rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,9vw,9rem);color:var(--paper-bright);background:var(--ink)}.about-belief blockquote{margin:0;font-family:var(--serif);font-size:clamp(2.2rem,4vw,4.5rem);line-height:1.15;letter-spacing:-.04em}.about-belief blockquote em{color:var(--sky)}.about-belief-copy p{color:rgba(255,255,255,.66);line-height:1.8}.about-belief-copy .button{margin-top:1.5rem}
.detail-intro{padding:clamp(6rem,10vw,10rem) clamp(1.25rem,7vw,7rem);display:grid;grid-template-columns:.7fr 1.35fr .85fr;gap:clamp(2rem,5vw,6rem);background:var(--paper-bright)}.detail-intro h2,.detail-section h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,5vw,5.7rem);font-weight:400;line-height:.94;letter-spacing:-.05em}.detail-intro-copy p{margin:0 0 1.4rem;color:#50534e;line-height:1.8}.detail-aside{align-self:start;border-top:1px solid var(--line)}.aside-row{padding:1.15rem 0;display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);font-size:.78rem}.aside-row span:first-child{text-transform:uppercase;letter-spacing:.1em;color:#777a73}.detail-section{padding:clamp(6rem,10vw,10rem) clamp(1.25rem,7vw,7rem)}.detail-section.dark{color:var(--paper-bright);background:var(--ink)}.detail-section.dark .section-index{color:rgba(255,255,255,.45)}.two-column{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,10vw,10rem)}.detail-list{margin:0;padding:0;list-style:none;border-top:1px solid var(--line)}.dark .detail-list{border-color:var(--line-light)}.detail-list li{padding:1.3rem 0;border-bottom:1px solid var(--line);color:#565954}.dark .detail-list li{border-color:var(--line-light);color:rgba(255,255,255,.7)}.detail-list li::before{content:"↗";margin-right:.8rem;color:var(--ember)}.session-flow{margin:0;padding:0;list-style:none;border-top:1px solid var(--line-light)}.session-flow li{padding:1.35rem 0;display:grid;grid-template-columns:4rem 1fr 1.7fr;gap:1.2rem;border-bottom:1px solid var(--line-light)}.session-flow span{font-size:.65rem;letter-spacing:.12em;color:var(--ember)}.session-flow strong{font-family:var(--serif);font-size:1.45rem;font-weight:400}.session-flow p{margin:0;color:rgba(255,255,255,.62)}.detail-photo-band{min-height:38rem;position:relative}.detail-photo-band img{width:100%;height:100%;min-height:38rem;object-fit:cover}.detail-photo-band figcaption{position:absolute;right:1rem;bottom:1rem;padding:.55rem .75rem;color:white;background:rgba(0,0,0,.45);font-size:.62rem;text-transform:uppercase;letter-spacing:.12em}.inclusion-grid{margin-top:3rem;display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.inclusion-grid article{padding:2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.inclusion-grid h3{margin:0 0 .8rem;font-family:var(--serif);font-size:1.6rem;font-weight:400}.inclusion-grid p{margin:0;color:#5d605a;line-height:1.65}.detail-cta{padding:clamp(5rem,9vw,8rem) clamp(1.25rem,7vw,7rem);display:flex;align-items:end;justify-content:space-between;gap:3rem;background:var(--ember)}.detail-cta h2{max-width:58rem;margin:0;font-family:var(--serif);font-size:clamp(3rem,6vw,6.5rem);font-weight:400;line-height:.9;letter-spacing:-.055em}.detail-cta h2 em{color:var(--paper-bright)}
.retreat-overview{padding:clamp(6rem,10vw,10rem) clamp(1.25rem,7vw,7rem);display:grid;grid-template-columns:.75fr 1.25fr;gap:clamp(3rem,9vw,9rem)}.retreat-overview h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,5.8vw,6.3rem);font-weight:400;line-height:.91;letter-spacing:-.055em}.retreat-overview-copy .lead{margin:0 0 2rem;font-family:var(--serif);font-size:clamp(1.35rem,2.4vw,2.1rem);line-height:1.5}.retreat-overview-copy p:not(.lead){color:#575a54;line-height:1.75}.retreat-who{padding:clamp(6rem,10vw,10rem) clamp(1.25rem,7vw,7rem);display:grid;grid-template-columns:1fr 1fr;gap:clamp(3rem,9vw,9rem);background:var(--paper-bright)}.retreat-who h2{margin:0 0 2rem;font-family:var(--serif);font-size:clamp(2.8rem,4vw,4.7rem);font-weight:400;letter-spacing:-.04em}.retreat-schedule{padding:clamp(6rem,10vw,9rem) clamp(1.25rem,7vw,7rem);color:var(--paper-bright);background:var(--ink)}.retreat-schedule-head{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-bottom:3rem}.retreat-schedule h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,6vw,6.2rem);font-weight:400}.retreat-schedule-head p{max-width:27rem;color:rgba(255,255,255,.6)}.retreat-days{border-top:1px solid var(--line-light)}.retreat-day{padding:1.5rem 0;display:grid;grid-template-columns:7rem .7fr 1.3fr;gap:1.5rem;border-bottom:1px solid var(--line-light)}.retreat-day span{font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ember)}.retreat-day strong{font-family:var(--serif);font-size:1.8rem;font-weight:400}.retreat-day p{margin:0;color:rgba(255,255,255,.64)}.visualization{display:grid;grid-template-columns:.8fr 1.2fr;background:var(--paper-bright)}.visualization img{width:100%;height:100%;min-height:40rem;object-fit:cover}.visualization-copy{padding:clamp(5rem,9vw,9rem) clamp(2rem,7vw,8rem);display:flex;flex-direction:column;justify-content:center}.visualization-copy h2{margin:0;font-family:var(--serif);font-size:clamp(3rem,5vw,5.5rem);font-weight:400;line-height:.95}.visualization-copy p{max-width:40rem;color:#555852;line-height:1.8}.retreat-logistics{padding:clamp(6rem,10vw,9rem) clamp(1.25rem,7vw,7rem)}.retreat-logistics h2{margin:0 0 3rem;font-family:var(--serif);font-size:clamp(3rem,5vw,5.5rem);font-weight:400}.logistics-grid{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line);border-left:1px solid var(--line)}.logistics-grid article{padding:2rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.logistics-grid .wide{grid-column:1/-1}.logistics-grid h3{margin:0 0 .8rem;font-family:var(--serif);font-size:1.6rem;font-weight:400}.logistics-grid p{margin:0;color:#5b5e58;line-height:1.7}.fee-panel{margin-top:3rem;padding:2.5rem;display:flex;align-items:end;justify-content:space-between;gap:2rem;color:var(--paper-bright);background:var(--ink)}.fee-panel span{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.13em;color:var(--ember)}.fee-panel strong{display:block;margin-top:.5rem;font-family:var(--serif);font-size:clamp(3rem,6vw,6rem);font-weight:400;line-height:1}.fee-panel p{max-width:32rem;margin:0;color:rgba(255,255,255,.63)}.terms{margin-top:2rem;border-top:1px solid var(--line)}.terms details{border-bottom:1px solid var(--line)}.terms summary{padding:1.2rem 0;cursor:pointer;font-weight:700}.terms details p{max-width:60rem;color:#5c5f59;line-height:1.75}
.reveal{opacity:0;transform:translateY(20px);transition:opacity .7s,transform .7s cubic-bezier(.22,.8,.2,1)}.reveal.is-visible{opacity:1;transform:none}:focus-visible{outline:2px solid var(--sky);outline-offset:4px}
@media(max-width:1000px){.site-header{grid-template-columns:1fr auto auto}.menu-toggle{display:block}.nav-links{display:none;position:absolute;top:5.7rem;left:0;right:0;padding:1.5rem clamp(1.25rem,4vw,4.5rem);flex-direction:column;gap:1.2rem;color:var(--ink);background:var(--paper-bright);border-bottom:1px solid var(--line)}body.menu-open .nav-links{display:flex}.hero-copy{left:clamp(1.25rem,6vw,4rem);max-width:42rem}.departure-card{width:min(28rem,46vw)}.section-heading,.listing-intro{grid-template-columns:.6fr 1.6fr}.section-heading>p,.listing-intro>p{grid-column:2}.process-section,.story-section,.contact-section,.about-belief{grid-template-columns:1fr}.terrain-section,.about-hero,.visualization{grid-template-columns:1fr}.terrain-image{min-height:34rem}.about-photo{min-height:40rem}.about-heading{padding-top:6rem}.about-story,.detail-intro{grid-template-columns:.6fr 1.4fr}.about-story-copy,.detail-intro-copy{grid-column:2}.detail-aside{grid-column:2}.listing-card{grid-template-columns:1fr}.listing-card-image{min-height:24rem}.retreat-overview{grid-template-columns:1fr}.site-footer{grid-template-columns:1fr 1fr}.copyright{justify-self:end}}
@media(max-width:720px){.site-header{min-height:4.8rem}.site-header .brand{font-size:.9rem}.site-header .header-cta{display:none}.nav-links{top:4.8rem}.hero{height:max(47rem,100svh)}.hero-grid{display:none}.hero-location{top:6rem}.hero-copy{left:1.25rem;right:1.25rem;bottom:15.5rem}.hero h1{font-size:clamp(4.1rem,22vw,6.5rem)}.hero h1 span:nth-child(2){margin-left:.35em}.hero-intro,.hero-actions{margin-left:0}.hero-intro{margin-top:1.4rem;font-size:.95rem}.hero-actions{margin-top:1.25rem;align-items:flex-start;flex-direction:column;gap:.8rem}.departure-card{left:1.25rem;right:1.25rem;bottom:1.25rem;width:auto}.hero-slider-ui{left:auto;right:1.25rem;bottom:13.4rem}.hero-slider-ui p{display:none}.section-heading,.section-heading.compact,.listing-intro{display:block}.section-index{margin-bottom:2.5rem}.section-heading h2,.process-heading h2,.terrain-copy h2,.contact-heading h2,.about-heading h1{font-size:clamp(2.8rem,13vw,4.5rem)}.experience-grid{display:block;border:0;background:transparent}.experience-card{margin-bottom:1px}.retreat-card{min-height:38rem}.retreat-card-bg{background:linear-gradient(0deg,rgba(9,12,11,.88),rgba(9,12,11,.2)),var(--retreat-image,url("/wp-content/themes/rocktrailsleep/assets/images/himalaya-dusk.webp")) center/cover no-repeat}.retreat-card-copy{left:1.5rem;right:1.5rem;bottom:2rem}.retreat-card-copy h3{font-size:3.2rem}.process-heading .eyebrow,.terrain-copy .eyebrow,.contact-heading .eyebrow{margin-top:3rem}.terrain-facts{grid-template-columns:1fr}.terrain-facts div{border-right:0;border-bottom:1px solid var(--line);padding-left:0}.terrain-facts div:last-child{border-bottom:0}.voice-card{width:84vw;min-height:22rem}.contact-form{grid-template-columns:1fr;box-shadow:.65rem .65rem 0 rgba(12,16,15,.92)}.form-row,.form-row.full,.form-submit,.form-note{grid-column:1}.site-footer{grid-template-columns:1fr;align-items:start}.copyright{justify-self:start}.page-hero{min-height:38rem;padding-top:8rem}.page-title,.detail-title{font-size:clamp(3.8rem,18vw,6.3rem)}.about-photo{min-height:34rem}.about-heading{padding:6rem 1.5rem 4rem}.about-story,.detail-intro,.two-column,.retreat-who{grid-template-columns:1fr}.about-story-copy,.detail-intro-copy,.detail-aside{grid-column:1}.inclusion-grid{grid-template-columns:1fr}.detail-cta{align-items:stretch;flex-direction:column}.session-flow li,.retreat-day{grid-template-columns:1fr;gap:.5rem}.retreat-schedule-head{align-items:start;flex-direction:column}.visualization img{min-height:31rem}.logistics-grid{grid-template-columns:1fr}.logistics-grid .wide{grid-column:1}.fee-panel{align-items:start;flex-direction:column}.footer-links{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}.hero-slide:not(.is-active){display:none}.testimonial-track{transform:none;flex-wrap:wrap;width:auto}.testimonial-track [aria-hidden="true"]{display:none}.testimonial-window{padding:0 1.25rem}.voice-card{width:100%}}

/* Monochrome editorial pass */
body{color:#050505;background:#f5f5f7}
body::selection{background:#050505;color:#fff}
.hero-location span,.departure-date span,.section-index span,.card-link b,.card-meta span+span::before{color:#fff}
.site-header.solid .section-index span,.section-index span,.card-link b,.card-meta span+span::before{color:#050505}
.availability,.eyebrow.light,.process-heading h2 em,.footer-links+.copyright,.site-footer p{color:#fff}
.availability i{background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.12)}
.hero-dots button.is-active{background:#fff}
.button-primary{background:#fff;color:#050505}
.button-primary:hover,.button-primary:focus-visible{background:#e8e8ed}
.button-dark{background:#050505;color:#fff}
.button-dark:hover,.button-dark:focus-visible{background:#2c2c2e}
.experiences-section,.voices-section,.contact-section{background:#f5f5f7}
.card-image-wrap,.retreat-card{background:#111}
.retreat-tag{background:#fff;color:#050505}
.voice-card,.contact-form{background:#fff}
.voice-card.dark-card,.process-section,.retreat-schedule,.detail-section.dark,.site-footer,.fee-panel{background:#050505}
.voice-card figcaption span,.contact-heading>p:not(.eyebrow),.terms details p{color:#6e6e73}
.voice-card.dark-card figcaption span{color:#b7b7bd}
.contact-heading .eyebrow,.contact-heading h2 em{color:#050505}
.contact-form{border:1px solid var(--line);box-shadow:none}
.contact-form .button-primary{background:#050505;color:#fff}
.form-row input:focus,.form-row select:focus,.form-row textarea:focus{border-color:#050505;box-shadow:0 2px 0 #050505}
.detail-list li::before{color:#050505}
.dark .detail-list li::before,.session-flow span,.retreat-day span,.fee-panel span,.process-heading .section-index span,.detail-section.dark .section-index span,.retreat-schedule .section-index span,.dark h2 em,.retreat-schedule h2 em{color:#fff}
.session-flow.light-flow{color:#050505;border-color:var(--line)}
.session-flow.light-flow li{border-color:var(--line)}
.session-flow.light-flow span{color:#050505}
.session-flow.light-flow p{color:#6e6e73}
.detail-cta{background:#fff;border-top:1px solid var(--line)}
.detail-cta h2 em{color:#6e6e73}
:focus-visible{outline-color:#050505}

/* More restrained typography */
.hero h1{font-size:clamp(3.4rem,7vw,6.4rem);line-height:.86;letter-spacing:-.045em}
.section-heading h2,.process-heading h2,.terrain-copy h2,.contact-heading h2,.about-heading h1{font-size:clamp(2.3rem,4vw,4.3rem);line-height:1;letter-spacing:-.04em}
.page-title,.detail-title{font-size:clamp(3.3rem,6.5vw,6.2rem);line-height:.9;letter-spacing:-.045em}
.listing-intro h2,.listing-card-copy h2,.about-story h2,.detail-intro h2,.detail-section h2,.retreat-overview h2,.visualization-copy h2,.retreat-logistics h2{font-size:clamp(2.25rem,3.8vw,4rem);line-height:1;letter-spacing:-.04em}
.retreat-schedule h2{font-size:clamp(2.6rem,4.5vw,4.6rem)}
.retreat-who h2{font-size:clamp(2.2rem,3.2vw,3.4rem)}
.detail-cta h2{font-size:clamp(2.4rem,4.4vw,4.5rem);line-height:.98}
.about-belief blockquote{font-size:clamp(1.8rem,3vw,3.2rem)}
.retreat-card-copy h3{font-size:clamp(2.6rem,4vw,4rem)}
.card-copy h3{font-size:clamp(1.8rem,2.5vw,2.4rem)}
.voice-card blockquote{font-size:clamp(1.2rem,1.7vw,1.65rem)}
.fee-panel strong{font-size:clamp(2.6rem,5vw,4.8rem)}
@media(max-width:720px){.hero h1{font-size:clamp(3.25rem,16vw,4.9rem)}.page-title,.detail-title{font-size:clamp(3.15rem,15vw,5.2rem)}.retreat-card-copy h3{font-size:clamp(2.55rem,12vw,3.3rem)}.section-heading h2,.process-heading h2,.terrain-copy h2,.contact-heading h2,.about-heading h1{font-size:clamp(2.35rem,11vw,3.5rem)}}

/* Quieter About introduction */
.about-hero{min-height:auto;grid-template-columns:minmax(17rem,26rem) minmax(0,1fr);align-items:center;gap:clamp(3rem,8vw,8rem);padding:clamp(4rem,7vw,7rem);background:#fff}
.about-photo{min-height:0;width:100%;max-width:26rem;justify-self:end}
.about-photo img{width:100%;height:auto;object-fit:contain;object-position:center}
.about-heading{max-width:42rem;padding:2rem 0;justify-content:center}
@media(max-width:1000px){.about-hero{grid-template-columns:minmax(15rem,22rem) minmax(0,1fr);gap:clamp(2.5rem,6vw,5rem);padding:clamp(3rem,6vw,5rem)}.about-photo{max-width:22rem}.about-heading{padding:2rem 0}}
@media(max-width:720px){.about-hero{display:block;padding:2rem 1.25rem 4.5rem}.about-photo{max-width:18rem;margin:0 0 3.5rem}.about-heading{padding:0}.about-heading>p:not(.eyebrow){font-size:1.2rem}}

/* Apple-inspired scale, spacing and surfaces */
:root{--gutter:max(1.5rem,calc((100vw - 74rem)/2))}
html{-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body{font-size:1.0625rem;line-height:1.47;letter-spacing:-.022em}
h1,h2,h3,blockquote,.departure-date,.terrain-facts strong,.fee-panel strong{font-family:var(--sans)!important;font-weight:600!important}
h1 em,h2 em,h3 em,blockquote em,.hero h1 span:nth-child(2),.site-footer p{font-style:normal}
.site-header{min-height:3.25rem;padding:0 var(--gutter);border:0;background:rgba(0,0,0,.42);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}
.site-header.solid{background:rgba(255,255,255,.82);border:0}
.brand{gap:.55rem;font-size:.9rem;font-weight:600;letter-spacing:-.015em}.brand-mark{width:16px;height:16px}.brand-mark i{width:3px}.brand-mark i:nth-child(1){height:8px}.brand-mark i:nth-child(2){height:15px}.brand-mark i:nth-child(3){height:11px}
.nav-links{gap:1.45rem;font-size:.8125rem}.header-cta{font-size:.8125rem;font-weight:600}.menu-toggle{font-size:.8125rem;letter-spacing:0;text-transform:none}
.button{min-height:2.75rem;padding:.72rem 1.15rem;border-radius:999px;gap:1rem;font-size:.875rem;font-weight:600}.text-link,.card-link{font-size:.875rem;font-weight:500}
.eyebrow{margin-bottom:1rem;font-size:.75rem;letter-spacing:.12em}.section-index{font-size:.75rem;letter-spacing:.1em}
.hero{height:clamp(39rem,76vh,44rem);min-height:39rem}.hero-location{top:4.75rem;left:var(--gutter);font-size:.75rem;letter-spacing:.12em}.hero-grid{display:none}.hero-copy{left:var(--gutter);bottom:6rem;max-width:34rem}.hero h1{font-size:clamp(2.8rem,4.5vw,3.5rem);line-height:1.02;letter-spacing:-.045em}.hero h1 span:nth-child(2),.hero h1 span:nth-child(3){margin-left:0}.hero-intro{max-width:32rem;margin:1.35rem 0 0;font-size:1.0625rem;line-height:1.5}.hero-actions{margin:1.4rem 0 0;gap:1.1rem}.departure-card{right:var(--gutter);bottom:2.25rem;width:min(24rem,31vw);padding:1.15rem 1.25rem;border-radius:1.15rem}.departure-date{margin:.9rem 0;font-size:clamp(1.8rem,2.5vw,2.5rem);line-height:1}.departure-meta strong{font-size:1rem}.hero-slider-ui{left:var(--gutter);bottom:1.4rem}
.section-heading{grid-template-columns:.55fr 1.35fr 1fr;column-gap:clamp(2rem,4vw,4.5rem);margin-bottom:2.75rem}
.hero h1,.section-heading h2,.process-heading h2,.terrain-copy h2,.contact-heading h2,.about-heading h1,.page-title,.detail-title,.listing-intro h2,.listing-card-copy h2,.about-story h2,.detail-intro h2,.detail-section h2,.retreat-overview h2,.visualization-copy h2,.retreat-logistics h2,.retreat-schedule h2,.retreat-who h2,.detail-cta h2{letter-spacing:-.035em}
.section-heading h2,.process-heading h2,.terrain-copy h2,.contact-heading h2,.about-heading h1{font-size:clamp(2rem,3.4vw,3rem);line-height:1.05}
.page-title,.detail-title{font-size:clamp(2.65rem,4.6vw,3.75rem);line-height:1.02}
.listing-intro h2,.listing-card-copy h2,.about-story h2,.detail-intro h2,.detail-section h2,.retreat-overview h2,.visualization-copy h2,.retreat-logistics h2{font-size:clamp(1.9rem,3vw,2.75rem);line-height:1.08}
.retreat-schedule h2,.detail-cta h2{font-size:clamp(2.1rem,3.6vw,3.15rem);line-height:1.04}.retreat-who h2{font-size:clamp(1.9rem,2.7vw,2.5rem)}
.card-copy h3{font-size:clamp(1.5rem,2vw,1.8rem)}.retreat-card-copy h3{font-size:clamp(2.2rem,3vw,3rem)}.voice-card blockquote{font-size:clamp(1.15rem,1.55vw,1.4rem);line-height:1.45}.about-belief blockquote{font-size:clamp(1.6rem,2.5vw,2.25rem)}.fee-panel strong{font-size:clamp(2.25rem,4vw,3.75rem)}
.experiences-section,.process-section,.contact-section,.about-story,.about-belief,.detail-intro,.detail-section,.retreat-overview,.retreat-who,.retreat-schedule,.retreat-logistics{padding:clamp(4rem,6.5vw,6.5rem) var(--gutter)}
.terrain-copy,.visualization-copy{padding:clamp(3.5rem,6vw,5.5rem)}.voices-section{padding:clamp(4rem,6.5vw,6.5rem) 0}.voices-section .section-heading{padding:0 var(--gutter)}
.experience-grid{gap:1rem;background:transparent;border:0}.experience-card,.listing-card,.voice-card,.contact-form{border-radius:1.25rem;overflow:hidden}.card-copy{padding:1.6rem}.retreat-card{min-height:27rem}.retreat-card-copy{left:clamp(1.6rem,4vw,3.5rem);bottom:clamp(1.6rem,4vw,3rem);max-width:36rem}
.process-section{gap:clamp(3rem,7vw,7rem)}.process-heading .eyebrow{margin-top:4rem}.process-list h3{font-size:1.3rem}.process-list li{padding:1.25rem 0}
.terrain-section,.visualization{width:min(74rem,calc(100% - 3rem));margin:1rem auto;border-radius:1.25rem;overflow:hidden}.terrain-image{min-height:34rem}.terrain-facts strong{font-size:2rem}
.testimonial-track{gap:1rem}.voice-card{width:min(78vw,30rem);min-height:20rem;padding:clamp(1.5rem,2.4vw,2.25rem)}
.contact-section{gap:clamp(3rem,7vw,7rem)}.contact-heading .eyebrow{margin-top:3.5rem}.contact-form{padding:clamp(1.5rem,3vw,2.25rem)}
.site-footer{min-height:8rem;padding:2.25rem var(--gutter);grid-template-columns:1fr auto auto;gap:2.5rem}.site-footer>p{display:none}.footer-links{font-size:.8125rem}
.page-hero{min-height:32rem;padding:6rem var(--gutter) 3rem}.page-hero-content{max-width:48rem}.page-hero-content>p:last-child{max-width:36rem;margin-top:1.4rem;font-size:1.0625rem}.page-meta{margin-top:1.4rem}
.listing-intro{padding:clamp(4rem,6vw,6rem) var(--gutter) 2.5rem;grid-template-columns:.55fr 1.35fr 1fr;gap:clamp(2rem,4vw,4.5rem)}.listing-grid{padding:0 var(--gutter) clamp(4rem,6vw,6rem);gap:1rem;background:transparent}.listing-card-image{min-height:20rem}.listing-card-copy{padding:clamp(2rem,4vw,3.25rem)}
.about-hero{grid-template-columns:minmax(15rem,21rem) minmax(0,1fr);gap:clamp(3rem,7vw,7rem);padding:clamp(3.5rem,6vw,6rem) var(--gutter)}.about-photo{max-width:21rem}.about-heading{max-width:38rem}.about-heading>p:not(.eyebrow){font-family:var(--sans);font-size:1.125rem;line-height:1.5}
.about-story{grid-template-columns:.55fr 1.2fr 1fr;gap:clamp(2rem,4vw,4.5rem)}.about-story-copy p,.detail-intro-copy p,.about-belief-copy p{line-height:1.6}.about-belief{gap:clamp(3rem,7vw,7rem)}
.detail-intro{grid-template-columns:.55fr 1.35fr .8fr;gap:clamp(2rem,4vw,4rem)}.detail-photo-band{width:min(62rem,calc(100% - 3rem));min-height:28rem;height:28rem;margin:1rem auto;border-radius:1.25rem;overflow:hidden}.detail-photo-band img{min-height:0;height:100%}.inclusion-grid{margin-top:2.5rem;border-radius:1.25rem;overflow:hidden}.detail-cta{padding:clamp(3.5rem,6vw,5.5rem) var(--gutter)}
.retreat-overview,.retreat-who{gap:clamp(3rem,7vw,7rem)}.retreat-schedule-head{margin-bottom:2.5rem}.visualization img{min-height:28rem;max-height:34rem}.retreat-logistics h2{margin-bottom:2.5rem}.fee-panel{border-radius:1.25rem}

/* What we do */
.work-intro{width:min(74rem,100%);margin:0 auto;padding:clamp(6rem,10vw,9rem) 1.5rem clamp(4rem,6vw,6rem)}
.work-intro h1{max-width:54rem;margin:0;font-size:clamp(2.8rem,5vw,4rem);line-height:1.02;letter-spacing:-.04em}.work-intro>p:last-child{max-width:44rem;margin:1.75rem 0 0;font-size:clamp(1.15rem,1.8vw,1.45rem);line-height:1.45;color:#6e6e73}
.work-feature-image{width:min(56rem,calc(100% - 3rem));margin:0 auto clamp(4rem,7vw,7rem)}.work-feature-image img{width:100%;height:clamp(18rem,34vw,27rem);object-fit:cover;border-radius:1.25rem}.work-feature-image figcaption,.work-images figcaption{margin-top:.7rem;font-size:.75rem;color:#6e6e73}
.work-pillars,.community-story,.vision-section{padding:clamp(4rem,6.5vw,6.5rem) var(--gutter)}.work-section-head{max-width:40rem}.work-section-head h2{margin:0;font-size:clamp(2rem,3.4vw,3rem);line-height:1.06;letter-spacing:-.035em}
.pillar-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-top:3rem}.pillar-grid article{min-height:17rem;padding:2rem;border-radius:1.25rem;background:#fff}.pillar-grid span{font-size:.75rem;color:#6e6e73}.pillar-grid h3{margin:3rem 0 .8rem;font-size:1.45rem}.pillar-grid p{margin:0;color:#6e6e73;line-height:1.55}
.community-story{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,8rem);background:#fff}.community-copy{max-width:42rem}.community-copy p{margin:0 0 1.35rem;line-height:1.6;color:#515154}.community-facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin:1rem 0 0}.community-facts div{padding:1.6rem 0;border-top:1px solid var(--line)}.community-facts dt{font-size:2rem;font-weight:600;letter-spacing:-.035em}.community-facts dd{max-width:13rem;margin:.35rem 0 0;color:#6e6e73;font-size:.9rem}
.work-images{width:min(62rem,calc(100% - 3rem));margin:clamp(4rem,7vw,7rem) auto;display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}.work-images figure{margin:0}.work-images img{width:100%;height:clamp(16rem,28vw,23rem);object-fit:cover;border-radius:1.25rem}
.vision-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(3rem,8vw,8rem);color:#fff;background:#050505}.vision-section .work-section-head h2{color:#fff}.vision-copy{max-width:42rem}.vision-copy>p{margin:0 0 2rem;color:#d2d2d7;font-size:1.1rem;line-height:1.55}.vision-copy ul{margin:0;padding:0;list-style:none;border-top:1px solid rgba(255,255,255,.22)}.vision-copy li{padding:1rem 0;border-bottom:1px solid rgba(255,255,255,.22);color:#f5f5f7}

@media(max-width:1000px){.nav-links{top:3.25rem}.hero{height:45rem;min-height:45rem}.hero-copy{bottom:15rem}.departure-card{width:24rem}.section-heading,.listing-intro{grid-template-columns:.55fr 1.45fr}.site-footer{grid-template-columns:1fr auto}.copyright{justify-self:end}.community-story,.vision-section{grid-template-columns:1fr}.community-facts{grid-column:1}.pillar-grid{grid-template-columns:1fr 1fr}.about-hero{grid-template-columns:minmax(14rem,19rem) minmax(0,1fr)}.about-photo{max-width:19rem}}
@media(max-width:720px){body{font-size:1rem}.site-header{min-height:3.25rem}.nav-links{top:3.25rem}.hero{height:46rem;min-height:46rem}.hero-location{top:4.5rem}.hero-copy{bottom:14.5rem}.hero h1{font-size:2.75rem}.hero-intro{font-size:1rem}.departure-card{left:1.25rem;right:1.25rem;bottom:1.25rem;width:auto}.hero-slider-ui{right:1.25rem;bottom:12.7rem}.section-heading h2,.process-heading h2,.terrain-copy h2,.contact-heading h2,.about-heading h1{font-size:2.2rem}.page-title,.detail-title{font-size:2.75rem}.retreat-card{min-height:30rem}.retreat-card-copy h3{font-size:2.35rem}.terrain-section,.visualization{width:calc(100% - 1.5rem)}.terrain-image{min-height:22rem}.voice-card{width:86vw;min-height:18rem}.page-hero{min-height:27rem;padding-top:5.5rem}.listing-card-image{min-height:17rem}.about-hero{display:block;padding:2.5rem 1.25rem 4rem}.about-photo{max-width:16rem;margin:0 0 3rem}.detail-photo-band{width:calc(100% - 1.5rem);height:21rem;min-height:21rem}.visualization img{min-height:22rem}.site-footer{grid-template-columns:1fr;gap:1.4rem}.copyright{justify-self:start}.pillar-grid,.community-facts,.work-images{grid-template-columns:1fr}.pillar-grid article{min-height:0}.pillar-grid h3{margin-top:2rem}.work-intro{padding:5.5rem 1.25rem 3.5rem}.work-intro h1{font-size:2.75rem}.work-feature-image{width:calc(100% - 2.5rem)}.work-feature-image img{height:19rem}.work-images{width:calc(100% - 2.5rem)}.work-images img{height:18rem}}

/* Apple-style persistent navigation and softly rounded photography */
.site-header,.site-header.solid{position:sticky;z-index:100;top:0;left:auto;width:100%;color:#1d1d1f;background:rgba(255,255,255,.86);border-bottom:1px solid rgba(29,29,31,.12);backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px)}
.about-photo{overflow:hidden;border-radius:1.25rem}
.about-photo img{border-radius:1.25rem}


/* =====================================================================
   2. WordPress integration layer. Everything below exists only to make
      the markup WordPress produces behave like the static build did.
   ===================================================================== */

/* Template-part wrappers vanish from the box tree, so .site-header's
   sticky positioning is bounded by the page, not by a wrapper exactly
   its own height. */
.wp-block-template-part { display: contents; }

/* Sticky header offset when the admin bar is showing (logged-in only). */
body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) { body.admin-bar .site-header { top: 46px; } }

/* The wrappers WordPress adds around content carry no spacing of their
   own. Block gap is 0 in theme.json; WordPress's layout rules are zero-
   specificity, so the design's own margins (e.g. .terrain-section) win. */
.wp-site-blocks, .entry-content, .wp-block-post-content { margin: 0; padding: 0; }

/* The uploaded logo, when there is one, sits where the brand mark does. */
.brand .wp-block-site-logo, .brand .custom-logo-link { display: inline-flex; line-height: 0; }
.brand .custom-logo, .brand .wp-block-site-logo img { height: 22px !important; width: auto !important; border-radius: 0; }
.footer-brand .custom-logo, .footer-brand .wp-block-site-logo img { height: 20px !important; }

/* Body overflow: clip instead of hidden, so nothing upstream can turn
   body into a scroll container and break the sticky header. */
body { overflow-x: clip; }

/* ---------------------------------------------------------------------
   WPForms, restyled to the static build's .contact-form field design.
   --------------------------------------------------------------------- */
.contact-form .wpforms-container, .contact-form .wpforms-container-full { grid-column: 1 / -1; margin: 0; }
.contact-form .wpforms-form { display: block; }
.contact-form .wpforms-field-container { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.8rem 1.25rem; }
.contact-form .wpforms-field { padding: 0; display: flex; flex-direction: column; gap: .5rem; }
.contact-form .wpforms-field-textarea { grid-column: 1 / -1; }
.contact-form .wpforms-field-label {
  margin: 0; color: var(--ink);
  font-size: .65rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
}
.contact-form .wpforms-required-label { display: none; }
.contact-form .wpforms-field-sublabel { display: none; }
.contact-form input[type="text"], .contact-form input[type="email"], .contact-form select, .contact-form textarea {
  width: 100% !important; max-width: none !important; min-height: 3rem; height: auto;
  padding: .6rem .1rem !important;
  color: var(--ink); background: transparent !important;
  border: 0 !important; border-bottom: 1px solid #a8aaa3 !important; border-radius: 0 !important;
  box-shadow: none !important; outline: 0; font: inherit;
}
.contact-form textarea { resize: vertical; min-height: 6rem; }
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus {
  border-bottom-color: #050505 !important; box-shadow: 0 2px 0 #050505 !important;
}
.contact-form .wpforms-submit-container { margin: 1.8rem 0 0; padding: 0; }
.contact-form button.wpforms-submit {
  width: 100%; min-height: 2.75rem; padding: .72rem 1.15rem !important;
  display: inline-flex; align-items: center; justify-content: space-between; gap: 1rem;
  border: 1px solid transparent !important; border-radius: 999px !important;
  background: #050505 !important; color: #fff !important;
  font-size: .875rem; font-weight: 600; line-height: 1; cursor: pointer;
  transition: background .2s, transform .2s;
}
.contact-form button.wpforms-submit::after { content: "\2197"; }
.contact-form button.wpforms-submit:hover { background: #2c2c2e !important; transform: translateY(-2px); }
.contact-form .wpforms-confirmation-container, .contact-form .wpforms-confirmation-container-full {
  margin: 0 !important; padding: 1.75rem !important; border: 0 !important; border-radius: 1rem;
  background: #f5f5f7 !important; color: var(--ink);
}
.contact-form .wpforms-confirmation-container p:last-child { margin-bottom: 0; }
.contact-form .wpforms-error { font-size: .72rem; color: #a11; }
@media (max-width: 720px) { .contact-form .wpforms-field-container { grid-template-columns: 1fr; } }

/* ---------------------------------------------------------------------
   Posts and archives (the static build had none). Kept simple, on the
   same type scale.
   --------------------------------------------------------------------- */
.rts-post { width: min(46rem, calc(100% - 3rem)); margin: 0 auto; padding: clamp(5rem, 8vw, 7rem) 0 clamp(4rem, 7vw, 6rem); }
.rts-post h1 { margin: 0 0 1.5rem; font-size: clamp(2.2rem, 4vw, 3.25rem); line-height: 1.04; letter-spacing: -.035em; }
.rts-post .entry-content > * + * { margin-block-start: 1.25rem; }
.rts-post img { border-radius: 1.25rem; }
.rts-archive { width: min(74rem, calc(100% - 3rem)); margin: 0 auto; padding: clamp(5rem, 8vw, 7rem) 0; display: grid; gap: 1rem; }
.rts-archive .wp-block-post { padding: 2rem; border-radius: 1.25rem; background: #fff; }
.rts-archive .wp-block-post-title { margin: 0 0 .6rem; font-size: 1.5rem; letter-spacing: -.03em; }
.rts-archive .wp-block-post-title a { text-decoration: none; }
.rts-archive .wp-block-post-excerpt__excerpt { color: #6e6e73; }
.rts-404 { width: min(46rem, calc(100% - 3rem)); margin: 0 auto; padding: clamp(6rem, 10vw, 9rem) 0; }
.rts-404 h1 { font-size: clamp(2.2rem, 4vw, 3.25rem); letter-spacing: -.035em; }


/* =====================================================================
   4. Native-block mapping layer (2.1).
      Content is now built from core blocks. Each rule here makes the
      element WordPress emits render exactly like the element the design
      was written for -- a <p class="section-index"> like the old <div>,
      a Buttons block like <a class="button">, a Quote block like the old
      <figure class="voice-card">. Nothing here restyles the design.
   ===================================================================== */

/* -- generic: block wrappers carry no spacing of their own ---------------- */
.wp-block-group > .wp-block-image,
.wp-block-image.hero-slide,
.wp-block-image.retreat-card-bg { margin: 0; }
.wp-block-buttons { display: flex; flex-wrap: nowrap; align-items: center; gap: 1.1rem; }
.wp-block-button { margin: 0; flex: 0 0 auto; }
/* the variant classes (.button-dark ...) sit on the wrapper too; only the link may paint */
.wp-block-button.button-primary, .wp-block-button.button-ghost, .wp-block-button.button-dark,
.wp-block-button.text-link { background: transparent; border: 0; color: inherit; padding: 0; box-shadow: none; }
.wp-block-button__link { white-space: nowrap; word-break: normal; overflow-wrap: normal; }
p.card-number, p.retreat-tag, p.card-meta, p.hero-location, p.section-index, p.step-number, p.step-title,
p.stat-value, p.stat-label, p.stat-note, p.meta-pill, p.availability, .departure-top p, .aside-row p { margin: 0; }
/* labels that were <span> and became <strong> inside text */
.section-index strong { margin-right: .8rem; font-weight: 700; color: #050505; }
.process-heading .section-index strong, .detail-section.dark .section-index strong,
.retreat-schedule .section-index strong, .dark .section-index strong { color: #fff; }
/* arrows: <span aria-hidden>↗</span> became <strong>↗</strong> */
.wp-block-button__link strong, .card-link strong, .email-link strong, .header-cta strong, .section-action strong { font-weight: inherit; }
.card-link strong { margin-left: .6rem; color: #050505; }
.email-link strong { margin-left: .5rem; }
.header-cta strong { margin-left: .5rem; }
.section-action strong { margin-left: .35rem; }

/* -- buttons: Buttons block = .button ------------------------------------- */
.wp-block-button .wp-block-button__link {
  width: auto; min-height: 2.75rem; padding: .72rem 1.15rem;
  display: inline-flex; align-items: center; justify-content: space-between; gap: 1rem;
  border: 1px solid transparent; border-radius: 999px;
  background: transparent; color: inherit;
  font-size: .875rem; line-height: 1; font-weight: 600; text-align: left; text-decoration: none; cursor: pointer;
  transition: background .2s, color .2s, transform .2s, border-color .2s;
}
.wp-block-button .wp-block-button__link:hover { transform: translateY(-2px); }
.wp-block-button.button-primary .wp-block-button__link { background: #fff; color: #050505; }
.wp-block-button.button-primary .wp-block-button__link:hover, .wp-block-button.button-primary .wp-block-button__link:focus-visible { background: #e8e8ed; }
.wp-block-button.button-ghost .wp-block-button__link { color: var(--paper-bright); border-color: rgba(255,255,255,.55); background: rgba(0,0,0,.12); }
.wp-block-button.button-ghost .wp-block-button__link:hover, .wp-block-button.button-ghost .wp-block-button__link:focus-visible { background: var(--paper-bright); color: var(--ink); }
.wp-block-button.button-dark .wp-block-button__link { background: #050505; color: #fff; }
.wp-block-button.button-dark .wp-block-button__link:hover, .wp-block-button.button-dark .wp-block-button__link:focus-visible { background: #2c2c2e; }
/* a text link authored as a Button (hero "See all experiences") */
.wp-block-button.text-link { padding: 0; border: 0; font-size: inherit; font-weight: inherit; }  /* the design's .text-link rules land on the wrapper; the link below is the real one */
.wp-block-button.text-link .wp-block-button__link {
  min-height: 0; padding: 0 0 .25rem; gap: 0; display: block; line-height: 1.47;
  border: 0; border-bottom: 1px solid rgba(255,255,255,.48); border-radius: 0;
  background: transparent; color: inherit; font-size: .875rem; font-weight: 500;
}
.wp-block-button.text-link .wp-block-button__link strong { margin-left: .35rem; }
.wp-block-button.text-link.dark .wp-block-button__link { border-color: var(--ink); }
.wp-block-button.text-link .wp-block-button__link:hover { transform: none; }
.hero-actions .wp-block-button__link { color: var(--paper-bright); }
.hero-actions .wp-block-button.button-primary .wp-block-button__link { color: #050505; }
.about-belief-copy .wp-block-buttons { margin-top: 1.5rem; }
.retreat-card-copy .wp-block-buttons { margin-top: 1.2rem; }

/* -- text links authored as paragraphs ------------------------------------ */
p.card-link { margin-bottom: 0; }
p.email-link { margin-bottom: 0; }
p.section-action { margin-bottom: 0; }
.section-action a { font-size: .875rem; font-weight: 500; padding-bottom: .25rem; border-bottom: 1px solid var(--ink); text-decoration: none; }

/* -- cards: the wrapping <a> is now a Group; the card-link carries the URL
      and stretches over the whole card ----------------------------------- */
.experience-card, .listing-card { position: relative; }
.experience-card .card-link a::after, .listing-card .card-link a::after,
.retreat-card .wp-block-button__link::after { content: ""; position: absolute; inset: 0; z-index: 3; }
.card-image-wrap .wp-block-image { width: 100%; height: 100%; }
.listing-card-image .wp-block-image, .terrain-image .wp-block-image, .about-photo .wp-block-image,
.visualization > .wp-block-image { height: 100%; }
.visualization > .wp-block-image img { height: 100%; }
.card-meta { display: block; }
.card-meta strong { font-weight: inherit; color: #050505; margin: 0 .7rem; }
.hero-location strong { font-weight: inherit; color: #fff; margin: 0 .5rem; }  /* was: gap .7rem + ::before "·" margin-right .7rem */

/* retreat card: background is an editable Image block; the tint is a pseudo-element */
.retreat-card .retreat-card-bg { position: absolute; inset: 0; z-index: 0; background: none; transition: transform .8s cubic-bezier(.2,.7,.2,1); }
.retreat-card .retreat-card-bg img { width: 100%; height: 100%; object-fit: cover; object-position: center 61%; }
.retreat-card:hover .retreat-card-bg { transform: scale(1.018); }
.retreat-card::before { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(9,12,11,.93), rgba(9,12,11,.38)); pointer-events: none; }
.retreat-card-top, .retreat-card-copy { z-index: 2; }

/* -- hero: wash is a pseudo-element; slides/copy/card are layered ---------- */
.hero::before { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
  background: linear-gradient(90deg, rgba(5,7,7,.76) 0%, rgba(5,7,7,.37) 48%, rgba(5,7,7,.18) 100%), linear-gradient(0deg, rgba(5,7,7,.68), transparent 48%); }
.hero-slides { z-index: 0; }
.hero-copy, .hero-location { z-index: 2; }
.hero-slide figcaption { display: none; }
.hero .wp-block-heading { margin: 0; }

/* departure card: spans became paragraphs */
.departure-top { display: flex; justify-content: space-between; }
.availability::before { content: ""; display: inline-block; width: .45rem; height: .45rem; margin-right: .35rem; background: #fff; border-radius: 50%; box-shadow: 0 0 0 4px rgba(255,255,255,.12); vertical-align: middle; }
.departure-date { margin: .9rem 0 0; }
.departure-date-sub { margin: .45rem 0 .9rem; font-family: var(--sans); font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #fff; }
.departure-meta .stat-value { font-size: 1rem; font-weight: 600; }
.departure-meta .stat-label { font-size: .67rem; color: rgba(255,255,255,.6); text-transform: uppercase; letter-spacing: .08em; }

/* -- stat pairs (strong/span, dt/dd, fee panel) --------------------------- */
.terrain-facts .stat-value { font-size: 2rem; font-weight: 600; letter-spacing: -.035em; }
.terrain-facts .stat-label { font-size: .64rem; text-transform: uppercase; letter-spacing: .11em; color: #70736c; }
.community-facts .stat-value { font-size: 2rem; font-weight: 600; letter-spacing: -.035em; }
.community-facts .stat-label { max-width: 13rem; margin: .35rem 0 0; color: #6e6e73; font-size: .9rem; }
.fee-panel .stat-label { font-size: .65rem; text-transform: uppercase; letter-spacing: .13em; color: #fff; max-width: none; }
.fee-panel .stat-value { margin-top: .5rem; font-size: clamp(2.25rem, 4vw, 3.75rem); font-weight: 600; line-height: 1; color: #fff; max-width: none; }
.fee-panel .stat-note { font-size: .85rem; color: inherit; max-width: none; }

/* -- steps (process list, session flow, retreat days, pillars) ------------ */
.process-list .process-step { padding: 1.25rem 0; display: grid; grid-template-columns: 3rem 1fr; gap: 1.2rem; border-bottom: 1px solid var(--line-light); }
.process-list .step-number { font-size: .66rem; color: #fff; letter-spacing: .12em; margin: 0; }
.session-flow .flow-step { padding: 1.35rem 0; display: grid; grid-template-columns: 4rem 1fr 1.7fr; gap: 1.2rem; border-bottom: 1px solid var(--line-light); }
.session-flow .step-number { font-size: .65rem; letter-spacing: .12em; color: #fff; margin: 0; }
.session-flow .step-title { font-size: 1.45rem; font-weight: 400; color: inherit; margin: 0; }
.session-flow.light-flow .flow-step { border-color: var(--line); }
.session-flow.light-flow .step-number { color: #050505; }
.session-flow.light-flow .step-title { color: var(--ink); }
.retreat-day .step-number { font-size: .65rem; letter-spacing: .13em; text-transform: uppercase; color: #fff; margin: 0; }
.retreat-day .step-title { font-size: 1.8rem; font-weight: 400; color: inherit; margin: 0; }
.pillar-grid .step-number { font-size: .75rem; color: #6e6e73; margin: 0; }

/* -- meta pills and aside rows -------------------------------------------- */
.page-meta .meta-pill { padding: .55rem .75rem; border: 1px solid var(--line-light); font-size: .65rem; text-transform: uppercase; letter-spacing: .12em; background: rgba(0,0,0,.18); }
.aside-row p:first-child { text-transform: uppercase; letter-spacing: .1em; color: #777a73; }

/* -- quotes: Quote block = voice card ------------------------------------- */
.wp-block-quote.voice-card { border: 0; padding: clamp(1.5rem, 2.4vw, 2.25rem); margin: 0; font-style: normal; }
.voice-card p { margin: 0; font-size: clamp(1.15rem, 1.55vw, 1.4rem); line-height: 1.45; letter-spacing: -.025em; font-weight: 600; }
.voice-card cite { display: flex; flex-direction: column; padding-top: 2rem; border-top: 1px solid currentColor;
  font-style: normal; font-weight: 400; font-size: .66rem; text-transform: uppercase; letter-spacing: .11em; color: #6e6e73; }
.voice-card cite strong { font-size: .86rem; font-weight: 600; text-transform: none; letter-spacing: 0; color: var(--ink); }
.voice-card.dark-card cite { color: #b7b7bd; }
.voice-card.dark-card cite strong { color: var(--paper-bright); }
.about-belief .wp-block-quote { border: 0; padding: 0; margin: 0; font-style: normal; }
.about-belief .wp-block-quote p { margin: 0; font-size: inherit; line-height: inherit; letter-spacing: inherit; font-weight: inherit; }

/* -- images that used to be bare <img> ------------------------------------ */
.page-hero-image { margin: 0; }
.page-hero-image img { width: 100%; height: 100%; object-fit: cover; }
.wp-block-group > .wp-block-image.intro-photo { margin: 2rem 0 0; }
.intro-photo img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 1.25rem; }
.detail-intro--wide { grid-template-columns: .9fr 1.35fr .8fr; }
/* the fee panel's button shares the row with a long note and shrinks like the original <a> did */
.fee-panel .wp-block-buttons, .fee-panel .wp-block-button { flex: 0 1 auto; }
.fee-panel .wp-block-button .wp-block-button__link { white-space: normal; }
.detail-section--bright { background: var(--paper-bright); }


/* -- corrections found by the v2/v3 geometry comparison -------------------- */
.departure-date-sub { line-height: 1; }
.fee-panel .wp-block-button__link strong { display: inline; margin: 0; font-size: inherit; line-height: inherit; }
/* these two buttons sat inline after a paragraph in the design, so their
   top margin never collapsed with the paragraph's bottom margin */
.about-belief-copy .wp-block-buttons, .retreat-card-copy .wp-block-buttons { display: inline-flex; }


/* -- elements that were <div>/<span>/<a> and are now <p> must not inherit the
      design's contextual paragraph rules (".card-copy p", ".section-heading p",
      ".terrain-copy p:not(.eyebrow)" ...). Specificity is deliberately high. --- */
:is(.entry-content, .editor-styles-wrapper) .wp-block-group p.section-index { margin: 0; max-width: none; line-height: 1.47; font-size: .75rem; color: #676960; }
:is(.entry-content, .editor-styles-wrapper) .process-heading p.section-index, :is(.entry-content, .editor-styles-wrapper) .detail-section.dark p.section-index,
:is(.entry-content, .editor-styles-wrapper) .retreat-schedule p.section-index { color: rgba(255,255,255,.45); }
:is(.entry-content, .editor-styles-wrapper) .wp-block-group p.card-meta { margin: 0; max-width: none; line-height: 1.47; font-size: .64rem; color: #6d706a; }
:is(.entry-content, .editor-styles-wrapper) .retreat-card-copy p.card-meta { color: rgba(255,255,255,.62); }
:is(.entry-content, .editor-styles-wrapper) .wp-block-group p.card-link { max-width: none; line-height: 1.47; color: inherit; }
:is(.entry-content, .editor-styles-wrapper) .contact-heading p.email-link { display: inline-block; max-width: none; margin: 2rem 0 0; line-height: 1.47; color: inherit; font-weight: 700; }
:is(.entry-content, .editor-styles-wrapper) .terrain-facts p.stat-value { max-width: none; line-height: 1.47; color: inherit; }
:is(.entry-content, .editor-styles-wrapper) .terrain-facts p.stat-label { max-width: none; line-height: 1.47; color: #70736c; }
:is(.entry-content, .editor-styles-wrapper) .pillar-grid p.step-number { line-height: calc(1.0625rem * 1.47); color: #6e6e73; }
:is(.entry-content, .editor-styles-wrapper) .wp-block-group p.card-number, :is(.entry-content, .editor-styles-wrapper) .wp-block-group p.retreat-tag { line-height: 1.47; max-width: none; }

.voice-card cite br { display: none; }  /* strong + text stack as flex items; the <br> would become a third */
.fee-panel .stat-note { font-size: .8em; line-height: calc(1.0625rem * 1.47); color: inherit; }  /* was <small>, which inherited the panel colour */
.brand .wp-block-site-logo { line-height: inherit; }

.wp-block-image > figcaption { margin-bottom: 0; text-align: inherit; }

/* -- header: Site Logo + Site Title + Navigation + CTA --------------------
      The Navigation block plays two parts: the centred link row on wide
      screens (the design's .nav-links) and, under 1000px, the toggle button
      plus the dropdown panel (the design's .menu-toggle + open .nav-links).
      It therefore carries its own class, .site-nav, and not .nav-links. --- */
.brand .wp-block-site-title { margin: 0; font-size: inherit; font-weight: inherit; letter-spacing: inherit; line-height: inherit; }
.brand a { text-decoration: none; color: inherit; }
.header-cta { margin: 0; justify-self: end; }
.site-nav { font-size: .8125rem; position: static; }  /* the dropdown panel positions against the header, not the nav */
.site-nav .wp-block-navigation__container { gap: 1.45rem; }
.site-nav .wp-block-navigation-item__content { position: relative; text-decoration: none; }
.site-nav .wp-block-navigation-item__content::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -.35rem; height: 1px; background: currentColor; transition: right .25s; }
.site-nav .wp-block-navigation-item__content:hover::after, .site-nav .wp-block-navigation-item__content:focus-visible::after,
.site-nav .wp-block-navigation-item__content[aria-current="page"]::after, .site-nav .current-menu-item > .wp-block-navigation-item__content::after { right: 0; }
/* wide screens: the toggle never shows, the row is always open */
.site-nav .wp-block-navigation__responsive-container-open { display: none; }
@media (min-width: 1000.02px) {
  .site-nav .wp-block-navigation__responsive-container { display: block; position: static; }
}
/* up to 1000px: toggle button in the bar, links in a panel under it */
@media (max-width: 1000px) {
  .site-nav .wp-block-navigation__responsive-container-open { display: flex; }
  .site-nav .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none; }
}
.site-nav .wp-block-navigation__responsive-container-open {
  color: inherit; background: transparent; border: 0; padding: 0; width: 2rem; height: 2rem;
  align-items: center; justify-content: center; cursor: pointer;
}
.site-nav .wp-block-navigation__responsive-container-open svg { width: 22px; height: 22px; fill: currentColor; }
.site-nav .wp-block-navigation__responsive-container.is-menu-open {
  display: block; position: absolute; top: 100%; left: 0; right: 0; bottom: auto; inset: auto 0 auto 0; top: 100%;
  width: auto; height: auto; padding: 1.5rem var(--gutter) 1.75rem; overflow: visible;
  color: var(--ink); background: rgba(255,255,255,.98); border-bottom: 1px solid var(--line);
  -webkit-backdrop-filter: saturate(180%) blur(20px); backdrop-filter: saturate(180%) blur(20px);
}
.site-header .site-nav .is-menu-open .wp-block-navigation__responsive-close { position: static; width: auto; }
.site-header .site-nav .is-menu-open .wp-block-navigation__responsive-dialog { position: static; margin: 0; }
.site-header .site-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { display: block; padding: 0; }
.site-header .site-nav .is-menu-open .wp-block-navigation__container { display: flex; flex-direction: column; align-items: flex-start; gap: 1.2rem; }
.site-header .site-nav .is-menu-open .wp-block-navigation-item__content { font-size: 1rem; }
/* one button toggles the panel (see site.js); it shows a cross while the panel is open */
.site-nav .wp-block-navigation__responsive-container-close { display: none; }
.site-nav:has(.is-menu-open) .wp-block-navigation__responsive-container-open svg { display: none; }
.site-nav:has(.is-menu-open) .wp-block-navigation__responsive-container-open::before {
  content: ""; width: 22px; height: 22px; background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m13.06 12 6.47-6.47-1.06-1.06L12 10.94 5.53 4.47 4.47 5.53 10.94 12l-6.47 6.47 1.06 1.06L12 13.06l6.47 6.47 1.06-1.06L13.06 12Z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* -- footer --------------------------------------------------------------- */
.site-footer > p.copyright { display: block; }
.site-footer .footer-links { font-size: .8125rem; }
.site-footer .footer-links .wp-block-navigation__container { gap: 1.4rem; }
.site-footer .footer-links .wp-block-navigation__responsive-container-open { display: none; }
.site-footer .footer-links .wp-block-navigation__responsive-container { display: block; position: static; background: transparent; padding: 0; }
.copyright { margin: 0; }

/* =====================================================================
   3. Responsive corrections.
      The design's "scale" pass above re-declares grid columns after the
      original media queries, so on phones and tablets those columns
      never collapsed (text in a 40%-wide column, headings orphaned in
      the wrong column, hero controls overlapping). These rules come last
      and win on equal specificity.
   ===================================================================== */
@media (max-width: 1000px) {
  .about-story, .detail-intro { grid-template-columns: .6fr 1.4fr; }
  .about-story-copy, .detail-intro-copy, .detail-aside { grid-column: 2; }
  .about-story > h2, .about-story > .section-index { grid-column: 1 / -1; }
  .retreat-overview, .retreat-who, .process-section, .contact-section, .about-belief,
  .community-story, .vision-section, .terrain-section, .visualization, .two-column { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  /* Every grid becomes a single column; every placed item goes to column 1. */
  .section-heading, .section-heading.compact, .listing-intro,
  .about-story, .detail-intro, .two-column, .retreat-who, .retreat-overview,
  .process-section, .contact-section, .about-belief, .community-story, .vision-section,
  .terrain-section, .visualization, .experience-grid, .listing-card, .logistics-grid,
  .inclusion-grid, .pillar-grid, .community-facts, .work-images, .terrain-facts { grid-template-columns: 1fr; }
  .about-story-copy, .detail-intro-copy, .detail-aside, .about-story > h2, .about-story > .section-index,
  .section-heading > p, .listing-intro > p, .community-facts, .logistics-grid .wide { grid-column: 1; }
  .detail-aside { margin-top: 1.5rem; }
  .section-index { margin-bottom: 1.5rem; }
  .detail-intro-copy p, .about-story-copy p { max-width: none; }

  /* Hero: stop positioning the content absolutely and let it stack.
     Photos and wash stay behind as backgrounds; copy, slider controls
     and the departure card flow bottom-up with real gaps between them. */
  .hero {
    height: auto; min-height: 100svh;
    display: flex; flex-direction: column; justify-content: flex-end;
    padding: 7.5rem 1.25rem 1.25rem; gap: 1.25rem;
  }
  .hero-location { top: 4.5rem; left: 1.25rem; }
  /* relative, not static: the slides and wash are absolutely positioned
     and would otherwise paint over in-flow content. */
  .hero-copy, .hero-slider-ui, .departure-card {
    position: relative; inset: auto; z-index: 2; width: auto; max-width: none;
  }
  .hero-copy { order: 1; }
  .hero-slider-ui { order: 2; display: flex; align-items: center; gap: 1rem; }
  .hero-slider-ui p { display: none; }
  .departure-card { order: 3; margin-top: .25rem; }
  .hero-actions { margin-top: 1.25rem; }
  .hero h1 { font-size: 2.6rem; }
  .hero-intro { font-size: 1rem; line-height: 1.5; }
  .retreat-card::before { background: linear-gradient(0deg, rgba(9,12,11,.88), rgba(9,12,11,.2)); }
}

/* =====================================================================
   5. Native-block mapping layer, phone and tablet.
      Same purpose as section 4, for the rules above that only apply on
      small screens: the block WordPress emits must land exactly where
      the design's element landed.
   ===================================================================== */
@media (max-width: 1000px) {
  /* ".section-heading > p { grid-column: 2 }" now also matches the index, which is a <p> */
  .section-heading > p.section-index, .listing-intro > p.section-index { grid-column: 1; }
  /* the widened bouldering intro keeps its three columns on tablets, as the inline style did */
  .detail-intro.detail-intro--wide { grid-template-columns: .9fr 1.35fr .8fr; }
}
@media (max-width: 720px) {
  :is(.entry-content, .editor-styles-wrapper) .wp-block-group p.section-index { margin-bottom: 1.5rem; }
  .detail-intro.detail-intro--wide { grid-template-columns: 1fr; }
  .detail-intro--wide .detail-intro-copy, .detail-intro--wide .detail-aside { grid-column: 1; }
  /* .detail-cta becomes a column with align-items:stretch, so its button filled the width */
  .detail-cta .wp-block-buttons, .detail-cta .wp-block-button, .detail-cta .wp-block-button .wp-block-button__link { width: 100%; }
  .detail-cta .wp-block-button .wp-block-button__link { display: flex; }
  /* ".session-flow li" collapsed to one column; the step is a Group now */
  .session-flow .flow-step { grid-template-columns: 1fr; gap: .5rem; }
  .wp-block-buttons.hero-actions { align-items: flex-start; }
  /* body text drops to 1rem on phones, so the inherited line-heights follow */
  :is(.entry-content, .editor-styles-wrapper) .pillar-grid p.step-number { line-height: calc(1rem * 1.47); }
  .fee-panel .stat-note { line-height: calc(1rem * 1.47); }
}
