/* Scroll-bound reveals: no page-wide reveal timer or distant pre-trigger. */
.js-reveal .reveal{opacity:0;transform:translateY(28px);transition:opacity .95s cubic-bezier(.2,.65,.2,1),transform 1.05s cubic-bezier(.2,.65,.2,1);transition-delay:0s;will-change:opacity,transform}
.js-reveal .reveal.visible{opacity:1;transform:none;will-change:auto}
.js-reveal .reveal-portrait{transform:translateY(10px) scale(1.018);transition-duration:1.15s}
.js-reveal .identity{transition-delay:80ms}.js-reveal .hero-image{transition-delay:160ms}.js-reveal .hero-copy{transition-delay:240ms}
.js-reveal .service-card.visible:hover{transform:translateY(-7px) rotateX(1deg)}
:root{--cookie-font:12px;--cookie-space:0px}
body.has-cookie-banner{padding:0}
.cookie-banner{position:fixed;z-index:900;bottom:16px;left:50%;transform:translateX(-50%);width:min(1000px,calc(100% - 32px));display:flex;align-items:center;gap:24px;padding:16px 45px 16px 22px;border:1px solid #fff9;border-radius:20px;color:var(--forest);background:linear-gradient(140deg,#f6f0e5fa,#e4d8c4f5);box-shadow:inset 0 1px 2px #fff,0 8px 25px #142d2a25;backdrop-filter:blur(14px);font:400 var(--cookie-font)/1.5 var(--sans)}
.cookie-banner[hidden]{display:none}
.cookie-copy{flex:1}.cookie-copy strong{font-size:inherit;font-weight:600}.cookie-copy p{font-size:inherit;margin:3px 0 0;color:#40554b}
.cookie-actions{display:flex;gap:8px;flex-wrap:wrap}
.cookie-actions button,.cookie-settings-actions button{font:400 var(--cookie-font)/1.3 var(--sans);min-height:44px;border:1px solid #536c6055;border-radius:99px;padding:10px 15px;background:#f7f1e8;color:var(--forest);cursor:pointer;box-shadow:inset 0 1px 1px #fff9;transition:background .2s}
.cookie-actions button[data-cookie=accept],.cookie-settings-actions button[data-cookie=save]{background:linear-gradient(140deg,#355147,#16372d);color:var(--ivory);border-color:#48695b}
.cookie-actions button:hover,.cookie-settings-actions button:hover{filter:brightness(1.06)}
.cookie-dismiss{position:absolute;right:8px;top:5px;width:36px;height:36px;border:0;background:transparent;color:var(--forest);font:400 21px var(--sans);cursor:pointer}
.cookie-reopen{font:inherit;color:inherit;border:0;padding:0;background:none;cursor:pointer;text-align:left}.cookie-reopen:hover{text-decoration:underline}
#cookie-settings{padding:45px 30px 30px;max-width:580px;width:calc(100% - 32px);font:400 var(--cookie-font)/1.6 var(--sans)}
#cookie-settings h2{font-size:38px;margin:0 0 22px}#cookie-settings p{font-size:var(--cookie-font);line-height:1.6;margin:0}
.cookie-category{display:flex;justify-content:space-between;gap:22px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line)}.cookie-category strong,.cookie-category span{font-size:var(--cookie-font)}.cookie-category span{white-space:nowrap}.cookie-category p{color:var(--muted);margin-top:7px!important}.cookie-category input{accent-color:var(--forest);width:23px;height:23px;flex-shrink:0;cursor:pointer}.cookie-settings-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:26px}
@media(max-width:700px){
 body.has-cookie-banner{padding:0}
 .cookie-banner{top:calc(10px + env(safe-area-inset-top,0px));bottom:auto;left:10px;right:10px;transform:none;width:auto;display:block;border-radius:17px;padding:12px 15px 11px}
 .cookie-copy{padding-right:20px}.cookie-actions{gap:6px;margin-top:9px;justify-content:space-between}.cookie-actions button{padding:8px 11px;min-height:40px;flex:1;white-space:nowrap}.cookie-dismiss{right:2px;top:1px}
 
 #cookie-settings{padding:44px 24px 27px}#cookie-settings h2{font-size:34px}
}
@media(prefers-reduced-motion:reduce){.js-reveal .reveal{opacity:1!important;transform:none!important;transition:none!important;will-change:auto}.cookie-banner,.cookie-actions button,.cookie-settings-actions button{transition:none}}

/* Compact consent surface overlays the page without moving the portrait. */
.cookie-banner{padding:12px 43px 12px 20px;gap:18px}
.cookie-copy p{margin:0}
.cookie-actions button{min-height:36px;padding:7px 12px}
@media(min-width:701px){
 .identity h1{font-size:52px}
 .identity .registration{font-size:17px;margin-top:6px}
 .hero-copy{margin-top:32px;max-width:520px}
 .hero-copy h2{font-size:64px}
 .objectives .section-heading{display:block}
 .objectives .section-heading>p{max-width:680px;margin-top:25px;padding-bottom:0}
}
@media(min-width:701px) and (max-height:800px){
 .identity h1{font-size:42px}
 .hero-inner{padding-top:32px}
 .hero-copy{margin-top:23px}
 .hero-copy h2{font-size:54px}
}
@media(min-width:701px) and (max-width:1050px){
 .identity h1{font-size:42px}
 .hero-copy{max-width:390px}
 .hero-copy h2{font-size:55px}
}
@media(max-width:700px){
 .cookie-banner{padding:10px 13px;gap:0}
 .cookie-actions{margin-top:7px;gap:6px}
 .cookie-actions button{min-height:32px;padding:6px 9px}
 .hero-inner{padding-top:26px}
}

@media(max-width:700px){.cookie-banner{top:auto;bottom:calc(10px + env(safe-area-inset-bottom,0px))}}
#booking-dialog.has-calendly{width:min(1000px,calc(100% - 24px));padding:40px 12px 12px;max-height:94svh}
#booking-dialog.has-calendly>.eyebrow,#booking-dialog.has-calendly>h2{display:none}
#calendly-slot{position:relative}
#calendly-embed{width:100%;height:min(700px,calc(94svh - 64px));min-height:360px}
#calendly-embed iframe{display:block;width:100%;height:100%;border:0}
#booking-dialog.is-prepared:not([open]){display:block;visibility:hidden;position:fixed;left:-12000px;top:0;pointer-events:none}
#booking-dialog.has-calendly #booking-description{position:absolute;left:30px;top:25px;pointer-events:none}

/* Independent header keeps every Calendly element below the close control. */
#booking-dialog,#booking-dialog.has-calendly{width:min(960px,calc(100% - 32px));padding:0;border:1px solid #fff9;border-radius:22px;overflow:hidden;max-height:90svh;background:var(--ivory);box-shadow:0 18px 65px #09261e40}
#booking-dialog::backdrop{background:#142d2a80;backdrop-filter:blur(3px)}
.booking-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 20px;border-bottom:1px solid #17372e18;background:linear-gradient(130deg,#f6f0e5,#eae2d4)}
#booking-dialog .booking-header h2{display:block;margin:0;font:400 31px/1.1 var(--serif);letter-spacing:-.3px;color:var(--forest)}
.booking-close{position:static;flex-shrink:0;display:grid;place-items:center;width:44px;height:44px;border:1px solid #17372e22;border-radius:50%;background:#fff6;color:var(--forest);font:300 27px/1 var(--sans);cursor:pointer;box-shadow:inset 0 1px 1px #fff}
.booking-close:hover{background:#fff}.booking-close:focus-visible{outline:2px solid var(--forest);outline-offset:3px}
#calendly-slot{overflow:auto;overscroll-behavior:contain;background:#fff}
#calendly-embed{height:min(620px,calc(90svh - 74px));min-height:0;background:#fff}
@media(max-width:700px){#booking-dialog,#booking-dialog.has-calendly{width:calc(100% - 24px);border-radius:20px}.booking-header{padding:12px 14px;gap:12px}#booking-dialog .booking-header h2{font-size:27px}#calendly-embed{height:min(600px,calc(90svh - 70px))}}

#booking-dialog,#booking-dialog.has-calendly{max-width:960px}
