.stay-carousel{position:relative;overflow:hidden;background:var(--cedar);aspect-ratio:1.5;isolation:isolate;touch-action:pan-y}
.stay-photo-open{display:block;width:100%;height:100%;padding:0;overflow:hidden}
.stay-photo-open img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .6s}
.stay-photo-open:hover img{transform:scale(1.025)}
.stay-photo-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:34px;height:44px;background:rgba(243,238,229,.88);backdrop-filter:blur(8px);color:var(--cedar);font-family:var(--serif);font-size:29px;display:grid;place-items:center;opacity:0;transition:opacity .2s}
.stay-photo-arrow.previous{left:9px}.stay-photo-arrow.next{right:9px}
.stay-carousel:hover .stay-photo-arrow,.stay-carousel:focus-within .stay-photo-arrow{opacity:1}
.stay-photo-count{position:absolute;bottom:12px;right:12px;padding:5px 8px;background:rgba(16,22,18,.6);color:var(--bone);font:9px var(--sans);letter-spacing:.08em;pointer-events:none}
.stay-photo-hint{position:absolute;bottom:12px;left:12px;font:9px var(--sans);color:var(--bone);background:rgba(16,22,18,.55);padding:5px 8px;pointer-events:none}
.booking-stay-card>.stay-carousel{height:180px;aspect-ratio:auto}
.booking-summary .stay-carousel{margin-bottom:18px;aspect-ratio:1.55}
.ranch-detail .stay-carousel{aspect-ratio:1.6;margin-bottom:18px}
.stay-gallery-dialog{width:calc(100% - 32px);height:calc(100dvh - 32px);max-width:1460px;max-height:1100px;padding:0;background:var(--shadow);color:var(--bone);border:1px solid rgba(243,238,229,.25);overflow:hidden}
.stay-gallery-dialog[open]{display:flex;flex-direction:column}
.stay-gallery-dialog::backdrop{background:rgba(16,22,18,.82);backdrop-filter:blur(12px)}
.stay-gallery-bar{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:17px 25px;min-height:66px;flex-shrink:0}
.stay-gallery-title{font:29px var(--serif);margin:0}.stay-gallery-counter{font:11px var(--sans);letter-spacing:.12em;margin-left:auto;margin-right:50px}
.stay-gallery-dialog .dialog-close{top:12px;right:16px;background:transparent;color:var(--bone);width:42px;height:42px}
.stay-gallery-stage{position:relative;min-height:0;flex:1;touch-action:pan-y}
.stay-gallery-full{width:100%;height:100%;display:block;object-fit:contain}
.stay-gallery-stage .stay-photo-arrow{opacity:1;width:44px;height:50px;background:rgba(243,238,229,.82)}
.stay-gallery-thumbs{display:flex;gap:8px;padding:14px 25px 8px;overflow-x:auto;flex-shrink:0;scrollbar-width:thin;scrollbar-color:var(--stone) var(--shadow)}
.stay-gallery-thumbs button{flex:0 0 70px;width:70px;height:47px;border:1px solid transparent;opacity:.55;padding:0}
.stay-gallery-thumbs button[aria-pressed=true]{opacity:1;border-color:var(--bone)}
.stay-gallery-thumbs img{width:100%;height:100%;object-fit:cover;display:block}
.stay-gallery-note{font:9px/1.5 var(--sans);text-align:center;margin:0;padding:6px 20px 12px;color:var(--bone);opacity:.75}
@media(hover:none){.stay-photo-arrow{opacity:1}.stay-photo-hint{font-size:8px}}
@media(max-width:800px){.stay-gallery-dialog{width:100%;height:100dvh;max-height:none;border:0}.stay-gallery-bar{padding:14px 18px;min-height:64px}.stay-gallery-title{font-size:25px}.stay-gallery-counter{font-size:10px;margin-right:40px}.stay-gallery-thumbs{padding:12px 15px 8px}.stay-gallery-stage .stay-photo-arrow{width:34px;height:44px}}
@media(max-width:600px){.booking-stay-card>.stay-carousel{height:132px}.booking-stay-card .stay-photo-hint{display:none}.booking-stay-card .stay-photo-arrow{width:26px;height:40px;font-size:25px}.booking-stay-card .stay-photo-arrow.previous{left:3px}.booking-stay-card .stay-photo-arrow.next{right:3px}.booking-stay-card .stay-photo-count{right:6px;bottom:7px;font-size:8px}.ranch-detail .stay-carousel{aspect-ratio:1.4}}
@media(prefers-reduced-motion:reduce){.stay-photo-open img{transition:none}}
/* Bare arrows, with a generous invisible touch target. */
.stay-photo-arrow,.stay-gallery-stage .stay-photo-arrow{border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;backdrop-filter:none;color:var(--bone);text-shadow:0 1px 5px #000;font-family:var(--sans);font-size:30px;width:44px;min-height:44px;opacity:1}
.stay-photo-arrow:focus-visible{outline:2px solid var(--bone);outline-offset:-4px}
.stay-photo-hint,.stay-photo-count{background:transparent;text-shadow:0 1px 5px #000;padding:5px 0}
.stay-gallery-note{min-height:30px;font-size:11px}
