html { scroll-behavior: smooth; }
body { font-family: 'Inter', system-ui, sans-serif; color: #16405e; }
h1, h2, h3, h4, .display { font-family: 'Playfair Display', Georgia, serif; letter-spacing: -0.01em; color: #0a1322; }

/* Buttons */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:.5rem; padding:.85rem 1.6rem; border-radius:9999px; font-weight:600; font-size:.875rem; letter-spacing:.04em; transition:all .25s ease; cursor:pointer; }
.btn-primary { background:#162641; color:#fff; box-shadow:0 6px 20px -8px rgba(15,28,48,.45); }
.btn-primary:hover { background:#0a1322; transform: translateY(-1px); box-shadow:0 14px 32px -12px rgba(15,28,48,.55); }
.btn-gold { background:#c8924a; color:#fff; box-shadow:0 6px 20px -8px rgba(200,146,74,.45); }
.btn-gold:hover { background:#a8763a; transform: translateY(-1px); }
.btn-outline { background:transparent; color:#162641; border:1.5px solid #162641; }
.btn-outline:hover { background:#162641; color:#fff; }
.btn-ghost { background:rgba(255,255,255,.08); border:1.5px solid rgba(255,255,255,.4); color:#fff; backdrop-filter: blur(8px); }
.btn-ghost:hover { background:rgba(255,255,255,.18); border-color:#fff; }

/* Eyebrows */
.eyebrow { display:inline-flex; align-items:center; gap:.75rem; text-transform:uppercase; letter-spacing:.28em; font-size:.7rem; font-weight:700; color:#a8763a; }
.eyebrow::before, .eyebrow::after { content:''; width:2.4rem; height:1px; background:#c8924a; }
.eyebrow.center { justify-content:center; }
.eyebrow.light { color:#dfb877; }
.eyebrow.light::before, .eyebrow.light::after { background:#dfb877; }

/* Sections */
.section { padding: clamp(4rem, 9vw, 7rem) 0; }
.section-narrow { padding: clamp(3rem, 6vw, 5rem) 0; }
.container-narrow { max-width: 72rem; margin: 0 auto; padding-inline: 1.25rem; }
.container-wide { max-width: 84rem; margin: 0 auto; padding-inline: 1.25rem; }
@media (min-width:768px){ .container-narrow,.container-wide{ padding-inline:2rem; } }

/* Hero */
.hero { position:relative; overflow:hidden; }
.hero-overlay { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,19,34,0.30) 0%, rgba(10,19,34,0.40) 50%, rgba(10,19,34,0.78) 100%); }
.hero-radial { position:absolute; inset:0; background: radial-gradient(ellipse at center, transparent 30%, rgba(10,19,34,0.5) 100%); }
.slide { position:absolute; inset:0; opacity:0; transition: opacity 1.4s ease; background-size:cover; background-position:center; }
.slide.is-active { opacity:1; }
.kenburns > .slide.is-active { animation: kenburns 16s ease-out forwards; }
@keyframes kenburns { from { transform:scale(1.05); } to { transform:scale(1.18); } }

/* Header */
header.site { position:fixed; top:0; left:0; right:0; z-index:50; transition: background-color .3s ease, box-shadow .3s ease, color .3s ease; }
header.site.is-top { background:transparent; color:#fff; }
header.site.is-scrolled { background:rgba(255,255,255,.97); color:#162641; box-shadow:0 8px 24px -16px rgba(15,28,48,.3); backdrop-filter:saturate(140%) blur(8px); }
header.site .nav-link { position:relative; padding:.5rem 0; font-weight:500; font-size:.92rem; letter-spacing:.01em; }
header.site .nav-link::after { content:''; position:absolute; bottom:0; left:0; right:100%; height:2px; background:#c8924a; transition:right .3s ease; }
header.site .nav-link:hover::after, header.site .nav-link.active::after { right:0; }
header.site.is-top .logo-mark { filter: drop-shadow(0 2px 4px rgba(0,0,0,.4)); }

/* Cards */
.card { background:#fff; border-radius:1.25rem; overflow:hidden; box-shadow:0 12px 32px -16px rgba(15,28,48,.18); transition: transform .4s ease, box-shadow .4s ease; }
.card:hover { transform: translateY(-6px); box-shadow:0 22px 50px -20px rgba(15,28,48,.30); }
.card-img { aspect-ratio: 4/3; overflow:hidden; }
.card-img img { width:100%; height:100%; object-fit:cover; transition:transform 1s ease; }
.card:hover .card-img img { transform: scale(1.07); }

/* Reveal on scroll */
[data-reveal] { opacity:0; transform: translateY(24px); transition: opacity .9s ease, transform .9s ease; transition-delay: var(--delay,0ms); }
[data-reveal].in { opacity:1; transform:none; }

/* Marquee divider */
.gold-rule { display:flex; align-items:center; gap:1.25rem; color:#c8924a; }
.gold-rule::before, .gold-rule::after { content:''; flex:1; height:1px; background:linear-gradient(to right, transparent, #c8924a, transparent); }

/* Form */
.input { display:block; width:100%; padding:.85rem 1rem; border:1px solid #c7d1e0; border-radius:.6rem; background:#fff; font-size:.95rem; color:#0a1322; transition:border-color .2s ease, box-shadow .2s ease; }
.input:focus { outline:none; border-color:#226592; box-shadow:0 0 0 3px rgba(34,101,146,.15); }
.label { display:block; font-size:.78rem; font-weight:600; text-transform:uppercase; letter-spacing:.14em; color:#1f3558; margin-bottom:.35rem; }
.field-error { color:#be123c; font-size:.8rem; margin-top:.35rem; }

/* Lightbox */
.lightbox { position:fixed; inset:0; background:rgba(10,19,34,.94); display:flex; align-items:center; justify-content:center; z-index:100; padding:2rem; cursor:zoom-out; }
.lightbox img { max-width:96vw; max-height:92vh; object-fit:contain; border-radius:8px; box-shadow:0 30px 60px -20px rgba(0,0,0,.5); }
.lightbox .lb-close { position:absolute; top:1.25rem; right:1.5rem; color:#fff; font-size:2rem; line-height:1; cursor:pointer; }
.lightbox .lb-nav { position:absolute; top:50%; transform:translateY(-50%); color:#fff; font-size:2rem; line-height:1; cursor:pointer; padding:1rem; user-select:none; }
.lightbox .lb-prev { left:1rem; } .lightbox .lb-next { right:1rem; }

/* Gallery grid */
.masonry { columns: 1; column-gap: 1rem; }
@media (min-width:640px){ .masonry { columns:2; } }
@media (min-width:1024px){ .masonry { columns:3; } }
@media (min-width:1280px){ .masonry { columns:4; } }
.masonry > a { break-inside:avoid; display:block; margin-bottom:1rem; border-radius:1rem; overflow:hidden; box-shadow:0 8px 24px -14px rgba(15,28,48,.18); transition:transform .5s ease; }
.masonry > a:hover { transform: translateY(-4px); }
.masonry img { width:100%; display:block; transition:transform 1s ease; }
.masonry > a:hover img { transform: scale(1.04); }

/* Amenity chip */
.amenity-chip { display:flex; align-items:center; gap:.65rem; padding:.65rem .9rem; background:#fdfaf4; border:1px solid #f4e6c9; border-radius:.6rem; font-size:.88rem; color:#1f3558; transition:all .2s ease; }
.amenity-chip:hover { border-color:#c8924a; background:#faf2e2; }
.amenity-chip svg { color:#c8924a; flex:0 0 auto; width:1.1rem; height:1.1rem; }

/* Footer */
footer.site { background:#0a1322; color:#aed1e6; }
footer.site a { color:#d6e9f3; transition:color .2s; }
footer.site a:hover { color:#dfb877; }
footer .foot-title { font-family:'Playfair Display',serif; color:#fff; font-size:1.1rem; margin-bottom:1rem; }

/* Scrollbar */
::-webkit-scrollbar { width:10px; height:10px; }
::-webkit-scrollbar-track { background:#f1f5f9; }
::-webkit-scrollbar-thumb { background:#94a3b8; border-radius:5px; }
::-webkit-scrollbar-thumb:hover { background:#64748b; }

/* Utility */
.text-shadow-lg { text-shadow: 0 4px 24px rgba(0,0,0,.45); }
.glass { background:rgba(255,255,255,.08); backdrop-filter:blur(12px) saturate(140%); border:1px solid rgba(255,255,255,.18); }

/* Sticky inquiry card */
.sticky-card { position:sticky; top:6.5rem; }

/* Prose tweaks */
.prose-luxe { font-size:1.06rem; line-height:1.85; color:#1f3558; }
.prose-luxe p { margin: 0 0 1.25rem; }
.prose-luxe h3 { font-family:'Playfair Display',serif; font-size:1.6rem; margin: 2rem 0 .75rem; color:#0a1322; }
.prose-luxe ul { padding-left:1.25rem; margin: 0 0 1.25rem; }
.prose-luxe ul li { margin: .35rem 0; list-style: disc; }
.prose-luxe a { color:#c8924a; text-decoration: underline; text-underline-offset:3px; }

/* Apartment hero gallery */
.apt-gallery { display:grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: 1fr 1fr; gap:.5rem; aspect-ratio: 16/9; max-height: 70vh; }
.apt-gallery > a { display:block; overflow:hidden; border-radius:.5rem; background:#0f1c30; }
.apt-gallery > a:first-child { grid-row: span 2; }
.apt-gallery img { width:100%; height:100%; object-fit:cover; transition:transform 1.2s ease; }
.apt-gallery > a:hover img { transform: scale(1.05); }
@media (max-width:768px){ .apt-gallery { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr 1fr 1fr; }
  .apt-gallery > a:first-child { grid-column: span 2; grid-row: 1; }
}

/* Pricing badge */
.price-pill { display:inline-flex; align-items:baseline; gap:.4rem; padding:.55rem 1rem; border-radius:9999px; background:#0a1322; color:#fff; font-weight:600; }
.price-pill .num { font-size:1.5rem; font-family:'Playfair Display',serif; color:#dfb877; }
.price-pill .lbl { font-size:.7rem; text-transform:uppercase; letter-spacing:.14em; color:#aed1e6; }

/* Mobile menu */
.mobile-menu { position:fixed; inset:0; background:#0a1322; color:#fff; z-index:60; display:flex; flex-direction:column; padding:6rem 2rem 2rem; transition:transform .4s ease; transform: translateX(100%); }
.mobile-menu.open { transform: none; }
.mobile-menu a { font-family:'Playfair Display',serif; font-size:1.6rem; padding: .85rem 0; border-bottom:1px solid rgba(255,255,255,.08); }
.mobile-menu a:hover { color:#dfb877; }
