/* ============================================================
   Milwaukee Basement Waterproofing — site styles
   Custom effects + class names unique to this site.
   ============================================================ */

:root {
  --slate-950: #141d26;
  --slate-900: #1a2530;
  --slate-800: #22303f;
  --slate-700: #2b3d4f;
  --slate-600: #33475c;
  --slate-500: #46617c;
  --slate-400: #5e7a94;
  --safety-600: #c4500f;
  --safety-500: #d95f18;
  --safety-400: #e57539;
  --mist-100: #eef1f4;
}

html { scroll-behavior: smooth; }

body { font-family: 'Barlow', system-ui, -apple-system, sans-serif; }

h1, h2, h3, h4, h5, .font-display {
  font-family: 'Barlow Condensed', 'Barlow', system-ui, sans-serif;
  letter-spacing: 0.01em;
}

/* --- Skip link --- */
.skip-nav {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 100;
  background: var(--safety-500);
  color: #fff;
  padding: 0.75rem 1.25rem;
  font-weight: 600;
  border-radius: 0 0 0.375rem 0;
}
.skip-nav:focus { left: 0; }

/* --- Eyebrow label with orange tick --- */
.eyebrow { display: inline-flex; align-items: center; }
.eyebrow::before {
  content: "";
  display: inline-block;
  width: 1.75rem;
  height: 2px;
  background: var(--safety-500);
  margin-right: 0.65rem;
}

/* --- Diagonal hero cut divider --- */
.hero-cut {
  clip-path: polygon(0 0, 100% 0, 100% calc(100% - 3.25rem), 0 100%);
}
@media (max-width: 640px) {
  .hero-cut { clip-path: polygon(0 0, 100% 0, 100% calc(100% - 1.5rem), 0 100%); }
}

/* --- Blueprint grid overlay for slate sections --- */
.blueprint-grid {
  background-image:
    linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
    linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
  background-size: 30px 30px;
}

/* --- Card raise on hover --- */
.raise-card {
  transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease;
}
.raise-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 20px 44px -20px rgba(20, 29, 38, 0.45);
}

/* --- Sticky masthead scroll shadow --- */
.masthead { transition: box-shadow 0.3s ease; }
.masthead.is-stuck { box-shadow: 0 8px 26px -14px rgba(20, 29, 38, 0.45); }

/* --- FAQ accordion --- */
.accordion-panel {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.35s ease;
}
.accordion-panel.is-open { max-height: 640px; }
.accordion-mark { transition: transform 0.3s ease, background 0.3s ease, color 0.3s ease; }
.accordion-trigger[aria-expanded="true"] .accordion-mark {
  transform: rotate(45deg);
  background: var(--safety-500);
  color: #fff;
}

/* --- Mobile nav drawer --- */
.nav-drawer {
  transform: translateX(100%);
  transition: transform 0.3s ease;
  will-change: transform;
}
.nav-drawer.is-open { transform: translateX(0); }

/* --- Process flow vertical connector --- */
.flow-step { position: relative; }
.flow-step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 1.5rem;
  top: 3.5rem;
  bottom: -1.75rem;
  width: 2px;
  background: linear-gradient(var(--slate-500), rgba(70, 97, 124, 0.15));
}

/* --- Symptom check tile --- */
.check-tile { transition: border-color 0.2s ease, background 0.2s ease; }
.check-tile:hover { border-color: var(--safety-400); background: #fff; }

/* --- Dropdown reveal (desktop hover) --- */
.nav-pop {
  opacity: 0;
  visibility: hidden;
  transform: translateY(6px);
  transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s ease;
}
.nav-parent:hover .nav-pop,
.nav-parent:focus-within .nav-pop {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

/* --- Utility bar link --- */
.util-link:hover { color: var(--safety-400); }
