html,body{max-width:100%;overflow-x:hidden}
img,video,svg{max-width:100%}
.container,.navWrap,.footerMain,.footerInvitation,.softSite section,.softSite article,.softSite div,main,footer{min-width:0}
h1,h2,h3,p,a,span,strong,small{overflow-wrap:anywhere}

@media(max-width:650px){
  .container{width:calc(100% - 30px);max-width:1180px}
  .navWrap{gap:14px}
  .brand,.brand>span:last-child{min-width:0}
  .brand small{letter-spacing:.14em}
  .mobileMenu>div{right:0;min-width:0;width:min(270px,calc(100vw - 24px));max-height:calc(100vh - 86px);overflow-y:auto}
  .innerHero h1,.pageHero h1{font-size:clamp(38px,12vw,46px)}
  .formEnd{align-items:stretch;flex-direction:column}
  .formEnd .btn{width:100%}
  .priceRow article,.priceRow aside,.ruleGrid article,.bookingStepsVisual article,.contactCard{min-width:0}
  .priceRow article div{align-items:flex-start;flex-direction:column;gap:2px}
  .footerLocation,.footerNav a{width:auto;max-width:100%}
  .footerContact a,.footerContact>span{align-items:flex-start;max-width:100%}
  .heroBrandName{font-size:clamp(58px,21vw,88px)}
  .heroBrandKind{font-size:11px;letter-spacing:.27em}
  .softHeroText,.heroBrandTitle,.heroBrandName,.careStoryIntro,.carePromiseGrid,.softNatureGrid,.softFamilyGrid,.softSocialGrid,.pensionEditorialGrid,.contactHeroGrid,.galleryHeroGrid{min-width:0;max-width:100%}
  .softButtons,.contactHeroActions,.softSocialButtons,.brandSocial{align-items:stretch}
  .softButton,.brandSocialButton,.socialButton{max-width:100%;white-space:normal;text-align:center}
  .contactHeroVisual span,.pensionHeroVisual>span{left:14px;right:14px;bottom:14px;max-width:calc(100% - 28px);justify-content:center;text-align:center;border-radius:18px}
  .pensionLivingMarks{inset:-12px}
  .pensionHeroVisual:before{inset:-8px}
  .footerInvitationLink{width:100%;justify-content:center;white-space:normal;text-align:center}
  .footerContact a{word-break:break-word}
  .galleryFilters{max-width:100%;scrollbar-width:thin}
  .galleryLightbox>div{width:100%;min-width:0}
}

@media(max-width:380px){
  .container{width:calc(100% - 24px)}
  .brandMark{width:38px;height:38px}
  .brand b{font-size:18px}
  .brand small{font-size:8px;letter-spacing:.1em}
  .section{padding:62px 0}
  .bookingPanel,.ownerCard,.proForm,.contactBand{padding-left:20px;padding-right:20px}
  .innerHero h1,.pageHero h1{font-size:38px}
  .priceRow strong{font-size:44px}
  .softHero{min-height:780px}
  .softHeroInner{min-height:780px;padding-top:38px;padding-bottom:48px}
  .heroBrandName{font-size:clamp(52px,19vw,68px)}
  .heroBrandKind{font-size:9px;letter-spacing:.2em}
  .softHeroText .heroPromise{font-size:21px}
  .softHeroText .heroIntroduction{font-size:13px}
  .softTwoCols h2,.softSectionTitle h2,.softFamily h2,.softCta h2,.softGaelle h2,.softNatureGrid h2,.softSocialGrid h2,.pensionEditorialText h2,.careStoryIntro h2{font-size:33px}
  .softCards article,.carePromiseGrid article,.bookingStepsVisual article{padding-left:21px;padding-right:21px}
  .contactHeroCopy h1,.galleryHero h1{font-size:40px}
  .contactHeroVisual,.pensionHeroVisual{min-height:245px}
  .footerInvitation,.footerMain{padding-left:20px;padding-right:20px}
  .footerInvitation h2{font-size:24px}
}
