/* BoZ Excavation — custom styles layered on top of Tailwind CDN */

:root {
  --boz-navy: #0B1B2B;
  --boz-navy-2: #0F243A;
  --boz-red: #C8102E;
  --boz-red-dark: #A30D26;
  --boz-sand: #D9C7A7;
  --boz-off: #FAFAFA;
  --boz-ink: #1F2937;
}

html { scroll-behavior: smooth; }

body {
  font-family: 'Inter', system-ui, -apple-system, Segoe UI, Roboto, sans-serif;
  color: var(--boz-ink);
  background: var(--boz-off);
  -webkit-font-smoothing: antialiased;
}

.font-display {
  font-family: 'Anton', 'Oswald', Impact, sans-serif;
  letter-spacing: 0.01em;
  text-transform: uppercase;
}

/* Subtle paper / grit texture */
.texture-grit {
  background-image:
    radial-gradient(rgba(0,0,0,0.04) 1px, transparent 1px),
    radial-gradient(rgba(0,0,0,0.03) 1px, transparent 1px);
  background-size: 6px 6px, 11px 11px;
  background-position: 0 0, 3px 3px;
}

/* Diagonal hazard stripes accent */
.stripe-accent {
  background: repeating-linear-gradient(
    135deg,
    var(--boz-red) 0 14px,
    #fff 14px 28px
  );
}

.stripe-thin {
  height: 6px;
  background: repeating-linear-gradient(
    135deg,
    var(--boz-red) 0 10px,
    #0B1B2B 10px 20px
  );
}

/* Hero background: navy with topographic-ish radial dirt glow */
.hero-bg {
  background:
    radial-gradient(1200px 600px at 80% -10%, rgba(200,16,46,0.25), transparent 60%),
    radial-gradient(900px 500px at 10% 110%, rgba(217,199,167,0.18), transparent 60%),
    linear-gradient(180deg, #0B1B2B 0%, #0F243A 100%);
}

.btn {
  display: inline-flex; align-items: center; gap: .5rem;
  padding: .85rem 1.4rem; border-radius: 9999px;
  font-weight: 700; letter-spacing: .02em;
  transition: transform .15s ease, background .2s ease, color .2s ease, box-shadow .2s ease;
}
.btn-red { background: var(--boz-red); color: #fff; box-shadow: 0 8px 20px -8px rgba(200,16,46,.6); }
.btn-red:hover { background: var(--boz-red-dark); transform: translateY(-1px); }
.btn-white { background: #fff; color: var(--boz-navy); border: 2px solid #fff; }
.btn-white:hover { background: var(--boz-sand); border-color: var(--boz-sand); transform: translateY(-1px); }
.btn-ghost { background: transparent; color: #fff; border: 2px solid rgba(255,255,255,.6); }
.btn-ghost:hover { background: #fff; color: var(--boz-navy); }

/* Card */
.card {
  background: #fff; border-radius: 18px;
  border: 1px solid rgba(11,27,43,.08);
  box-shadow: 0 1px 0 rgba(11,27,43,.04), 0 14px 30px -20px rgba(11,27,43,.18);
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.card:hover { transform: translateY(-4px); box-shadow: 0 1px 0 rgba(11,27,43,.04), 0 24px 40px -22px rgba(11,27,43,.28); border-color: rgba(200,16,46,.25); }

.icon-chip {
  width: 52px; height: 52px; border-radius: 14px;
  display: inline-flex; align-items: center; justify-content: center;
  background: linear-gradient(135deg, #0B1B2B, #1a3654);
  color: #fff;
}
.icon-chip.red { background: linear-gradient(135deg, #C8102E, #7a0a1c); }

/* Fade in on scroll */
.reveal { opacity: 0; transform: translateY(16px); transition: opacity .7s ease, transform .7s ease; }
.reveal.in { opacity: 1; transform: none; }

/* Sticky nav */
.nav { transition: background .25s ease, box-shadow .25s ease, color .25s ease; background: rgba(11,27,43,.55); backdrop-filter: saturate(140%) blur(10px); }
.nav.scrolled { background: rgba(255,255,255,.92); color: var(--boz-navy); box-shadow: 0 4px 24px -16px rgba(0,0,0,.25); }
.nav.scrolled .nav-brand-mark { color: var(--boz-red); }
.nav.scrolled .nav-toggle { border-color: rgba(11,27,43,.20); }

.nav-link { position: relative; }
.nav-link::after {
  content:""; position:absolute; left:0; right:0; bottom:-6px; height:2px;
  background: var(--boz-red); transform: scaleX(0); transform-origin: left; transition: transform .25s ease;
}
.nav-link:hover::after, .nav-link.active::after { transform: scaleX(1); }

/* Mobile menu */
.mobile-menu { max-height: 0; overflow: hidden; transition: max-height .35s ease; }
.mobile-menu.open { max-height: 480px; }

/* Service area radius visualization */
.radius-ring {
  background:
    radial-gradient(circle at center, rgba(200,16,46,.18) 0 18%, rgba(200,16,46,.08) 18% 36%, rgba(200,16,46,.03) 36% 60%, transparent 60% 100%);
  border-radius: 9999px;
}


/* Form */
.field {
  width: 100%; padding: .85rem 1rem; border-radius: 12px;
  border: 1.5px solid #e5e7eb; background: #fff; font-size: 1rem;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.field:focus { outline: none; border-color: var(--boz-red); box-shadow: 0 0 0 4px rgba(200,16,46,.12); }

/* Section heading kicker */
.kicker {
  display: inline-flex; align-items: center; gap: .5rem;
  font-weight: 700; letter-spacing: .14em; text-transform: uppercase; font-size: .78rem;
  color: var(--boz-red);
}
.kicker::before { content:""; width: 28px; height: 2px; background: var(--boz-red); display:inline-block; }

/* Footer */
.footer-link { color: rgba(255,255,255,.7); }
.footer-link:hover { color: #fff; }

/* Print niceties */
@media (prefers-reduced-motion: reduce) {
  * { transition: none !important; animation: none !important; }
  html { scroll-behavior: auto; }
  .reveal { opacity: 1; transform: none; }
}
