:root{--sb-sand-50:#FAF9F6;--sb-sand-100:#F5F1EA;--sb-sand-200:#F0EAE1;--sb-sand-300:#E5DBCC;--sb-ink-900:#0F172A;--sb-ink-700:#1E293B;--sb-ink-500:#475569;--sb-ink-300:#94A3B8;--sb-gold-500:#C5A880;--sb-gold-600:#A68A64;--sb-gold-300:#E1CFB2;--accent:#C5A880;--accent-soft:#E1CFB2}
*{box-sizing:border-box}html{scroll-behavior:smooth}
body{margin:0;font-family:'Inter',system-ui,sans-serif;background:var(--sb-sand-50);color:var(--sb-ink-900);-webkit-font-smoothing:antialiased;line-height:1.55}
h1,h2,h3,h4,.serif{font-family:'Playfair Display',Georgia,serif;letter-spacing:-.01em;margin:0 0 .3em}
h1{letter-spacing:-.02em}p{margin:0 0 1em}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}
.container{max-width:1400px;margin:0 auto;padding:0 24px}@media(min-width:768px){.container{padding:0 40px}}
.eyebrow{text-transform:uppercase;letter-spacing:.28em;font-size:11px;color:var(--accent);font-weight:500}
.btn{display:inline-flex;align-items:center;gap:10px;padding:14px 26px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:500;border-radius:2px;border:1px solid transparent;cursor:pointer;transition:all 220ms ease;text-decoration:none}
.btn-primary{background:var(--sb-ink-900);color:var(--sb-sand-50);border-color:var(--sb-ink-900)}.btn-primary:hover{background:var(--accent);border-color:var(--accent);color:var(--sb-ink-900)}
.btn-gold{background:var(--accent);color:var(--sb-ink-900);border-color:var(--accent)}.btn-gold:hover{filter:brightness(.92)}
.btn-ghost{background:transparent;color:var(--sb-ink-900);border-color:var(--sb-ink-900)}.btn-ghost:hover{background:var(--sb-ink-900);color:var(--sb-sand-50)}
.btn-light{background:var(--sb-sand-50);color:var(--sb-ink-900);border-color:var(--sb-sand-50)}.btn-light:hover{background:var(--accent);border-color:var(--accent)}
.btn-full{width:100%;justify-content:center}
.header{position:fixed;top:0;left:0;right:0;z-index:50;backdrop-filter:blur(20px) saturate(180%);background:rgba(250,249,246,.78);border-bottom:1px solid rgba(15,23,42,.08)}
.header-inner{display:flex;align-items:center;justify-content:space-between;height:84px}
.logo{display:flex;align-items:center;gap:12px}
.logo-mark{width:42px;height:42px;display:inline-flex;align-items:center;justify-content:center}
.logo-mark img{width:100%;height:100%;object-fit:contain}
.logo-text .name{font-family:'Playfair Display',serif;font-size:18px;letter-spacing:2px;display:block;text-transform:uppercase}
.logo-text .sub{font-size:10px;letter-spacing:.32em;text-transform:uppercase;color:var(--sb-ink-500);margin-top:2px}
.nav{display:none;gap:26px}.nav a{font-size:12px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;color:var(--sb-ink-900);transition:color 200ms ease}.nav a:hover,.nav a.active{color:var(--accent)}
.header-right{display:flex;align-items:center;gap:14px}
.hamburger{background:transparent;border:0;padding:8px;cursor:pointer}.hamburger svg{width:22px;height:22px}
@media(min-width:1024px){.nav{display:flex}.hamburger{display:none}}
.mobile-nav{display:none;padding:12px 0 24px;border-top:1px solid rgba(15,23,42,.08)}.mobile-nav.open{display:block}.mobile-nav a{display:block;padding:10px 0;font-size:13px;letter-spacing:2px;text-transform:uppercase}.mobile-nav a.active{color:var(--accent)}
.hero{position:relative;min-height:100vh;overflow:hidden;color:#fff}
.hero-media{position:absolute;inset:0;background-size:cover;background-position:center;z-index:0;transform:scale(1.06)}
.hero-overlay{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(15,23,42,.15) 0%,rgba(15,23,42,.55) 100%)}
.hero-content{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;justify-content:flex-end;padding:160px 0 100px}
.hero h1{font-size:clamp(48px,8vw,96px);line-height:.95;margin:8px 0 12px}
.hero .sub{font-family:'Playfair Display',serif;font-style:italic;font-size:clamp(22px,3vw,32px);color:var(--accent-soft);margin:0 0 32px}
.hero .copy{max-width:640px;color:rgba(255,255,255,.85);font-size:17px;margin:0 0 36px}
.hero .cta{display:flex;flex-wrap:wrap;gap:12px}
.section{padding:96px 0}.section-sand{background:var(--sb-sand-100)}.section-dark{background:var(--sb-ink-900);color:#fff}
.section h2{font-size:clamp(32px,5vw,64px);line-height:1.05;margin-bottom:24px}
.section p.lead{font-size:17px;color:var(--sb-ink-500);max-width:640px}
.section-header{display:flex;flex-direction:column;gap:20px;margin-bottom:56px}@media(min-width:768px){.section-header{flex-direction:row;align-items:flex-end;justify-content:space-between}}
.story-grid{display:grid;grid-template-columns:1fr;gap:48px;align-items:center}@media(min-width:992px){.story-grid{grid-template-columns:5fr 7fr;gap:80px}}.story-grid .img{aspect-ratio:3/4;overflow:hidden}.story-grid .img img{width:100%;height:100%;object-fit:cover}
.link-underline{display:inline-flex;gap:8px;align-items:center;font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:500;padding-bottom:3px;position:relative}.link-underline::after{content:'';position:absolute;left:0;bottom:0;height:1px;width:100%;background:currentColor;transform-origin:left;transition:transform 420ms ease}.link-underline:hover::after{transform:scaleX(.6)}
.room-grid{display:grid;grid-template-columns:1fr;gap:32px}@media(min-width:768px){.room-grid{grid-template-columns:1fr 1fr}}@media(min-width:1100px){.room-grid{grid-template-columns:repeat(3,1fr)}}
.room-card{background:#fff;border:1px solid rgba(229,219,204,.6);transition:transform 340ms ease,box-shadow 340ms ease}.room-card:hover{transform:translateY(-4px);box-shadow:0 24px 60px -20px rgba(15,23,42,.28)}
.room-card .thumb{position:relative;aspect-ratio:4/3;overflow:hidden;display:block;background:var(--sb-sand-200)}.room-card .thumb img{width:100%;height:100%;object-fit:cover;transition:transform 700ms ease}.room-card:hover .thumb img{transform:scale(1.05)}
.room-card .tag{position:absolute;top:14px;left:14px;padding:5px 10px;background:rgba(255,255,255,.85);font-size:10px;letter-spacing:.24em;text-transform:uppercase}
.room-card .body{padding:26px}.room-card .top{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.room-card .name{font-family:'Playfair Display',serif;font-size:24px;line-height:1.15;margin:0}
.room-card .price{text-align:right}.room-card .price .small{font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--sb-ink-500)}.room-card .price .big{font-family:'Playfair Display',serif;font-size:22px}
.room-card .desc{font-size:14px;color:var(--sb-ink-500);margin:0 0 20px}
.room-card .meta{display:flex;gap:20px;font-size:12px;color:var(--sb-ink-500);margin-bottom:22px;flex-wrap:wrap}
.form-field{margin-bottom:20px}.form-field label{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--sb-ink-500);margin-bottom:8px}.form-field input,.form-field textarea,.form-field select{background:var(--sb-sand-50);border:1px solid var(--sb-sand-300);padding:12px 14px;width:100%;font-family:inherit;font-size:14px;transition:border-color 200ms ease}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{outline:none;border-color:var(--accent)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.filters{border-top:1px solid var(--sb-sand-300);border-bottom:1px solid var(--sb-sand-300);padding:24px 0;margin:24px 0 40px;display:grid;grid-template-columns:1fr;gap:16px;align-items:end}@media(min-width:768px){.filters{grid-template-columns:1fr 1fr 1fr auto;gap:24px}}
.filters label{display:block;font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--sb-ink-500);margin-bottom:8px}
.filters select,.filters input{width:100%;background:#fff;border:1px solid var(--sb-sand-300);padding:10px 14px;font-size:14px;font-family:inherit}
.filters .reset{background:transparent;border:0;cursor:pointer;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--sb-ink-500);padding:10px}
.gallery-tabs{display:flex;flex-wrap:wrap;gap:4px;margin-bottom:32px;border-bottom:1px solid var(--sb-sand-300);padding-bottom:12px}
.gallery-tabs a{font-size:11px;letter-spacing:2px;text-transform:uppercase;padding:8px 14px;color:var(--sb-ink-500)}.gallery-tabs a:hover,.gallery-tabs a.active{color:var(--accent);font-weight:600}
.gallery-grid{display:grid;grid-template-columns:1fr;gap:20px}@media(min-width:768px){.gallery-grid{grid-template-columns:1fr 1fr}}@media(min-width:1024px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}
.gallery-item{aspect-ratio:4/3;overflow:hidden;cursor:pointer;position:relative;background:var(--sb-sand-200)}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform 700ms ease}.gallery-item:hover img{transform:scale(1.05)}
.gallery-item .cap{position:absolute;bottom:12px;left:14px;color:#fff;font-family:'Playfair Display',serif;font-size:20px;opacity:0;transition:opacity 250ms ease}.gallery-item:hover .cap{opacity:1}
.gallery-item::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(15,23,42,.6));opacity:0;transition:opacity 250ms ease}.gallery-item:hover::after{opacity:1}
.lightbox{position:fixed;inset:0;z-index:100;background:rgba(15,23,42,.95);display:none;align-items:center;justify-content:center;padding:24px}.lightbox.open{display:flex}.lightbox img{max-width:92vw;max-height:85vh;object-fit:contain}.lightbox .close{position:absolute;top:20px;right:20px;background:transparent;border:0;color:#fff;padding:8px;cursor:pointer}
.footer{background:var(--sb-ink-900);color:var(--sb-sand-100);position:relative}
.footer-inner{padding:80px 0;display:grid;grid-template-columns:1fr;gap:40px}@media(min-width:768px){.footer-inner{grid-template-columns:5fr 3fr 4fr}}
.footer h4{font-family:'Playfair Display',serif;font-size:22px;font-style:italic;margin:0 0 20px}
.footer ul{list-style:none;padding:0;margin:0;display:grid;gap:10px;font-size:14px}
.footer .bar{border-top:1px solid rgba(255,255,255,.1);padding:22px 0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--sb-sand-300)}
.flash{padding:14px 18px;margin:12px 0 24px;font-size:14px}.flash.success{background:#ECFDF5;color:#065F46;border:1px solid #A7F3D0}.flash.error{background:#FEF2F2;color:#991B1B;border:1px solid #FECACA}
.text-center{text-align:center}.mt-2{margin-top:16px}.mt-4{margin-top:32px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.reveal{opacity:0;transform:translateY(24px);transition:opacity 900ms ease,transform 900ms ease}.reveal.visible{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
.prop-block{display:grid;grid-template-columns:1fr;min-height:360px;background:#fff;border:1px solid rgba(229,219,204,.7);overflow:hidden;margin-bottom:32px;transition:transform 340ms ease,box-shadow 340ms ease;text-decoration:none;color:inherit}
.prop-block:hover{transform:translateY(-4px);box-shadow:0 24px 60px -20px rgba(15,23,42,.28)}
@media(min-width:992px){.prop-block{grid-template-columns:7fr 5fr}.prop-block.rev{grid-template-columns:5fr 7fr}.prop-block.rev .img{order:2}.prop-block.rev .body{order:1}}
.prop-block .img{position:relative;overflow:hidden;aspect-ratio:16/10;background:var(--sb-sand-200)}
@media(min-width:992px){.prop-block .img{aspect-ratio:auto}}
.prop-block .img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 700ms ease}.prop-block:hover .img img{transform:scale(1.05)}
.prop-block .tag{position:absolute;top:24px;left:24px;z-index:2;padding:6px 12px;background:rgba(255,255,255,.85);font-size:10px;letter-spacing:.24em;text-transform:uppercase}
.prop-block .loc{position:absolute;bottom:24px;left:24px;z-index:2;color:#fff;font-size:11px;letter-spacing:.16em;text-transform:uppercase;text-shadow:0 2px 8px rgba(15,23,42,.5)}
.prop-block .body{padding:32px;display:flex;flex-direction:column;justify-content:space-between;position:relative}@media(min-width:768px){.prop-block .body{padding:52px}}
.prop-block h2{font-family:'Playfair Display',serif;font-size:clamp(28px,3.5vw,44px);line-height:1.02;margin:0 0 12px}
.prop-block .sub{font-family:'Playfair Display',serif;font-style:italic;font-size:18px;margin:0 0 24px}
.prop-block .desc{font-size:14px;color:var(--sb-ink-500);line-height:1.65;margin:0 0 24px}
.prop-block .foot{display:flex;align-items:center;justify-content:space-between;gap:16px;padding-top:16px;border-top:1px solid var(--sb-sand-300)}
.prop-block .rooms-info{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--sb-ink-500)}
.prop-block .explore{display:inline-flex;align-items:center;gap:8px;font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:500}
.prop-block .accent-bar{position:absolute;top:0;bottom:0;width:3px}.prop-block:not(.rev) .accent-bar{left:0}.prop-block.rev .accent-bar{right:0}
