:root{
  --bg:#f5efe3;--card:#fffaf0;--ink:#10302a;--ink2:#1c4a40;--ruby:#a8213a;--ruby2:#c4344f;
  --brass:#c79a3b;--line:#e0d5bd;--muted:#5d6b66;
  --serif:'Fraunces',Georgia,serif;--sans:'Outfit',system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.7;font-size:16px}
a{color:inherit;text-decoration:none}
ul{list-style:none}
.wrap{width:min(1180px,92%);margin:0 auto}

/* top bar */
.topbar{background:var(--ink);color:#d9cfae;font-size:13px;letter-spacing:.04em}
.topbar .wrap{display:flex;justify-content:space-between;padding:8px 0;gap:12px;flex-wrap:wrap}
.topbar b{color:var(--brass);font-weight:500}

/* header: centered logo, split nav */
.site-header{position:sticky;top:0;z-index:50;background:var(--bg);border-bottom:1px solid var(--line)}
.hdr{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:14px 0;gap:20px}
.nav-l,.nav-r{display:flex;gap:26px;font-size:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.nav-r{justify-content:flex-end;align-items:center}
.nav-l a,.nav-r a:not(.btn){position:relative;padding:4px 0}
.nav-l a::after,.nav-r a:not(.btn)::after{content:"";position:absolute;left:0;bottom:-2px;height:2px;width:0;background:var(--ruby);transition:.25s}
.nav-l a:hover::after,.nav-r a:not(.btn):hover::after{width:100%}
.logo{font-family:var(--serif);font-size:26px;font-weight:700;text-align:center;line-height:1.1}
.logo small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.35em;color:var(--ruby);font-weight:600;text-transform:uppercase}

/* buttons */
.btn{display:inline-block;padding:12px 26px;border-radius:4px;font-weight:600;font-size:14px;letter-spacing:.05em;transition:.25s;border:2px solid var(--ruby);background:var(--ruby);color:#fff}
.btn:hover{background:var(--ruby2);border-color:var(--ruby2);transform:translateY(-2px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.light{background:transparent;color:#fff;border-color:#fff}
.btn.light:hover{background:#fff;color:var(--ink)}

/* hero */
.hero{background:radial-gradient(circle at 85% 20%,#2b6a5b 0,transparent 45%),linear-gradient(135deg,#0b241f,#143c33);color:#f3ead2;padding:90px 0 100px;overflow:hidden;position:relative}
.hero::before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(45deg,transparent 0 38px,rgba(199,154,59,.05) 38px 40px)}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center;position:relative}
.eyebrow{font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--brass);font-weight:600;display:inline-block;margin-bottom:14px}
.hero h1{font-family:var(--serif);font-size:clamp(40px,6vw,76px);line-height:1.05;font-weight:600}
.hero h1 em{color:var(--brass);font-style:italic}
.hero p.lead{max-width:540px;margin:22px 0 32px;color:#d4cbb0;font-size:18px}
.hero .btns{display:flex;gap:14px;flex-wrap:wrap}
.ticket{background:var(--card);color:var(--ink);border-radius:14px;padding:30px;box-shadow:0 30px 60px rgba(0,0,0,.35);transform:rotate(2deg);border-top:6px solid var(--ruby)}
.ticket h3{font-family:var(--serif);font-size:24px;margin-bottom:6px}
.ticket li{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px dashed var(--line);font-size:15px}
.ticket li span:last-child{color:var(--ruby);font-weight:600}
.ticket .btn{margin-top:20px;width:100%;text-align:center}

/* generic sections */
section{padding:84px 0}
.sec-head{max-width:680px;margin-bottom:46px}
.sec-head h2,.page-hero h1{font-family:var(--serif);font-size:clamp(32px,4.4vw,52px);line-height:1.12;font-weight:600}
.sec-head p{color:var(--muted);margin-top:14px;font-size:17px}
.center{text-align:center;margin-left:auto;margin-right:auto}

/* stats band */
.band{background:var(--ruby);color:#fff;padding:38px 0}
.band .wrap{display:grid;grid-template-columns:repeat(4,1fr);text-align:center;gap:20px}
.band b{display:block;font-family:var(--serif);font-size:44px;line-height:1.1}
.band span{font-size:12px;letter-spacing:.22em;text-transform:uppercase;opacity:.85}

/* suites rows */
.row{display:grid;grid-template-columns:1fr 1.1fr;gap:0;background:var(--card);border:1px solid var(--line);border-radius:14px;overflow:hidden;margin-bottom:26px}
.row:nth-child(even){grid-template-columns:1.1fr 1fr}
.row:nth-child(even) .art{order:2}
.art{min-height:250px;position:relative}
.art.a1{background:linear-gradient(135deg,#143c33,#2b6a5b)}
.art.a2{background:linear-gradient(135deg,#a8213a,#5e1020)}
.art.a3{background:linear-gradient(135deg,#c79a3b,#7a5a14)}
.art::after{content:attr(data-n);position:absolute;right:22px;bottom:6px;font-family:var(--serif);font-size:110px;color:rgba(255,255,255,.18);line-height:1}
.row .txt{padding:36px 40px}
.tag{font-size:12px;letter-spacing:.25em;text-transform:uppercase;color:var(--ruby);font-weight:600}
.row h3{font-family:var(--serif);font-size:30px;margin:6px 0 10px}
.row p{color:var(--muted)}
.meta{margin-top:16px;font-size:14px;font-weight:600;color:var(--ink2)}

/* dining menu board */
.dark{background:var(--ink);color:#f3ead2}
.dark .sec-head p{color:#b9c2bc}
.board{display:grid;grid-template-columns:1fr 1fr;gap:20px 60px}
.board div{padding:22px 0;border-bottom:1px solid rgba(199,154,59,.35)}
.board h3{font-family:var(--serif);font-size:24px;display:flex;justify-content:space-between;gap:10px}
.board h3 span{font-family:var(--sans);font-size:13px;color:var(--brass);letter-spacing:.12em;text-transform:uppercase;align-self:center}
.board p{color:#b9c2bc;margin-top:6px}

/* timeline */
.timeline{border-left:3px solid var(--ruby);padding-left:34px;display:grid;gap:28px}
.tl{position:relative;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:24px 28px}
.tl::before{content:"";position:absolute;left:-44px;top:30px;width:16px;height:16px;border-radius:50%;background:var(--brass);border:3px solid var(--bg)}
.tl h3{font-family:var(--serif);font-size:24px}
.tl .when{color:var(--ruby);font-weight:600;font-size:14px;letter-spacing:.08em}

/* pills */
.pills{display:flex;flex-wrap:wrap;gap:14px}
.pill{background:var(--card);border:1px solid var(--line);border-radius:999px;padding:14px 26px;font-weight:500;transition:.25s}
.pill:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.pill b{color:var(--ruby);margin-right:8px}
.pill:hover b{color:var(--brass)}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.panel{border-radius:16px;min-height:340px;background:linear-gradient(140deg,#1c4a40,#0b241f);position:relative;overflow:hidden}
.panel::after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;border:30px solid rgba(199,154,59,.3);right:-60px;bottom:-60px}
.list li{padding:10px 0 10px 28px;position:relative}
.list li::before{content:"♦";position:absolute;left:0;color:var(--ruby)}

/* cta */
.cta{background:linear-gradient(120deg,var(--ruby),#6e1224);color:#fff;text-align:center}
.cta h2{font-family:var(--serif);font-size:clamp(32px,4.5vw,54px);margin-bottom:14px}
.cta p{max-width:600px;margin:0 auto 28px;opacity:.9}

/* faq */
details{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px 26px;margin-bottom:14px}
summary{cursor:pointer;font-weight:600;font-size:17px;list-style:none;display:flex;justify-content:space-between}
summary::after{content:"+";color:var(--ruby);font-size:24px;line-height:1}
details[open] summary::after{content:"–"}
details p{margin-top:12px;color:var(--muted)}

/* inner pages */
.page-hero{background:linear-gradient(135deg,#0b241f,#1c4a40);color:#f3ead2;padding:76px 0}
.page-hero p{max-width:640px;margin-top:14px;color:#d4cbb0;font-size:18px}
.doc{max-width:820px}
.doc h2{font-family:var(--serif);font-size:28px;margin:34px 0 10px}
.doc p,.doc li{color:#34433e;margin-bottom:10px}
.doc ul{margin:0 0 14px 22px;list-style:disc}
.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:28px}
.card h3{font-family:var(--serif);font-size:23px;margin:6px 0 8px}
.card p{color:var(--muted)}
form{display:grid;gap:14px;max-width:560px}
input,textarea,select{padding:13px 16px;border:1px solid var(--line);border-radius:6px;font:inherit;background:#fff}

/* footer */
footer{background:#081a16;color:#b9c2bc;padding:64px 0 24px;font-size:15px}
.fgrid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:40px}
footer h4{color:var(--brass);font-size:13px;letter-spacing:.25em;text-transform:uppercase;margin-bottom:14px}
footer li{margin-bottom:8px}
footer a:hover{color:var(--brass)}
.fbot{border-top:1px solid #1d3a33;margin-top:40px;padding-top:20px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:13px}

@media(max-width:900px){
  .hdr{grid-template-columns:1fr;text-align:center}
  .nav-l,.nav-r{justify-content:center;flex-wrap:wrap;gap:14px 20px}
  .logo{order:-1}
  .hero .wrap,.split,.row,.row:nth-child(even),.board,.cards,.fgrid{grid-template-columns:1fr}
  .row:nth-child(even) .art{order:0}
  .band .wrap{grid-template-columns:repeat(2,1fr)}
  .ticket{transform:none}
}
