:root{
  --red:#802A18; --gold:#B8860B; --bg:#faf8f5; --card:#ffffff; --ink:#1c1a18; --muted:rgba(28,26,24,.62); --line:rgba(28,26,24,.12); --dark:#141110;
  --header-h:86px;
}
*{box-sizing:border-box;}
html{scroll-behavior:smooth; scroll-padding-top:calc(var(--header-h) + env(safe-area-inset-top,0px));}
body{margin:0; background:var(--bg); color:var(--ink); font-family:'Inter',-apple-system,sans-serif; line-height:1.6;
  padding-top:env(safe-area-inset-top,0px); padding-bottom:env(safe-area-inset-bottom,0px); overflow-x:hidden;}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif; font-weight:700; line-height:1.15; margin:0;}
p{margin:0;} a{color:inherit; text-decoration:none;} img{max-width:100%; display:block;}
.wrap{max-width:1180px; margin:0 auto; padding:0 28px;}
.eyebrow{font-weight:700; font-size:13px; letter-spacing:2.5px; text-transform:uppercase; color:var(--gold); margin-bottom:12px;}

header{position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:var(--bg); border-bottom:1px solid var(--line); height:var(--header-h); display:flex; align-items:center;}
header .wrap{width:100%; display:flex; align-items:center; justify-content:space-between; gap:20px;}
.brand{display:flex; align-items:center; gap:10px;}
.brand img{height:52px;}
nav{display:flex; gap:28px; font-weight:600; font-size:15px;}
nav a:hover{color:var(--red);}
nav a.active{color:var(--red);}
.header-actions{display:flex; align-items:center; gap:14px;}
.btn{display:inline-block; padding:13px 28px; border-radius:100px; font-weight:700; font-size:14px; letter-spacing:.3px; cursor:pointer; border:2px solid var(--red); transition:transform .15s ease;}
.btn-primary{background:var(--red); color:#fff;}
.btn-primary:hover{transform:translateY(-2px);}
.btn-outline{background:transparent; color:var(--ink); border-color:var(--line);}
.hamburger{display:none; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:6px;}
.hamburger span{width:24px; height:2px; background:var(--ink);}

.page-hero{background:var(--dark); color:#f3efe9; padding:78px 0 56px; text-align:center;}
.page-hero h1{font-size:clamp(34px,5vw,54px); color:#fff;}
.page-hero p{color:rgba(243,239,233,.72); margin-top:14px; font-size:17px;}

.hero{position:relative; min-height:640px; display:flex; align-items:center; color:#fff;}
.hero-bg{position:absolute; top:0; left:0; right:0; bottom:0; background-size:cover; background-position:center; filter:brightness(.42);}
.hero .wrap{position:relative; z-index:2;}
.hero h1{font-size:clamp(38px,6vw,66px); color:#fff; max-width:14ch;}
.hero p.lede{margin-top:20px; font-size:18px; color:rgba(255,255,255,.85); max-width:44ch;}
.cta-row{margin-top:30px; display:flex; gap:16px; flex-wrap:wrap;}

section{padding:88px 0;}
.section-head{max-width:640px; margin:0 auto 50px; text-align:center;}
.section-head h2{font-size:clamp(28px,4vw,42px);}
.section-head p{margin-top:16px; color:var(--muted); font-size:17px;}

.grid{display:grid; grid-template-columns:repeat(3,1fr); gap:24px;}
.card{background:var(--card); border:1px solid var(--line); border-radius:18px; overflow:hidden;}
.card img{width:100%; height:200px; object-fit:cover;}
.card .card-body{padding:24px;}
.card h3{font-family:'Inter',sans-serif; font-weight:800; font-size:19px; margin-bottom:8px;}
.card p{color:var(--muted); font-size:15px; margin-bottom:16px;}

.why-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:22px;}
.why-item{text-align:center; padding:12px;}
.why-item .mark{width:52px; height:52px; margin:0 auto 16px; border-radius:50%; background:var(--red); color:#fff; display:flex; align-items:center; justify-content:center; font-family:'Playfair Display',serif; font-size:20px; font-weight:700;}
.why-item h3{font-family:'Inter',sans-serif; font-weight:800; font-size:16px; margin-bottom:6px;}
.why-item p{color:var(--muted); font-size:14px;}

.svc-row{display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:center; padding:56px 0; border-bottom:1px solid var(--line);}
.svc-row:last-child{border-bottom:none;}
.svc-row.reverse .svc-img{order:2;} .svc-row.reverse .svc-text{order:1;}
.svc-img img{border-radius:20px; width:100%; height:340px; object-fit:cover;}
.svc-text h3{font-size:clamp(24px,3vw,32px); margin-bottom:14px;}
.svc-text p{color:var(--muted); font-size:16px; margin-bottom:20px;}

.gal-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:18px;}
.gal-grid figure{margin:0; border-radius:16px; overflow:hidden; position:relative;}
.gal-grid img{width:100%; height:300px; object-fit:cover; transition:transform .3s ease;}
.gal-grid figure:hover img{transform:scale(1.05);}
.gal-grid figcaption{position:absolute; bottom:0; left:0; right:0; background:linear-gradient(transparent,rgba(0,0,0,.65)); color:#fff; font-size:13px; font-weight:600; padding:26px 14px 12px;}

.faq-cloud{display:flex; flex-wrap:wrap; gap:14px;}
.faq-chip{background:var(--card); border:1px solid var(--line); border-radius:16px; padding:16px 20px; cursor:pointer; flex:1 1 260px;}
.faq-chip h4{font-family:'Inter',sans-serif; font-weight:700; font-size:15.5px; display:flex; justify-content:space-between; align-items:center; gap:10px;}
.faq-chip h4::after{content:'+'; color:var(--red); font-size:20px; font-weight:800; flex:0 0 auto;}
.faq-chip.open h4::after{content:'\2212';}
.faq-chip .faq-a{display:none; margin-top:12px; color:var(--muted); font-size:14.5px; line-height:1.6;}
.faq-chip.open .faq-a{display:block;}

.cta-band{background:var(--red); color:#fff; text-align:center;}
.cta-band h2{color:#fff; font-size:clamp(30px,4vw,44px);}
.cta-band p{color:rgba(255,255,255,.85); margin-top:14px;}
.cta-band .btn-outline{border-color:#fff; color:#fff; margin-top:26px;}

form.card-form{background:var(--card); border:1px solid var(--line); border-radius:22px; padding:32px; display:grid; gap:16px; max-width:640px; margin:0 auto;}
form.card-form label{font-size:13px; font-weight:700; letter-spacing:.5px; text-transform:uppercase; color:var(--muted); margin-bottom:-8px;}
form.card-form input, form.card-form select, form.card-form textarea{
  width:100%; padding:14px 16px; border-radius:12px; border:1px solid var(--line); background:var(--bg); color:var(--ink); font-family:inherit; font-size:15px;}
form.card-form textarea{resize:vertical; min-height:100px;}
.check-group{display:flex; flex-wrap:wrap; gap:10px;}
.check-group label{font-size:14px; font-weight:600; text-transform:none; letter-spacing:0; background:var(--bg); border:1px solid var(--line); border-radius:10px; padding:10px 14px; display:flex; align-items:center; gap:8px; cursor:pointer; margin:0;}
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:16px;}
.form-note{font-size:14px; font-weight:700; color:var(--red); background:rgba(128,42,24,.08); border-radius:10px; padding:12px 14px;}
.contact-info{display:grid; gap:18px; max-width:640px; margin:0 auto 40px; text-align:center;}
.contact-info .row{display:flex; justify-content:center; gap:40px; flex-wrap:wrap; font-size:15px;}
.contact-info .row div{color:var(--muted);}
.contact-info .row strong{display:block; color:var(--ink); font-family:'Playfair Display',serif; font-size:18px;}

footer{background:var(--bg); border-top:1px solid var(--line); padding:64px 0 28px;}
.footer-top{display:grid; grid-template-columns:1.3fr 1fr 1fr 1fr; gap:36px; padding-bottom:44px; border-bottom:1px solid var(--line);}
.footer-brand img{height:56px; margin-bottom:14px;}
.footer-brand p{color:var(--muted); font-size:14px; max-width:32ch;}
.footer-top h4{font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--gold); font-weight:800; margin-bottom:16px;}
.footer-top a, .footer-top p{display:block; font-size:15px; margin-bottom:12px;}
.footer-bottom{display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:14px; padding-top:24px; font-size:13px; color:var(--muted);}

@media (max-width:900px){
  nav{position:fixed; top:var(--header-h); left:0; right:0; background:var(--bg); flex-direction:column; padding:20px 28px; gap:16px; border-bottom:1px solid var(--line); transform:translateY(-140%); transition:transform .25s ease;}
  nav.open{transform:translateY(0);}
  .hamburger{display:flex;}
  .grid, .why-grid, .gal-grid{grid-template-columns:1fr 1fr;}
  .svc-row, .svc-row.reverse{grid-template-columns:1fr;}
  .svc-row.reverse .svc-img, .svc-row.reverse .svc-text{order:0;}
  .footer-top{grid-template-columns:1fr 1fr;}
  .two-col{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .grid, .why-grid, .gal-grid{grid-template-columns:1fr;}
  .footer-top{grid-template-columns:1fr;}
  .contact-info .row{gap:20px;}
}
