/* Performance & Core Web Vitals */
body { font-family: 'Roboto', sans-serif; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeSpeed; }
h1, h2, h3, h4, h5, h6 { font-family: 'Roboto Condensed', sans-serif; }
html { scroll-behavior: smooth; }
.faq-answer { transition: all 0.3s ease; }

/* Contain paint for stable CLS */
img, video, iframe { max-width: 100%; height: auto; }
img { content-visibility: auto; }

/* Reduce layout shift - set aspect ratios */
.hero-image { aspect-ratio: 4/3; }
.card-image { aspect-ratio: 16/9; }

/* Optimize font rendering */
h1, h2, h3, h4 { text-wrap: balance; }
p { text-wrap: pretty; }

/* Focus styles for accessibility */
:focus-visible { outline: 2px solid #D02300; outline-offset: 2px; border-radius: 4px; }
button:focus-visible, a:focus-visible { outline: 2px solid #D02300; outline-offset: 2px; }

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* Print styles */
@media print {
  nav, footer, .no-print { display: none !important; }
  body { font-size: 12pt; color: #000; background: #fff; }
}

/* Mobile tap targets */
@media (max-width: 768px) {
  button, a { min-height: 44px; }
}

/* Brand colors */
:root {
  --brand-navy: #001634;
  --brand-red: #D02300;
  --brand-blue: #084CAC;
  --brand-white: #FFFFFF;
}

/* Feature card gradient matching live site */
.bg-brand-feature {
  background: linear-gradient(31deg, var(--brand-navy) 0%, rgba(8, 76, 172, 0.7) 100%);
}

/* Button red pulse animation */
.btn-red-pulse {
  animation: pulse-shadow 2s infinite;
}
@keyframes pulse-shadow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(208, 35, 0, 0.4); }
  50% { box-shadow: 0 0 0 15px rgba(208, 35, 0, 0); }
}
