:root {
  --mnm-quote-navy: #003087;
  --mnm-quote-navy-deep: #001d52;
  --mnm-quote-orange: #ff6600;
  --mnm-quote-ink: #16213a;
  --mnm-quote-muted: #65718a;
  --mnm-quote-line: #dce6f3;
  --mnm-quote-wash: #f7f9fc;
  --mnm-quote-white: #ffffff;
}

.mnm-quote-button {
  appearance: none;
  border: 0;
  border-radius: 999px;
  padding: 13px 22px;
  font: 800 15px/1 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  cursor: pointer;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.mnm-quote-button:hover { transform: translateY(-1px); }
.mnm-quote-button--primary { background: var(--mnm-quote-orange); color: #fff; box-shadow: 0 10px 22px rgba(255,102,0,.22); }
.mnm-quote-button--outline { background: #fff; color: var(--mnm-quote-navy); border: 2px solid var(--mnm-quote-navy); }
.mnm-quote-button--text { background: transparent; color: var(--mnm-quote-navy); padding-inline: 0; }

.mnm-quote-overlay {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgba(0, 20, 61, .72);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  animation: mnmQuoteFade .18s ease both;
}
.mnm-quote-overlay[hidden] { display: none !important; }
.mnm-quote-overlay * { box-sizing: border-box; }
.mnm-quote-dialog {
  position: relative;
  width: min(980px, 100%);
  max-height: min(820px, calc(100vh - 48px));
  overflow: auto;
  display: grid;
  grid-template-columns: minmax(300px, .88fr) minmax(440px, 1.12fr);
  border-radius: 30px;
  background: #fff;
  box-shadow: 0 32px 90px rgba(0, 20, 61, .32);
  animation: mnmQuoteUp .22s ease both;
}
.mnm-quote-close {
  position: absolute;
  top: 16px;
  right: 18px;
  z-index: 3;
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 50%;
  background: rgba(255,255,255,.12);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  transition: background .18s ease, transform .18s ease;
}
.mnm-quote-close:hover { background: rgba(255,255,255,.22); transform: rotate(4deg); }

.mnm-quote-panel { padding: 48px; }
.mnm-quote-panel--intro {
  position: relative;
  overflow: hidden;
  color: #fff;
  background:
    radial-gradient(circle at 82% 18%, rgba(255,102,0,.24), transparent 27%),
    linear-gradient(155deg, var(--mnm-quote-navy) 0%, var(--mnm-quote-navy-deep) 100%);
}
.mnm-quote-panel--intro::after {
  content: '';
  position: absolute;
  width: 230px;
  height: 230px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  right: -120px;
  bottom: -90px;
  box-shadow: 0 0 0 38px rgba(255,255,255,.025), 0 0 0 76px rgba(255,255,255,.02);
}
.mnm-quote-brandmark {
  display: inline-grid;
  place-items: center;
  min-width: 54px;
  height: 36px;
  padding: 0 10px;
  border-radius: 10px;
  background: var(--mnm-quote-orange);
  color: #fff;
  font: 900 13px/1 'Poppins', sans-serif;
  letter-spacing: .08em;
  margin-bottom: 26px;
}
.mnm-quote-eyebrow {
  font: 800 12px/1.2 'Poppins', sans-serif;
  letter-spacing: .16em;
  opacity: .72;
  margin-bottom: 12px;
}
.mnm-quote-panel--intro h2 {
  margin: 0 0 14px;
  max-width: 410px;
  color: #fff;
  font: 900 clamp(34px, 4vw, 52px)/1.02 'Poppins', sans-serif;
  letter-spacing: -.045em;
}
.mnm-quote-lede {
  margin: 0;
  max-width: 360px;
  color: rgba(255,255,255,.8);
  font: 500 17px/1.65 'Poppins', sans-serif;
}
.mnm-quote-route-visual {
  display: flex;
  align-items: center;
  margin: 42px 0 34px;
  width: min(330px, 100%);
}
.mnm-quote-route-dot {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: var(--mnm-quote-orange);
  box-shadow: 0 0 0 7px rgba(255,102,0,.14);
  flex: 0 0 auto;
}
.mnm-quote-route-dot--end { background: #fff; box-shadow: 0 0 0 7px rgba(255,255,255,.1); }
.mnm-quote-route-line { height: 2px; flex: 1; margin-left: 11px; background: linear-gradient(90deg, var(--mnm-quote-orange), rgba(255,255,255,.35)); }
.mnm-quote-route-arrow { color: #fff; font-size: 21px; margin: 0 7px; transform: translateY(-1px); }
.mnm-quote-promises { display: grid; gap: 18px; position: relative; z-index: 1; }
.mnm-quote-promises div { display: grid; gap: 3px; }
.mnm-quote-promises strong { color: #fff; font: 800 14px/1.3 'Poppins', sans-serif; }
.mnm-quote-promises span { color: rgba(255,255,255,.64); font: 500 13px/1.5 'Poppins', sans-serif; }

.mnm-quote-panel--form { background: #fff; }
.mnm-quote-form { display: grid; gap: 18px; }
.mnm-quote-field { display: grid; gap: 7px; }
.mnm-quote-field label {
  color: var(--mnm-quote-ink);
  font: 800 13px/1.3 'Poppins', sans-serif;
}
.mnm-quote-field label span { color: var(--mnm-quote-orange); }
.mnm-quote-field label em { color: #8993a8; font-style: normal; font-weight: 600; font-size: 11px; margin-left: 4px; }
.mnm-quote-field input,
.mnm-quote-field textarea {
  width: 100%;
  border: 1px solid var(--mnm-quote-line);
  border-radius: 14px;
  background: var(--mnm-quote-wash);
  color: var(--mnm-quote-ink);
  padding: 14px 15px;
  outline: none;
  font: 600 15px/1.4 'Poppins', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.mnm-quote-field input { min-height: 52px; }
.mnm-quote-field textarea { resize: vertical; min-height: 96px; }
.mnm-quote-field input::placeholder,
.mnm-quote-field textarea::placeholder { color: #9ca7b9; font-weight: 500; }
.mnm-quote-field input:focus,
.mnm-quote-field textarea:focus {
  background: #fff;
  border-color: rgba(0,48,135,.55);
  box-shadow: 0 0 0 4px rgba(0,48,135,.08);
}
.mnm-quote-route-card {
  display: grid;
  grid-template-columns: 1fr 34px 1fr;
  align-items: end;
  gap: 8px;
  padding: 16px;
  border: 1px solid #dfe7f2;
  border-radius: 18px;
  background: #fbfcff;
}
.mnm-quote-route-divider {
  display: grid;
  place-items: center;
  width: 34px;
  height: 52px;
  color: var(--mnm-quote-orange);
  font: 900 22px/1 'Poppins', sans-serif;
}
.mnm-quote-submit {
  width: 100%;
  min-height: 56px;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 14px;
  border: 0;
  border-radius: 16px;
  background: var(--mnm-quote-orange);
  color: #fff;
  box-shadow: 0 13px 28px rgba(255,102,0,.23);
  cursor: pointer;
  font: 900 16px/1 'Poppins', sans-serif;
  transition: transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.mnm-quote-submit:hover { transform: translateY(-1px); box-shadow: 0 16px 34px rgba(255,102,0,.28); background: #f45f00; }
.mnm-quote-submit:disabled { opacity: .65; cursor: wait; transform: none; }
.mnm-quote-submit-arrow { font-size: 21px; }
.mnm-quote-reassurance { margin: -4px 0 0; text-align: center; color: var(--mnm-quote-muted); font: 600 12px/1.5 'Poppins', sans-serif; }
.mnm-quote-message { min-height: 20px; text-align: center; color: var(--mnm-quote-navy); font: 700 13px/1.5 'Poppins', sans-serif; }
.mnm-quote-message.is-error { color: #b42318; }
.mnm-quote-hp { position: absolute !important; left: -10000px !important; opacity: 0 !important; pointer-events: none !important; }

.mnm-quote-success {
  min-height: 430px;
  display: grid;
  place-items: center;
  text-align: center;
  padding: 48px;
}
.mnm-quote-success-icon {
  width: 76px;
  height: 76px;
  display: grid;
  place-items: center;
  margin: 0 auto 20px;
  border-radius: 50%;
  background: #eef8f2;
  color: #177245;
  font-size: 36px;
  font-weight: 900;
}
.mnm-quote-success h3 { margin: 0 0 10px; color: var(--mnm-quote-navy); font: 900 30px/1.1 'Poppins', sans-serif; }
.mnm-quote-success p { margin: 0 auto; max-width: 390px; color: var(--mnm-quote-muted); font: 500 15px/1.65 'Poppins', sans-serif; }

body.mnm-quote-open { overflow: hidden; }

@keyframes mnmQuoteFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes mnmQuoteUp { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }

@media (max-width: 820px) {
  .mnm-quote-overlay { padding: 12px; align-items: end; }
  .mnm-quote-dialog { grid-template-columns: 1fr; max-height: calc(100vh - 18px); border-radius: 24px 24px 0 0; }
  .mnm-quote-panel { padding: 28px 24px; }
  .mnm-quote-panel--intro { padding-bottom: 24px; }
  .mnm-quote-panel--intro h2 { font-size: clamp(30px, 8vw, 42px); max-width: 90%; }
  .mnm-quote-route-visual { margin: 26px 0 20px; }
  .mnm-quote-promises { display: none; }
  .mnm-quote-close { top: 14px; right: 14px; }
}

@media (max-width: 560px) {
  .mnm-quote-overlay { padding: 0; }
  .mnm-quote-dialog { max-height: 100vh; border-radius: 0; }
  .mnm-quote-panel { padding: 24px 18px; }
  .mnm-quote-brandmark { margin-bottom: 18px; }
  .mnm-quote-lede { font-size: 15px; }
  .mnm-quote-route-card { grid-template-columns: 1fr; gap: 10px; }
  .mnm-quote-route-divider { width: 100%; height: 20px; transform: rotate(90deg); }
  .mnm-quote-field input { min-height: 50px; }
}

@media (prefers-reduced-motion: reduce) {
  .mnm-quote-overlay,
  .mnm-quote-dialog,
  .mnm-quote-button,
  .mnm-quote-submit,
  .mnm-quote-close { animation: none !important; transition: none !important; }
}
