/* Responsive layout corrections, loaded after the desktop styles. */
html{
  width:100%;
  max-width:100%;
  overflow-x:clip;
}

body{
  width:100%;
  max-width:100%;
  overflow-x:visible;
}

img{
  max-width:100%;
  height:auto;
}

.site-header,
.header-brand,
.main-nav{
  min-width:0;
}

.intro{
  position:fixed;
  inset:0;
  width:100%;
  max-width:100%;
  height:100dvh;
}

.intro__video{
  width:100%;
  max-width:none;
  height:100%;
  object-fit:cover;
}

.intro__fallback{
  position:absolute;
  right:1.25rem;
  bottom:4.6rem;
  z-index:1;
  max-width:min(19rem,calc(100% - 2.5rem));
  margin:0;
  color:#fff;
  font-size:.82rem;
  text-align:right;
  text-shadow:0 1px 3px rgba(0,0,0,.75);
}

.intro.is-autoplay-blocked .intro__skip{
  border-color:#fff;
  background:#fff;
  color:var(--ink);
}

.hero__logo{
  display:block;
  max-width:100%;
  object-fit:contain;
}

.action-icon{
  width:1.05rem;
  height:1.05rem;
  flex:0 0 auto;
  fill:currentColor;
}

.install-app,
.ios-install-hint{
  position:fixed;
  left:max(1rem, env(safe-area-inset-left));
  z-index:31;
  border:1px solid rgba(255,255,255,.5);
  border-radius:.65rem;
  background:#181b17;
  color:#fff;
  box-shadow:0 8px 22px rgba(0,0,0,.24);
}

.install-app{
  bottom:max(1rem, env(safe-area-inset-bottom));
  min-height:44px;
  padding:.65rem .85rem;
  font:700 .68rem Arial,sans-serif;
  letter-spacing:.08em;
  text-transform:uppercase;
  cursor:pointer;
}

.ios-install-hint{
  bottom:max(1rem, env(safe-area-inset-bottom));
  width:min(290px,calc(100% - 7rem));
  padding:.75rem;
  font-size:.78rem;
  line-height:1.35;
}

.ios-install-hint p{margin:0 0 .5rem}
.ios-install-hint button{border:0;padding:0;background:transparent;color:#dce0cd;font:700 .7rem Arial,sans-serif;text-decoration:underline;cursor:pointer}

@media (max-width:700px){
  .hero h1{
    max-width:100%;
    font-size:clamp(2.35rem,12vw,4.35rem);
    overflow-wrap:anywhere;
  }

  .site-header{
    display:grid;
    grid-template-columns:118px minmax(0,1fr);
    gap:.65rem;
    width:100%;
    max-width:100%;
    padding:.55rem 1rem;
  }

  .main-nav{
    width:100%;
    min-width:0;
    max-width:100%;
    gap:.75rem;
  }

  .hero__logo{
    width:min(240px,72vw);
    max-height:140px;
    object-fit:contain;
  }

  .hero__content{
    padding-bottom:max(5.5rem, env(safe-area-inset-bottom));
  }

  .quick-actions{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(82px,1fr));
    gap:.5rem;
    width:100%;
  }

  .quick-actions a{
    min-height:50px;
    width:100%;
    min-width:0;
    padding:.6rem .35rem;
    border-radius:.45rem;
    font-size:.63rem;
    line-height:1.1;
    gap:.35rem;
    white-space:nowrap;
  }

}

@media (max-width:340px){
  .quick-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
  .quick-actions a:last-child{grid-column:1/-1}
}

/* Editorial finish for the cover and its responsive navigation. */
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.nav-toggle{display:none}
.hero{align-items:center}
.hero__content{max-width:690px;padding-bottom:clamp(2rem,6vw,4rem)}
.hero__image{transform:scale(1.01);animation:hero-photo-drift 22s ease-in-out infinite alternate}
.hero .eyebrow{margin-bottom:1.2rem;color:rgba(235,238,221,.86);font:600 .67rem/1.2 Inter,Arial,sans-serif;letter-spacing:.24em}
.hero h1{margin-bottom:1.25rem;font-family:"Cormorant Garamond",Georgia,serif;font-size:clamp(3.5rem,7.2vw,6.4rem);font-weight:600;letter-spacing:-.035em;line-height:.78}
.hero-title-line{display:block}
.hero__subtitle{max-width:38rem;margin-bottom:1.8rem;color:rgba(255,255,255,.84);font:500 clamp(.68rem,1.1vw,.82rem)/1.5 Inter,Arial,sans-serif;letter-spacing:.15em;text-transform:uppercase}
.hero__reservation-label{display:flex;align-items:center;gap:.7rem;margin-bottom:.9rem;color:rgba(255,255,255,.76);font:600 .66rem/1.2 Inter,Arial,sans-serif;letter-spacing:.17em;text-transform:uppercase}
.hero__reservation-label::before{width:2.1rem;height:1px;background:var(--olive);content:""}
.hero .quick-actions{margin-top:0;gap:.55rem}
.hero .quick-actions a{min-height:50px;border-color:rgba(255,255,255,.55);border-radius:.42rem;background:rgba(12,15,11,.36);font-family:Inter,Arial,sans-serif;transition:background .24s ease,border-color .24s ease,color .24s ease,transform .15s ease}
.hero .quick-actions a:hover,.hero .quick-actions a:focus-visible{border-color:#fff;background:rgba(255,255,255,.94);color:var(--ink);transform:translateY(-1px)}
.hero .quick-actions a:active{transform:scale(.98)}

body.has-js .hero .eyebrow,
body.has-js .hero-title-line,
body.has-js .hero__subtitle,
body.has-js .hero__reservation-label,
body.has-js .hero .quick-actions a{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .9s cubic-bezier(.16,1,.3,1)}
body.has-js .hero .eyebrow{transition-delay:.08s}
body.has-js .hero-title-line:first-child{transition-delay:.22s}
body.has-js .hero-title-line:last-child{transition-delay:.38s}
body.has-js .hero__subtitle{transition-delay:.58s}
body.has-js .hero__reservation-label{transition-delay:.75s}
body.has-js .hero .quick-actions a:nth-child(1){transition-delay:.93s}
body.has-js .hero .quick-actions a:nth-child(2){transition-delay:1.02s}
body.has-js .hero .quick-actions a:nth-child(3){transition-delay:1.11s}
body.has-js .hero.is-revealed .eyebrow,
body.has-js .hero.is-revealed .hero-title-line,
body.has-js .hero.is-revealed .hero__subtitle,
body.has-js .hero.is-revealed .hero__reservation-label,
body.has-js .hero.is-revealed .quick-actions a{opacity:1;transform:none}

@keyframes hero-photo-drift{from{transform:scale(1.01)}to{transform:scale(1.025)}}

@media (max-width:700px){
  .site-header{grid-template-columns:minmax(0,1fr) auto;gap:.75rem}
  .nav-toggle{display:none;width:42px;height:42px;place-content:center;gap:5px;border:1px solid rgba(255,255,255,.45);border-radius:50%;background:transparent;color:#fff;cursor:pointer}
  body.has-js .nav-toggle{display:inline-grid}
  .nav-toggle__line{display:block;width:17px;height:1px;background:currentColor;transition:transform .25s ease,opacity .2s ease}
  .site-header.is-menu-open .nav-toggle__line:nth-child(1){transform:translateY(6px) rotate(45deg)}
  .site-header.is-menu-open .nav-toggle__line:nth-child(2){opacity:0}
  .site-header.is-menu-open .nav-toggle__line:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
  body.has-js .main-nav{position:absolute;top:100%;right:0;left:0;display:grid;grid-template-columns:1fr;gap:0;max-width:none;max-height:0;padding:0 1rem;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(-.5rem);background:rgba(17,21,16,.98);transition:max-height .36s ease,padding .36s ease,opacity .22s ease,transform .36s ease}
  .main-nav a{padding:.82rem 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:.72rem}
  .main-nav a:last-child{border-bottom:0}
  body.has-js .site-header.is-menu-open .main-nav{max-height:28rem;padding:1rem;opacity:1;pointer-events:auto;transform:none}
  .hero{align-items:end}
  .hero__content{padding-bottom:max(5.7rem,env(safe-area-inset-bottom))}
  .hero h1{font-size:clamp(2.7rem,11vw,4rem);line-height:.8}
  .hero .eyebrow{margin-bottom:1rem;font-size:.61rem;letter-spacing:.21em}
  .hero__subtitle{max-width:25rem;margin-bottom:1.5rem;font-size:.64rem;letter-spacing:.11em}
  .hero__reservation-label{margin-bottom:.75rem;font-size:.61rem}
  .hero .quick-actions a{min-height:50px;font-size:.62rem}
}

@media (min-width:701px){
  .nav-toggle{display:none}
}

/* Fixed contact actions: compact, touch-friendly, and independent of page layout. */
.contact-float{position:fixed;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));z-index:40;display:grid;gap:.55rem;justify-items:end;opacity:0;transform:translateY(8px);animation:contact-float-enter .45s ease .25s forwards}
.contact-float__action{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:46px;padding:.7rem .9rem;border:1px solid transparent;border-radius:999px;box-shadow:0 5px 18px rgba(0,0,0,.22);color:#fff;font:700 .67rem/1 Inter,Arial,sans-serif;letter-spacing:.07em;text-align:center;text-decoration:none;text-transform:uppercase;transition:transform .18s ease,box-shadow .18s ease,background-color .18s ease}
.contact-float__action--call{background:var(--olive-dark);border-color:rgba(255,255,255,.14)}
.contact-float__action--facebook{background:#1877f2;border-color:rgba(255,255,255,.2)}
.contact-float__action--instagram{background:#c13584;border-color:rgba(255,255,255,.2)}
.contact-float__icon{width:1.05rem;height:1.05rem;flex:0 0 auto;fill:currentColor}
.contact-float__label-mobile{display:none}
.contact-float__action:hover{transform:translateY(-2px);box-shadow:0 8px 22px rgba(0,0,0,.28)}
.contact-float__action--call:hover{background:var(--olive)}
.contact-float__action--facebook:hover{background:#166fe5}
.contact-float__action--instagram:hover{background:#a92f73}
.contact-float__action:focus-visible{outline:2px solid #fff;outline-offset:3px}
@keyframes contact-float-enter{to{opacity:1;transform:translateY(0)}}

@media (max-width:700px){
  .contact-float{right:max(.8rem,env(safe-area-inset-right));bottom:max(.8rem,env(safe-area-inset-bottom));gap:.45rem}
  .contact-float__action{min-height:48px;padding:.68rem .82rem;font-size:.64rem}
  .contact-float__label-desktop{display:none}
  .contact-float__label-mobile{display:inline}
}

@media (prefers-reduced-motion:reduce){
  .contact-float{opacity:1;transform:none;animation:none}
  .contact-float__action{transition:none}
}

@media (prefers-reduced-motion:reduce){
  .hero__image{animation:none;transform:none}
  body.has-js .hero .eyebrow,
  body.has-js .hero-title-line,
  body.has-js .hero__subtitle,
  body.has-js .hero__reservation-label,
  body.has-js .hero .quick-actions a{opacity:1;transform:none;transition:none}
  .hero .quick-actions a{transition:none}
  .main-nav,.nav-toggle__line{transition:none}
}
