/* Approved editorial revision. Desktop portrait geometry intentionally unchanged. */
.identity{width:max-content;text-align:center}.identity h1{line-height:.84}.identity h1 span{display:block;width:max-content;margin-inline:auto}.identity .profession{margin:9px auto 0;letter-spacing:3px;font-weight:300;line-height:1.15;white-space:nowrap}.identity .registration{font-size:13px;margin-top:5px;line-height:1.3;letter-spacing:.6px}.hero-copy h2{font-size:55px}.hero-copy>p{font-size:17px;line-height:1.65;max-width:390px}.hero-note{display:none}
/* Same inset light, inset frame and state sheen as the supplied button, recolored green. */
.button-frame{position:relative;display:inline-block;isolation:isolate;vertical-align:middle;margin:4px}.button-frame::before{content:'';position:absolute;inset:-4px;z-index:-1;border-radius:28px;background:linear-gradient(0deg,#102d2440,#102d2480);box-shadow:inset 0 -8px 8px -6px #0000,inset 0 -16px 16px -8px #0000,1px 1px 1px #fff6,2px 2px 2px #fff3,-1px -1px 1px #18352e20,-2px -2px 2px #18352e10;transition:box-shadow .4s}
.button,.button-green,.button-ivory{--highlight-color-hue:156deg;display:inline-flex;justify-content:center;gap:0;border-radius:24px;min-height:58px;padding:16px 25px;background:#17372e;color:#f3efe6;border:1px solid #f3efe633;font:400 16px/1.5 var(--sans);box-shadow:inset 0 1px 1px #ffffff33,inset 0 2px 2px #ffffff26,inset 0 4px 4px #ffffff1a,inset 0 8px 8px #ffffff0d,inset 0 16px 16px #ffffff0d;transition:background-color .4s,border-color .4s,box-shadow .4s;transform:none;filter:none;overflow:hidden;text-align:center;white-space:normal}
.button::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(0deg,#e2fff0,#8ebba5 2%,#8ebba540 8%,transparent 45%);opacity:0;transition:opacity .4s}.button-label{position:relative;z-index:1;display:block}.btn-letter{display:inline-block;transition:color .4s,text-shadow .4s;color:var(--ivory)}.button:not(:disabled):hover,.button:not(:disabled):focus-visible{transform:none;filter:none;background:#1b4035;border-color:#b8dac488;box-shadow:inset 0 1px 1px #ffffff33,inset 0 2px 2px #ffffff26,inset 0 -8px 12px -6px #e2fff066,inset 0 -16px 16px -8px #93c5aa40}.button:not(:disabled):hover::after,.button:not(:disabled):focus-visible::after{opacity:.85}.button:not(:disabled):hover .btn-letter{animation:button-letter-glow 1.5s ease-in-out;animation-delay:calc(var(--i)*.035s)}.button-frame:has(.button:not(:disabled)):hover::before{box-shadow:inset 0 -8px 8px -6px #edfff080,inset 0 -16px 16px -8px #78b79755,1px 1px 1px #fff5,2px 2px 2px #fff2,-1px -1px 1px #0002}.button:not(:disabled):active{transform:none;background:#28513f;border-color:#c1e4cfaa;box-shadow:inset 0 2px 8px #062c22aa,inset 0 -2px 8px #d8ffea66}.button:disabled{opacity:.65;cursor:default}.button:disabled::after{opacity:0}.hero-copy>.button-frame{margin-top:30px}.hero-copy .button{margin-top:0}.contact-actions .button-frame{display:flex}.contact-actions .button{width:100%}.button span.btn-letter{font-size:inherit;font-weight:inherit}.button-frame:has(#dialog-next){max-width:100%}
@keyframes button-letter-glow{50%{color:#fff;text-shadow:0 0 5px #c4efdaaa}}
/* Readable body hierarchy, with display titles kept at their approved sizes. */
.section-heading>p,.real-life p:not(.lead),.consideration p,.process-heading p,.steps p,.endurance-strip p,.about-copy p,.faq-grid>div>p,details p,.contact p{font-size:17px!important;line-height:1.75}.card-description{font-size:16px;padding-right:0;line-height:1.6}.card-number{font-size:12px;letter-spacing:1.3px}.eyebrow{font-size:12px;letter-spacing:1.7px}.step-tag{font-size:11px;letter-spacing:1.3px}summary{font-size:17px;line-height:1.6}.contact-caption{font-size:13px}.booking p{font-size:16px!important}.contact .pending-caption{font-size:14px!important}.footer-profession,.footer-bottom{font-size:12px}.footer-profession{letter-spacing:1px}.scroll-mark{font-size:11px}dialog p,dialog li{font-size:17px}.dialog-note{font-size:14px!important}.line-icon{width:36px;flex-shrink:0;padding-top:2px}.line-icon svg{width:36px;height:36px;display:block}.about-copy{padding-block:50px}
/* Connected timeline: horizontal on desktop, vertical on smaller screens. */
.steps{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:42px;margin-top:60px}.steps::before{content:'';position:absolute;left:28px;right:28px;top:28px;height:1px;background:linear-gradient(90deg,#c5b89f,#c5b89f70)}.steps li{position:relative;display:flex;flex-direction:column;gap:24px;border:0;padding:0}.step-number{position:relative;z-index:1;display:grid;place-items:center;width:58px;height:58px;border:1px solid #c5b89f88;border-radius:50%;background:linear-gradient(135deg,#345049,#142d2a);box-shadow:inset 0 1px 1px #ffffdd25;font-size:31px;flex-shrink:0}.steps h3{font-size:32px;line-height:1.12}.steps p{margin-top:16px}.step-tag{text-align:left;margin-top:auto;padding-top:6px}.endurance-strip{margin-top:50px}
@media(min-width:701px) and (max-height:800px){.identity .profession{margin-top:7px}.hero-copy{margin-top:27px}.hero-copy h2{font-size:46px}.hero-copy>p{font-size:16px;margin-top:17px}.hero-copy>.button-frame{margin-top:22px}}
@media(min-width:701px) and (max-width:1050px){.hero-copy h2{font-size:49px}.hero-copy>p{font-size:16px;max-width:310px}.hero-copy{max-width:345px}.hero-copy .button{padding-inline:20px;font-size:15px}.card-title{font-size:30px}.card-number{font-size:10px}.card-description{font-size:15px}.about-copy{padding-inline:22px}.steps{gap:25px}}
@media(max-width:850px){.steps{display:block;margin-top:40px}.steps::before{top:29px;bottom:90px;left:28px;right:auto;width:1px;height:auto}.steps li{display:grid;grid-template-columns:58px 1fr;gap:12px 25px;padding:0 0 40px}.steps li:last-child{padding-bottom:0}.steps li>div{padding-top:8px}.step-tag{grid-column:2;margin-top:0;padding-top:0}.steps h3{font-size:29px}}
@media(max-width:700px){
.hero{height:1040px;min-height:1040px}.hero-inner{padding-top:32px}.identity{position:relative;z-index:3;text-align:center;width:max-content;margin:0}.identity h1{font-size:32px;line-height:.86;letter-spacing:1px}.identity h1 span{margin-inline:auto}.identity .profession{font-size:11px;letter-spacing:3px;line-height:1.15;margin-top:7px}.identity .registration{font-size:12px;letter-spacing:0;margin-top:4px;white-space:nowrap}.hero-image{top:86px;height:660px;width:100%;right:0;display:flex;align-items:flex-start;justify-content:center;mask-image:linear-gradient(180deg,#000 66%,transparent 97%);-webkit-mask-image:linear-gradient(180deg,#000 66%,transparent 97%)}.hero-image img{width:116%;max-width:none;height:auto;flex-shrink:0;margin:0;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.hero-copy{top:590px;padding-inline:22px;z-index:2;isolation:isolate}.hero-copy::before{content:'';position:absolute;z-index:-1;left:0;right:0;top:28px;bottom:-25px;background:linear-gradient(180deg,#f3efe600,#f3efe6e8 70px,#f3efe6 150px)}.hero-copy>.eyebrow{font-size:11px;letter-spacing:1.4px;color:#fff;text-shadow:0 1px 3px #000c,0 0 6px #0008}.hero-copy h2{font-size:40px;line-height:1.04;margin-top:17px;letter-spacing:-.8px}.hero-copy>p{font-size:16px;line-height:1.65;max-width:360px;margin-top:20px}.hero-copy>.button-frame{margin-top:27px;max-width:100%}.hero-copy .button{font-size:16px;margin:0;padding:16px 22px;min-height:58px}.hero-note{display:none}
.eyebrow{font-size:11px;letter-spacing:1.4px}.section-heading>p,.real-life p:not(.lead),.consideration p,.process-heading p,.steps p,.endurance-strip p,.about-copy p,.faq-grid>div>p,details p,.contact p{font-size:16px!important;line-height:1.75}.card-description{font-size:16px;line-height:1.65}.card-number{font-size:11px}.consideration{gap:18px}.line-icon{width:32px}.line-icon svg{height:32px;width:32px}summary{font-size:16px}.step-tag{font-size:10px}.about-copy{padding-top:0;padding-bottom:35px}.contact-caption{font-size:12px}.contact .button{font-size:16px}.booking p{font-size:15px!important}.footer-top{flex-wrap:wrap;gap:24px}.footer-name{font-size:24px}.footer-profession{font-size:10px}.footer-bottom{font-size:12px}.footer-bottom>div{flex-wrap:wrap}.footer-top p{font-size:20px;max-width:none}.contact .pending-caption{font-size:13px!important}dialog p,dialog li{font-size:16px}.dialog-note{font-size:13px!important}
}
@media(max-width:370px){.hero{height:1070px;min-height:1070px}.hero-image{top:110px;height:600px}.identity h1{font-size:30px}.hero-copy{top:565px}.hero-copy h2{font-size:37px}.hero-copy>p{font-size:16px}.hero-copy .button{font-size:15px;padding-inline:18px}.steps li{gap:12px 18px}.card-number{font-size:10px}.card-title{font-size:34px}}
@media(max-width:700px){.hero-image{mask-image:linear-gradient(180deg,transparent,#000 7%,#000 66%,transparent 97%);-webkit-mask-image:linear-gradient(180deg,transparent,#000 7%,#000 66%,transparent 97%)}}
@media(prefers-reduced-motion:reduce){.button,.button::after,.button-frame::before,.btn-letter{animation:none!important;transition:none!important}}

/* Proportion refinement: capsule CTAs and a complete first mobile viewport. */
.button-frame::before{border-radius:999px}
.button span.button-label[aria-hidden]{font:inherit;white-space:nowrap}
.button,.button-green,.button-ivory,.contact .button{border-radius:999px;min-height:46px;padding:10px 22px;font-size:14px;line-height:1.5}
.identity .registration{font-size:15px}
.contact-actions .button{background:linear-gradient(150deg,#fff9eb,#e2d4bd);border-color:#fff5de;color:#18392f;box-shadow:inset 0 1px 1px #fff,inset 0 3px 4px #ffffff88,inset 0 -2px 4px #a38e6b33}
.contact-actions .button .btn-letter{color:#18392f}
.contact-actions .button:disabled{opacity:1;filter:none}
.contact-actions .button-frame::before{background:linear-gradient(0deg,#e2d4bd77,#fff9eb55)}

@media(min-width:701px) and (max-width:1050px){.hero-copy .button{font-size:14px;padding:10px 20px}}
@media(max-width:700px){
 .hero{height:max(740px,100svh);min-height:740px}
 .hero-inner{padding-top:26px}
 .identity h1{font-size:26px;line-height:.86;letter-spacing:.8px}
 .identity .profession{margin-top:5px}
 .identity .registration{font-size:12px;margin-top:3px}
 .hero-image{top:65px;height:calc(100% - 190px);align-items:flex-start;mask-image:linear-gradient(180deg,transparent,#000 7%,#000 50%,transparent 86%);-webkit-mask-image:linear-gradient(180deg,transparent,#000 7%,#000 50%,transparent 86%)}
 .hero-image img{width:100%;height:auto}
 .hero-copy{top:auto;bottom:24px;padding-inline:22px}
 .hero-copy::before{top:22px;bottom:-25px;background:linear-gradient(180deg,#f3efe600,#f3efe6f5 42px,#f3efe6 110px)}
 .hero-copy h2{font-size:38px;line-height:1.04;margin-top:13px}
 .hero-copy>p{font-size:16px;line-height:1.55;margin-top:15px}
 .hero-copy>.button-frame{margin-top:20px}
 .hero-copy .button,.contact .button{font-size:14px;min-height:46px;padding:10px 21px}
}
@media(max-width:370px){.hero{height:max(740px,100svh);min-height:740px}.identity h1{font-size:25px}.hero-image{top:70px;height:calc(100% - 190px)}.hero-copy{top:auto;bottom:22px}.hero-copy h2{font-size:34px}.hero-copy>p{font-size:15px;line-height:1.55}.hero-copy .button{font-size:13px;padding:10px 19px}.hero-copy>.button-frame{margin-top:17px}}
.locations{margin-top:60px;padding-top:36px;border-top:1px solid #e8e0cb40;text-align:left}.locations>.eyebrow{text-align:center;color:#d2d9cc}.location-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:30px}.location-type{font-size:12px;letter-spacing:1px;color:#c5cfbf}.location h3{font-size:32px;margin-top:10px}.address-row{display:flex;align-items:center;gap:16px;margin-top:18px}.address-row address{font:400 16px/1.7 var(--sans);color:#e4e8dc;max-width:270px}.map-link{flex-shrink:0;display:grid;place-items:center;min-width:46px;min-height:46px;border:1px solid #e6e8d559;border-radius:50%;background:linear-gradient(135deg,#f3efe617,#f3efe604);box-shadow:inset 0 1px 1px #fff2;transition:background .25s,transform .25s}.map-link svg{width:22px;height:24px}.map-link:hover{background:#f3efe626;transform:translateY(-2px)}.instagram-link{display:inline-flex;align-items:center;justify-content:center;gap:12px;margin-top:42px;padding:10px 0;text-decoration:none;font-size:15px;color:#e4e8dc;min-height:46px}.instagram-link svg{height:24px;width:24px}.instagram-link:hover{color:white}

@media(max-width:850px){.location-grid{grid-template-columns:1fr;gap:0;max-width:480px;margin-inline:auto}.location{padding:26px 0;border-bottom:1px solid #e8e0cb26}.location:last-child{border-bottom:0}.location h3{font-size:30px}.address-row{justify-content:space-between;margin-top:14px}.locations{margin-top:44px;padding-top:30px}.instagram-link{font-size:14px;margin-top:25px}.address-row address{font-size:16px}}
@media(prefers-reduced-motion:reduce){.contact-actions .btn-letter{animation:none!important}.map-link{transition:none;transform:none}}

/* Contact CTAs share the hero hover, focus, active, sheen and letter animation rules. */
.contact-actions .button:is(:hover,:focus-visible,:active) .btn-letter{color:var(--ivory)}
.locations>.contact-caption{text-align:center;margin-top:12px;color:#d2d9cc}
#booking-dialog{width:min(640px,calc(100% - 36px));padding:50px 38px;background-color:var(--ivory);background-image:url('/assets/grain.svg')}
#booking-dialog h2{font-size:46px;line-height:1.08;margin:20px 0 25px}
#booking-dialog p{font-size:17px;line-height:1.7}
#booking-dialog.has-calendly{width:min(1000px,calc(100% - 30px));padding:45px 20px 20px}
#calendly-slot iframe{display:block;border:0;width:100%;height: min(650px,65svh);background:var(--ivory)}
@media(max-width:700px){#booking-dialog{padding:45px 25px 32px}#booking-dialog h2{font-size:39px}#booking-dialog p{font-size:16px}}

/* Requested +2px hierarchy adjustments, scoped to the specified page labels. */
.objectives .section-heading .eyebrow,.real-life .eyebrow,.process-heading>.eyebrow,.endurance-strip>.eyebrow,.about-copy>.eyebrow,.faq-grid>div>.eyebrow,.contact-inner>.eyebrow,#locations-title{font-size:14px}
.card-number{font-size:14px}
.real-life .editorial-note p{font-size:19px!important}
.locations>.contact-caption{font-family:var(--serif);font-size:32px;font-weight:400;font-style:normal;line-height:1.05;letter-spacing:normal;color:var(--ivory)}
@media(min-width:701px) and (max-width:1050px){.card-number{font-size:12px}}
@media(max-width:850px){.locations>.contact-caption{font-size:30px}}
@media(max-width:700px){.objectives .section-heading .eyebrow,.real-life .eyebrow,.process-heading>.eyebrow,.endurance-strip>.eyebrow,.about-copy>.eyebrow,.faq-grid>div>.eyebrow,.contact-inner>.eyebrow,#locations-title{font-size:13px}.card-number{font-size:13px}.real-life .editorial-note p{font-size:18px!important}}
@media(max-width:370px){.card-number{font-size:12px}}

/* Requested -2px refinement for the attendance caption. */
.locations>.contact-caption{font-size:30px}
@media(max-width:850px){.locations>.contact-caption{font-size:28px}}
.card-number{text-shadow:0 1px 3px #071b1ae6,0 0 7px #071b1aa6}
.service-card[data-service="endurance"] img{object-position:center top}
