/* Location pages reuse the site's fonts, navigation and booking links. */
.location-page{--location-accent:#bcdef3}
.location-page .location-hero{background:#111f30;color:#fff;padding:70px 0 66px}
.location-page .location-hero-grid{display:grid;grid-template-columns:1.15fr 1fr;align-items:center;gap:60px}
.location-page .location-hero h1{font-size:clamp(3rem,4.5vw,5rem);line-height:1.06;margin-bottom:24px}
.location-page .location-hero .eyebrow{color:var(--location-accent)}
.location-page .location-tagline{color:var(--location-accent);font-size:clamp(1.3rem,2vw,1.65rem);line-height:1.4;font-weight:600}
.location-page .location-intro{color:#d4e1eb;font-size:1.04rem;line-height:1.8;margin:24px 0 28px;max-width:650px}
.location-page .location-hero figure{min-width:0}
.location-page .location-hero img{width:100%;height:clamp(320px,32vw,490px);object-fit:cover;border-radius:3px}
.location-page .location-hero figcaption{font-size:.8rem;color:#c5d5e0;line-height:1.6;margin-top:16px}
.location-page .location-base{color:#c5d5e0;font-size:.8rem;margin-top:18px}
.location-page .location-proof{padding:46px 0;background:#e7f0f5}
.location-page .location-proof-grid{display:grid;grid-template-columns:160px 1fr;gap:48px;align-items:center;max-width:1000px}
.location-page .location-proof img{width:140px;height:100px;object-fit:contain}
.location-page .location-proof blockquote{font-size:clamp(1.25rem,2.2vw,1.65rem);line-height:1.5;color:#14283d}
.location-page .location-proof figcaption{font-size:.9rem;margin-top:16px;color:#4e5e6b}
.location-page .location-options h2{max-width:880px;margin-bottom:35px}
.location-page .format-cards{align-items:stretch}
.location-page .format-cards article{display:flex;flex-direction:column}
.location-page .format-cards .text-link{margin-top:auto;padding-top:26px;font-size:.9rem;align-self:start}
.location-page .location-local{background:#e7f0f5}
.location-page .location-local-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.location-page .location-local p+p{margin-top:22px}
.location-page .location-coverage{font-size:.95rem;border-top:1px solid #bacad6;padding-top:22px}
.location-page .location-faq .faq-layout{gap:70px}
.location-page .location-faq .faq-layout>div>p{margin-top:22px}
.location-page .location-faq details p{font-size:1rem}
.location-page .location-contact{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:28px;font-size:.95rem}
.location-page .location-contact a{color:#fff;text-decoration:underline;text-underline-offset:5px}
.location-adirondacks{--location-accent:#c8e3d3}
.location-adirondacks .location-hero img{object-position:50% 50%}
@media(max-width:900px){.location-page .location-hero-grid{gap:32px}.location-page .location-local-grid{gap:40px}.location-page .format-cards{grid-template-columns:1fr}.location-page .format-cards h3{margin-top:16px}}
@media(max-width:760px){.location-page .location-hero{padding:42px 0}.location-page .location-hero-grid,.location-page .location-local-grid{grid-template-columns:1fr}.location-page .location-hero h1{font-size:clamp(2.7rem,11vw,4rem)}.location-page .location-hero img{height:auto;max-height:430px;object-fit:contain}.location-page .location-proof-grid{grid-template-columns:1fr;gap:24px}.location-page .location-proof img{height:75px;width:120px}.location-page .location-proof{padding:32px 0}.location-page .location-faq .faq-layout{gap:30px}.location-page .location-local-grid{gap:28px}.location-page .location-intro{font-size:1rem}}

/* Layered photography and movement, scoped to the location pages. */
.location-page .location-hero{overflow:hidden;background:radial-gradient(ellipse at 90% 0%,#255a8355,transparent 55%),#111f30}
.location-page .location-hero figure{position:relative;padding:12px;border:1px solid #bcdef34d;box-shadow:20px 20px 0 #bcdef30d}
.location-page .location-hero figure::before{content:'';position:absolute;width:70px;height:6px;background:var(--location-accent);top:-4px;left:25px}
.location-page .location-actions{display:flex;flex-wrap:wrap;align-items:center;gap:24px}
.location-page .location-actions>.text-link{color:#d9edfa;font-size:.88rem;max-width:240px}
.location-page .location-ribbon{padding-block:18px;--ribbon-bg:var(--location-accent);--ribbon-ink:#111f30}
.location-page .location-ribbon span{font-size:clamp(1.35rem,2.3vw,2.3rem)}
.location-page .format-cards article{padding:0 28px 30px;overflow:hidden;transition:box-shadow .25s ease}
.location-page .format-cards article:hover{box-shadow:0 20px 40px #0c274026}
.location-page .location-card-photo{margin:0 -28px 28px;overflow:hidden;background:#d8e3ec}
.location-page .location-card-photo img{width:100%;height:210px;object-fit:cover;transition:transform .7s ease}
.location-page .format-cards article:hover .location-card-photo img{transform:scale(1.035)}
.location-page .format-cards h3{margin-top:18px}
.location-page .location-visual{background:#111f30}
.location-page .location-panorama{position:relative;overflow:hidden;min-height:560px;isolation:isolate}
.location-page .location-panorama>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transform:translate3d(0,var(--photo-y,0px),0) scale(1.18);will-change:transform}
.location-page .location-panorama::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#071525e8 0%,#071525a8 45%,#07152522 100%);z-index:1}
.location-page .location-panorama figcaption{position:relative;z-index:2;padding:100px max(48px,calc((100vw - 1240px)/2));color:#fff;max-width:1100px}
.location-page .location-panorama h2{font-size:clamp(2.8rem,4.3vw,4.5rem);max-width:720px;margin-bottom:24px}
.location-page .location-panorama p{color:#e0edf6;max-width:550px}
.location-page .location-panorama .button{margin-top:32px}
.location-page .location-faq-links{display:flex;flex-direction:column;align-items:start;gap:22px;margin-top:30px}
.location-adirondacks .location-hero img{height:auto;max-height:640px;object-fit:contain}
@media(max-width:760px){.location-page .location-hero figure{max-width:480px;width:100%;justify-self:center;box-shadow:10px 10px 0 #bcdef30d}.location-page .location-panorama{min-height:490px}.location-page .location-panorama figcaption{padding:70px 24px}.location-page .location-panorama::after{background:#071525b8}.location-page .location-card-photo img{height:230px}.location-page .location-actions{gap:22px}.location-adirondacks .location-hero img{max-height:550px}}
.location-page.motion-paused .location-panorama>img{transform:scale(1.18);will-change:auto}

/* Scroll position now moves images directly inside clipped, overscanned frames. */
.location-page .location-hero-photo{height:clamp(350px,36vw,520px);overflow:hidden;position:relative}
.location-page .location-hero-photo img{position:absolute;top:-100px;left:0;width:100%;height:calc(100% + 200px);max-height:none;object-fit:cover;transform:translate3d(0,var(--location-y,0px),0);will-change:transform}
.location-page .location-panorama>img{inset:auto;top:-100px;left:0;height:calc(100% + 200px);transform:translate3d(0,var(--location-y,0px),0);will-change:transform}
.location-page.motion-paused .location-panorama>img,.location-page.motion-paused .location-hero-photo img{transform:none;will-change:auto}
.location-page [data-location-reveal].location-revealed{animation:location-arrive .6s ease both}
@keyframes location-arrive{from{opacity:.7;translate:0 18px}to{opacity:1;translate:0 0}}
/* Keep the complete portrait pavilion photograph visible while moving it slightly. */
.location-adirondacks .location-hero-photo{height:auto;overflow:visible}
.location-adirondacks .location-hero-photo img{position:relative;top:auto;height:auto;object-fit:contain;max-height:640px;transform:translate3d(0,calc(var(--location-y,0px)*.25),0)}
@media(max-width:760px){.location-page .location-hero-photo{height:340px}.location-page .location-hero-photo img,.location-page .location-panorama>img{top:-48px;height:calc(100% + 96px)}.location-adirondacks .location-hero-photo{height:auto}.location-adirondacks .location-hero-photo img{top:auto;height:auto;max-height:550px}}
@media(prefers-reduced-motion:reduce){.location-page:not(.location-motion-explicit) .location-hero-photo img,.location-page:not(.location-motion-explicit) .location-panorama>img{transform:none!important;will-change:auto}.location-page:not(.location-motion-explicit) .banner-track{animation:none!important}.location-page [data-location-reveal]{animation:none!important}.location-page .location-card-photo img{transition:none!important;transform:none!important}.location-page .format-cards article{transition:none!important}}
.location-page.motion-paused [data-location-reveal]{animation:none}

/* Step-and-repeat crane logo treatment matches the homepage backgrounds. */
.location-page .location-local,.location-page .closing{position:relative;isolation:isolate;overflow:hidden}
.location-page .location-local::before,.location-page .closing::before{content:'';position:absolute;inset:-200px;background-image:url('/assets/logo.png');background-repeat:repeat;background-size:180px 180px;transform:rotate(-12deg);pointer-events:none;z-index:0}
.location-page .location-local::before{filter:brightness(0);opacity:.035}
.location-page .closing::before{opacity:.075}
.location-page .location-local>.wrap,.location-page .closing>.wrap{position:relative;z-index:1}
@media(max-width:760px){.location-page .location-local::before,.location-page .closing::before{background-size:130px 130px}}

/* Attributed Adirondack client reviews, paired with the pavilion photograph. */
.location-page .location-adirondack-reviews{padding-block:65px}
.location-adirondack-reviews h2{max-width:800px;margin-bottom:35px}
.location-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}
.location-review-grid figure{border-top:1px solid #a9bdca;padding-top:26px;min-width:0;display:flex;flex-direction:column}
.location-page .location-review-grid blockquote{font-size:clamp(1.15rem,1.65vw,1.45rem);line-height:1.65}
.location-page .location-review-grid figcaption{margin-top:auto;padding-top:25px}
.location-review-grid figcaption span{display:block;margin-top:4px}
@media(max-width:760px){.location-page .location-adirondack-reviews{padding-block:45px}.location-review-grid{grid-template-columns:1fr;gap:32px}}
