:root{ --ink:#111; --muted:#6b6b6b; --bg:#fff; --surface:#f7f7f7;
  --gold:#c7a36e; --gold-2:#8a6b3f; --max:1200px; --radius:16px; --shadow:0 10px 25px rgba(0,0,0,.08); }
*{box-sizing:border-box} html{scroll-behavior:smooth}
body{margin:0; background:var(--bg); color:var(--ink);
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;}
a{color:inherit; text-decoration:none} img{max-width:100%; display:block}
.container{max-width:var(--max); margin-inline:auto; padding:0 20px}
h1,h2,h3{font-family:"Playfair Display", serif; letter-spacing:.2px}
h1{font-size:clamp(36px,5vw,52px); margin:0 0 10px}
h2{font-size:clamp(28px,4vw,40px); margin:0 0 8px}
h3{font-size:22px; margin:0 0 6px}
.lead{font-size:clamp(16px,2.4vw,20px); color:var(--muted)}
.btn{display:inline-block; background:var(--gold); color:#fff; font-weight:600; padding:12px 18px; border-radius:999px}
.btn.outline{background:transparent; color:var(--gold); border:2px solid var(--gold)}
.btn.phone{padding:8px 12px; font-size:14px}
section{padding:72px 0}

/* Sticky header with nav */
.header{position:fixed; top:0; left:0; right:0; z-index:60;
  background:linear-gradient(180deg, rgba(0,0,0,.55), rgba(0,0,0,.15), rgba(0,0,0,0)); color:#fff}
.nav{display:flex; align-items:center; justify-content:space-between; height:68px}
.nav a{color:inherit} .nav a.logo{display:flex; align-items:center; gap:14px; font-weight:800; letter-spacing:.8px}
.nav ul{display:flex; list-style:none; gap:26px; margin:0; padding:0; text-transform:uppercase; letter-spacing:.6px; font-size:14px}
.nav a:hover{color:var(--gold)}
.nav .right{display:flex; align-items:center; gap:12px}
.mobile-toggle{display:none}
/* Hide mobile menu by default (desktop AND mobile) */
.mobile-menu{display:none}
@media (max-width:880px){
  .nav ul{display:none}
  .mobile-toggle{display:inline-flex; align-items:center; gap:8px}
  .mobile-menu{display:none; padding:12px 0; background:rgba(0,0,0,.8)}
  .mobile-menu.open{display:block}
  .mobile-menu a{display:block; padding:10px 0; border-top:1px solid rgba(255,255,255,.1); color:#fff}
}

/* Info line directly under nav (home only) */
.info-line{position:fixed; top:68px; left:0; right:0; z-index:55;
  display:flex; align-items:center; justify-content:center; height:40px; color:#fff;
  background:linear-gradient(180deg, rgba(0,0,0,.65), rgba(0,0,0,.2), rgba(0,0,0,0));}
.info-line a{color:#fff; font-weight:700; text-decoration:none}
.sticky-spacer{height:108px} /* header(68) + info line(40) */

.hero-full{position:relative; height:100vh; min-height:560px; color:#fff; display:grid; place-items:end start;
  background:url('assets/hero.jpg') center/cover no-repeat;}
.hero-overlay{position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,0,0,.45), rgba(0,0,0,.15) 40%, rgba(0,0,0,.55));}
.hero-content{position:relative; z-index:1; padding:0 20px 56px;}
.badge{display:inline-flex; align-items:center; gap:8px; color:#fff; font-weight:700; letter-spacing:.5px; text-transform:uppercase; font-size:12px; opacity:.9}
.badge i{width:8px; height:8px; border-radius:50%; background:var(--gold)}
.hero-title{font-family:"Playfair Display", serif; font-size:clamp(34px,6.5vw,64px); line-height:1.05; margin:8px 0 6px; text-shadow:0 10px 30px rgba(0,0,0,.55)}
.hero-sub{color:#e9e9e9; font-size:clamp(15px,2.5vw,19px)} .hero-actions{display:flex; gap:12px; margin-top:14px}
.gallery-tight{padding:36px 0 64px}
.grid-gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:10px}
.grid-gallery a{border-radius:12px; overflow:hidden}
.grid-gallery img{width:100%; height:100%; object-fit:cover; aspect-ratio:4/3}
@media (max-width:900px){.grid-gallery{grid-template-columns:repeat(2,1fr)}}
.section-min{padding:40px 0}
.footer{border-top:1px solid #eee; padding:28px 0; color:#666; font-size:14px}
.grid-2{display:grid; grid-template-columns:1fr 1fr; gap:24px}
@media (max-width:900px){.grid-2{grid-template-columns:1fr}} .quote{border-left:4px solid var(--gold); padding-left:14px; color:#444; font-style:italic}
.form input,.form textarea,.form select{width:100%; padding:12px 14px; border-radius:12px; border:1px solid #dadada; background:#fff; font:inherit}
.form textarea{min-height:120px} .form .row{display:grid; grid-template-columns:1fr 1fr; gap:12px}
@media (max-width:720px){.form .row{grid-template-columns:1fr}} .small{font-size:13px; color:#6b6b6b}
.call-strip{padding:22px 0; background:#0f0f0f; color:#fff}
.call-strip .container{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap}