/* A landscape-led gallery using the guide's credited park photographs. */
body:has(.photos-hero){background:#faf9f6}
.photos-hero{position:relative;isolation:isolate;min-height:25rem;display:flex;align-items:center;background:#102d20;color:#fff;overflow-wrap:anywhere}
.photos-hero-image{position:absolute;inset:0;z-index:-2;width:100%;height:100%;object-fit:cover;object-position:center 30%;filter:brightness(1.08)}
.photos-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(5,25,15,.96) 0%,rgba(5,25,15,.86) 48%,rgba(5,25,15,.78) 62%,rgba(5,25,15,.1) 82%,rgba(5,25,15,.07) 100%)}
.photos-hero-content{padding-block:1.25rem}
.photos-hero .breadcrumb{margin-bottom:.5rem;color:#fff}
.photos-hero .breadcrumb a{padding-block:.25rem;min-height:44px}
.photos-hero .eyebrow{margin-bottom:.5rem;color:#b9df8d;font-size:.875rem;letter-spacing:.17em}
.photos-hero h1{max-width:32rem;margin:0;font:400 clamp(3.1rem,7.2vw,4.8rem)/1.01 var(--serif);letter-spacing:-.035em;color:#fff}
.photos-hero-rule{display:block;width:3.75rem;height:3px;margin:.625rem 0;background:#b9df8d}
.photos-hero p:not(.eyebrow){max-width:30rem;margin-bottom:.2rem;font-size:1.06rem;color:#fff;line-height:1.65}
.photos-hero :is(a,button):focus-visible{outline-color:#f1cb6c;outline-offset:4px}
.photos-section{padding-block:2.6rem 4.25rem;overflow-wrap:anywhere;color:#103e2b}
.photos-links{display:flex;align-items:stretch;flex-wrap:wrap;gap:.5rem 2rem;margin-bottom:.9rem}
.photos-links a{display:inline-flex;align-items:center;gap:.6rem;min-height:48px;padding:.45rem 0 .6rem;font-size:.96rem;font-weight:700;line-height:1.45;text-decoration:none;border-bottom:3px solid transparent;max-width:100%}
.photos-links a:hover{text-decoration:underline;text-underline-offset:.28em}
.photos-links .is-current{border-bottom-color:#103e2b}
.photos-links svg{width:1.25rem;height:1.25rem;flex:none;stroke:currentColor}
.photos-intro{max-width:75ch;margin-bottom:1.75rem;color:#383e38;font-size:.94rem;line-height:1.8}
.photos-intro a{text-decoration-thickness:1px;color:#103e2b}
.photos-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.8rem;margin-top:1.5rem}
.photos-gallery figure{position:relative;min-width:0;border-radius:.65rem;background:#fff;border:1px solid #e4e7df;box-shadow:0 3px 8px #18352412;transition:box-shadow .18s ease}
.photos-gallery button{display:block;border:0;border-radius:.65rem .65rem 0 0;background:#e3e8df;color:inherit;line-height:0}
.photos-gallery button::after{content:"";position:absolute;inset:0;z-index:1;border-radius:.65rem}
.photos-gallery button:focus-visible{outline:none}
.photos-gallery button:focus-visible::after{outline:3px solid #994300;outline-offset:5px}
.photos-gallery figure:hover{box-shadow:0 6px 18px #18352420}
.photos-gallery figure:hover strong{text-decoration:underline;text-underline-offset:.2em}
.photos-gallery img{width:100%;height:auto;aspect-ratio:1.65;object-fit:cover;border-radius:.6rem .6rem 0 0}
.photos-gallery figcaption{position:relative;min-height:5.9rem;padding:1.15rem 3.8rem 1.2rem 1.35rem;color:#103e2b;font-size:.95rem;line-height:1.5}
.photos-gallery strong{font:700 1.07rem/1.45 var(--sans)}
.photos-gallery small{display:block;margin-top:.3rem;font-size:.85rem;color:#383e38;line-height:1.6}
.photo-card-arrow{position:absolute;right:1.3rem;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:1.35rem;height:1.35rem;pointer-events:none}
.photo-card-arrow svg{width:100%;height:100%;stroke:currentColor}
.photos-section>.actions{margin-top:2rem}
.photos-section>.actions .button{border-radius:.3rem;max-width:100%}

@media(min-width:1440px){.photos-hero{min-height:28rem}}
/* Keep the panorama at or below native width on ultrawide displays. Its soft
   left edge blends into the banner behind the copy without a separate panel. */
@media(min-width:901px){.photos-hero-image{inset:0 0 0 auto;width:min(100%,2172px);max-width:none;object-position:right center;filter:none;mask-image:linear-gradient(90deg,transparent,#000 12%)}.photos-hero::before{background:linear-gradient(90deg,rgba(5,25,15,.96) 0%,rgba(5,25,15,.86) 48%,rgba(5,25,15,.78) 56%,rgba(5,25,15,.1) 70%,rgba(5,25,15,.02) 80%,rgba(5,25,15,.02) 100%)}}
@media(max-width:900px){.photos-hero h1{font-size:clamp(3rem,7.6vw,4.8rem);max-width:32rem}.photos-hero::before{background:linear-gradient(90deg,rgba(5,25,15,.95),rgba(5,25,15,.86) 60%,rgba(5,25,15,.55) 84%,rgba(5,25,15,.25))}.photos-links{gap:.4rem 1.5rem}.photos-gallery{gap:1.3rem}}
@media(max-width:640px){.photos-hero{min-height:28rem}.photos-hero-content{padding-block:1.4rem 2.2rem}.photos-hero-image{object-position:62% center}.photos-hero::before{background:rgba(5,25,15,.86)}.photos-hero .breadcrumb{margin-bottom:1rem}.photos-hero .eyebrow{font-size:.75rem;letter-spacing:.14em}.photos-hero h1{font-size:clamp(2.8rem,11vw,4rem);line-height:1.05}.photos-hero p:not(.eyebrow){font-size:1rem}.photos-section{padding-block:1.65rem 3rem}.photos-links{gap:.3rem 1.25rem}.photos-links a{font-size:.92rem}.photos-gallery{grid-template-columns:minmax(0,1fr);gap:1.5rem}.photos-gallery img{aspect-ratio:1.5}.photos-gallery figcaption{padding:1.1rem 3rem 1.1rem 1rem}.photo-card-arrow{right:1rem}.photos-intro{margin-bottom:1.2rem}}

/* Enlarged text stays within the dark side of the photographic overlay. */
@media(min-width:641px){.photos-hero :is(.breadcrumb,h1,p:not(.eyebrow)){max-width:min(32rem,55%)}.photos-hero .eyebrow{max-width:min(32rem,45%)}}

/* Reading preferences must override photographic backgrounds and fixed colors. */
html[data-reading="contrast"] body:has(.photos-hero){background:#fff}
html[data-reading="contrast"] .photos-hero{background:#000;color:#fff}
html[data-reading="contrast"] .photos-hero-image,html[data-reading="contrast"] .photos-hero::before{display:none}
html[data-reading="contrast"] .photos-hero .eyebrow{color:#fff}
html[data-reading="contrast"] .photos-hero-rule{background:#fff}
html[data-reading="contrast"] .photos-section,html[data-reading="contrast"] .photos-intro,html[data-reading="contrast"] .photos-intro a,html[data-reading="contrast"] .photos-gallery figcaption,html[data-reading="contrast"] .photos-gallery small{color:#000}
html[data-reading="contrast"] .photos-gallery figure{border-color:#000;background:#fff;box-shadow:none}
html[data-reading="contrast"] .photos-links .is-current{border-bottom-color:#000}
@media(prefers-reduced-motion:reduce){.photos-gallery figure{transition:none}}
@media(forced-colors:active){.photos-hero{background:Canvas;color:CanvasText}.photos-hero-image,.photos-hero::before{display:none}.photos-hero :is(h1,p,.breadcrumb){color:CanvasText}.photos-hero .eyebrow{color:CanvasText}.photos-hero-rule{background:CanvasText}.photos-gallery figure{background:Canvas;border:1px solid CanvasText;box-shadow:none}.photos-gallery :is(figcaption,small){color:CanvasText}.photos-links .is-current{border-bottom-color:LinkText}.photos-gallery button:focus-visible::after{outline-color:Highlight}.photos-hero :is(a,button):focus-visible{outline-color:Highlight}}
@media print{body:has(.photos-hero){background:#fff}.photos-hero{min-height:0;display:block;background:#fff;color:#000}.photos-hero-image,.photos-hero::before,.photos-hero-rule,.photo-card-arrow{display:none}.photos-hero-content{padding-block:1.5rem}.photos-hero :is(h1,p,.eyebrow,.breadcrumb){color:#000}.photos-hero h1{font-size:2.8rem}.photos-links{display:none}.photos-section{padding-block:1rem}.photos-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.photos-gallery figure{break-inside:avoid;box-shadow:none;border-color:#777}.photos-gallery button::after{display:none}.photos-gallery figcaption{padding:.7rem;color:#000}.photos-gallery small{color:#000}.photos-gallery img{max-height:15rem;object-fit:cover}}
