:root {
  --blue: #009EE5;
  --orange: #EF8608;
  --ink: #000000;
  --char: #202020;
}
html { scroll-behavior: smooth; }
body { font-family: 'Manrope', system-ui, sans-serif; -webkit-font-smoothing: antialiased; }
.font-display { font-family: 'Saira', 'Manrope', sans-serif; }
.grecaptcha-badge { visibility: hidden; }

/* Fluid type */
.t-hero { font-size: clamp(2.5rem, 1.6rem + 4.2vw, 5.4rem); line-height: .98; letter-spacing: -0.03em; }
.t-h2 { font-size: clamp(2rem, 1.4rem + 2.6vw, 3.6rem); line-height: 1.02; letter-spacing: -0.025em; }
.t-h3 { font-size: clamp(1.35rem, 1.1rem + 1vw, 1.9rem); line-height: 1.1; letter-spacing: -0.015em; }
.t-lead { font-size: clamp(1.05rem, 1rem + .35vw, 1.3rem); line-height: 1.7; }

/* Decorative */
.grid-lines {
  background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
  background-size: 64px 64px;
}
.glow-blue { box-shadow: 0 0 0 1px rgba(0,158,229,.25), 0 30px 80px -30px rgba(0,158,229,.55); }
.orange-rule { width: 64px; height: 4px; background: var(--orange); border-radius: 2px; }
.text-stroke { -webkit-text-stroke: 1px rgba(255,255,255,.18); color: transparent; }

/* 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; }

.hero-img { animation: heroZoom 18s ease-out both; }
@keyframes heroZoom { from { transform: scale(1.08); } to { transform: scale(1); } }

.card-lift { transition: transform .35s ease, box-shadow .35s ease, border-color .35s ease; }
.card-lift:hover { transform: translateY(-4px); box-shadow: 0 24px 60px -28px rgba(0,0,0,.55); }
.zoom-wrap { overflow: hidden; }
.zoom-wrap img { transition: transform .9s cubic-bezier(.2,.7,.2,1); }
.zoom-wrap:hover img { transform: scale(1.05); }
.btn-arrow svg { transition: transform .25s ease; }
.btn-arrow:hover svg { transform: translateX(4px); }

.nav-link { position: relative; }
.nav-link::after { content: ""; position: absolute; left: 0; right: 100%; bottom: -6px; height: 2px; background: var(--orange); transition: right .3s ease; }
.nav-link:hover::after, .nav-link[aria-current="page"]::after { right: 0; }

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; transition: none; }
  .hero-img { animation: none; }
  .card-lift, .zoom-wrap img, .btn-arrow svg { transition: none; }
}

/* Home hero headline: sized so "One accredited team." holds one line */
.t-hero-home { font-size: clamp(2.4rem, 1.5rem + 3.6vw, 4.6rem); line-height: .98; letter-spacing: -0.03em; }
@media (max-width: 400px) { .t-hero-home .whitespace-nowrap { white-space: normal; } }
