:root {
  --bg:#f6f2e9; --fg:#3a3024; --muted:#7a6e5e; --sand:#ecdfc9; --border:#d9cdb6;
  --primary:#b6764e; --primary-fg:#fffaf2; --olive:#7d8758; --ink:#3a3024;
  --serif:"Cormorant Garamond", Georgia, serif;
  --sans:"Inter", system-ui, sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--bg); color:var(--fg); font-family:var(--sans); font-weight:300; line-height:1.55; -webkit-font-smoothing:antialiased; }
img { max-width:100%; display:block; height:auto; }
a { color:inherit; text-decoration:none; }
h1,h2,h3,h4 { font-family:var(--serif); font-weight:300; letter-spacing:-.01em; margin:0; }
.ms-h1 { font-size:clamp(2.5rem,6vw,5rem); line-height:1.05; }
.ms-h2 { font-size:clamp(2rem,4vw,3rem); line-height:1.1; }
.ms-h3 { font-size:1.5rem; line-height:1.3; }
.ms-eyebrow { font-size:11px; letter-spacing:.22em; color:var(--primary); margin:0 0 1rem; }
.ms-muted { color:var(--muted); }
.ms-accent { color:var(--primary); }
.ms-center { text-align:center; }
.ms-container { max-width:1500px; margin:0 auto; padding:0 1.25rem; }
.ms-container-narrow { max-width:1100px; margin:0 auto; padding:0 1.25rem; }
@media(min-width:768px){ .ms-container,.ms-container-narrow{padding:0 2.5rem;} }

/* Header */
.ms-header { position:fixed; inset:0 0 auto 0; z-index:40; display:flex; align-items:center; justify-content:space-between; padding:0 1.25rem; height:64px; transition:background .4s, border-color .4s; background:rgba(246,242,233,.95); border-bottom:1px solid var(--border); backdrop-filter:blur(10px); }
.ms-header[data-transparent="true"] { background:transparent; border-bottom-color:transparent; color:var(--bg); }
.ms-header[data-transparent="true"].is-scrolled { background:rgba(246,242,233,.95); border-bottom:1px solid var(--border); color:var(--fg); }
@media(min-width:768px){ .ms-header{ padding:0 2.5rem; height:80px; } }
.ms-icon-btn { background:none; border:0; color:inherit; cursor:pointer; padding:.5rem; }
.ms-logo { display:flex; flex-direction:column; align-items:center; font-family:var(--serif); line-height:1; }
.ms-logo-top, .ms-logo-bot { font-size:10px; letter-spacing:.22em; }
.ms-logo-main { font-size:1.4rem; letter-spacing:.35em; margin:.15rem 0; }
@media(min-width:768px){ .ms-logo-main{ font-size:1.7rem; } }
.ms-booking-btn { background:var(--primary); color:var(--primary-fg); border:0; padding:0 1.5rem; height:64px; font-size:11px; letter-spacing:.22em; cursor:pointer; transition:background .3s; }
@media(min-width:768px){ .ms-booking-btn{ padding:0 2.5rem; height:80px; } }
.ms-booking-btn:hover { background:#a06a45; }
.ms-main { padding-top:0; }

/* Hero */
.ms-hero { position:relative; height:100svh; overflow:hidden; }
.ms-hero-img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.ms-hero-overlay { position:absolute; inset:0; background:linear-gradient(180deg, rgba(58,48,36,.2), transparent 40%, rgba(58,48,36,.4)); }
.ms-hero-content { position:absolute; left:0; right:0; top:50%; transform:translateY(-50%); text-align:center; color:var(--bg); padding:0 1rem; }
.ms-hero-eyebrow { font-size:10px; letter-spacing:.22em; margin-bottom:1.5rem; }
.ms-hero-title { font-family:var(--serif); font-weight:300; font-size:clamp(3rem,8vw,7rem); letter-spacing:.15em; line-height:1.05; }
.ms-hero-cta { position:absolute; bottom:2.5rem; right:1.25rem; background:rgba(246,242,233,.95); color:var(--fg); padding:1.25rem 2.5rem; font-size:11px; letter-spacing:.22em; backdrop-filter:blur(8px); }
@media(min-width:768px){ .ms-hero-cta{ right:2.5rem; padding:1.25rem 3.5rem; } }

/* Panels */
.ms-menu-panel, .ms-booking-panel { position:fixed; inset:0; z-index:50; opacity:0; pointer-events:none; transition:opacity .4s; }
.ms-menu-panel.is-open, .ms-booking-panel.is-open { opacity:1; pointer-events:auto; }
.ms-overlay { position:absolute; inset:0; background:rgba(58,48,36,.3); }
.ms-menu-inner { position:absolute; inset:0 auto 0 0; width:100%; max-width:560px; background:var(--sand); padding:2rem; overflow-y:auto; transform:translateX(-100%); transition:transform .7s cubic-bezier(.16,1,.3,1); }
.ms-menu-panel.is-open .ms-menu-inner { transform:translateX(0); }
.ms-booking-inner { position:absolute; inset:0 0 0 auto; width:100%; max-width:560px; background:var(--bg); padding:2rem; overflow-y:auto; transform:translateX(100%); transition:transform .7s cubic-bezier(.16,1,.3,1); }
.ms-booking-panel.is-open .ms-booking-inner { transform:translateX(0); }
.ms-menu-nav ul { list-style:none; padding:0; margin:3rem 0 0; display:flex; flex-direction:column; gap:1.25rem; }
.ms-menu-nav a { font-family:var(--serif); font-size:clamp(2rem,4vw,3rem); }
.ms-menu-nav a:hover { color:var(--primary); }
.ms-menu-address { margin-top:3rem; color:var(--muted); font-size:.875rem; }

/* Forms */
.ms-booking-form { margin-top:3rem; display:flex; flex-direction:column; gap:1.5rem; }
.ms-grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; }
.ms-booking-form label { display:block; }
.ms-booking-form span { display:block; font-size:11px; letter-spacing:.22em; color:var(--muted); margin-bottom:.5rem; }
.ms-booking-form input { width:100%; background:transparent; border:0; border-bottom:1px solid var(--border); padding:.5rem 0; font-family:inherit; font-size:1rem; color:var(--fg); outline:none; transition:border-color .3s; }
.ms-booking-form input:focus { border-color:var(--primary); }
.ms-btn { display:inline-block; background:transparent; border:1px solid var(--border); color:var(--fg); padding:1rem 2.5rem; font-size:11px; letter-spacing:.22em; cursor:pointer; transition:all .3s; font-family:inherit; }
.ms-btn-primary { background:var(--primary); color:var(--primary-fg); border-color:var(--primary); }
.ms-btn-primary:hover { background:#a06a45; border-color:#a06a45; }
.ms-link { display:inline-block; font-size:11px; letter-spacing:.22em; color:var(--primary); margin-top:2rem; position:relative; }
.ms-link::after { content:""; position:absolute; left:0; bottom:-2px; width:100%; height:1px; background:currentColor; transform:scaleX(0); transform-origin:right; transition:transform .5s cubic-bezier(.16,1,.3,1); }
.ms-link:hover::after { transform:scaleX(1); transform-origin:left; }

/* Editorial sections */
.ms-editorial { padding:5rem 1.25rem 0; }
@media(min-width:768px){ .ms-editorial{ padding:8rem 2.5rem 0; } }
.ms-editorial-grid { max-width:1500px; margin:0 auto; display:grid; gap:2.5rem; align-items:center; }
@media(min-width:768px){ .ms-editorial-grid{ grid-template-columns:1fr 1fr; gap:5rem; } }
.ms-editorial-text p { color:var(--muted); margin:1rem 0; }
.ms-editorial-text img, .ms-editorial-grid img { width:100%; height:70vh; object-fit:cover; }

/* Page head */
.ms-page-head { padding:8rem 1.25rem 0; }
@media(min-width:768px){ .ms-page-head{ padding-top:10rem; } }

/* Section */
.ms-section { padding:6rem 1.25rem 0; }
@media(min-width:768px){ .ms-section{ padding:8rem 2.5rem 0; } }
.ms-section-head { margin-bottom:3rem; }

/* Cards / Journal */
.ms-journal-grid { display:grid; gap:2.5rem; grid-template-columns:1fr; }
@media(min-width:768px){ .ms-journal-grid{ grid-template-columns:repeat(3,1fr); } }
.ms-card img { width:100%; height:420px; object-fit:cover; transition:transform .7s; }
.ms-card:hover img { transform:scale(1.04); }
.ms-card .ms-eyebrow { margin-top:1.25rem; }
.ms-card h2, .ms-card h3 { margin-top:.5rem; transition:color .3s; }
.ms-card:hover h2, .ms-card:hover h3 { color:var(--primary); }

/* Rooms */
.ms-rooms { display:flex; flex-direction:column; gap:6rem; }
.ms-room-row { display:grid; gap:2.5rem; align-items:center; }
@media(min-width:768px){ .ms-room-row{ grid-template-columns:1fr 1fr; gap:5rem; } }
.ms-room-row.is-reverse .ms-room-img { order:2; }
.ms-room-img img { width:100%; height:70vh; object-fit:cover; }

/* Footer */
.ms-footer { background:var(--sand); margin-top:8rem; }
.ms-footer-inner { max-width:1500px; margin:0 auto; padding:5rem 1.25rem; }
@media(min-width:768px){ .ms-footer-inner{ padding:7rem 2.5rem; } }
.ms-footer-grid { display:grid; gap:4rem; }
@media(min-width:768px){ .ms-footer-grid{ grid-template-columns:1fr 1fr; } }
.ms-newsletter { display:flex; align-items:flex-end; gap:.75rem; border-bottom:1px solid rgba(58,48,36,.3); padding-bottom:.5rem; margin-top:2rem; max-width:32rem; }
.ms-newsletter input { flex:1; background:transparent; border:0; outline:none; font-family:inherit; font-size:.875rem; }
.ms-footer-cols { display:grid; grid-template-columns:1fr 1fr; gap:2.5rem; font-size:.875rem; }
.ms-footer-cols h4 { font-family:var(--serif); color:var(--primary); margin-bottom:1rem; }
.ms-footer-cols p { color:var(--muted); line-height:1.75; margin:0; }
.ms-footer-bottom { margin-top:5rem; padding-top:2rem; border-top:1px solid rgba(58,48,36,.15); display:flex; flex-direction:column; gap:.5rem; justify-content:space-between; font-size:.75rem; color:var(--muted); }
@media(min-width:768px){ .ms-footer-bottom{ flex-direction:row; } }

/* Prose */
.ms-prose { max-width:680px; margin:3rem auto 0; }
.ms-prose p { margin:1rem 0; line-height:1.8; color:var(--muted); }
.ms-prose h2 { margin:2.5rem 0 1rem; }

/* Reveal */
.reveal { opacity:0; transform:translateY(28px); transition:opacity 1s, transform 1s cubic-bezier(.16,1,.3,1); }
.reveal.is-visible { opacity:1; transform:translateY(0); }

.screen-reader-text { position:absolute; left:-9999px; }
