header nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:5px}
.booking-page{background:#f4ead9}
.booking-page header{justify-content:flex-end}
.booking-hero{display:grid;grid-template-columns:1.15fr .85fr;min-height:620px;background:#204537;color:var(--paper)}
.booking-hero-copy{padding:clamp(4rem,8vw,9rem) 7vw;align-self:center}
.booking-hero h1{font:clamp(5rem,9vw,9rem)/.77 var(--serif);letter-spacing:-.05em;margin:.18em 0 .28em}
.booking-hero p:not(.kicker){max-width:490px;line-height:1.65}
.booking-hero img{width:100%;height:100%;object-fit:cover;max-height:800px}
.booking-content{padding:clamp(4rem,8vw,8rem) 7vw;background:#112620;color:#f8efe1;overflow:hidden}
.booking-stage-head{display:flex;justify-content:space-between;gap:1rem;align-items:center;border-top:1px solid #b9ccb29c;padding-top:1.1rem}
.booking-stage-head span{font-size:.7rem;letter-spacing:.2em;color:#b8c6b7}
.booking-intro{display:flex;align-items:end;justify-content:space-between;gap:4rem;margin:3rem 0 4rem}
.booking-intro h2,.booking-next h3{font:clamp(4.5rem,9vw,9.5rem)/.81 var(--serif);letter-spacing:-.045em;margin:0}
.booking-intro h2 em,.booking-next h3 em{font-weight:400;color:#f7bb92}
.booking-intro>p{max-width:300px;line-height:1.55;color:#c9d6c8}
.booking-experience{display:grid;grid-template-columns:minmax(290px,.92fr) minmax(0,1.08fr);gap:clamp(1rem,3vw,3rem);min-height:590px}
.portrait-feature{display:flex;flex-direction:column;justify-content:end;gap:1.4rem;padding:clamp(2rem,4vw,4rem);border:1px solid #8fa99a;background:radial-gradient(circle at 80% 20%,#375445 0,transparent 45%),#1a352b}
.portrait-feature span{font-size:.7rem;letter-spacing:.2em;color:#f7bb92;font-weight:700}
.portrait-feature strong{font:clamp(3.5rem,6vw,7rem)/.92 var(--serif);letter-spacing:-.04em;max-width:7ch}
.portrait-feature p{max-width:320px;color:#c9d6c8;line-height:1.65}
.booking-visual{position:relative;min-width:0;min-height:590px;overflow:hidden;background:#315042}
.booking-visual img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.87) contrast(1.05);animation:scene-arrive .6s ease-out both}
.booking-visual::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,#05171191 100%);pointer-events:none}
.booking-visual p,.visual-corner{position:absolute;z-index:2;font-size:.67rem;letter-spacing:.2em;font-weight:700}
.booking-visual p{left:2rem;bottom:1.4rem}
.visual-corner{right:2rem;top:1.6rem}
.focus-ring{position:absolute;z-index:2;left:50%;top:50%;width:min(38vw,250px);aspect-ratio:1;border:1px solid #fff9;border-radius:50%;transform:translate(-50%,-50%);animation:focus-breathe 4s ease-in-out infinite;pointer-events:none}
.focus-ring::before,.focus-ring::after{content:"";position:absolute;background:#fff9}
.focus-ring::before{width:1px;height:38px;left:50%;top:-19px}
.focus-ring::after{height:1px;width:38px;top:50%;left:-19px}
.focus-ring span{position:absolute;inset:16%;border:1px solid #fff7;border-radius:50%}
.booking-transition{display:flex;align-items:center;gap:1.5rem;margin:clamp(4rem,8vw,8rem) 0}
.transition-line{flex:1;height:1px;background:#92aa99}
.transition-orbit{font-size:3rem;color:#f7bb92;animation:orbit 14s linear infinite}
.booking-next{display:flex;justify-content:space-between;align-items:end;gap:4rem}
.booking-next>div{max-width:780px}
.booking-next h3{font-size:clamp(4rem,7.4vw,8.2rem);margin:.35em 0}
.booking-next p:not(.kicker){line-height:1.6;max-width:560px;color:#d6e0d2}
.booking-next #selected-shoot{color:#f7bb92;font-weight:700;font-size:.9rem;letter-spacing:.04em}
.booking-next .booking-hours{font-size:.78rem;letter-spacing:.13em;text-transform:uppercase;margin-top:2rem}
.reveal-calendar{min-width:260px;min-height:115px;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem;background:#e7d4b8;border:0;color:#142b23;text-align:left;font:1.45rem/1 var(--serif);cursor:pointer;transition:transform .3s,background .3s}
.reveal-calendar:hover,.reveal-calendar:focus-visible{background:#f7bb92;transform:translateY(-6px)}
.reveal-arrow{font:2rem var(--serif)}
.calendar-live{margin-top:3rem;background:#1c302a;color:#f4ead8;animation:calendar-arrive .55s ease-out both}
.calendar-live[hidden]{display:none}
.calendar-live iframe{filter:invert(.9) hue-rotate(180deg);display:block;width:100%;height:700px;border:0}
.calendar-live p{margin:0;padding:.9rem 1rem;text-align:center;font-size:.8rem}
.calendar-live a{text-underline-offset:3px}
@keyframes scene-arrive{from{opacity:.4;transform:scale(1.065)}to{opacity:1;transform:scale(1)}}
@keyframes focus-breathe{50%{transform:translate(-50%,-50%) scale(1.09);opacity:.65}}
@keyframes orbit{to{transform:rotate(360deg)}}
@keyframes calendar-arrive{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:850px){.booking-page header nav{gap:1rem;flex-wrap:wrap}.booking-hero{grid-template-columns:1fr}.booking-hero-copy{padding:5rem 18px}.booking-hero img{height:300px}.booking-content{padding:4rem 18px}.booking-intro,.booking-next{display:block}.booking-intro>p{margin-top:2rem}.booking-experience{grid-template-columns:1fr}.portrait-feature{min-height:300px}.booking-visual{min-height:370px;height:55vh}.booking-next .reveal-calendar{margin-top:2rem;width:100%}.calendar-live iframe{height:720px}}
@media(prefers-reduced-motion:reduce){.reveal-calendar{transition:none}.booking-visual img,.focus-ring,.transition-orbit,.calendar-live{animation:none}}
.location-stage{display:grid;grid-template-columns:minmax(270px,.72fr) minmax(0,1.28fr);gap:clamp(1rem,3vw,3rem);margin-top:clamp(6rem,10vw,10rem);align-items:stretch}
.location-copy{display:flex;flex-direction:column;align-items:flex-start}
.location-copy h3{font:clamp(4.2rem,7.5vw,8.5rem)/.82 var(--serif);letter-spacing:-.045em;margin:.35em 0}
.location-copy h3 em{color:#f7bb92;font-weight:400}
.location-copy>p:not(.kicker){max-width:390px;color:#c9d6c8;line-height:1.65}
.location-picks{display:flex;flex-wrap:wrap;gap:.55rem;margin:2rem 0}
.location-picks button{background:transparent;border:1px solid #9bac9f;color:#f8efe1;border-radius:99px;padding:.65rem 1rem;cursor:pointer;transition:transform .2s,background .2s,color .2s}
.location-picks button:hover,.location-picks button:focus-visible,.location-picks button.active{background:#e7d4b8;border-color:#e7d4b8;color:#142b23;transform:translateY(-2px)}
.selected-location{display:flex;flex-direction:column;gap:.55rem;margin-top:auto;padding:1.2rem 0;border-top:1px solid #9bac9f;width:100%}
.selected-location>span{font-size:.67rem;letter-spacing:.2em;color:#bfcfc1}
.selected-location strong{font:2rem var(--serif)}
.selected-location button{background:none;color:#f7bb92;border:0;text-align:left;padding:.3rem 0;cursor:pointer;width:max-content;text-decoration:underline;text-underline-offset:4px}
.selected-location button:disabled{opacity:.45;cursor:default}
.selected-location small{color:#bfcfc1;line-height:1.5}
.location-map-wrap{position:relative;min-height:570px;background:#e5ddca;border:8px solid #e7d4b8;box-shadow:16px 16px 0 #062019}
#shoot-map{height:100%;min-height:550px;z-index:0}
.map-hint{position:absolute;left:1rem;top:1rem;z-index:400;background:#112620;color:#f8efe1;padding:.7rem 1rem;font-size:.65rem;letter-spacing:.16em;pointer-events:none}
.leaflet-container{font-family:var(--sans);background:#e5ddca}
.leaflet-control-attribution{font-size:10px!important}
.shoot-pin{width:24px;height:24px;background:#d8632d;border:4px solid #fff;border-radius:50%;box-shadow:0 0 0 7px #d8632d61,0 2px 8px #11262080;animation:pin-pulse 2s ease-in-out infinite}
@keyframes pin-pulse{50%{box-shadow:0 0 0 13px #d8632d24,0 2px 8px #11262080}}
@media(max-width:850px){.location-stage{grid-template-columns:1fr;margin-top:6rem}.location-map-wrap{min-height:410px;box-shadow:8px 8px 0 #062019}#shoot-map{min-height:395px}.selected-location{margin-top:.5rem}}
@media(prefers-reduced-motion:reduce){.shoot-pin{animation:none}.location-picks button{transition:none}}

/* Focused booking flow: session, location, time. */
.booking-page header{justify-content:space-between}
.booking-home{font-size:.9rem;text-decoration:none}
.booking-home:hover{text-decoration:underline;text-underline-offset:4px}
.session-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.session-option{display:flex;flex-direction:column;justify-content:end;align-items:flex-start;text-align:left;gap:1rem;min-height:280px;padding:2rem;border:1px solid #8fa99a;background:#1a352b;color:#f8efe1;cursor:pointer;transition:background .25s,transform .25s}
.session-option>span{font-size:.65rem;letter-spacing:.16em}
.session-option strong{font:clamp(2.6rem,4.2vw,4.5rem)/.95 var(--serif)}
.session-option small{line-height:1.5}
.session-option:hover,.session-option:focus-visible{transform:translateY(-4px);border-color:#e7d4b8}
.session-option[aria-pressed="true"]{background:#e7d4b8;color:#142b23}
.location-stage[hidden],.booking-transition[hidden],.booking-next[hidden]{display:none}
#booking-shoot-summary{color:#f7bb92;font-weight:600}
@media(max-width:700px){.session-options{grid-template-columns:1fr}.session-option{min-height:180px}.booking-page header nav{gap:.8rem}}
@media(prefers-reduced-motion:reduce){.session-option{transition:none}}

.session-option{position:relative;overflow:hidden}
.session-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 40%;opacity:.45}
.session-option>span,.session-option>strong,.session-option>small{position:relative;z-index:1}
.session-option:has(.session-photo){background:#112620;text-shadow:0 1px 8px #000}
.session-option[aria-pressed="true"]:has(.session-photo){color:#fff;border:2px solid #e7d4b8}
