
:root{
  --brand:#7a0c14;
  --brand-dark:#57070d;
  --charcoal:#21242a;
  --gray:#6b7280;
  --light:#f5f5f5;
  --white:#ffffff;
  --stripe1:#d9d9d9;
  --stripe2:#efefef;
  --shadow:0 14px 35px rgba(0,0,0,.12);
  --radius:20px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Arial,Helvetica,sans-serif;
  color:#222;
  line-height:1.6;
  background:#fff;
}
img{max-width:100%;display:block}
a{color:var(--brand);text-decoration:none}
a:hover{text-decoration:underline}
.container{width:min(var(--max),calc(100% - 2rem));margin:0 auto}
.topbar{
  background:var(--charcoal);
  color:#fff;
  font-size:.95rem;
}
.topbar .container{
  display:flex;justify-content:space-between;gap:1rem;align-items:center;
  padding:.6rem 0;flex-wrap:wrap;
}
.topbar a{color:#fff;text-decoration:none}
header{
  position:sticky;top:0;z-index:1000;
  background:rgba(255,255,255,.97);
  border-bottom:1px solid #e5e7eb;
  backdrop-filter:blur(8px);
}
.nav-wrap{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.9rem 0;
}
.brand{display:flex;align-items:center;gap:1rem;color:#111;text-decoration:none}
.brand img{height:68px;width:auto;border-radius:8px}
.brand-text strong{display:block;font-size:1.4rem;letter-spacing:.02em}
.brand-text span{display:block;color:var(--gray);font-size:.95rem}
.menu-toggle{display:none;background:var(--brand);color:#fff;border:none;border-radius:10px;padding:.7rem .9rem;font-weight:bold}
nav ul{display:flex;list-style:none;gap:1.2rem;padding:0;margin:0;align-items:center}
nav a{color:#1f2937;font-weight:700}
nav a.active, nav a:hover{color:var(--brand)}
.btn, .button, button{
  display:inline-block;background:var(--brand);color:#fff!important;border:none;
  padding:.95rem 1.35rem;border-radius:999px;font-weight:700;box-shadow:var(--shadow);
  text-decoration:none;cursor:pointer;transition:.2s ease;
}
.btn.secondary{background:#fff;color:var(--brand)!important;border:2px solid var(--brand);box-shadow:none}
.btn:hover,.button:hover,button:hover{transform:translateY(-1px);text-decoration:none;background:var(--brand-dark)}
.hero{
  position:relative;
  background:
    linear-gradient(rgba(20,20,23,.55), rgba(20,20,23,.5)),
    url('gallery1.jpg') center/cover no-repeat;
  color:#fff;
}
.hero::after{
  content:"";
  position:absolute;inset:0;
  background:linear-gradient(90deg, rgba(122,12,20,.68), rgba(122,12,20,.18) 60%, transparent);
}
.hero .container{position:relative;z-index:1;padding:6rem 0}
.hero-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:2rem;align-items:center}
.kicker{
  display:inline-block;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.25);
  color:#fff;padding:.45rem .8rem;border-radius:999px;font-size:.9rem;margin-bottom:1rem
}
.hero h1{font-size:clamp(2rem,5vw,4rem);line-height:1.05;margin:.2rem 0 1rem}
.hero p{font-size:1.08rem;max-width:720px}
.hero-card{
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);
  backdrop-filter:blur(8px);padding:1.4rem;border-radius:var(--radius)
}
.hero-card ul{padding-left:1.1rem;margin:.5rem 0 0}
.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1.5rem}
.section{padding:4.5rem 0}
.section.alt{
  background:repeating-linear-gradient(90deg,var(--stripe1),var(--stripe1) 12px,var(--stripe2) 12px,var(--stripe2) 24px);
}
.section-head{max-width:800px;margin:0 auto 2rem;text-align:center}
.section-head h2{font-size:clamp(1.8rem,3vw,2.6rem);color:var(--brand);margin:0 0 .8rem}
.section-head p{color:#4b5563;font-size:1.02rem}
.grid-3, .grid-4, .gallery-grid, .locations-grid{
  display:grid;gap:1.4rem;
}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.gallery-grid{grid-template-columns:repeat(3,1fr)}
.locations-grid{grid-template-columns:repeat(3,1fr)}
.card{
  background:#fff;border:1px solid #ececec;border-radius:var(--radius);box-shadow:var(--shadow);
  padding:1.5rem;height:100%;
}
.card h3{margin-top:.2rem;color:var(--brand)}
.card p{color:#4b5563}
.service-icon{
  width:52px;height:52px;border-radius:14px;background:#f9e8ea;color:var(--brand);
  display:grid;place-items:center;font-weight:900;font-size:1.2rem;margin-bottom:.9rem
}
.stats{
  display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-top:2rem
}
.stat{
  background:#fff;border-radius:18px;padding:1.2rem;text-align:center;box-shadow:var(--shadow)
}
.stat strong{display:block;font-size:1.9rem;color:var(--brand)}
.about-layout, .contact-layout{
  display:grid;grid-template-columns:1fr 1fr;gap:2rem;align-items:start
}
.photo-stack{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.photo-stack img{border-radius:18px;box-shadow:var(--shadow);height:100%;object-fit:cover}
.checklist{padding-left:1.2rem}
.checklist li{margin-bottom:.55rem}
.cta-band{
  background:linear-gradient(135deg,var(--brand),#8d1720 60%,var(--brand-dark));
  color:#fff;padding:3rem 0
}
.cta-band .container{
  display:flex;justify-content:space-between;gap:1.5rem;align-items:center;flex-wrap:wrap
}
.gallery-card{
  overflow:hidden;border-radius:18px;box-shadow:var(--shadow);background:#fff;border:1px solid #ececec
}
.gallery-card img{aspect-ratio:4/3;object-fit:cover;width:100%}
.gallery-card .caption{padding:1rem;font-weight:700}
.location-hero{
  background:
    linear-gradient(rgba(20,20,23,.58), rgba(20,20,23,.5)),
    url('gallery2.jpg') center/cover no-repeat;
  color:#fff;
}
.location-hero .container{padding:4.5rem 0}
.breadcrumbs{font-size:.95rem;margin-bottom:1rem}
.breadcrumbs a{color:#fff}
.form-card input,.form-card textarea{
  width:100%;padding:1rem;border:1px solid #d1d5db;border-radius:12px;margin-bottom:1rem;
  font:inherit
}
.form-card textarea{min-height:150px;resize:vertical}
.review{position:relative}
.review::before{content:"“";position:absolute;top:.5rem;left:1rem;font-size:3rem;color:#f0d5d8;line-height:1}
.review p{padding-top:1.6rem}
footer{
  background:#111827;color:#fff;padding:3rem 0 1.8rem;margin-top:0
}
footer a{color:#fff}
.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr .9fr;gap:1.5rem}
.footer-grid h4{margin-top:0}
.footer-links{list-style:none;padding:0;margin:0}
.footer-links li{margin-bottom:.55rem}
.subfooter{
  border-top:1px solid rgba(255,255,255,.12);
  margin-top:2rem;padding-top:1rem;font-size:.95rem;color:#cbd5e1
}
.tag-list{display:flex;flex-wrap:wrap;gap:.6rem}
.tag{background:#f8eaec;color:var(--brand);padding:.45rem .75rem;border-radius:999px;font-weight:700;font-size:.92rem}
@media (max-width: 980px){
  .grid-4{grid-template-columns:repeat(2,1fr)}
  .grid-3,.gallery-grid,.locations-grid,.footer-grid,.about-layout,.contact-layout,.hero-grid{grid-template-columns:1fr}
  .stats{grid-template-columns:repeat(2,1fr)}
}
@media (max-width: 760px){
  .menu-toggle{display:inline-block}
  nav{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid #e5e7eb}
  nav.open{display:block}
  nav ul{flex-direction:column;align-items:flex-start;padding:1rem}
  .brand img{height:56px}
  .hero .container{padding:4.5rem 0}
}
