:root{
  --bg: #FFFEFB;
  --paper: #FFFFFF;
  --ink: #1E3A34;
  --text: #23302C;
  --muted: #5E6B66;
  --gold: #C4A962;
  --line: #E8E2D4;
  --radius: 16px;
  --wrap: 1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.7;
  text-rendering: optimizeLegibility;
}
h1,h2,h3,h4{
  font-family: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
  color: var(--ink);
  letter-spacing: .2px;
}
h1{font-size: clamp(2.2rem, 5vw, 3.4rem); margin: 0 0 .25rem; font-weight:700;}
h2{font-size: clamp(1.6rem, 3.2vw, 2.2rem); margin: 0 0 .5rem; font-weight:600;}
h3{font-size: 1.25rem; margin: 0 0 .3rem; font-weight:600;}
h4{font-size: 1.05rem; margin: 0 0 .3rem; font-weight:600;}
p{margin: .75rem 0;}
.lead{font-size: 1.1rem}
.muted{color: var(--muted)}
.wrap{max-width: var(--wrap); padding: 0 22px; margin: 0 auto;}
.section{padding: 56px 0; border-top: 1px solid var(--line);}
.section:first-of-type{border-top: none}
.card{
  background: var(--paper);
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 18px 18px;
  box-shadow: 0 8px 18px rgba(0,0,0,.04);
}
.btn{
  display:inline-block;
  background: var(--ink);
  color: #fff;
  border: 1px solid var(--ink);
  padding: .75rem 1rem;
  border-radius: 12px;
  font-weight: 600;
  text-decoration: none;
  transition: transform .08s ease, opacity .12s ease;
}
.btn:hover{transform: translateY(-1px); opacity:.95}
.btn.ghost{
  background: transparent;
  color: var(--ink);
  border-color: var(--gold);
  margin-left: 10px;
}
.btn.small{padding:.55rem .8rem; font-size:.95rem}
.site-header{
  position: sticky; top: 0; z-index: 100;
  background: rgba(255,255,255,.85);
  backdrop-filter: blur(6px);
  border-bottom: 1px solid var(--line);
}
.site-header .wrap{
  display:flex; align-items:center; justify-content:space-between;
  height: 70px;
}
.brand{
  font-family: 'Cormorant Garamond', serif;
  font-weight: 700; color: var(--ink);
  text-decoration:none; font-size: 1.15rem;
}
.nav a{
  text-decoration:none; color: var(--ink); font-weight: 600; letter-spacing: .6px;
  margin-left: 36px;
  position: relative;
}
.nav a:focus, .nav a:hover{color: var(--ink)}
.nav a::after{
  content:""; position:absolute; left:0; bottom:-10px;
  width:0; height:1px; background: var(--gold); transition: width .2s ease;
}
.nav a:hover::after{width:100%}
.hero .wrap{padding-top: 24px}
.hero-grid{
  display:grid; grid-template-columns: 1.1fr .9fr; gap: 36px;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 28px;
  background: linear-gradient(180deg, #fff 0%, #fffdf7 100%);
}
.hero-copy h2.sub{color: var(--ink); font-weight:700; border-bottom:1px solid var(--gold); padding-bottom:6px; display:inline-block}
.cta-row{margin-top: 14px}
.social{margin-top: 16px; font-weight:600; color: var(--ink)}
.social a{color: var(--ink); text-decoration:none}
.social span{color: var(--gold); margin: 0 8px}
.hero-media .media-frame{
  height: 100%;
  min-height: 260px;
  border-left: 1px solid var(--line);
  padding-left: 24px;
  display:flex; align-items:center; justify-content:center;
}
.hero-media img{
  max-width: 100%; height: auto; border-radius: 12px; border:1px solid var(--line);
}
.panel .panel-inner{
  display:grid; grid-template-columns: 1fr 2px 1fr; gap: 24px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  padding: 22px;
  background: #fff;
}
.panel .divider{background: var(--line); width:2px; height:100%;}
.two-col{display:grid; grid-template-columns: 1.2fr .8fr; gap: 36px; align-items:start}
ul.check{padding-left: 1.2rem; margin: .4rem 0}
ul.check li{margin: .25rem 0; position:relative}
ul.check li::marker{color: var(--gold)}
.cards{display:grid; gap: 18px; grid-template-columns: repeat(3, 1fr);}
.svc.card h3{margin: 0 0 .25rem}
.svc.card p{margin: 0 0 .75rem}
.form .grid{display:grid; grid-template-columns:1fr 1fr; gap: 12px;}
label span{display:block; font-weight:600; font-size:.92rem; margin-bottom:.35rem}
input, textarea{
  width:100%; font: inherit; padding:.7rem .8rem;
  border:1px solid var(--line); border-radius:10px; background:#fff;
}
.mini{font-size:.85rem; margin-top:.5rem}
.site-footer{
  border-top: 1px solid var(--line);
  padding: 28px 0;
  background: #fff;
}
.site-footer .wrap{display:flex; align-items:center; justify-content:space-between}
.backtotop{text-decoration:none; color: var(--ink); font-weight:600}
@media (max-width: 980px){
  .hero-grid{grid-template-columns:1fr; padding: 22px}
  .hero-media .media-frame{border-left:none; padding-left:0; margin-top: 12px}
  .panel .panel-inner{grid-template-columns:1fr; gap:12px}
  .two-col{grid-template-columns:1fr; gap: 18px}
  .cards{grid-template-columns:1fr; gap:12px}
  .form .grid{grid-template-columns:1fr}
  .nav a{margin-left: 18px}
}
