:root{
  --bg:#f7f3ee;
  --panel:#ffffff;
  --text:#171717;
  --muted:#5d5a57;
  --line:rgba(23,23,23,.10);
  --gold:#c8934a;
  --gold-2:#e1b36a;
  --shadow:0 20px 50px rgba(0,0,0,.08);
  --radius:22px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  color:var(--text);
  background:
    radial-gradient(circle at top left, rgba(200,147,74,.12), transparent 25%),
    linear-gradient(180deg,#fbf8f5 0%, var(--bg) 40%, #f3eee8 100%);
  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.container{width:min(calc(100% - 2rem), var(--max)); margin:0 auto}
.serif{font-family: "Cormorant Garamond", Georgia, "Times New Roman", serif}
.topbar{
  position:sticky; top:0; z-index:30;
  backdrop-filter: blur(14px);
  background:rgba(251,248,245,.78);
  border-bottom:1px solid rgba(23,23,23,.06);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  gap:1rem; min-height:76px;
}
.brand{
  display:flex; flex-direction:column; gap:.2rem;
}
.brand-main{
  font-size:1.6rem; font-weight:800; letter-spacing:.05em;
}
.brand-sub{
  font-size:.72rem; letter-spacing:.35em; color:var(--muted); text-transform:uppercase;
}
.brand-accent{color:var(--gold)}
.nav-links{display:flex; gap:1.2rem; align-items:center; flex-wrap:wrap}
.nav-links a{font-size:.95rem; color:var(--muted)}
.btn, button{
  display:inline-flex; align-items:center; justify-content:center;
  gap:.55rem; border:0; cursor:pointer;
  min-height:48px; padding:.9rem 1.2rem; border-radius:999px;
  font-weight:700; letter-spacing:.02em;
  transition:.25s ease;
}
.btn-primary{
  background:linear-gradient(135deg,var(--gold),var(--gold-2));
  color:white; box-shadow:0 12px 26px rgba(200,147,74,.28);
}
.btn-primary:hover{transform:translateY(-1px); box-shadow:0 16px 32px rgba(200,147,74,.34)}
.btn-secondary{
  background:white; color:var(--text); border:1px solid rgba(23,23,23,.08)
}
.hero{
  padding:4.5rem 0 3.4rem;
}
.hero-grid{
  display:grid; grid-template-columns:1.08fr .92fr; gap:2rem; align-items:stretch;
}
.hero-copy{
  background:rgba(255,255,255,.76);
  border:1px solid rgba(255,255,255,.75);
  box-shadow:var(--shadow);
  border-radius:34px;
  padding:clamp(1.4rem,3vw,3rem);
}
.kicker{
  display:inline-flex; align-items:center; gap:.6rem;
  padding:.45rem .85rem; border-radius:999px;
  background:rgba(200,147,74,.10); color:#9e6f2d; font-weight:700; font-size:.86rem;
  letter-spacing:.06em; text-transform:uppercase;
}
.hero h1{
  margin:.9rem 0 1rem;
  font-size:clamp(3rem,7vw,6rem);
  line-height:.9; letter-spacing:-.03em;
}
.hero h1 span{color:var(--gold)}
.hero p{
  font-size:1.08rem; line-height:1.8; color:var(--muted); max-width:58ch;
}
.hero-actions{display:flex; gap:.9rem; flex-wrap:wrap; margin-top:1.5rem}
.meta-row{
  display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:1.8rem
}
.meta-card{
  background:#fff; border:1px solid var(--line); padding:1rem; border-radius:18px;
}
.meta-card strong{display:block; font-size:1.05rem}
.meta-card span{display:block; color:var(--muted); margin-top:.2rem; font-size:.92rem}
.hero-media{
  position:relative; min-height:630px; border-radius:34px; overflow:hidden; box-shadow:var(--shadow);
  background:#ddd center/cover no-repeat;
}
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg,rgba(18,18,18,.02) 0%, rgba(18,18,18,.18) 100%);
}
.hero-badge{
  position:absolute; right:18px; bottom:18px; z-index:2;
  background:rgba(255,255,255,.88); backdrop-filter: blur(10px);
  border-radius:20px; padding:1rem 1.15rem; box-shadow:var(--shadow); max-width:280px;
}
.hero-badge strong{display:block; margin-bottom:.25rem}
.section{padding:2.4rem 0}
.section-heading{
  display:flex; gap:1rem; justify-content:space-between; align-items:end; margin-bottom:1.3rem;
}
.section-heading h2{
  margin:0; font-size:clamp(2.2rem,4.6vw,4.2rem); line-height:.95;
}
.section-heading p{max-width:52ch; color:var(--muted); line-height:1.75; margin:0}
.services{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.2rem;
}
.card{
  background:rgba(255,255,255,.8); border:1px solid rgba(23,23,23,.08);
  border-radius:28px; overflow:hidden; box-shadow:var(--shadow);
}
.card-media{aspect-ratio:4/4.7; overflow:hidden}
.card-media img{width:100%; height:100%; object-fit:cover; transition:transform .6s ease}
.card:hover .card-media img{transform:scale(1.03)}
.card-body{padding:1.35rem}
.card-body h3{margin:0 0 .55rem; font-size:1.45rem}
.card-body p{margin:0 0 1rem; color:var(--muted); line-height:1.75}
.tick-list{
  margin:0; padding:0; list-style:none; display:grid; gap:.6rem
}
.tick-list li{
  position:relative; padding-left:1.5rem; color:#333
}
.tick-list li::before{
  content:"✓"; position:absolute; left:0; top:-.02rem; color:var(--gold); font-weight:800
}
.brochure{
  display:grid; grid-template-columns:1.1fr .9fr; gap:1.3rem; align-items:center;
}
.panel{
  background:rgba(255,255,255,.8); border:1px solid rgba(23,23,23,.08);
  border-radius:28px; padding:1.4rem; box-shadow:var(--shadow);
}
.panel p{color:var(--muted); line-height:1.8}
.panel .split{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem;
}
.panel .mini{
  padding:1rem; border:1px solid var(--line); border-radius:18px; background:rgba(247,243,238,.65);
}
.panel .mini strong{display:block; margin-bottom:.35rem}
.image-panel{
  border-radius:28px; overflow:hidden; box-shadow:var(--shadow); border:1px solid rgba(23,23,23,.08);
}
.contact-wrap{
  display:grid; grid-template-columns:.86fr 1.14fr; gap:1.2rem; align-items:start;
}
.contact-card{
  background:linear-gradient(180deg,#161616,#242424); color:white; padding:1.5rem; border-radius:28px;
  box-shadow:var(--shadow);
}
.contact-card p{color:rgba(255,255,255,.76); line-height:1.8}
.contact-links{display:grid; gap:.9rem; margin-top:1.1rem}
.contact-item{
  display:flex; flex-direction:column; gap:.2rem; padding:1rem 1.05rem; border-radius:18px;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.10)
}
.contact-item small{letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.55)}
.form-card{
  background:rgba(255,255,255,.86); border:1px solid rgba(23,23,23,.08); border-radius:28px;
  padding:1.4rem; box-shadow:var(--shadow);
}
.form-grid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem;
}
.field{display:flex; flex-direction:column; gap:.5rem}
label{font-weight:600}
input, select, textarea{
  width:100%; border:1px solid rgba(23,23,23,.12); border-radius:16px;
  padding:1rem 1rem; font:inherit; background:#fff;
}
textarea{min-height:160px; resize:vertical}
.form-note{margin-top:1rem; color:var(--muted); line-height:1.7; font-size:.95rem}
.footer{
  padding:2rem 0 3rem; color:var(--muted)
}
.footer-bar{
  display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap;
  border-top:1px solid rgba(23,23,23,.08); padding-top:1.4rem
}
.reveal{opacity:0; transform:translateY(18px); transition:.7s ease}
.reveal.visible{opacity:1; transform:none}
@media (max-width: 980px){
  .hero-grid,.brochure,.contact-wrap{grid-template-columns:1fr}
  .hero-media{min-height:480px}
}
@media (max-width: 760px){
  .nav{padding:.7rem 0}
  .nav-links{display:none}
  .services{grid-template-columns:1fr}
  .meta-row,.form-grid,.panel .split{grid-template-columns:1fr}
  .hero{padding:2.4rem 0 2rem}
  .hero-copy{border-radius:26px}
  .hero-media{min-height:360px; border-radius:26px}
  .card,.panel,.form-card,.contact-card,.image-panel{border-radius:24px}
  .section{padding:2rem 0}
}