/* ApacheBronco.me V29.0 | Photo Stories gallery | all styles scoped to gallery */
.gallery-hero{position:relative;padding:clamp(64px,8vw,108px) 0 66px;border-bottom:1px solid var(--line-soft);background:linear-gradient(98deg,rgba(7,11,10,.66),rgba(8,11,11,.32))}
.gallery-hero-inner{display:grid;grid-template-columns:minmax(0,1fr) 175px;align-items:end;gap:clamp(22px,6vw,74px)}
.gallery-title{font-size:clamp(3.5rem,8vw,7.1rem);line-height:.91;letter-spacing:-.065em;text-wrap:balance}
.gallery-title em{font-weight:400;font-style:italic;color:var(--bronze-2)}
.gallery-deck{font-family:var(--serif);font-size:clamp(1.33rem,2.5vw,1.88rem);line-height:1.25;color:#f1e9dd;margin:24px 0 16px;max-width:700px;text-wrap:balance}
.gallery-intro{color:#c9c1b5;font-size:.97rem;line-height:1.65;max-width:665px;margin:0}
.gallery-count-block{border-left:1px solid rgba(199,160,107,.47);padding-left:20px;margin-bottom:4px;display:flex;flex-direction:column;gap:8px}
.gallery-count-block span{font-family:var(--serif);font-size:clamp(4.1rem,8vw,7.1rem);line-height:.8;color:var(--bronze-2);font-variant-numeric:tabular-nums}
.gallery-count-block small{font-size:.67rem;text-transform:uppercase;font-weight:900;letter-spacing:.17em;color:var(--sand)}
.gallery-section{padding:clamp(30px,5vw,62px) 0 86px;background:rgba(3,7,7,.12)}
.gallery-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px 24px;flex-wrap:wrap;margin-bottom:30px;padding-bottom:22px;border-bottom:1px solid var(--line-soft)}
.gallery-filters{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.gallery-filter{border:1px solid rgba(199,160,107,.24);background:rgba(12,16,14,.52);color:#d8d0c6;display:inline-flex;align-items:center;gap:9px;padding:10px 12px;min-height:42px;white-space:nowrap;font-family:var(--sans);font-size:.67rem;line-height:1.15;letter-spacing:.075em;font-weight:800;text-transform:uppercase;transition:background .18s,border-color .18s,color .18s}
.gallery-filter span{font-variant-numeric:tabular-nums;color:#b79a73;font-weight:700}
.gallery-filter:hover,.gallery-filter:focus-visible,.gallery-filter[aria-pressed="true"]{background:rgba(199,160,107,.13);border-color:var(--bronze);color:var(--ivory)}
.gallery-filter:focus-visible,.gallery-open:focus-visible,.gallery-share-trigger:focus-visible,.photo-control:focus-visible,.photo-share-action:focus-visible,.photo-overlay button:focus-visible,.photo-overlay a:focus-visible{outline:2px solid #e7c392;outline-offset:3px}
.gallery-filter-status{margin:0;color:var(--sand);font-size:.79rem}
.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:30px 24px;align-items:start}
.gallery-card{min-width:0;position:relative;transition:transform 280ms cubic-bezier(.2,.7,.2,1)}
.gallery-card[hidden]{display:none!important}
.gallery-frame{position:relative;aspect-ratio:4/5;isolation:isolate;overflow:hidden;border:1px solid rgba(199,160,107,.29);background:#171b1a;box-shadow:0 16px 30px rgba(0,0,0,.20);transition:border-color 280ms ease,box-shadow 280ms ease}
.gallery-open{position:absolute;inset:0;display:block;overflow:hidden}
.gallery-open::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 0 68%,rgba(2,4,4,.4) 100%);pointer-events:none;opacity:.65;transition:opacity 280ms}
.gallery-open img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;background:transparent;transform:scale(1);transition:transform 290ms cubic-bezier(.2,.7,.2,1),filter 290ms ease;will-change:transform}
.gallery-view{position:absolute;z-index:2;left:18px;bottom:18px;display:flex;align-items:center;gap:9px;color:#f5ede1;letter-spacing:.15em;text-transform:uppercase;font-size:.65rem;font-weight:900;opacity:0;transform:translateY(6px);transition:opacity .22s,transform .22s;pointer-events:none;text-shadow:0 1px 12px #000}
.gallery-view svg{width:17px;height:17px}
.gallery-share-trigger{position:absolute;right:14px;top:14px;z-index:3;display:grid;place-items:center;width:42px;height:42px;border:1px solid rgba(226,190,137,.58);background:rgba(5,8,7,.86);color:#f1ddb9;backdrop-filter:blur(8px);opacity:0;transform:translateY(-5px);transition:opacity .22s,transform .22s,background .2s;border-radius:50%}
.gallery-share-trigger svg{width:18px;height:18px}
.gallery-share-trigger:hover{background:#c7a06b;color:#080b0a}
.gallery-card:hover{transform:translateY(-3px)}
.gallery-card:hover .gallery-frame,.gallery-card:focus-within .gallery-frame{border-color:rgba(210,171,111,.75);box-shadow:0 24px 50px rgba(0,0,0,.34),0 0 0 1px rgba(199,160,107,.14)}
.gallery-card:hover .gallery-open img,.gallery-card:focus-within .gallery-open img{transform:scale(1.043);filter:saturate(1.055)}
.gallery-card:hover .gallery-view,.gallery-card:focus-within .gallery-view{opacity:1;transform:none}
.gallery-card:hover .gallery-share-trigger,.gallery-card:focus-within .gallery-share-trigger{opacity:1;transform:none}
.gallery-card-info{padding:15px 3px 0;display:grid;gap:6px}
.gallery-number{font-size:.63rem;color:var(--bronze-2);font-weight:900;text-transform:uppercase;letter-spacing:.15em}
.gallery-card-info h2{font-family:var(--serif);font-weight:600;font-size:clamp(1.28rem,2vw,1.56rem);line-height:1.15;margin:0;text-wrap:balance}
.gallery-archive-note{font-size:.84rem;color:#c1b5a5;line-height:1.6;margin:44px 0 0;padding:18px 0 0;border-top:1px solid var(--line-soft);max-width:780px}
.gallery-endcap{border-top:1px solid var(--line-soft);padding:60px 0 76px;background:rgba(5,8,7,.52)}
.gallery-endcap .display{font-size:clamp(2rem,4.4vw,3.2rem);text-wrap:balance}
/* individual photo-story URLs */
.photo-detail-head{padding:52px 0 31px;border-bottom:1px solid var(--line-soft)}
.gallery-back{font-size:.7rem;font-weight:900;letter-spacing:.1em;color:var(--bronze-2);text-transform:uppercase;display:inline-block;margin-bottom:38px}
.gallery-back:hover{text-decoration:underline;text-underline-offset:5px}
.photo-detail-title{font-size:clamp(2.65rem,5vw,4.5rem);max-width:900px;text-wrap:balance}
.photo-detail-category{color:var(--sand);font-size:.87rem;margin:20px 0 0}
.photo-detail-body{padding:38px 0 90px}
.photo-detail-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(260px,.75fr);gap:clamp(30px,5vw,68px);align-items:start}
.photo-detail-media{margin:0;min-width:0;display:grid;gap:10px}
.photo-detail-media img{display:block;width:100%;height:auto;max-height:76dvh;object-fit:contain;object-position:center;background:rgba(6,8,8,.44);border:1px solid rgba(199,160,107,.19)}
.photo-detail-media figcaption{color:var(--sand);font-size:.72rem;letter-spacing:.02em}
.photo-detail-side{position:sticky;top:calc(var(--header) + 26px);padding-top:8px}
.photo-detail-story{font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.52rem);line-height:1.43;color:#e1d7c8}
.photo-detail-actions{display:grid;gap:10px;margin-top:30px}
.photo-detail-actions .btn{gap:12px;width:100%;text-align:center}
.photo-detail-actions svg{width:16px;height:16px;flex:none}
.photo-detail-pager{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:30px;padding-top:19px;border-top:1px solid var(--line-soft);font-size:.7rem;font-weight:800;color:#d8b586;text-transform:uppercase;letter-spacing:.08em}
.photo-detail-pager a:hover{text-decoration:underline;text-underline-offset:5px}
/* accessible lightbox and photograph-specific share modal */
.photo-overlay[hidden]{display:none!important}
.photo-overlay{position:fixed;inset:0;z-index:700;display:grid;place-items:center;padding:clamp(9px,2vw,22px);background:rgba(2,4,4,.94);backdrop-filter:blur(12px)}
.photo-overlay--share{z-index:720;background:rgba(0,0,0,.78)}
body.photo-overlay-open{overflow:hidden}
.photo-viewer{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:8px;width:min(100%,1400px);height:min(95dvh,980px);min-height:0;min-width:0;color:var(--ivory)}
.photo-viewer-top{display:flex;justify-content:space-between;align-items:center;gap:12px;border-bottom:1px solid rgba(199,160,107,.2);min-height:43px}
.photo-viewer-kicker{font-size:.68rem;letter-spacing:.17em;text-transform:uppercase;color:var(--bronze-2);font-weight:900}
.photo-viewer-tools{display:flex;align-items:center;gap:9px}
.photo-control{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:42px;min-height:42px;background:rgba(18,24,23,.9);border:1px solid rgba(199,160,107,.3);color:var(--ivory);font-size:.72rem;letter-spacing:.06em;font-weight:800}
.photo-control svg{width:16px;height:16px}
.photo-control:hover,.photo-control:focus-visible{border-color:var(--bronze);background:rgba(199,160,107,.13)}
.photo-viewer-center{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;min-height:0;min-width:0;align-items:center}
.photo-viewer-imagebox{position:relative;width:100%;height:100%;min-width:0;min-height:0;overflow:hidden;display:block}
.photo-viewer-imagebox img{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;max-height:none;min-width:0;min-height:0;object-fit:contain;object-position:center;box-shadow:none}
.photo-viewer-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px 22px;padding:10px 4px 2px;border-top:1px solid rgba(199,160,107,.2)}
.photo-viewer-bottom h2{font-family:var(--serif);font-size:clamp(1.4rem,2.7vw,2.25rem);margin:0;text-wrap:balance;line-height:1.12}
.photo-viewer-bottom p{font-size:.76rem;color:#bdaf9e;margin:8px 0 0;line-height:1.35}
.photo-viewer-number{font-weight:900;color:var(--bronze-2);letter-spacing:.13em;font-size:.72rem;white-space:nowrap}
.photo-share-panel{position:relative;width:min(92vw,610px);max-height:min(94dvh,720px);display:grid;gap:11px;padding:clamp(22px,4.7vmin,42px);border:1px solid rgba(199,160,107,.48);background:linear-gradient(180deg,#0c110f,#070a09);box-shadow:0 40px 100px rgba(0,0,0,.55);overflow:auto}
.photo-share-panel .photo-close{position:absolute;top:10px;right:10px}
.photo-share-kicker{font-size:.67rem;letter-spacing:.16em;color:var(--bronze);text-transform:uppercase;font-weight:900;margin:0;text-align:center}
.photo-share-title{font-family:var(--serif);font-size:clamp(1.8rem,4.5vmin,2.8rem);line-height:1.05;margin:6px 16px 0;text-align:center;overflow-wrap:anywhere}
.photo-share-subtitle{font-size:.82rem;color:#cec1ae;text-align:center;margin:0 4px 6px;line-height:1.4}
.photo-share-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.photo-share-action{display:inline-flex;align-items:center;justify-content:center;min-width:0;min-height:45px;padding:8px 10px;border:1px solid rgba(226,217,203,.20);color:var(--ivory);background:rgba(255,255,255,.018);font:800 .67rem/1.3 var(--sans);letter-spacing:.08em;text-align:center;text-transform:uppercase;white-space:normal;text-decoration:none}
.photo-share-action:hover{border-color:var(--bronze);color:var(--bronze-2);background:rgba(199,160,107,.07)}
.photo-share-action--wide{grid-column:1/-1;background:rgba(199,160,107,.13);border-color:rgba(199,160,107,.52)}
.photo-share-download{background:var(--bronze);color:#0a0b0a;border-color:var(--bronze)}
.photo-share-download:hover{background:#e1bd88;color:#0a0b0a}
.photo-share-status{min-height:20px;color:#d7b987;text-align:center;font-size:.75rem;margin:0;line-height:1.35}
@media (max-width:1050px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-detail-layout{grid-template-columns:minmax(0,1fr)}}
@media (max-width:800px){.gallery-hero-inner{grid-template-columns:minmax(0,1fr) 108px}.gallery-count-block span{font-size:4.2rem}.photo-detail-side{position:static}}
@media (hover:none),(pointer:coarse){.gallery-share-trigger{opacity:1;transform:none}.gallery-card:hover{transform:none}.gallery-card:hover .gallery-open img{transform:none}.gallery-view{opacity:1;transform:none}.gallery-share-trigger{width:44px;height:44px}}
@media (max-width:650px){.gallery-hero{padding:52px 0 45px}.gallery-hero-inner{display:block}.gallery-count-block{display:none}.gallery-title{font-size:clamp(3.0rem,13vw,4.5rem)}.gallery-intro{font-size:.89rem}.gallery-section{padding:24px 0 55px}.gallery-grid{grid-template-columns:minmax(0,1fr);gap:29px}.gallery-card{max-width:520px}.gallery-toolbar{margin-bottom:22px}.gallery-filter{min-height:40px;padding:8px 10px;font-size:.62rem}.gallery-card-info h2{font-size:1.42rem}.photo-overlay{padding:6px}.photo-viewer{height:97dvh;gap:4px}.photo-viewer-center{grid-template-columns:34px minmax(0,1fr) 34px;gap:3px}.photo-control{min-width:34px;min-height:40px}.photo-viewer-tools .photo-control{min-width:40px}.photo-viewer-bottom{padding:8px 5px}.photo-viewer-bottom h2{font-size:1.47rem}.photo-viewer-bottom p{font-size:.7rem}.photo-share-panel{width:min(98vw,520px);padding:26px 13px 14px;gap:7px}.photo-share-action{min-height:37px;font-size:.61rem;padding:6px 5px}.photo-share-title{font-size:clamp(1.55rem,7vw,2.2rem)}.photo-share-subtitle{font-size:.74rem}.gallery-endcap{padding:45px 0}}
@media (max-height:510px){.photo-viewer{height:97dvh}.photo-viewer-bottom p{display:none}.photo-share-panel{padding:12px 14px;gap:5px}.photo-share-action{min-height:30px}.photo-share-title{font-size:1.4rem}.photo-share-subtitle{font-size:.68rem}}
@media (prefers-reduced-motion:reduce){.gallery-card,.gallery-frame,.gallery-open img,.gallery-view,.gallery-share-trigger,.gallery-filter{transition:none!important;animation:none!important}.gallery-card:hover,.gallery-card:focus-within{transform:none!important}.gallery-card:hover .gallery-open img,.gallery-card:focus-within .gallery-open img{transform:none!important}}

/* V29.0 FULL-IMAGE VISIBILITY HARD LOCK — prevent native-size image clipping.
   Keep image bounds fixed to actual available gallery viewer height; contain preserves entire source. */
.photo-viewer-center{height:100%;min-height:0;align-items:stretch}
.photo-viewer-center > .photo-control{align-self:center}
.photo-viewer-imagebox{min-height:0;min-width:0}
.photo-viewer-imagebox > img[data-full-image]{width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;object-position:center}
