:root{
  --gold:#C8A45D;
  --ink:#222222;
  --paper:#FFFFFF;
  --sand:#F7F4ED;
  --muted:#8B8B8B;
  --radius:18px;
  --shadow: 0 10px 30px rgba(0,0,0,.08);
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:'Open Sans',system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;
  color:var(--ink);
  background:linear-gradient(180deg,var(--sand),#fff);
  line-height:1.6;
}

.container{
  width:min(1100px,90%);
  margin-inline:auto;
}

.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(255,255,255,.9);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid rgba(0,0,0,.06);
}

.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 0;
}

.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink);font-weight:700}
.brand img{height:40px;width:auto; display:block}
.brand span{font-family:'Playfair Display',serif; font-size:1.05rem; letter-spacing:.2px}
.brand img{
  height:75px;
  width:auto;
  display:block;
  transition: transform .3s ease;
}
.brand img:hover{
  transform: scale(1.05);
}
.menu{display:flex; gap:18px; align-items:center}
.menu a{color:var(--ink); text-decoration:none; font-weight:600; opacity:.85}
.menu a:hover{opacity:1}
.btn{
  display:inline-block; padding:10px 16px; border-radius:999px; border:1px solid var(--ink);
  text-decoration:none; font-weight:700; transition:.2s;
}
.btn.primary{background:var(--ink); color:#fff; border-color:var(--ink)}
.btn.primary:hover{transform:translateY(-1px); box-shadow:var(--shadow)}
.btn.ghost{background:transparent}
.btn.ghost:hover{border-color:var(--gold); color:var(--gold)}

.hero{
  position:relative; min-height:68vh; display:grid; place-items:center;
  background-size:cover; background-position:center;
}
.hero .overlay{
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(34,34,34,.45), rgba(34,34,34,.15));
}
.hero-content{ position:relative; text-align:center; color:#fff; }
.hero h1{ font-family:'Playfair Display',serif; font-size:clamp(2rem,5vw,3.25rem); margin:0 0 10px }
.hero .subtitle{ font-size:1.1rem; opacity:.95; margin:0 0 18px }
.cta-group{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap }

.section{ padding:72px 0; background:transparent }
.section.alt{ background:#fff0; }
.eyebrow{ text-transform:uppercase; letter-spacing:.12em; font-size:.8rem; color:var(--gold); font-weight:800 }
h2{ font-family:'Playfair Display',serif; font-size:clamp(1.6rem,3vw,2.2rem); margin:.3rem 0 1rem }

.grid.two{ display:grid; grid-template-columns: 1.05fr .95fr; gap:32px; align-items:center }
@media (max-width: 860px){
  .grid.two{ grid-template-columns:1fr; }
}

.card{
  border-radius: var(--radius);
  box-shadow: var(--shadow);
  background: #fff;
  overflow: hidden;
}
.media.card{
  min-height:340px;
  background-size:cover; background-position:center;
}

.values{ display:grid; grid-template-columns: repeat(3,1fr); gap:18px; margin-top:16px }
.value{ background:#fff; padding:18px; border-radius:var(--radius); box-shadow:var(--shadow) }
.value h3{ margin-top:6px; margin-bottom:8px; font-family:'Playfair Display',serif }

@media (max-width: 860px){
  .values{ grid-template-columns:1fr; }
}

.form{ padding:18px; display:grid; gap:12px }
.form label{ display:grid; gap:8px; font-weight:600 }
.form input,.form textarea{
  width:100%; padding:12px 14px; border-radius:10px; border:1px solid rgba(0,0,0,.12); outline:none;
  font:inherit; background:#fff;
}
.form input:focus,.form textarea:focus{ border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,164,93,.15) }
.form button{ justify-self:start }

.contact-list{ list-style:none; padding:0; margin:12px 0 0; display:grid; gap:6px }

.site-footer{
  padding:26px 0; border-top:1px solid rgba(0,0,0,.06); background:#fff;
  text-align:center; color:var(--muted); font-size:.95rem;
}

/* Small accessibility improvements */
:focus-visible{ outline:3px dashed var(--gold); outline-offset:3px }
a.skip-link{ position:absolute; left:-999px; top:-999px }
a.skip-link:focus{ left:10px; top:10px; background:#fff; padding:8px 10px; border-radius:8px; box-shadow:var(--shadow) }