.image-state-frame{position:relative}
.image-state-message{position:absolute;inset:0;z-index:5;display:grid;place-items:center;background:var(--pine);color:var(--cream);font-size:12px;padding:1rem;text-align:center}
.image-state-message[hidden],.onboard-photo[hidden],.interior-hotspot[hidden]{display:none}
.vehicle-dialog-photo{min-height:0;align-self:center;aspect-ratio:4/3;width:100%;max-height:none}
.vehicle-dialog-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center!important}
.onboard-photo{min-height:0;aspect-ratio:4/3;align-self:center;width:100%;height:auto}
.onboard-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:none;filter:none}
.onboard-photo:after{display:none}
.onboard-photo .photo-note,.onboard-photo .photo-caption{display:none}
.onboard-photo[data-image-state="loading"] .interior-hotspot,.onboard-photo[data-image-state="error"] .interior-hotspot{visibility:hidden}
.onboard-photo .interior-hotspot{transform:translate(-50%,-50%)}
/* Wide hero copy stays in the sky above the camper roof, including its arrival motion. */
@media(min-width:1700px){.hero{height:1250px}.hero-copy{padding-top:100px}.hero h1{font-size:130px}}
/* Keep both campers inside the tablet overview; its existing hotspots follow the image. */
@media(min-width:761px) and (max-width:1300px){.fleet-image{height:auto;aspect-ratio:3/2;bottom:auto}}
@media(min-width:901px){.onboard{display:grid;grid-template-columns:1.03fr 1fr}.onboard-photo{position:sticky;top:100px}.onboard{overflow:visible}}
@media(max-width:900px){.onboard{display:block}.camp-accordion details>div{padding-left:0;padding-right:0}.camp-accordion .onboard-photo{margin:0 0 18px;min-height:0;aspect-ratio:4/3}.vehicle-dialog-photo{min-height:0;max-height:none;aspect-ratio:4/3}.vehicle-dialog-photo img{height:100%}.vehicle-dialog-photo>.section-index{left:18px;bottom:15px;font-size:9px}}
