.quote-page {
  padding: clamp(110px, 13vw, 148px) 0 90px;
  color: #f3f9fb;
}
.quote-page [hidden] { display: none !important; }

.quote-hero,
.quote-layout { width: var(--content-width); margin-inline: auto; }

.quote-hero {
  padding: clamp(28px, 5vw, 64px);
  border: 1px solid rgba(79, 217, 174, .32);
  border-radius: 30px;
  background: radial-gradient(circle at 83% 14%, rgba(105, 218, 164, .19), transparent 29%),
    radial-gradient(circle at 8% 90%, rgba(60, 188, 246, .13), transparent 35%),
    linear-gradient(130deg, #092a39, #071a2a 72%);
  box-shadow: 0 26px 70px rgba(0, 0, 0, .24);
}

.quote-back { display: inline-block; margin-bottom: 24px; color: #9debd6; font-weight: 750; }
.quote-hero h1 { max-width: 850px; margin: 6px 0 18px; font-size: clamp(39px, 6vw, 74px); line-height: 1; letter-spacing: -.045em; }
.quote-hero > p:not(.eyebrow) { max-width: 780px; color: #cbdde7; font-size: clamp(16px, 1.8vw, 20px); line-height: 1.55; }
.quote-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 28px; }
.quote-badges span { padding: 8px 13px; border: 1px solid rgba(150, 230, 209, .25); border-radius: 999px; color: #d7f8ee; font-size: 12px; font-weight: 750; }

.quote-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(290px, .75fr); gap: 20px; align-items: start; margin-top: 22px; }
.quote-form { display: grid; gap: 18px; min-width: 0; }
.quote-panel { min-width: 0; padding: clamp(18px, 2.5vw, 30px); border: 1px solid rgba(149, 214, 240, .21); border-radius: 24px; background: linear-gradient(145deg, rgba(22, 49, 69, .96), rgba(10, 33, 52, .97)); box-shadow: 0 18px 42px rgba(0, 0, 0, .16); }
.quote-panel-head { display: flex; align-items: center; gap: 15px; margin-bottom: 24px; }
.quote-step { display: grid; place-items: center; flex: none; width: 42px; height: 42px; border-radius: 13px; background: #49ba95; color: #071e2c; font-weight: 900; }
.quote-panel .eyebrow { margin: 0 0 4px; color: #8de1c6; }
.quote-panel h2 { margin: 0; color: #fff; font-size: clamp(22px, 2.4vw, 29px); }
.quote-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.quote-grid label, .quote-item label { display: grid; gap: 7px; min-width: 0; color: #dbecf3; font-size: 13px; font-weight: 720; }
.quote-wide { grid-column: 1 / -1; }
.quote-grid input, .quote-grid select, .quote-grid textarea, .quote-item input, .quote-item select {
  width: 100%; min-width: 0; min-height: 43px; padding: 10px 12px;
  border: 1px solid #548092; border-radius: 10px; outline: 0;
  background: #f8fcfd; color: #102d40; font: inherit; font-size: 15px;
}
.quote-grid textarea { min-height: 90px; resize: vertical; }
.quote-grid :is(input, select, textarea):focus, .quote-item :is(input, select):focus { outline: 3px solid #66dbbc; outline-offset: 2px; }
.quote-help { margin: 0 0 18px; color: #c3d7e1; font-size: 13px; line-height: 1.5; }
.quote-help small, .quote-grid label small { color: #a9c5d1; font-weight: 500; line-height: 1.4; }
.quote-site-notice { padding: 14px 16px; border: 1px solid rgba(255, 198, 92, .5); border-radius: 13px; background: rgba(124, 79, 8, .2); color: #ffe8b5; font-size: 13px; line-height: 1.5; }
.quote-site-notice strong { color: #fff3d1; }
.quote-corridor { padding: 18px; border: 1px solid rgba(89, 191, 235, .3); border-radius: 16px; background: rgba(38, 119, 151, .11); }
.quote-corridor-head { display: flex; justify-content: space-between; gap: 12px; margin-bottom: 16px; color: #fff; }
.quote-corridor-head span { color: #a9cbd9; font-size: 12px; text-align: right; }
.quote-calculated { display: flex; align-items: center; min-height: 43px; padding: 10px 12px; border: 1px solid #548092; border-radius: 10px; background: #e8f5f8; color: #103b52; font-size: 15px; font-weight: 800; }
.quote-tech { min-width: 0; margin: 0; padding: 14px; border: 1px solid rgba(150, 230, 209, .25); border-radius: 13px; }
.quote-tech legend { padding: 0 7px; color: #d8f5ec; font-size: 12px; font-weight: 800; }
.quote-tech-options { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.quote-grid .quote-tech-option { display: flex; align-items: flex-start; gap: 9px; padding: 11px; border: 1px solid rgba(149, 214, 240, .17); border-radius: 11px; background: rgba(3, 19, 31, .22); cursor: pointer; }
.quote-tech-option input { flex: none; width: 18px; min-width: 18px; height: 18px; min-height: 18px; margin: 2px 0 0; padding: 0; accent-color: #49ba95; }
.quote-tech-option span { display: grid; gap: 4px; }
.quote-tech-option small { color: #a9c5d1; font-weight: 500; line-height: 1.35; }
.quote-route-guide { display: flex; justify-content: space-between; align-items: center; gap: 18px; margin-bottom: 20px; padding: 17px; border: 1px solid rgba(118, 224, 190, .28); border-radius: 16px; background: rgba(45, 148, 120, .12); }
.quote-route-guide strong { color: #fff; }
.quote-route-guide p { max-width: 720px; margin: 5px 0 0; color: #c7dce5; font-size: 13px; line-height: 1.5; }
.quote-route-guide .button { flex: none; justify-content: center; text-align: center; }
.quote-route-grid { margin-bottom: 20px; }
.quote-route-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; margin-bottom: 17px; border: 1px solid rgba(149, 214, 240, .18); border-radius: 15px; background: rgba(3, 19, 31, .28); }
.quote-route-summary > div { display: grid; gap: 5px; padding: 14px; border-right: 1px solid rgba(149, 214, 240, .12); border-bottom: 1px solid rgba(149, 214, 240, .12); }
.quote-route-summary > div:nth-child(3n) { border-right: 0; }
.quote-route-summary span { color: #a9c5d1; font-size: 11px; font-weight: 720; text-transform: uppercase; }
.quote-route-summary strong { color: #fff; font-size: 17px; overflow-wrap: anywhere; }
.quote-route-summary .quote-route-total { background: rgba(73, 186, 149, .13); }
.quote-route-summary .quote-route-total strong { color: #9ff1d4; }
.quote-presets { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 23px; }
.quote-suggest { display: inline-block; margin: 0 0 16px; background: #157d64; color: #fff; }
.quote-presets button, .quote-add { padding: 9px 12px; border: 1px solid rgba(120, 222, 190, .45); border-radius: 10px; color: #d6ffef; background: rgba(45, 148, 120, .15); font: inherit; font-size: 12px; font-weight: 750; cursor: pointer; }
.quote-presets button:hover, .quote-add:hover { background: rgba(45, 148, 120, .3); }
.quote-items-head, .quote-item { display: grid; grid-template-columns: minmax(145px, 2.2fr) minmax(82px, .7fr) minmax(96px, .8fr) minmax(120px, 1fr) minmax(115px, 1fr) 34px; gap: 9px; align-items: end; }
.quote-items-head { padding: 0 5px 9px; color: #9ebfcf; font-size: 11px; font-weight: 800; text-transform: uppercase; }
.quote-items { display: grid; gap: 10px; }
.quote-item { padding: 10px; border: 1px solid rgba(155, 210, 230, .13); border-radius: 12px; background: rgba(0, 0, 0, .13); }
.quote-item.quote-item-automatic { border-color: rgba(73, 186, 149, .28); background: rgba(35, 119, 96, .11); }
.quote-item.quote-item-automatic :is(input, select) { background: #e7f2ef; color: #35515c; cursor: not-allowed; }
.quote-item label { font-size: 11px; }
.quote-item-total { align-self: center; overflow-wrap: anywhere; color: #a5f0d0; font-size: 14px; font-weight: 850; }
.quote-item-remove { align-self: center; width: 32px; height: 38px; border: 1px solid #a56471; border-radius: 9px; background: transparent; color: #ffd6d6; font-size: 23px; line-height: 1; cursor: pointer; }
.quote-item-remove:disabled { opacity: .32; cursor: not-allowed; }
.quote-add { margin-top: 15px; }
.quote-adjustments { margin-bottom: 18px; }
.quote-check { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; color: #effbf6; font-weight: 740; }
.quote-check input { width: 19px; height: 19px; accent-color: #49ba95; }

.quote-summary { position: sticky; top: 100px; }
.quote-summary h2 { margin-bottom: 22px; }
.quote-result-brands { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 0 0 20px; padding-bottom: 18px; border-bottom: 1px solid rgba(190, 227, 239, .17); }
.quote-result-brands a { display: grid; grid-template-rows: 58px auto; align-items: center; gap: 7px; min-width: 0; padding: 9px; border: 1px solid rgba(155, 210, 230, .16); border-radius: 12px; background: #fff; color: #0b4f87; text-align: center; text-decoration: none; }
.quote-result-brands a:hover { border-color: rgba(73, 186, 149, .7); box-shadow: 0 7px 20px rgba(0, 0, 0, .16); }
.quote-result-brands img { display: block; width: 100%; height: 58px; object-fit: contain; }
.quote-result-brands span { overflow-wrap: anywhere; font-size: 10px; font-weight: 800; }
.quote-amount { display: grid; gap: 8px; padding: 22px; border: 1px solid rgba(121, 223, 181, .36); border-radius: 18px; background: linear-gradient(135deg, rgba(44, 128, 106, .24), rgba(10, 43, 54, .34)); }
.quote-amount > span { color: #c5e9df; font-size: 13px; }
.quote-amount strong { color: #fff; font-size: clamp(29px, 3vw, 42px); line-height: 1; overflow-wrap: anywhere; }
.quote-amount small { color: #aeeed7; }
.quote-breakdown { display: grid; gap: 0; margin: 19px 0; }
.quote-breakdown > div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid rgba(190, 227, 239, .15); font-size: 13px; }
.quote-breakdown dt { color: #d1e1e9; }
.quote-breakdown dd { margin: 0; text-align: right; font-weight: 800; }
.quote-breakdown .quote-net { color: #a7edce; font-size: 15px; }
.quote-breakdown .quote-deposit { color: #8ff0cf; font-size: 15px; }
.quote-breakdown .quote-balance { color: #9edfff; font-size: 15px; }
.quote-status { min-height: 38px; padding: 10px 12px; border-radius: 9px; color: #e8f4f7; background: rgba(75, 153, 183, .16); font-size: 12px; }
.quote-status.is-error { color: #ffe1df; background: rgba(191, 91, 77, .23); }
.quote-summary-actions { display: grid; gap: 10px; }
.quote-summary-actions .button { justify-content: center; width: 100%; text-align: center; }
.quote-summary-actions button:disabled { opacity: .45; cursor: not-allowed; }
.quote-fineprint { margin: 19px 0 0; color: #b5cad5; font-size: 12px; line-height: 1.55; }
#qPrintSheet { display: none; }

@media (max-width: 1120px) {
  .quote-layout { grid-template-columns: 1fr; }
  .quote-summary { position: static; }
}
@media (max-width: 800px) {
  .quote-route-guide { align-items: stretch; flex-direction: column; }
  .quote-route-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quote-route-summary > div:nth-child(3n) { border-right: 1px solid rgba(149, 214, 240, .12); }
  .quote-route-summary > div:nth-child(2n) { border-right: 0; }
  .quote-items-head { display: none; }
  .quote-item { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quote-item label:first-child { grid-column: 1 / -1; }
  .quote-item-total { padding-left: 2px; }
  .quote-tech-options { grid-template-columns: 1fr; }
}
@media (max-width: 540px) {
  .quote-hero { border-radius: 22px; }
  .quote-grid { grid-template-columns: 1fr; }
  .quote-wide { grid-column: auto; }
  .quote-item { gap: 9px; }
  .quote-panel { padding: 17px; }
  .quote-route-summary { grid-template-columns: 1fr; }
  .quote-route-summary > div { border-right: 0 !important; }
  .quote-result-brands { grid-template-columns: 1fr; }
  .quote-corridor-head { flex-direction: column; }
  .quote-corridor-head span { text-align: left; }
}
@media print {
  @page { size: A4; margin: 17mm 14mm; }
  body { background: #fff !important; color: #142639 !important; }
  body > :not(#qPrintSheet) { display: none !important; }
  #qPrintSheet { display: block !important; font-family: Arial, sans-serif; font-size: 12px; color: #142639; }
  #qPrintSheet h1 { font-size: 25px; margin: 0 0 8px; }
  #qPrintSheet h2 { font-size: 16px; margin: 24px 0 8px; }
  #qPrintSheet .quote-print-brands { display: grid; grid-template-columns: 1fr 1fr; align-items: end; gap: 22px; margin-bottom: 13px; }
  #qPrintSheet .quote-print-brand { display: grid; grid-template-rows: 55px auto; align-items: center; justify-items: center; gap: 4px; min-width: 0; }
  #qPrintSheet .quote-print-brand img { display: block; width: 100%; height: 55px; object-fit: contain; }
  #qPrintSheet .quote-print-brand a { color: #0b4f87; font-size: 10px; font-weight: 700; text-decoration: none; }
  #qPrintSheet .quote-print-head { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 3px solid #209d77; padding-bottom: 12px; }
  #qPrintSheet .quote-print-head strong { color: #0b654c; }
  #qPrintSheet .quote-print-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 17px; }
  #qPrintSheet table { width: 100%; border-collapse: collapse; margin-top: 18px; }
  #qPrintSheet th, #qPrintSheet td { padding: 8px; border-bottom: 1px solid #c9d6db; text-align: left; vertical-align: top; }
  #qPrintSheet th { background: #e9f4ef; }
  #qPrintSheet td:nth-child(n+2), #qPrintSheet th:nth-child(n+2) { text-align: right; }
  #qPrintSheet .quote-print-totals { margin: 20px 0 0 auto; width: min(300px, 100%); }
  #qPrintSheet .quote-print-totals div { display: flex; justify-content: space-between; gap: 15px; padding: 5px 0; }
  #qPrintSheet .quote-print-grand { border-top: 2px solid #209d77; font-size: 17px; font-weight: 800; }
  #qPrintSheet .quote-print-deposit { color: #146b55; font-weight: 800; }
  #qPrintSheet .quote-print-balance { border-top: 1px solid #9aacb5; font-weight: 800; }
  #qPrintSheet .quote-print-note { margin-top: 30px; color: #445663; line-height: 1.45; }
}
