/* Final viewport safeguards shared by every page. */
.service-composition>div,.contact>*,.footer-top>*,.second-wedding-collage>*,.third-wedding>*,.fourth-wedding-intro>*{min-width:0}
.gallery-photo:focus-visible{outline:2px solid var(--wine);outline-offset:4px}
.gallery-lightbox{height:100vh;max-height:100vh;height:100dvh;max-height:100dvh;overscroll-behavior:contain}
.gallery-close{top:max(12px,env(safe-area-inset-top));right:max(18px,env(safe-area-inset-right))}
.gallery-counter{bottom:max(12px,env(safe-area-inset-bottom))}
@media(max-width:900px){
 header>#navigation{height:calc(100vh - var(--mobile-header-height,76px));height:calc(100dvh - var(--mobile-header-height,76px));padding-bottom:max(30px,env(safe-area-inset-bottom));overscroll-behavior:contain}
 .contact input,.contact select,.contact textarea,.contact #date-toggle{font-size:16px}
 .gallery-lightbox{padding:max(64px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(48px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
}
@media(min-width:701px) and (max-width:1000px){
 .wedding-testimonial h2{font-size:clamp(25px,3.5vw,35px)}
 .second-wedding-copy h2,.third-wedding-copy h2{font-size:clamp(28px,3.5vw,35px)}
}
@media(max-width:700px){
 .wedding-testimonial h2{font-size:clamp(30px,8.5vw,38px)}
 .service-page-heading h1{overflow-wrap:anywhere}
 .footer-contacts a{white-space:normal;flex-wrap:wrap;gap:4px 14px}
 .contact .contact-link{overflow-wrap:anywhere}
 #calendar{width:100%;max-width:320px;box-sizing:border-box;left:0;right:auto;padding:14px}
 .gallery-prev{left:max(8px,env(safe-area-inset-left))}.gallery-next{right:max(8px,env(safe-area-inset-right))}
}
@media(max-width:380px){
 .contact form{padding:22px 14px}
 .second-wedding-copy h2,.third-wedding-copy h2,.fourth-wedding-intro h2{font-size:36px}
 .rental-prices>div{gap:12px;flex-wrap:wrap}
}
@media(hover:none){.gallery-photo:hover img{transform:none}}

/* Fixed mobile chrome must not create a containing block for its menu. */
@media(max-width:900px){
 body{padding-top:76px}
 header{position:fixed;inset:0 0 auto 0;width:100%;height:76px;z-index:1000;background:var(--cream);backdrop-filter:none;-webkit-backdrop-filter:none;transform:none;filter:none;contain:none}
 header>#navigation{position:fixed;top:76px;bottom:0;left:0;right:0;height:auto;max-height:none;transform:none;transition:opacity .2s,visibility .2s}
 header>#navigation.open{transform:none}
 html:has(body.mobile-navigation-open){overflow:hidden}
 .reveal,.reveal.visible{opacity:1;transform:none;transition:none}
}

/* Mobile photographs retain their source proportions instead of zooming into a crop. */
@media(max-width:700px){
 .editorial-hero{height:auto;min-height:0;max-height:none;aspect-ratio:1638/2048;overflow:hidden}
 .editorial-hero .hero-original{position:absolute;inset:0;width:100%;height:100%;max-width:100%;object-fit:contain;object-position:center;transform:none;mask-image:none;-webkit-mask-image:none}
 .editorial-hero .hero-motto{top:5%;left:4%;right:4%;font-size:clamp(12px,3.65vw,25px);line-height:1.2;white-space:normal;text-shadow:none}
 .editorial-hero .hero-wordmark{bottom:3%;left:4%;right:4%;padding:0}
 .editorial-hero .hero-wordmark h1{font-size:14vw;line-height:1;letter-spacing:-.045em}
 .editorial-hero .hero-wordmark h1 span:first-child{font-size:1.1em;margin-bottom:.03em}
 .reception-panorama img{height:auto;aspect-ratio:2048/768;object-fit:contain;object-position:center}
 .service-panel{height:auto;aspect-ratio:3/4;min-height:0;max-height:none}
 .service-image-toggle img{transform:none}
 .rental-detail-page .service-composition>div>img{height:auto;max-height:none;aspect-ratio:auto;object-fit:contain}
 .rental-detail-page .service-composition>.service-column-center,.rental-detail-page .service-composition>.service-column-right{width:100%;max-width:510px;margin-inline:auto}
}

.hero-picture{display:contents}
@media(max-width:700px){
 .editorial-hero .hero-wordmark{bottom:3.5%}
 .editorial-hero .hero-wordmark h1{font-size:13vw}
 .editorial-hero .hero-wordmark h1 span,.editorial-hero .hero-motto{animation:none}
 .gallery-lightbox img{width:auto;height:auto;max-width:100%;max-height:100%}
 .contact #date-toggle{min-height:48px}
 .footer-links a{min-height:44px;display:flex;align-items:center}
}

/* Touch scrolling never fades or moves photographs or their wrappers. */
@media(max-width:900px),(any-pointer:coarse){
 .gallery-photo,.gallery-photo img,.reception-panorama picture,.story-editorial figure,.team-wide-photo,.rental-feature,.rental-pair figure,.service-composition>div>img{opacity:1;animation:none;transition:none}
 .gallery-photo img,.gallery-photo:hover img{transform:none}
 .service-image-toggle img{transition:opacity .35s ease;transform:none}
}
