:root { --brand:#FF0000; --brand-deep:#D40000; --ink:#0B0B0B; }
.font-display { font-family: 'Archivo', system-ui, sans-serif; }
.text-fluid-hero { font-size: clamp(2.6rem, 1.4rem + 5.6vw, 6.25rem); }
.text-fluid-h1 { font-size: clamp(2.3rem, 1.4rem + 3.8vw, 4.75rem); }
.text-fluid-h2 { font-size: clamp(1.9rem, 1.3rem + 2.2vw, 3.25rem); }
.kicker { font-size: .78rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }

.navlink { position: relative; padding: .55rem .8rem; font-weight: 500; font-size: .95rem; color: rgba(11,11,11,.75); border-radius: 999px; transition: color .2s, background-color .2s; }
.navlink:hover { color: var(--ink); background: rgba(0,0,0,.04); }
.navlink.is-active { color: var(--ink); font-weight: 600; }
.navlink.is-active::after { content:""; position:absolute; left:.8rem; right:.8rem; bottom:.15rem; height:3px; background:var(--brand); border-radius:2px; }

.btn-primary, .btn-dark, .btn-light, .btn-outline-light { display:inline-flex; align-items:center; gap:.55rem; font-weight:600; border-radius:999px; padding:.8rem 1.4rem; min-height:48px; transition: transform .2s ease, background-color .2s, color .2s, box-shadow .2s; }
.btn-primary { background:var(--brand-deep); color:#fff; box-shadow: 0 10px 25px -10px rgba(255,0,0,.6); }
.btn-primary:hover { background:#b80000; transform: translateY(-2px); }
.btn-dark { background:var(--ink); color:#fff; }
.btn-dark:hover { background:var(--brand-deep); transform: translateY(-2px); }
.btn-light { background:#fff; color:var(--ink); }
.btn-light:hover { transform: translateY(-2px); box-shadow: 0 12px 30px -10px rgba(0,0,0,.4); }
.btn-outline-light { color:#fff; border:1.5px solid rgba(255,255,255,.45); }
.btn-outline-light:hover { background:#fff; color:var(--ink); border-color:#fff; }
.btn-primary svg, .btn-dark svg, .btn-light svg { transition: transform .2s; }
.btn-primary:hover svg, .btn-dark:hover svg, .btn-light:hover svg { transform: translateX(3px); }

.link-underline { background-image: linear-gradient(currentColor,currentColor); background-size: 0 2px; background-position: 0 100%; background-repeat:no-repeat; transition: background-size .3s; padding-bottom: 2px; }
.link-underline:hover { background-size: 100% 2px; }

.tag { font-size:.75rem; font-weight:600; padding:.3rem .7rem; border-radius:999px; background:rgba(255,0,0,.08); color:var(--brand-deep); }
.chip { white-space:nowrap; font-size:.85rem; font-weight:600; padding:.5rem 1rem; border-radius:999px; background:#E8E8E8; transition: background .2s, color .2s; }
.chip:hover { background:var(--ink); color:#fff; }
.no-scrollbar::-webkit-scrollbar { display:none; } .no-scrollbar { scrollbar-width:none; }

.accred { display:inline-flex; align-items:center; min-height:48px; }
.stat-n { font-family:'Archivo',sans-serif; font-weight:800; letter-spacing:-.03em; font-size: clamp(2.6rem, 1.8rem + 3vw, 4.25rem); line-height:1; color:#fff; }
.stat-l { margin-top:.6rem; color:rgba(255,255,255,.65); max-width: 16rem; }
.stat { border-left: 3px solid var(--brand); padding-left: 1.25rem; }

.svc-row { display:flex; gap:1rem; align-items:flex-start; padding:1.5rem .25rem; transition: background .2s, padding .2s; }
.svc-row:hover { background: rgba(232,232,232,.5); padding-left: .75rem; }

.marquee { overflow:hidden; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.marquee-track { display:flex; gap:1rem; width:max-content; animation: marquee 45s linear infinite; }
.marquee:hover .marquee-track { animation-play-state: paused; }
.client { white-space:nowrap; font-family:'Archivo',sans-serif; font-weight:700; font-size: clamp(1.1rem, .9rem + .8vw, 1.6rem); letter-spacing:-.01em; padding:.9rem 1.6rem; border-radius:999px; border:1px solid #CCCCCC; }
@keyframes marquee { to { transform: translateX(-50%); } }

.lbl { display:block; font-size:.875rem; font-weight:600; margin-bottom:.4rem; }
.fld { width:100%; border-radius:.9rem; border:1.5px solid #CCCCCC; background:#fafafa; padding:.85rem 1rem; font-size:1rem; min-height:50px; transition: border-color .2s, box-shadow .2s, background .2s; }
.fld:focus { outline:none; border-color: var(--brand-deep); background:#fff; box-shadow: 0 0 0 4px rgba(255,0,0,.12); }
.fld.is-invalid { border-color: var(--brand-deep); }
.hp { position:absolute !important; left:-10000px !important; width:1px; height:1px; overflow:hidden; }
.grecaptcha-badge { visibility: hidden; }
.status-ok { background:#0B0B0B; color:#fff; border-left: 4px solid #FF0000; }
.status-err { background:rgba(255,0,0,.08); color:#a30000; border:1px solid rgba(212,0,0,.35); }

.reveal { opacity:0; transform: translateY(24px); transition: opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); transition-delay: var(--d, 0ms); }
.reveal.is-in { opacity:1; transform:none; }
.hero-img { animation: heroZoom 18s ease-out both; }
@keyframes heroZoom { from { transform: scale(1.08); } to { transform: scale(1); } }
header.is-scrolled { box-shadow: 0 10px 30px -15px rgba(0,0,0,.25); }

#lightbox { position:fixed; inset:0; z-index:80; background:rgba(11,11,11,.92); display:none; align-items:center; justify-content:center; padding:1.5rem; }
#lightbox.open { display:flex; }
#lightbox img { max-width:min(1100px,100%); max-height:78vh; border-radius:1rem; image-rendering:auto; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .reveal { opacity:1; transform:none; transition:none; }
  .hero-img, .marquee-track { animation:none; }
  *, *::before, *::after { transition-duration: .01ms !important; }
}
