/* ZUZU Family House — responsive presentation polish. */
:root{--focus-ring:0 0 0 4px rgba(165,107,18,.12)}
::selection{background:#d8ad62;color:#10251f}
.button,.check-button,.nav-reserve,.text-link,.text-cta,.faq summary,.modal-close{transition:transform .2s ease,box-shadow .2s ease,background-color .2s ease,border-color .2s ease,opacity .2s ease}
.button:hover,.check-button:hover,.nav-reserve:hover{transform:translateY(-1px)}
.button.gold:hover{box-shadow:0 17px 38px rgba(192,132,32,.27)}
.text-link:hover,.text-cta:hover{opacity:.72}
.field input:focus,.field select:focus,.booking-form input:focus,.booking-form select:focus{outline:none;box-shadow:var(--focus-ring);border-color:#b88431}
.nav{box-shadow:0 1px 0 rgba(10,35,29,.035)}
.hero-copy,.hero-mark{position:relative;z-index:2}
.availability-card{backdrop-filter:blur(18px)}
.house-facts article{transition:background-color .2s ease,padding-left .2s ease}
.house-facts article:hover{background:rgba(255,255,255,.32);padding-left:8px}
.faq details{overflow:hidden;transition:border-color .2s ease,box-shadow .2s ease}
.faq details[open]{border-color:rgba(165,107,18,.28);box-shadow:0 12px 32px rgba(25,30,22,.05)}
.location-pin{position:relative}
.location-pin:after{content:"";position:absolute;inset:20px;border:1px solid rgba(216,173,98,.13);border-radius:50%}
.modal-panel{border:1px solid rgba(165,107,18,.12)}
.modal-close{cursor:pointer;border-radius:50%;width:42px;height:42px;display:grid;place-items:center}
.modal-close:hover{background:rgba(15,43,36,.07)}
.booking-form input,.booking-form select{transition:border-color .2s ease,box-shadow .2s ease,background .2s ease}
.summary{box-shadow:0 20px 48px rgba(15,43,36,.14)}
.submit-button{min-height:46px}

@media (min-width:981px){
  .container{width:min(1240px,calc(100% - 72px))}
  .nav-inner{height:82px}
  .brand-name{font-size:38px}
  .nav-links{gap:34px;font-size:11px}
  .nav-reserve{padding:11px 20px}

  .hero-grid{min-height:620px;grid-template-columns:minmax(0,1.22fr) minmax(360px,.78fr);gap:68px;padding:66px 0 82px}
  .hero h1{font-size:clamp(72px,6vw,100px);max-width:790px;text-wrap:balance}
  .hero-copy>p{max-width:620px;font-size:15px}
  .hero-actions{margin-top:30px}
  .hero-meta{margin-top:44px;gap:42px}
  .hero-meta strong{font-size:25px}
  .hero-mark{height:420px}
  .ring-a{width:340px;height:340px}
  .ring-b{width:460px;height:460px}
  .hero-monogram{font-size:260px}
  .hero-signature strong{font-size:48px}

  .availability{margin-top:-37px}
  .availability-card{grid-template-columns:1fr 1fr .7fr .72fr;padding:13px;border-radius:22px;box-shadow:0 26px 70px rgba(20,30,24,.14)}
  .availability .field{padding:8px 18px}
  .field input,.field select{height:42px;font-size:14px}
  .date-placeholder{font-size:14px}
  .check-button{font-size:10px;padding:0 20px}

  .section{padding:86px 0}
  .house-compact{grid-template-columns:.88fr 1.12fr;gap:84px}
  .house h2,.essentials h2{font-size:clamp(52px,4.2vw,68px);text-wrap:balance}
  .house-copy>p{font-size:14px;max-width:510px}
  .house-facts article{grid-template-columns:48px 210px 1fr;gap:22px;padding:22px 10px}
  .house-facts strong{font-size:30px}
  .house-facts p{font-size:12px}

  .location{padding:80px 0}
  .location-card{grid-template-columns:1fr .42fr;gap:76px}
  .location h2{font-size:clamp(60px,5vw,82px);text-wrap:balance}
  .location p{font-size:14px;max-width:560px}
  .location-pin{width:190px;height:190px;box-shadow:0 0 0 30px rgba(255,255,255,.03)}

  .essentials-grid{grid-template-columns:.68fr 1.32fr;gap:84px}
  .faq{gap:10px}
  .faq details{border-radius:17px;padding:0 22px}
  .faq summary{font-size:25px;padding:19px 0}
  .faq p{font-size:13px}

  .footer{padding:44px 0 22px}
  .footer-lockup strong{font-size:50px}
  .footer-action p{font-size:29px}

  .modal-panel{left:50%;right:auto;top:50%;height:auto;max-height:calc(100vh - 56px);width:min(1080px,calc(100vw - 72px));transform:translate(-50%,-50%);border-radius:28px;padding:38px 42px;box-shadow:0 38px 100px rgba(0,0,0,.34)}
  .modal-head h2{font-size:58px}
  .modal-grid{grid-template-columns:1.18fr .82fr;gap:22px;margin-top:26px}
  .booking-form{padding:24px}
  .summary{padding:25px;top:0}
  .form-grid{gap:14px}
  .booking-form input,.booking-form select{height:48px}
  .summary-head span{font-size:31px}
  .summary-row{padding:12px 0;font-size:12px}
  .summary-total strong{font-size:27px}
}

@media (min-width:1450px){
  .container{width:min(1320px,calc(100% - 96px))}
  .hero-grid{min-height:660px}
  .hero h1{font-size:102px}
  .modal-panel{width:min(1140px,calc(100vw - 120px))}
}

@media (min-width:981px) and (max-height:760px){
  .hero-grid{min-height:520px;padding-top:48px;padding-bottom:64px}
  .hero h1{font-size:72px}
  .hero-mark{height:330px}
  .ring-a{width:270px;height:270px}
  .ring-b{width:370px;height:370px}
  .hero-monogram{font-size:205px}
  .section{padding:66px 0}
  .modal-panel{max-height:calc(100vh - 32px);padding-top:28px;padding-bottom:28px}
  .modal-head h2{font-size:48px}
}

@media (max-width:980px){
  .button,.check-button{min-height:44px}
  .modal-panel{overscroll-behavior:contain}
  .booking-form,.summary{box-shadow:none}
}

@media (max-width:560px){
  .nav{backdrop-filter:blur(22px)}
  .hero h1{text-wrap:balance}
  .hero-actions .button{min-width:170px}
  .availability{padding:14px 0}
  .availability-card{gap:8px}
  .availability .field{border-radius:12px}
  .check-button{min-height:48px;border-radius:12px}
  .house-facts article:hover{padding-left:0;background:transparent}
  .modal-panel{padding:26px 15px 34px}
  .modal-head{padding-right:42px}
  .modal-head h2{font-size:43px}
  .modal-head p{line-height:1.65}
  .booking-form{padding:17px;border-radius:18px}
  .form-grid{grid-template-columns:1fr!important;gap:10px}
  .booking-form input,.booking-form select{height:48px!important;font-size:14px!important}
  .selected-stay{display:grid;gap:6px}
  .selected-stay strong{text-align:left;line-height:1.45}
  .summary{border-radius:18px;padding:19px}
  .summary-head span{font-size:26px}
  .footer-inner{gap:24px}
}

@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}
