:root {
  --maroon: #800000;
  --red: #93151d;
  --ink: #212121;
  --deep: #2a0508;
  --tint: #f7f0ef;
}
html { scroll-behavior: smooth; }
body { font-family: "Manrope", system-ui, sans-serif; color: var(--ink); -webkit-font-smoothing: antialiased; }
.font-display { font-family: "Archivo", "Manrope", sans-serif; }
.h-hero { font-size: clamp(2.5rem, 1.6rem + 4.6vw, 5.6rem); line-height: .95; letter-spacing: -0.025em; }
.h-xl { font-size: clamp(2rem, 1.4rem + 2.8vw, 3.75rem); line-height: 1.02; letter-spacing: -0.03em; }
.h-lg { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.4rem); line-height: 1.1; letter-spacing: -0.02em; }
.lede { font-size: clamp(1.05rem, 1rem + .35vw, 1.3rem); line-height: 1.7; }
.eyebrow { font-size: .75rem; letter-spacing: .32em; text-transform: uppercase; font-weight: 700; }

/* honeypot: hidden from people, present for bots */
.hp { position: absolute !important; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.grecaptcha-badge { visibility: hidden; }

/* reveal on scroll */
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
.reveal.is-in { opacity: 1; transform: none; }
.reveal-d1 { transition-delay: .08s; } .reveal-d2 { transition-delay: .16s; } .reveal-d3 { transition-delay: .24s; }

.grid-lines {
  background-image: linear-gradient(rgba(255,255,255,.06) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.06) 1px, transparent 1px);
  background-size: 56px 56px;
}
.grid-lines-dark {
  background-image: linear-gradient(rgba(128,0,0,.07) 1px, transparent 1px), linear-gradient(90deg, rgba(128,0,0,.07) 1px, transparent 1px);
  background-size: 56px 56px;
}

.btn { display: inline-flex; align-items: center; justify-content: center; gap: .6rem; min-height: 52px; padding: .85rem 1.5rem; border-radius: 999px; font-weight: 700; transition: transform .25s ease, background-color .25s ease, box-shadow .25s ease, color .25s ease; }
.btn:hover { transform: translateY(-2px); }
.btn svg { transition: transform .25s ease; }
.btn:hover svg { transform: translateX(3px); }
.btn-primary { background: var(--maroon); color: #fff; box-shadow: 0 10px 30px -10px rgba(128,0,0,.6); }
.btn-primary:hover { background: var(--red); box-shadow: 0 16px 36px -12px rgba(128,0,0,.7); }
.btn-light { background: #fff; color: var(--maroon); }
.btn-ghost { border: 1.5px solid rgba(255,255,255,.55); color: #fff; }
.btn-ghost:hover { background: rgba(255,255,255,.12); }

.field { width: 100%; border: 1.5px solid #e4d6d4; background: #fff; border-radius: .9rem; padding: .85rem 1rem; min-height: 52px; font: inherit; transition: border-color .2s, box-shadow .2s; }
.field:focus { outline: none; border-color: var(--maroon); box-shadow: 0 0 0 4px rgba(128,0,0,.12); }
label.lbl { display: block; font-weight: 700; font-size: .9rem; margin-bottom: .4rem; }

details.faq summary { list-style: none; cursor: pointer; }
details.faq summary::-webkit-details-marker { display: none; }
details.faq .chev { transition: transform .3s ease; }
details.faq[open] .chev { transform: rotate(45deg); }

.svc-row { transition: background-color .35s ease, color .35s ease, padding .35s ease; }
.svc-row:hover { background: rgba(255,255,255,.06); }
.svc-row:hover .svc-arrow { transform: translateX(6px); background: #fff; color: var(--maroon); }
.svc-arrow { transition: transform .35s ease, background-color .35s ease, color .35s ease; }

.zoom-img { transition: transform 1.2s cubic-bezier(.2,.7,.2,1); }
.group:hover .zoom-img { transform: scale(1.05); }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .btn, .btn svg, .svc-arrow, .zoom-img, details.faq .chev { transition: none !important; }
  .btn:hover, .group:hover .zoom-img { transform: none; }
}
