:root{
  --bg:#f7f5f1;
  --surface:#fffdfa;
  --surface-alt:#f1ede6;
  --text:#1c1a17;
  --muted:#625d57;
  --line:rgba(28,26,23,.12);
  --line-strong:rgba(28,26,23,.22);
  --accent:#c41f17;
  --accent-dark:#981912;
  --accent-soft:rgba(196,31,23,.08);
  --shadow:0 18px 46px rgba(39,31,20,.10);
  --radius:20px;
  --radius-sm:14px;
  --max:1160px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at top right, rgba(196,31,23,.08), transparent 28%),
    linear-gradient(180deg, #fbfaf7 0%, var(--bg) 100%);
  line-height:1.6;
  overflow-x:hidden;
  opacity:0;
  transition:opacity .34s ease;
}
body.is-loaded{opacity:1}
body.is-leaving{opacity:0}

a{color:inherit;text-decoration:none}
a:hover{opacity:.95}
img{max-width:100%;display:block}

.container{max-width:var(--max);margin:0 auto;padding:0 20px}
.section{padding:56px 0;scroll-margin-top:84px}
.section--alt{background:linear-gradient(180deg, rgba(255,255,255,.2), rgba(255,255,255,.55))}
.skip{
  position:absolute;
  left:-9999px;
  top:10px;
  background:#fff;
  border:1px solid var(--line-strong);
  padding:10px 12px;
  border-radius:10px;
  z-index:200;
}
.skip:focus{left:10px}

.topbar{
  position:sticky;
  top:0;
  z-index:100;
  backdrop-filter:blur(16px);
  background:rgba(247,245,241,.9);
  border-bottom:1px solid var(--line);
}
.topbar__inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  min-height:76px;
}
.brand{display:flex;align-items:center}
.brandLogo{height:42px;width:auto}
.nav{
  display:flex;
  align-items:center;
  gap:18px;
  flex-wrap:wrap;
  font-weight:700;
  color:var(--muted);
}
.nav a{position:relative}
.nav a:after{
  content:"";
  position:absolute;
  left:0;
  bottom:-8px;
  width:100%;
  height:2px;
  transform:scaleX(0);
  transform-origin:left;
  background:var(--accent);
  transition:transform .18s ease;
}
.nav a:hover:after,.nav a:focus-visible:after{transform:scaleX(1)}
.topbar__cta{display:flex;gap:10px;align-items:center}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:13px 18px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-weight:800;
  transition:transform .16s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease;
}
.btn:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(39,31,20,.08)}
.btn--solid{
  background:linear-gradient(180deg, var(--accent) 0%, var(--accent-dark) 100%);
  color:#fff;
  border-color:transparent;
  box-shadow:0 16px 34px rgba(196,31,23,.22);
}
.btn--ghost{background:rgba(255,255,255,.78)}
.btn--full{width:100%}

.hero{position:relative;padding:68px 0 42px;overflow:hidden}
.hero:before{
  content:"";
  position:absolute;
  inset:auto -120px -100px auto;
  width:360px;
  height:360px;
  background:radial-gradient(circle, rgba(196,31,23,.12), transparent 70%);
  pointer-events:none;
}
.hero__grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:28px;
  align-items:center;
}
h1{font-size:48px;line-height:1.05;margin:0 0 14px;letter-spacing:-.03em}
h2{font-size:31px;line-height:1.15;margin:0}
h3{margin:0 0 10px;font-size:18px;line-height:1.25}
.lead{font-size:19px;color:var(--muted);max-width:760px;margin:0 0 18px}
.lead--compact{max-width:880px}
.hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0}

.section__head{
  display:flex;
  align-items:flex-end;
  gap:14px;
  margin-bottom:20px;
}
.section__dash{
  width:18px;
  height:3px;
  border-radius:3px;
  background:var(--accent);
  transform:translateY(-8px);
}

.badges,
.checklist,
.linkList{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:10px;
}
.badges li,
.checklist li,
.linkList li{
  position:relative;
  padding-left:18px;
}
.badges li:before,
.checklist li:before,
.linkList li:before{
  content:"";
  position:absolute;
  left:0;
  top:.62em;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
}

.heroCard,
.card,
.tile,
.formCard,
.noteCard,
.quote,
.stat,
.infoBand,
.policyBox{
  background:var(--surface);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.heroCard{padding:24px}
.logoCard__tag,.muted{color:var(--muted)}
.tiny{font-size:13px}
.logoCard__contacts{display:grid;gap:10px;margin-top:16px}
.contactPill{
  display:flex;
  align-items:center;
  gap:10px;
  padding:12px 14px;
  border-radius:var(--radius-sm);
  border:1px solid var(--line);
  background:#fff;
  font-weight:700;
}
.heroLogo{width:210px;height:auto}

.stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
  margin-top:22px;
}
.stat{padding:18px}
.stat__value{display:block;font-size:30px;font-weight:900;line-height:1}
.stat__label{display:block;margin-top:8px;color:var(--muted);font-size:14px}

.cards,.tiles,.quotes,.footerLinks,.contactGrid{
  display:grid;
  gap:14px;
}
.cards{grid-template-columns:repeat(3,1fr)}
.cards--2{grid-template-columns:repeat(2,1fr)}
.cards--faq{grid-template-columns:repeat(3,1fr)}
.tiles{grid-template-columns:repeat(4,1fr)}
.quotes{grid-template-columns:repeat(3,1fr)}
.card,.tile,.quote,.noteCard{padding:18px}
.card p,.tile p,.quote p,.noteCard p{margin:0;color:var(--muted)}
.cardLink{display:block}

.areas{display:flex;flex-wrap:wrap;gap:10px}
.areaTag{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:10px 14px;
  border-radius:999px;
  border:1px solid var(--line);
  background:#fff;
  font-weight:700;
  color:var(--muted);
}

.split{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:18px;
  align-items:start;
}
.steps{
  display:grid;
  gap:12px;
}
.step{
  display:flex;
  gap:14px;
  align-items:flex-start;
  padding:16px 0;
  border-bottom:1px solid var(--line);
}
.step:last-child{border-bottom:none}
.step__num{
  flex:0 0 38px;
  width:38px;
  height:38px;
  border-radius:50%;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:var(--accent-soft);
  color:var(--accent-dark);
  font-weight:900;
}

.formCard{padding:22px}
form{display:grid;gap:12px;margin-top:14px}
label span{display:block;font-size:13px;color:var(--muted);margin-bottom:6px;font-weight:700}
input,textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:16px;
  padding:13px 14px;
  background:#fff;
  color:var(--text);
  font:inherit;
}
input:focus,textarea:focus{outline:none;border-color:rgba(196,31,23,.48);box-shadow:0 0 0 4px rgba(196,31,23,.10)}
.consent{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:4px;
  color:var(--muted);
  font-size:13px;
}
.consent input{width:18px;height:18px;margin-top:2px}

.crumbs{
  margin-top:0;
  margin-bottom:18px;
  color:var(--muted);
  font-size:13px;
}
.crumbs a{color:var(--muted)}

.infoBand{
  padding:18px;
  display:grid;
  gap:12px;
  grid-template-columns:repeat(3,1fr);
}

.footer{
  border-top:1px solid var(--line);
  background:#efe8de;
  margin-top:24px;
}
.footer__inner{
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr 1fr;
  gap:18px;
  padding:28px 0;
}
.footer__col{display:grid;gap:8px;align-content:start}
.footer__title{font-size:14px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;color:var(--muted)}
.footer__bottom{
  padding:12px 0 24px;
  border-top:1px solid rgba(28,26,23,.08);
  display:flex;
  justify-content:space-between;
  gap:12px;
  color:var(--muted);
  font-size:14px;
}

.policyBox{padding:22px}
.policyBox p,.policyBox li{color:var(--muted)}

.reveal{
  opacity:0;
  transform:translateY(14px);
  transition:opacity .45s ease, transform .45s ease;
}
.reveal.is-visible{
  opacity:1;
  transform:none;
}

@media (max-width:980px){
  .hero__grid,.split,.footer__inner{grid-template-columns:1fr}
  .cards,.cards--2,.cards--faq,.stats,.infoBand,.quotes{grid-template-columns:repeat(2,1fr)}
  .tiles{grid-template-columns:repeat(2,1fr)}
}

@media (max-width:720px){
  h1{font-size:38px}
  h2{font-size:27px}
  .nav{display:none}
  .topbar__inner{padding:12px 0}
  .cards,.cards--2,.cards--faq,.stats,.tiles,.infoBand,.quotes,.contactGrid{grid-template-columns:1fr}
  .hero{padding-top:44px}
  .heroLogo{width:170px}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body,.btn,.reveal{transition:none !important}
  body{opacity:1}
  .reveal{opacity:1;transform:none}
}
