@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@400;500;600;700&display=swap');

:root {
  --ink: #181716;
  --night: #0d1011;
  --night-soft: #151a1b;
  --cream: #f2ebe2;
  --sand: #d7c7b2;
  --brass: #b99556;
  --brass-light: #d4b47a;
  --muted: #a7a39d;
  --line: rgba(242, 235, 226, .16);
  --font-display: 'Playfair Display', Georgia, serif;
  --font-sans: 'DM Sans', sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--cream);
  background: var(--night);
  font-family: var(--font-sans);
  -webkit-font-smoothing: antialiased;
}
body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  opacity: .035;
  z-index: 20;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.5'/%3E%3C/svg%3E");
}
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }

.site-header {
  position: fixed; inset: 0 0 auto; z-index: 15;
  border-bottom: 1px solid transparent;
  transition: background .35s ease, border-color .35s ease, transform .35s ease;
}
.site-header.scrolled { background: rgba(13,16,17,.94); border-color: var(--line); backdrop-filter: blur(14px); }
.nav-wrap { max-width: 1240px; height: 88px; margin: auto; padding: 0 28px; display:flex; align-items:center; gap:38px; }
.brand { display:flex; align-items:center; gap:12px; margin-right:auto; }
.brand-logo { height:46px; width:auto; display:block; }
.nav-links { display:flex; align-items:center; gap:25px; list-style:none; padding:0; margin:0; }
.nav-links a { font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:#d4d0ca; transition:color .2s; }
.nav-links a:hover, .nav-links a.active { color:var(--brass-light); }
.nav-book { padding:13px 19px; border:1px solid var(--brass); color:var(--brass-light)!important; }
.menu-toggle { display:none; background:none; border:0; color:var(--cream); padding:8px; }
.menu-toggle svg { display:block; }

/* Language switcher */
.lang-switch { position:relative; }
.lang-trigger { display:flex; align-items:center; gap:8px; background:none; border:0; color:var(--cream); font-size:11px; letter-spacing:.1em; text-transform:none; padding:6px 2px; }
.lang-trigger svg { flex-shrink:0; }
.lang-trigger .lang-current { font-size:12px; letter-spacing:.02em; text-transform:none; }
.lang-trigger .chev { transition:transform .2s; }
.lang-switch.open .lang-trigger .chev { transform:rotate(180deg); }
.lang-menu { position:absolute; top:calc(100% + 14px); left:0; min-width:150px; background:#ffffff; box-shadow:0 18px 40px rgba(0,0,0,.28); border-radius:4px; padding:6px 0; display:none; z-index:40; }
.lang-switch.open .lang-menu { display:block; }
.lang-option { display:block; width:100%; text-align:left; background:none; border:0; color:#22201d; font-size:14px; font-family:var(--font-sans); text-transform:none; letter-spacing:0; padding:12px 18px; }
.lang-option:hover { background:#f2ebe2; }
.lang-option.active { color:var(--brass); font-weight:600; }
@media (max-width:880px) { .lang-switch { order:-1; margin-bottom:6px; } .lang-menu { left:0; right:auto; } }

/* Hide the injected Google Translate banner/UI so only our custom switcher shows */
.goog-te-banner-frame, .goog-te-gadget-icon, .goog-tooltip, .goog-tooltip:hover { display:none !important; }
body { top:0 !important; position:static !important; }
.goog-text-highlight { background:none !important; box-shadow:none !important; }
#google_translate_element2 { display:none !important; position:absolute !important; top:-9999px !important; left:-9999px !important; }
.skiptranslate iframe { display:none !important; }

.hero { min-height: 740px; height: 100vh; max-height: 980px; display:flex; align-items:center; position:relative; overflow:hidden; }
.hero-bg { position:absolute; inset:0; background-position:center; background-size:cover; transform:scale(1.03); }
.hero-bg::after { content:''; position:absolute; inset:0; background:
    linear-gradient(100deg, rgba(4,5,5,.86) 0%, rgba(4,5,5,.62) 42%, rgba(4,5,5,.35) 75%, rgba(4,5,5,.2) 100%),
    linear-gradient(0deg, var(--night) 0%, transparent 22%, rgba(0,0,0,.32) 100%); }
.hero-content { position:relative; width:min(1240px,100%); margin:auto; padding:130px 28px 70px; }
.eyebrow { color:var(--brass-light); font-size:11px; letter-spacing:.3em; text-transform:uppercase; }
.hero h1 { max-width:720px; font:500 clamp(54px,7vw,98px)/.98 var(--font-display); margin:23px 0; letter-spacing:-.035em; color:#fbf8f3; text-shadow:0 4px 24px rgba(0,0,0,.55); }
.hero-lede { max-width:540px; color:#f1ece3; font-size:16px; line-height:1.8; text-shadow:0 2px 14px rgba(0,0,0,.5); }
.hero-actions { display:flex; gap:14px; margin-top:32px; flex-wrap:wrap; }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:10px; border:1px solid transparent; padding:14px 24px; font-size:11px; letter-spacing:.18em; text-transform:uppercase; transition:transform .25s, background .25s, color .25s; }
.btn:hover { transform:translateY(-3px); }
.btn-primary { color:var(--ink); background:var(--brass-light); }
.btn-primary:hover { background:#e0c28b; }
.btn-outline { border-color:rgba(242,235,226,.45); color:var(--cream); }
.btn-outline:hover { border-color:var(--brass-light); color:var(--brass-light); }
.hero-stats { display:flex; gap:42px; margin-top:80px; }
.stat { border-left:1px solid var(--brass); padding-left:14px; }
.stat strong { display:block; font:500 29px var(--font-display); color:var(--brass-light); }
.stat span { display:block; margin-top:4px; color:var(--muted); font-size:10px; letter-spacing:.15em; text-transform:uppercase; }

.section { padding:112px 28px; }
.section-light { background:var(--cream); color:var(--ink); }
.container { width:min(1184px,100%); margin:auto; }
.section-heading { max-width:610px; margin-bottom:48px; }
.section-heading.center { margin-left:auto; margin-right:auto; text-align:center; }
.section-heading h2 { margin:12px 0 16px; font:500 clamp(37px,5vw,60px)/1.04 var(--font-display); letter-spacing:-.03em; }
.section-heading p { color:var(--muted); line-height:1.8; }
.section-light .section-heading p { color:#726b63; }
.split { display:grid; grid-template-columns: .9fr 1.1fr; gap:90px; align-items:center; }
.image-stack { position:relative; padding:0 0 56px 48px; }
.image-stack .main-image { height:520px; width:100%; object-fit:cover; }
.image-stack .over-image { position:absolute; width:50%; height:235px; object-fit:cover; bottom:0; left:0; border:8px solid var(--cream); }
.tag-card { position:absolute; right:14px; top:30px; background:var(--night); color:var(--cream); padding:18px 20px; text-align:center; }
.tag-card strong { color:var(--brass-light); font:500 27px var(--font-display); display:block; }
.tag-card span { font-size:9px; letter-spacing:.2em; text-transform:uppercase; }
.body-copy { color:#6c665f; line-height:1.85; }
.feature-list { display:grid; grid-template-columns:1fr 1fr; gap:26px 35px; margin-top:36px; }
.feature-list div { border-top:1px solid #d7cdc0; padding-top:14px; }
.feature-list strong { font:500 19px var(--font-display); display:block; margin-bottom:6px; }
.feature-list span { color:#7c746b; font-size:13px; line-height:1.6; }

.room-grid { display:grid; grid-template-columns:1.35fr .85fr .85fr; gap:18px; }
.room-card { background:#1a1f20; border:1px solid var(--line); overflow:hidden; transition:transform .35s, border-color .35s; }
.room-card:hover { transform:translateY(-5px); border-color:var(--brass); }
.room-card.featured { grid-row:span 2; }
.room-card img { width:100%; height:205px; object-fit:cover; transition:transform .5s; }
.room-card.featured img { height:320px; }
.room-card:hover img { transform:scale(1.04); }
.room-card-body { padding:22px; }
.room-card h3 { font:500 25px var(--font-display); margin:0 0 11px; }
.room-card p { color:var(--muted); font-size:13px; line-height:1.65; margin:0 0 18px; }
.room-meta { display:flex; justify-content:space-between; color:var(--brass-light); font-size:10px; letter-spacing:.1em; text-transform:uppercase; }
.card-link { display:inline-flex; align-items:center; gap:6px; margin-top:18px; color:var(--brass-light); font-size:10px; letter-spacing:.15em; text-transform:uppercase; border-bottom:1px solid var(--brass); padding-bottom:5px; }

.amenity-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:#d6cabc; border:1px solid #d6cabc; }
.amenity { background:var(--cream); padding:31px 27px; min-height:185px; }
.amenity-icon { color:var(--brass); margin-bottom:23px; }
.amenity h3 { font:500 22px var(--font-display); margin:0 0 9px; }
.amenity p { color:#7b736a; font-size:13px; line-height:1.65; margin:0; }

.quote-section { background:var(--night-soft); }
.quote { max-width:820px; margin:auto; text-align:center; }
.quote-mark { color:var(--brass); font:70px/0.5 var(--font-display); }
.quote blockquote { font:400 clamp(25px,4vw,43px)/1.25 var(--font-display); margin:30px 0; }
.quote cite { color:var(--brass-light); font-style:normal; font-size:10px; text-transform:uppercase; letter-spacing:.2em; }

.offer-band { background: linear-gradient(100deg,#29231d,#171817); }
.offer-layout { display:grid; grid-template-columns:1.3fr .7fr; align-items:center; gap:48px; }
.offer-layout h2 { font:500 clamp(35px,4vw,55px) var(--font-display); margin:14px 0; }
.offer-layout p { color:#bcb3a8; line-height:1.8; max-width:620px; }
.offer-points { border-left:1px solid var(--brass); padding-left:30px; list-style:none; color:#d8cdc0; line-height:2.4; font-size:13px; margin:0; }
.offer-points li::before { content:'—'; color:var(--brass); margin-right:10px; }

.event-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.event-card { position:relative; min-height:300px; overflow:hidden; }
.event-card img { width:100%; height:100%; object-fit:cover; transition:transform .55s; }
.event-card:hover img { transform:scale(1.06); }
.event-card::after { content:''; position:absolute; inset:0; background:linear-gradient(0deg,rgba(8,10,10,.88),transparent 60%); }
.event-card-body { position:absolute; z-index:1; bottom:0; padding:23px; }
.event-card h3 { font:500 24px var(--font-display); margin:0 0 6px; }
.event-card p { color:#c1bbb3; margin:0; font-size:12px; }
.location-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.location-card { position:relative; min-height:300px; overflow:hidden; }
.location-card img { width:100%; height:100%; object-fit:cover; transition:transform .5s; filter:brightness(.72); }
.location-card:hover img { transform:scale(1.06); }
.location-card div { position:absolute; inset:0 0 0; display:flex; flex-direction:column; justify-content:flex-end; padding:24px; background:linear-gradient(0deg,rgba(6,7,7,.96) 0%,rgba(6,7,7,.55) 45%,rgba(6,7,7,.15) 100%); }
.location-card h3 { font:500 25px var(--font-display); margin:0 0 5px; color:#fbf8f3; text-shadow:0 3px 16px rgba(0,0,0,.6); }
.location-card p { color:#ece7de; font-size:12px; line-height:1.5; margin:0; text-shadow:0 2px 10px rgba(0,0,0,.5); }

.page-hero { padding:180px 28px 105px; background-position:center; background-size:cover; }
.page-hero h1 { font:500 clamp(52px,7vw,88px) var(--font-display); margin:14px 0; }
.page-hero p { max-width:550px; color:#c9c1b8; line-height:1.8; }
.page-main { padding:94px 28px; }
.page-main.light { background:var(--cream); color:var(--ink); }
.wide-room-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:24px; }
.wide-room { display:grid; grid-template-columns:.95fr 1.05fr; background:#1a1f20; }
.wide-room img { height:100%; min-height:265px; width:100%; object-fit:cover; }
.wide-room .room-card-body { padding:28px; }
.detail-grid { display:grid; grid-template-columns:1.1fr .9fr; gap:52px; align-items:start; }
.detail-gallery { display:grid; grid-template-columns:2fr 1fr; gap:12px; }
.detail-gallery img { width:100%; height:240px; object-fit:cover; }
.detail-gallery img:first-child { height:492px; grid-row:span 2; }
.booking-panel { border:1px solid #d3c5b5; padding:29px; position:sticky; top:115px; }
.booking-panel h2 { font:500 31px var(--font-display); margin:0 0 22px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-field { display:flex; flex-direction:column; gap:7px; }
.form-field.full { grid-column:1/-1; }
.form-field label { color:#81776c; font-size:10px; letter-spacing:.14em; text-transform:uppercase; }
.form-field input,.form-field select,.form-field textarea { border:1px solid #cfc1b1; background:rgba(255,255,255,.18); padding:12px 13px; color:var(--ink); outline:none; }
.form-field textarea { min-height:128px; resize:vertical; }
.form-field input:focus,.form-field select:focus,.form-field textarea:focus { border-color:var(--brass); }
.form-note { font-size:12px; color:#857a6e; line-height:1.6; margin-top:14px; }
.gallery-filter { display:flex; justify-content:center; gap:24px; margin:-10px 0 38px; flex-wrap:wrap; }
.filter-btn { background:none; border:0; color:#8a8178; font-size:11px; letter-spacing:.16em; text-transform:uppercase; padding:8px 0; border-bottom:1px solid transparent; }
.filter-btn.active,.filter-btn:hover { color:var(--brass); border-color:var(--brass); }
.gallery-grid { columns:3 260px; column-gap:16px; }
.gallery-item { margin:0 0 16px; break-inside:avoid; position:relative; overflow:hidden; cursor:zoom-in; border:0; padding:0; display:block; width:100%; background:none; }
.gallery-item img { width:100%; transition:transform .5s; }
.gallery-item:hover img { transform:scale(1.04); }
.gallery-item span { position:absolute; left:14px; bottom:13px; color:white; font-size:10px; letter-spacing:.16em; text-transform:uppercase; opacity:0; transition:opacity .25s; }
.gallery-item:hover span { opacity:1; }
.gallery-item.hidden { display:none; }
.lightbox { position:fixed; inset:0; z-index:30; background:rgba(6,8,8,.94); display:flex; align-items:center; justify-content:center; padding:50px; }
.lightbox[hidden] { display:none; }
.lightbox img { max-height:85vh; max-width:min(1000px,90vw); object-fit:contain; }
.lightbox button { position:absolute; top:25px; right:30px; background:none; border:0; color:white; font-size:27px; }
.lightbox .lb-prev,.lightbox .lb-next { top:50%; transform:translateY(-50%); font-size:40px; }
.lightbox .lb-prev { left:25px; }.lightbox .lb-next { right:25px; }
.contact-grid { display:grid; grid-template-columns:.75fr 1.25fr; gap:70px; }
.contact-item { padding:20px 0; border-bottom:1px solid #d4c7b8; }
.contact-item strong { display:block; color:var(--brass); text-transform:uppercase; font-size:10px; letter-spacing:.17em; margin-bottom:8px; }
.contact-item span { color:#706960; line-height:1.65; font-size:14px; }
.success { background:#dce8d7; color:#42583b; padding:14px; font-size:13px; margin-bottom:18px; }
.footer { border-top:1px solid var(--line); padding:62px 28px 28px; background:#0b0d0e; }
.footer-grid { display:grid; grid-template-columns:1.3fr .7fr .7fr 1fr; gap:40px; width:min(1184px,100%); margin:auto; }
.footer h3 { font:500 22px var(--font-display); margin:0 0 15px; }
.footer h4 { color:var(--brass-light); font-size:10px; letter-spacing:.17em; text-transform:uppercase; margin:4px 0 18px; }
.footer p,.footer a { color:#918b84; font-size:12px; line-height:1.8; }
.footer a { display:block; transition:color .2s; }.footer a:hover { color:var(--brass-light); }
.footer-bottom { width:min(1184px,100%); margin:48px auto 0; padding-top:18px; border-top:1px solid var(--line); color:#716d68; font-size:11px; display:flex; justify-content:space-between; }
.footer-bottom a { display:inline; color:#918b84; transition:color .2s; }
.footer-bottom a:hover { color:var(--brass-light); }
.reveal { opacity:0; transform:translateY(24px); transition:opacity .7s ease, transform .7s ease; }
.reveal.visible { opacity:1; transform:translateY(0); }
.to-top { position:fixed; right:22px; bottom:22px; z-index:12; background:var(--brass); border:0; color:var(--ink); width:40px; height:40px; opacity:0; pointer-events:none; transition:opacity .3s; }
.to-top.show { opacity:1; pointer-events:auto; }

@media (max-width: 880px) {
  .nav-wrap { height:74px; padding:0 20px; }.menu-toggle { display:block; }.nav-links { display:none; position:absolute; top:74px; left:0; right:0; padding:25px 24px; background:#101415; border-bottom:1px solid var(--line); flex-direction:column; align-items:flex-start; gap:22px; }.nav-links.open { display:flex; }
  .nav-book { border:0; padding:0; }.hero { min-height:700px; }.hero-content { padding:120px 22px 55px; }.hero-stats { margin-top:58px; gap:24px; }
  .section,.page-main { padding:78px 22px; }.split,.detail-grid,.contact-grid,.offer-layout { grid-template-columns:1fr; gap:45px; }.room-grid { grid-template-columns:1fr 1fr; }.room-card.featured { grid-row:auto; grid-column:span 2; }.amenity-grid { grid-template-columns:1fr 1fr; }.event-grid,.location-grid { grid-template-columns:1fr 1fr; }.wide-room-grid { grid-template-columns:1fr; }.booking-panel { position:static; }.footer-grid { grid-template-columns:1fr 1fr; }
}
@media (max-width: 540px) {
  .brand-name { font-size:17px; }.hero h1 { font-size:54px; }.hero-stats { gap:14px; }.stat strong { font-size:23px; }.stat span { font-size:8px; }.feature-list,.form-grid,.amenity-grid,.event-grid,.location-grid,.room-grid { grid-template-columns:1fr; }.room-card.featured { grid-column:auto; }.room-card.featured img,.room-card img { height:240px; }.wide-room { grid-template-columns:1fr; }.wide-room img { min-height:215px; }.detail-gallery { grid-template-columns:1fr 1fr; }.detail-gallery img:first-child { height:300px; }.detail-gallery img { height:145px; }.footer-grid { grid-template-columns:1fr; }.footer-bottom { display:block; line-height:1.8; }.lightbox { padding:20px; }.lb-prev,.lb-next { display:none; }
}
