/* ==========================================================================
   Header / Navigation — Section 9
   ========================================================================== */

.site-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--cream);
  border-bottom: 1px solid var(--divider);
}
.site-header .container {
  display: flex; align-items: center; justify-content: space-between;
  height: 72px;
}
.logo {
  color: var(--navy-900); text-decoration: none; display: inline-flex; align-items: baseline; gap: 7px;
  flex-shrink: 0;
}
.logo-broken {
  color: var(--teal-700); font-family: var(--font-accent); font-size: 24px;
  font-weight: 700; line-height: 1; letter-spacing: -0.02em;
}
.logo-rest {
  color: var(--navy-900); font-family: var(--font-primary); font-size: 13px;
  font-weight: 700; line-height: 1; letter-spacing: 0.085em;
}
@media (max-width: 390px) {
  .logo { gap: 5px; }
  .logo-broken { font-size: 21px; }
  .logo-rest { font-size: 11px; letter-spacing: 0.06em; }
}

/* Transactional header (Start My Repair) has less horizontal space to
   share with the step-progress indicator and phone icon, regardless of
   viewport width — always use the compact wordmark size here rather than
   relying only on the general mobile breakpoint above. */
.logo-compact .logo-broken { font-size: 17px; }
.logo-compact .logo-rest { font-size: 9px; letter-spacing: 0.06em; }
.logo-compact { gap: 4px; }

.nav-desktop { display: none; }
@media (min-width: 1024px) {
  .nav-desktop { display: flex; align-items: center; gap: var(--space-6); }
}
.nav-desktop a {
  color: var(--navy-900); text-decoration: none; font-weight: 600; font-size: 15px;
  padding: 4px 0; border-bottom: 2px solid transparent;
}
.nav-desktop a:hover { color: var(--teal-700); }
.nav-desktop a.active { border-bottom-color: var(--teal-700); }

.header-actions { display: flex; align-items: center; gap: var(--space-4); }
.utility-link { display: none; }
@media (min-width: 1024px) {
  .utility-link { display: flex; align-items: center; gap: 6px; color: var(--navy-900); text-decoration: none;
    font-weight: 600; font-size: 14px; min-height: 44px; min-width: 44px; justify-content: center; }
}
.utility-link.icon-only-mobile { display: flex; align-items: center; gap: 6px; color: var(--navy-900); text-decoration: none;
  font-weight: 600; font-size: 14px; min-height: 44px; min-width: 44px; justify-content: center; }
.utility-link svg { width: 24px; height: 24px; }
.utility-link .utility-text { display: none; }
@media (min-width: 1024px) { .utility-link .utility-text { display: inline; } }

.hamburger-btn {
  display: flex; align-items: center; justify-content: center;
  width: 44px; height: 44px; background: none; border: none; cursor: pointer; color: var(--navy-900);
}
@media (min-width: 1024px) { .hamburger-btn { display: none; } }

.mobile-menu {
  position: fixed; inset: 0; z-index: 200; background: var(--cream);
  padding: var(--space-5); overflow-y: auto;
}
.mobile-menu-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: var(--space-6); }
.mobile-menu nav { display: flex; flex-direction: column; gap: var(--space-2); }
.mobile-menu nav a {
  color: var(--navy-900); text-decoration: none; font-weight: 600; font-size: 18px;
  padding: var(--space-3) 0; border-bottom: 1px solid var(--divider);
}
.mobile-menu .header-actions { flex-direction: column; align-items: flex-start; margin-top: var(--space-6); gap: var(--space-4); }

/* Transactional header — inside Start My Repair */
.transactional-header {
  position: sticky; top: 0; z-index: 100;
  background: var(--cream); border-bottom: 1px solid var(--divider);
}
.transactional-header .container {
  display: flex; align-items: center; justify-content: space-between; height: 72px; gap: var(--space-4);
}
@media (max-width: 340px) {
  .transactional-header .container { gap: 6px; }
}
.transactional-header .step-progress-wrap { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 1; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--navy-900); color: var(--cream-white); padding: var(--space-8) 0 var(--space-6); }
.site-footer a { color: var(--cream-white); text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }
.footer-grid { display: grid; gap: var(--space-6); grid-template-columns: 1fr; }
@media (min-width: 640px) { .footer-grid { grid-template-columns: 1.5fr 1fr 1fr; } }
.footer-col h4 { color: var(--cream-white); margin-bottom: var(--space-3); font-size: 15px; }
.footer-col ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: var(--space-2); }
.footer-col p { color: rgba(253,251,247,0.75); font-size: 14px; }
.footer-bottom {
  margin-top: var(--space-7); padding-top: var(--space-5); border-top: 1px solid rgba(253,251,247,0.15);
  display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--space-3);
  font-size: 13px; color: rgba(253,251,247,0.6);
}

/* Sticky mobile CTA on informational pages */
.sticky-cta-bar {
  position: fixed; bottom: 0; left: 0; right: 0; z-index: 90;
  background: var(--card-bg);
  border-top: 1px solid var(--divider);
  box-shadow: 0 -2px 12px rgba(15,38,71,0.10);
  padding: var(--space-3) var(--gutter-mobile);
  padding-bottom: calc(var(--space-3) + env(safe-area-inset-bottom, 0px));
}
@media (min-width: 1024px) { .sticky-cta-bar { display: none; } }
.sticky-cta-bar .btn {
  background: var(--navy-900) !important;
  color: #FFFFFF !important;
  width: 100%;
  box-shadow: 0 2px 6px rgba(15,38,71,0.25);
}
.sticky-cta-bar .btn:hover { background: var(--navy-800) !important; }
body.has-sticky-cta { padding-bottom: 88px; }

/* Hero */
.hero { padding: var(--space-8) 0; }
@media (min-width: 1024px) { .hero { padding: var(--space-9) 0; } }
.hero-grid { display: grid; gap: var(--space-6); align-items: center; }
@media (min-width: 1024px) { .hero-grid { grid-template-columns: 1.1fr 0.9fr; gap: var(--space-8); } }
.hero-cta-row { display: flex; flex-direction: column; gap: var(--space-3); }
@media (min-width: 640px) { .hero-cta-row { flex-direction: row; } }

.page-hero { background: var(--card-bg); border-bottom: 1px solid var(--divider); padding: var(--space-7) 0; }
