:root{
  --cream:#FBF7EF; --cream2:#F5EEDF; --sea:#2E5548; --sea-deep:#20392F;
  --terra:#C4663F; --terra-d:#A9522F; --ink:#22303A; --muted:#6B7280;
  --sand:#EADFC7; --gold:#D9A441; --card:#FFFFFF;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Inter',-apple-system,'Segoe UI','PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);background:var(--cream);color:var(--ink);line-height:1.65;font-size:16.5px}
img{max-width:100%;display:block}
a{color:inherit}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}

/* ---------- nav ---------- */
.nav{position:fixed;top:0;left:0;right:0;z-index:50;transition:background .3s,box-shadow .3s}
.nav.scrolled{background:rgba(251,247,239,.96);box-shadow:0 2px 18px rgba(32,57,47,.10);backdrop-filter:blur(8px)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:68px}
.brand{font-family:var(--serif);font-weight:600;font-size:1.35rem;letter-spacing:.01em;color:var(--cream)}
.nav.scrolled .brand{color:var(--sea-deep)}
.brand small{display:block;font-family:var(--sans);font-weight:500;font-size:.66rem;letter-spacing:.28em;text-transform:uppercase;opacity:.75}
.nav-links{display:flex;gap:26px;align-items:center}
.nav-links a{text-decoration:none;font-weight:500;font-size:.94rem;color:var(--cream);opacity:.92}
.nav.scrolled .nav-links a{color:var(--ink)}
.nav-links a:hover{opacity:1;color:var(--gold)}
.lang-pill{display:flex;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:3px;gap:2px}
.nav.scrolled .lang-pill{background:#fff;border-color:#e4dcc6}
.lang-pill button{border:0;background:transparent;color:var(--cream);font-family:var(--sans);font-size:.78rem;font-weight:600;padding:6px 10px;border-radius:999px;cursor:pointer}
.nav.scrolled .lang-pill button{color:var(--ink)}
.lang-pill button.active{background:var(--terra);color:#fff}
@media(max-width:860px){.nav-links a{display:none}}

/* ---------- hero ---------- */
.hero{position:relative;min-height:94vh;display:flex;align-items:flex-end;color:#fff;overflow:hidden}
.hero-bg{position:absolute;inset:0;background:url('assets/hero.jpg') center/cover no-repeat;transform:scale(1.02)}
.hero-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,35,30,.30) 0%,rgba(20,35,30,.05) 35%,rgba(25,40,35,.72) 100%)}
.hero-inner{position:relative;padding:120px 24px 84px;max-width:1120px;margin:0 auto;width:100%}
.badge{display:inline-flex;align-items:center;gap:8px;background:rgba(251,247,239,.95);color:var(--sea-deep);border-radius:999px;padding:8px 18px;font-weight:700;font-size:.92rem;margin-bottom:22px}
.badge .stars{color:var(--gold);letter-spacing:2px}
.kicker{text-transform:uppercase;letter-spacing:.30em;font-size:.78rem;font-weight:600;color:var(--gold);margin-bottom:14px}
.hero h1{font-family:var(--serif);font-weight:560;font-size:clamp(2.4rem,5.6vw,4.3rem);line-height:1.08;max-width:15ch;margin-bottom:18px}
.hero h1 em{font-style:italic;color:#F3E3C2}
.hero p.lead{max-width:46ch;font-size:1.08rem;opacity:.95;margin-bottom:30px}
.btn{display:inline-block;border:0;cursor:pointer;text-decoration:none;font-weight:700;font-size:1rem;border-radius:999px;padding:15px 34px;transition:transform .15s,box-shadow .2s}
.btn-terra{background:var(--terra);color:#fff;box-shadow:0 10px 26px rgba(196,102,63,.38)}
.btn-terra:hover{background:var(--terra-d);transform:translateY(-2px)}
.btn-ghost{background:rgba(255,255,255,.14);color:#fff;border:1.5px solid rgba(255,255,255,.55)}
.btn-ghost:hover{background:rgba(255,255,255,.24)}
.hero-cta{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- stats strip ---------- */
.stats{background:var(--sea-deep);color:#F3EEDF}
.stats-inner{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding:34px 24px;text-align:center}
.stat b{font-family:var(--serif);font-size:2rem;font-weight:600;display:block;color:#fff}
.stat span{font-size:.86rem;opacity:.82}
@media(max-width:640px){.stats-inner{grid-template-columns:repeat(2,1fr);row-gap:22px}}

/* ---------- sections ---------- */
section{padding:88px 0}
.eyebrow{text-transform:uppercase;letter-spacing:.26em;font-size:.76rem;font-weight:700;color:var(--terra);margin-bottom:12px}
h2{font-family:var(--serif);font-weight:560;font-size:clamp(1.9rem,3.6vw,2.7rem);line-height:1.15;color:var(--sea-deep);margin-bottom:14px}
h2 em{font-style:italic;color:var(--terra)}
.sec-sub{max-width:62ch;color:var(--muted);margin-bottom:44px}

/* ---------- rooms ---------- */
.room-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px}
@media(max-width:760px){.room-grid{grid-template-columns:1fr}}
.room-card{background:var(--card);border-radius:22px;overflow:hidden;box-shadow:0 14px 40px rgba(32,57,47,.10);display:flex;flex-direction:column}
.room-card .ph{aspect-ratio:16/10;overflow:hidden}
.room-card .ph img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.room-card:hover .ph img{transform:scale(1.045)}
.room-body{padding:28px 30px 32px;display:flex;flex-direction:column;gap:10px;flex:1}
.room-body h3{font-family:var(--serif);font-size:1.45rem;color:var(--sea-deep);font-weight:600}
.sleeps{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:600;color:var(--sea);background:#EAF1EC;border-radius:999px;padding:4px 12px;width:fit-content}
.room-body p{color:var(--muted);font-size:.97rem}
.room-feats{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 4px}
.room-feats span{font-size:.8rem;background:var(--cream2);border-radius:8px;padding:4px 10px;color:var(--ink)}
.room-body .btn{margin-top:auto;align-self:flex-start;padding:12px 26px;font-size:.93rem}

/* ---------- direct booking ---------- */
.direct{background:var(--sea);color:#F3EEDF;border-radius:34px;margin:0 18px;padding:76px 0}
.direct h2{color:#fff}.direct h2 em{color:#F3C98B}
.direct .sec-sub{color:#E7E0CE}
.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
@media(max-width:820px){.why-grid{grid-template-columns:1fr}}
.why{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:30px 28px}
.why .n{font-family:var(--serif);font-size:2rem;color:var(--gold);font-weight:600}
.why h3{font-family:var(--serif);font-size:1.25rem;margin:10px 0 8px;font-weight:600}
.why p{font-size:.94rem;color:#E7E0CE}

/* ---------- amenities ---------- */
.amen{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
@media(max-width:820px){.amen{grid-template-columns:1fr}}
.amen-ph{border-radius:24px;overflow:hidden;box-shadow:0 16px 44px rgba(32,57,47,.14)}
.amen-ph img{width:100%;height:100%;object-fit:cover;aspect-ratio:4/3.4}
.amen-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;list-style:none;margin-bottom:22px}
@media(max-width:520px){.amen-list{grid-template-columns:1fr}}
.amen-list li{background:#fff;border-radius:14px;padding:13px 16px;font-size:.93rem;box-shadow:0 6px 18px rgba(32,57,47,.06);display:flex;gap:10px;align-items:center}
.amen-list li::before{content:"✓";color:var(--terra);font-weight:800}
.amen-note{background:var(--cream2);border-left:4px solid var(--gold);border-radius:0 14px 14px 0;padding:16px 20px;font-size:.92rem;color:var(--ink)}

/* ---------- calendar ---------- */
.cal-section{background:#fff;border-top:1px solid #eee5d0;border-bottom:1px solid #eee5d0}
.cal-box{background:var(--cream);border-radius:26px;padding:44px;box-shadow:0 18px 50px rgba(32,57,47,.08)}
@media(max-width:640px){.cal-box{padding:26px 18px}}
.cal-months{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin:30px 0 8px}
@media(max-width:760px){.cal-months{grid-template-columns:1fr}}
.cal-month h4{font-family:var(--serif);text-align:center;margin-bottom:12px;color:var(--sea-deep);font-size:1.15rem}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:5px}
.dow{text-align:center;font-size:.72rem;font-weight:700;color:var(--muted);text-transform:uppercase;padding:6px 0}
.day{aspect-ratio:1;border:0;border-radius:12px;background:#fff;font-family:var(--sans);font-size:.88rem;font-weight:600;color:var(--ink);cursor:pointer;transition:background .15s}
.day:hover:not(:disabled){background:#EAF1EC}
.day:disabled{cursor:default}
.day.empty{background:transparent}
.day.booked{background:var(--sand);color:#A89B7E;text-decoration:line-through;cursor:not-allowed}
.day.in-range{background:#F3DCCB;color:var(--sea-deep)}
.day.sel{background:var(--terra);color:#fff}
.cal-legend{display:flex;gap:22px;flex-wrap:wrap;font-size:.85rem;color:var(--muted);margin:18px 0 6px}
.cal-legend i{display:inline-block;width:14px;height:14px;border-radius:5px;margin-right:7px;vertical-align:-1px}
.lg-a{background:#fff;border:1px solid #ddd}.lg-b{background:var(--sand)}.lg-s{background:var(--terra)}
.cal-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-top:22px;padding-top:22px;border-top:1px dashed #d9cfae}
.cal-summary .dates{font-family:var(--serif);font-size:1.15rem;color:var(--sea-deep)}
.cal-note{font-size:.83rem;color:var(--muted);margin-top:14px}

/* ---------- reviews ---------- */
.rev-themes{display:flex;flex-wrap:wrap;gap:12px;margin:6px 0 30px}
.rev-themes span{background:#fff;border:1.5px solid var(--sand);border-radius:999px;padding:10px 22px;font-weight:600;font-size:.94rem;color:var(--sea-deep)}
.rev-cta{display:flex;align-items:center;gap:18px;flex-wrap:wrap}
.big5{font-family:var(--serif);font-size:3.2rem;color:var(--sea-deep);font-weight:600}
.big5 .stars{color:var(--gold);font-size:1.8rem;letter-spacing:3px}

/* ---------- find ---------- */
.find-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:34px}
@media(max-width:820px){.find-grid{grid-template-columns:1fr}}
.find-card{background:#fff;border-radius:22px;padding:36px;box-shadow:0 14px 40px rgba(32,57,47,.08)}
.find-card h3{font-family:var(--serif);color:var(--sea-deep);font-size:1.3rem;margin-bottom:6px}
.find-row{display:flex;gap:14px;align-items:flex-start;margin:16px 0;font-size:.98rem}
.find-row .ic{font-size:1.25rem}
.find-btns{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.find-ph{border-radius:22px;overflow:hidden;min-height:320px}
.find-ph img{width:100%;height:100%;object-fit:cover;min-height:320px}

/* ---------- footer ---------- */
footer{background:var(--sea-deep);color:#D8CFB8;padding:44px 0;font-size:.85rem}
footer .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
footer a{color:#F3EEDF}
.demo-tag{display:inline-block;border:1px solid #5c6f63;border-radius:999px;padding:5px 14px;font-size:.76rem;letter-spacing:.08em;margin-bottom:12px;color:#B9AE94}
