@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Franklin:wght@600;700;800&display=swap');

:root {
  --elo-navy: #17334d;
  --elo-blue: #397da6;
  --elo-gold: #c79a4b;
  --elo-paper: #f6f8fb;
}

html { background: var(--elo-paper); }
body {
  font-family: 'DM Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
  color: var(--elo-navy);
  letter-spacing: -0.008em;
  line-height: 1.55;
  padding-top: 76px;
}
h1, h2, h3, h4, h5, h6 {
  font-family: 'Libre Franklin', 'DM Sans', ui-sans-serif, system-ui, sans-serif !important;
  letter-spacing: -0.022em !important;
  line-height: 1.16 !important;
}
.font-bold { font-weight: 600 !important; }
.font-semibold { font-weight: 550 !important; }
input, select, textarea, button { font-family: inherit !important; letter-spacing: 0 !important; }
input:not([type='checkbox']):not([type='radio']), select, textarea {
  border-color: #b6c2d0 !important;
  border-radius: 10px !important;
}
input:focus, select:focus, textarea:focus {
  border-color: var(--elo-blue) !important;
  box-shadow: 0 0 0 3px rgba(20, 102, 168, .14) !important;
  outline: none !important;
}
button { border-radius: 10px !important; }

/* Normalize every legacy quote workflow to the public website palette. */
.bg-gradient-to-br { background-image: linear-gradient(135deg, #f7fafc, #eaf3f8) !important; }
.bg-gradient-to-r { background-image: linear-gradient(135deg, #edf5f9, #dcecf4) !important; color: var(--elo-navy) !important; }
.bg-gradient-to-r h1, .bg-gradient-to-r h2, .bg-gradient-to-r h3,
.bg-gradient-to-r p, .bg-gradient-to-r span { color: var(--elo-navy) !important; }
.bg-emerald-600, .bg-emerald-700, .bg-green-500, .bg-green-600, .bg-green-700,
.bg-purple-600, .bg-purple-700, .bg-indigo-600, .bg-indigo-700,
.bg-sky-500, .bg-sky-600, .bg-sky-700, .bg-blue-600, .bg-blue-700, .bg-blue-800 {
  background-color: var(--elo-blue) !important;
}
.hover\:bg-emerald-700:hover, .hover\:bg-green-700:hover, .hover\:bg-purple-700:hover,
.hover\:bg-indigo-700:hover, .hover\:bg-sky-700:hover, .hover\:bg-blue-700:hover,
.hover\:bg-blue-800:hover { background-color: #2b668a !important; }
.text-emerald-600, .text-green-500, .text-green-600, .text-green-700,
.text-purple-600, .text-indigo-600, .text-sky-500, .text-sky-600, .text-sky-700,
.text-blue-600, .text-blue-700, .text-blue-800 { color: var(--elo-blue) !important; }
.border-emerald-500, .border-green-500, .border-purple-500, .border-indigo-500,
.border-sky-500, .border-blue-500 { border-color: var(--elo-blue) !important; }
.bg-emerald-50, .bg-emerald-100, .bg-green-50, .bg-green-100,
.bg-purple-50, .bg-purple-100, .bg-indigo-50, .bg-indigo-100,
.bg-sky-50, .bg-sky-100, .bg-blue-50, .bg-blue-100 { background-color: #edf5f9 !important; }

.elo-quote-shell {
  position: fixed;
  inset: 0 0 auto;
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  min-height: 76px;
  padding: 10px clamp(16px, 4vw, 54px);
  background: rgba(255,255,255,.97);
  border-bottom: 1px solid #d8e0e9;
  box-shadow: 0 8px 26px rgba(16,35,63,.08);
  backdrop-filter: blur(12px);
}
.elo-quote-shell__brand { display: flex; align-items: center; gap: 13px; min-width: 0; text-decoration: none; }
.elo-quote-shell__brand img { width: 108px; height: 52px; object-fit: contain; }
.elo-quote-shell__brand span { color: var(--elo-navy); font-family: 'Libre Franklin', sans-serif; font-size: 15px; font-weight: 600; line-height: 1.15; }
.elo-quote-shell__brand small { display: block; margin-top: 3px; color: #64748b; font-family: 'DM Sans', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.elo-quote-exit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 9px 15px;
  border: 1px solid #b9c6d5;
  border-radius: 9px;
  background: white;
  color: var(--elo-navy);
  font-size: 14px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
}
.elo-quote-exit:hover { border-color: var(--elo-blue); color: var(--elo-blue); background: #f4f9fd; }
.elo-quote-exit:focus-visible { outline: 3px solid #f0b94e; outline-offset: 2px; }

@media (max-width: 560px) {
  body { padding-top: 68px; }
  .elo-quote-shell { min-height: 68px; padding: 8px 12px; }
  .elo-quote-shell__brand img { width: 44px; height: 44px; }
  .elo-quote-shell__brand span { font-size: 13px; }
  .elo-quote-shell__brand small { display: none; }
  .elo-quote-exit { padding: 8px 11px; font-size: 13px; }
}
