/* Shared editorial identity. Booking rules and component layouts stay independent. */
:root  {
  --ivory:#f5f3ed;
  --sand-light:#eae7df;
  --ink:#303735;
  --text-dim:#6d7069;
  --gutter:clamp(24px,5vw,88px);
}

::selection  {
  background:#404759;
  color:#fff;
}

a:focus-visible, button:focus-visible, [tabindex]:focus-visible  {
  outline:2px solid #b57245;
  outline-offset:6px;
}

button  {
  font-family:inherit;
}

[hidden]  {
  display:none !important;
}

#navbar, #navbar.scrolled, #navbar.nav-opaque  {
  height:88px;
  padding:0 var(--gutter);
  background:rgba(245,243,237,.97);
  color:var(--ink);
  box-shadow:none;
  border-bottom:1px solid rgba(48,55,53,.12);
  backdrop-filter:blur(14px);
}

#navbar .logo  {
  display:flex;
  align-items:center;
  gap:19px;
  color:var(--ink);
  font-size:27px;
  letter-spacing:.08em;
  white-space:nowrap;
}

.logo > span  {
  font:9px/1.5 var(--font-sans);
  letter-spacing:.15em;
  border-left:1px solid #bdbfb4;
  padding-left:19px;
}

#navbar .nav-links  {
  gap:30px;
}

#navbar .nav-links a  {
  color:#535951;
  font-size:12px;
}

#navbar .nav-links a:not(.nav-cta).active  {
  color:var(--ink) !important;
}

#navbar .nav-cta  {
  border-radius:0;
  background:var(--sea) !important;
  padding:11px 22px !important;
  color:white;
}

#navbar .nav-cta:hover  {
  background:var(--sea-dark) !important;
}

#navbar .hamburger  {
  width:44px;
  height:44px;
  align-items:center;
}

#navbar .hamburger span  {
  background:var(--ink);
  width:23px;
}

.skip-link  {
  position:fixed;
  z-index:1100;
  top:12px;
  left:20px;
  padding:12px 20px;
  background:var(--ivory);
  color:var(--ink);
  transform:translateY(-180%);
}

.skip-link:focus  {
  transform:translateY(0);
}

.page-header  {
  background:var(--ivory);
  padding:160px var(--gutter) 66px;
  text-align:left;
  border-bottom:1px solid var(--linen);
}

.page-header h1  {
  color:var(--ink);
  font-size:clamp(36px,4.5vw,68px);
  line-height:1.4;
  letter-spacing:-.05em;
}

.page-header .section-label  {
  color:var(--sea);
  font-size:10px;
}

.page-header p  {
  color:var(--text-dim);
  margin-top:18px;
}

footer  {
  padding:70px var(--gutter) 24px;
  background:#303a3a;
}

.footer-inner  {
  max-width:none;
  padding:0;
}

.footer-brand  {
  display:block;
  font-size:40px;
  letter-spacing:.1em;
  margin-bottom:20px;
}

.footer-brand-desc,.footer-col p,.footer-col a,.footer-rooms  {
  color:#d2d7cf;
}

.footer-bottom  {
  color:#bfc6bd;
  padding-top:25px;
}

.footer-business  {
  color:#bfc6bd;
}

.footer-hours  {
  color:#bfc6bd;
}

.mobile-cta-bar  {
  padding:8px 18px calc(8px + env(safe-area-inset-bottom));
  background:var(--ivory);
  border-top:1px solid var(--linen);
}

.mobile-cta-bar a  {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:12px 20px;
  background:var(--sea);
  border-radius:0;
}

.subpage .about-panorama  {
  margin:35px var(--gutter) 0;
  height:clamp(280px,47vw,650px);
  overflow:hidden;
}

.about-panorama img  {
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center 45%;
}

.about-page .about-intro  {
  padding-top:12px;
}

.about-page .about-quote  {
  font-size:clamp(27px,3.3vw,46px);
  line-height:1.65;
}

.about-page .about-features-grid  {
  border-top:1px solid var(--linen);
  gap:0;
}

.about-page .about-feature-item  {
  padding:30px 24px;
  background:transparent;
  border-right:1px solid var(--linen);
}

.about-page .about-feature-num  {
  color:var(--accent);
}

.rooms-page .room-hero-img  {
  margin:0 var(--gutter);
  width:auto;
  height:clamp(300px,54vw,720px);
  overflow:hidden;
}

.rooms-page .room-hero-img img  {
  width:100%;
  height:100%;
  object-fit:cover;
}

.rooms-page .room-quick-nav  {
  top:88px;
  background:var(--ivory);
}

.rooms-page .room-section  {
  scroll-margin-top:145px;
}

.rooms-page .room-name  {
  font-size:clamp(32px,4vw,54px);
}

.subpage .reveal  {
  opacity:1;
  transform:none;
}

@media (max-width:1000px)  {
  .logo > span  {
    display:none;
  }

  #navbar .nav-links  {
    gap:23px;
  }

}

@media (max-width:768px)  {
  #navbar, #navbar.scrolled, #navbar.nav-opaque  {
    height:72px;
  }

  #navbar .logo  {
    font-size:24px;
  }

  #navbar .nav-links  {
    inset:72px 0 0;
    height:calc(100dvh - 72px);
    background:var(--ivory);
    gap:24px;
    visibility:hidden;
    overflow-y:auto;
    justify-content:safe center;
    padding-block:24px;
  }

  #navbar .nav-links.open  {
    visibility:visible;
  }

  #navbar .nav-links a  {
    flex-shrink:0;
    color:var(--ink) !important;
    font-size:23px !important;
  }

  #navbar .nav-links .nav-cta  {
    color:white !important;
    font-size:18px !important;
    padding:12px 40px !important;
  }

  .page-header  {
    background:var(--ivory);
    padding:126px var(--gutter) 44px;
  }

  .page-header p  {
    font-size:13px;
  }

  .rooms-page .room-quick-nav  {
    top:72px;
  }

  footer  {
    padding:50px var(--gutter) 104px;
  }

  .footer-top  {
    gap:30px;
  }

}

@media (prefers-reduced-motion:reduce)  {
  html  {
    scroll-behavior:auto;
  }

  *, *::before, *::after  {
    animation:none !important;
    transition:none !important;
  }

  .reveal  {
    opacity:1;
    transform:none;
  }

}

/* Navigation remains usable when scripts are unavailable. */
@media (max-width:768px)  {
  html:not(.nav-ready) #navbar  {
    position:relative;
    height:auto;
    min-height:72px;
    flex-wrap:wrap;
    padding-block:14px;
  }

  html:not(.nav-ready) #navbar .hamburger  {
    display:none;
  }

  html:not(.nav-ready) #navbar .nav-links  {
    position:static;
    width:100%;
    height:auto;
    flex-direction:row;
    flex-wrap:wrap;
    justify-content:flex-start;
    gap:12px 20px;
    padding-top:14px;
    visibility:visible;
    opacity:1;
    pointer-events:auto;
  }

  html:not(.nav-ready) #navbar .nav-links a, html:not(.nav-ready) #navbar .nav-links .nav-cta  {
    font-size:13px !important;
  }

  html:not(.nav-ready) .home-page main  {
    padding-top:0;
  }

}
