/* site.css — shared layout rules. Section styles live in each page's <style data-scope> block. */
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #FDFCF9; color: #242321; font-family: 'Manrope', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
img { max-width: none; }

/* Fixed-width layouts are scaled to the screen by site.js and centred. */
.ab > div { margin-left: auto; margin-right: auto; }

/* Desktop layout ≥ 1024px, mobile layout below. */
.only-m { display: none; }
@media (max-width: 1023px) {
  .only-d { display: none; }
  .only-m { display: block; }
}

/* Sticky header that tightens on scroll. */
.ab header:first-of-type { position: sticky !important; top: 0; z-index: 60; background: rgba(253, 252, 249, .96) !important; transition: height .35s ease, box-shadow .35s ease; }
.is-scrolled .only-d .ab header:first-of-type,
.is-scrolled .ab.page header:first-of-type { height: 70px !important; box-shadow: 0 10px 30px -24px rgba(36, 35, 33, .45); }
.is-scrolled .only-m .ab header:first-of-type { box-shadow: 0 10px 30px -24px rgba(36, 35, 33, .45); }

/* Scroll reveal (added by site.js; skipped for reduced motion). */
.rv { opacity: 0; transform: translateY(26px); transition: opacity 1s ease, transform 1.1s cubic-bezier(.2, .7, .2, 1); }
.rv.in { opacity: 1; transform: none; }

/* Floating WhatsApp button (desktop). */
.wa-float { position: fixed; right: 28px; bottom: 28px; z-index: 70; width: 56px; height: 56px; border-radius: 50%; background: #242321; color: #FDFCF9; display: flex; align-items: center; justify-content: center; box-shadow: 0 16px 30px -16px rgba(36, 35, 33, .6); text-decoration: none; transition: transform .3s ease, background .3s ease; }
.wa-float:hover { transform: translateY(-3px); background: #8F3F35; color: #FDFCF9; }
.wa-float svg { fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }

/* Sticky booking bar (mobile). */
.m-bar { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 70; height: 64px; background: #242321; border-radius: 4px; display: none; align-items: center; gap: 8px; padding: 8px; box-sizing: border-box; box-shadow: 0 18px 40px -18px rgba(36, 35, 33, .6); font-family: 'Manrope', system-ui, sans-serif; }
.m-bar a { text-decoration: none; }
.m-bar .book { flex-grow: 1; height: 48px; display: flex; align-items: center; justify-content: center; background: #8F3F35; color: #FDFCF9; font-size: 15px; font-weight: 600; border-radius: 2px; }
.m-bar .wa { width: 48px; height: 48px; display: flex; align-items: center; justify-content: center; color: #FDFCF9; border: 1px solid rgba(253, 252, 249, .25); border-radius: 2px; }
.m-bar svg { fill: none; stroke: currentColor; stroke-width: 1.25; stroke-linecap: round; stroke-linejoin: round; }
@media (max-width: 1023px) {
  .has-mbar .m-bar { display: flex; }
  .has-mbar .wa-float { display: none; }
  .has-mbar body { padding-bottom: 84px; }
}

/* Mobile menu overlay. */
#mobile-menu { position: fixed; inset: 0; z-index: 90; background: #FDFCF9; display: flex; flex-direction: column; padding: 20px 24px 32px; box-sizing: border-box; font-family: 'Manrope', system-ui, sans-serif; overflow-y: auto; }
#mobile-menu[hidden] { display: none; }
#mobile-menu .mm-top { display: flex; justify-content: space-between; align-items: center; height: 48px; }
#mobile-menu .mm-brand { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 22px; letter-spacing: .16em; font-weight: 600; color: #242321; }
#mobile-menu button { width: 44px; height: 44px; border-radius: 50%; border: 1px solid #E0D6C7; background: transparent; color: #242321; font-size: 22px; line-height: 1; cursor: pointer; }
#mobile-menu nav { display: flex; flex-direction: column; margin-top: 32px; border-top: 1px solid #E0D6C7; }
#mobile-menu nav a { font-family: 'Cormorant Garamond', Georgia, serif; font-size: 32px; color: #242321; text-decoration: none; padding: 16px 0; border-bottom: 1px solid #E0D6C7; }
#mobile-menu .mm-cta { margin-top: auto; height: 56px; display: flex; align-items: center; justify-content: center; background: #8F3F35; color: #FDFCF9; font-size: 15px; font-weight: 600; text-decoration: none; border-radius: 2px; }
.menu-open, .menu-open body { overflow: hidden; }

/* Visible focus everywhere. */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible { outline: 2px solid #8F3F35; outline-offset: 3px; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .rv { opacity: 1; transform: none; transition: none; }
}
