/* Keep intrinsic content within its column instead of clipping page overflow. */
body main :is(section,article,figure,form,fieldset,nav,div){min-width:0}
body main :is(h1,h2,h3,p,figcaption,label,summary){overflow-wrap:break-word}
body main :is(input,select,textarea){min-width:0;max-width:100%;font-size:16px}
body main .button{max-width:100%;white-space:normal;overflow-wrap:break-word;text-align:center}
body main .camping-opening>img{height:auto!important;aspect-ratio:2048/1433;object-fit:contain}
body main .balanced-gallery img.preserve-frame{object-fit:contain!important}
/* The navigation moves into a touch menu before its links become cramped. */
@media(max-width:1100px){
 body .header .menu{display:block;min-width:44px;min-height:44px;padding:6px}
 body .header nav{display:none;position:absolute;top:100%;left:0;right:0;padding:20px 24px;background:#1d4d48;color:white;z-index:110;max-height:calc(100dvh - 96px);overflow-y:auto}
 body .header nav.open{display:flex;flex-direction:column;align-items:stretch;gap:0}
 body .header nav>a,body .header nav summary{min-height:44px;display:flex;align-items:center;padding:9px 0}
 body .header nav .all-sections>div{position:static;min-width:0;max-width:100%;box-shadow:none;grid-template-columns:1fr;padding:8px;margin:8px 0}
 body.resort-home .stay-grid.three-stays{grid-template-columns:1fr}
}
@media(max-width:700px){
 body main :is(.hero-buttons,.hero-bottom,.stay-note,.form-actions,.card-heading){flex-wrap:wrap}
 body.resort-home .hero h1{font-size:clamp(44px,10vw,66px);line-height:1.04}
 body main .info-hero h1{font-size:clamp(42px,10vw,70px)}
 body main .gastro-hero:not(.camping-opening) h1{font-size:clamp(42px,10vw,70px)}
 body main .request-form button{width:100%}
 body main .table-scroll{max-width:100%}
 body footer .footer-column a{overflow-wrap:break-word}
}
@media(max-width:480px){
 body .header{padding-left:16px;padding-right:16px;gap:10px}
 body .header .brand{width:104px;height:46px}
 body .header .brand img{width:182px;height:102.375px;left:-39px;top:-19px}
 body .header-actions{gap:6px;min-width:0}
 body .header .button,body .header .button.small{padding:8px 10px;font-size:11px;gap:4px;min-height:44px}
 body main .form-grid,body main .request-form .form-grid{grid-template-columns:minmax(0,1fr)}
 body main .section-heading h2{max-width:100%}
 body main .section{padding-left:20px;padding-right:20px}
 body main .hero-buttons .button{width:100%;justify-content:center}
}
/* Every local clip is 720×1280: preserve its vertical frame on every page. */
body main .balanced-gallery video{aspect-ratio:9/16!important;width:100%;height:auto!important;max-height:none!important;object-fit:contain}
body main :is(.banquet-video-gallery,.wedding-video-grid){max-width:760px;margin-left:auto;margin-right:auto}
@media(max-width:700px){body main :is(.banquet-video-gallery,.wedding-video-grid){max-width:380px}}
