/* Reusable, scoped quote widget. No Bootstrap dependency required for visual styling. */
.quote {
  --qw-accent: #009da4; --qw-accent-dark: #087d83; --qw-ink: #172b35;
  --qw-muted: #667780; --qw-border: #dce5e8; --qw-surface: #fff;
  width: 100%; max-width: 100%; min-width: 0; color: var(--qw-ink);
  background: var(--qw-surface); border: 1px solid rgba(20, 50, 60, .09);
  border-radius: 18px; box-shadow: 0 12px 35px rgba(18, 44, 52, .10);
  padding: clamp(12px, 2vw, 22px); box-sizing: border-box; overflow: visible;
}
.quote *, .quote *::before, .quote *::after { box-sizing: border-box; }
.quote .nav.nav-pills { display:flex; gap:6px; margin:0 0 16px; padding:5px; list-style:none; border-radius:12px; background:#f1f6f7; }
.quote .nav.nav-pills > li { flex:1 1 0; min-width:0; margin:0; }
.quote .nav.nav-pills > li > a { display:flex; justify-content:center; align-items:center; gap:8px; min-height:40px; padding:9px 12px; border-radius:9px; color:#50636b; font-weight:650; text-decoration:none; transition:background .18s ease,color .18s ease; }
.quote .nav.nav-pills > li.active > a, .quote .nav.nav-pills > li > a[aria-selected="true"] { color:#fff; background:var(--qw-accent); box-shadow:0 3px 9px rgba(0,157,164,.2); }
.quote .transfer-type-radio { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 14px; text-align:left; }
.quote .transfer-type-radio input[type=radio] { position:absolute; opacity:0; pointer-events:none; }
.quote .transfer-type-radio label { display:inline-flex; align-items:center; justify-content:center; min-height:35px; margin:0; padding:7px 12px; border:1px solid var(--qw-border); border-radius:999px; background:#fff; color:#52656d; font-size:13px; font-weight:600; cursor:pointer; }
.quote .transfer-type-radio input[type=radio]:checked + label { border-color:var(--qw-accent); color:var(--qw-accent-dark); background:#eafafb; }
.quote .transfer-type-radio input[type=radio]:focus-visible + label { outline:3px solid rgba(0,157,164,.25); outline-offset:2px; }
.quote form { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:10px; align-items:end; width:100%; margin:0; }
.quote form > [class*="col-"] { float:none; width:auto; min-width:0; padding:0; margin:0; }
.quote form > #from, .quote form > #to { grid-column:span 3; }
.quote form > .col-md-3 { grid-column:span 3; }
.quote form > .col-md-2 { grid-column:span 2; }
.quote form > .col-md-1 { grid-column:span 1; }
.quote form .col-md-4, .quote form .col-sm-4 { float:none; width:100%; padding:0; }
.quote .form-group { margin:0; min-width:0; }
.quote .input-group { display:flex; width:100%; min-width:0; }
.quote input.form-control, .quote select.form-control, .quote .form-control { display:block; width:100%; min-width:0; height:44px; padding:10px 12px; border:1px solid var(--qw-border); border-radius:9px; background:#fff; color:var(--qw-ink); font:inherit; font-size:14px; box-shadow:none; }
.quote .input-group .form-control { flex:1 1 auto; }
.quote .input-group-addon { display:flex; align-items:center; justify-content:center; padding:0 11px; border:1px solid var(--qw-border); border-left:0; border-radius:0 9px 9px 0; background:#f7fafb; color:var(--qw-muted); }
.quote .input-group .form-control:has(+ .input-group-addon) { border-radius:9px 0 0 9px; }
.quote .form-control:focus { border-color:var(--qw-accent); outline:0; box-shadow:0 0 0 3px rgba(0,157,164,.13); }
.quote .btn.btn-custom2, .quote button[type=submit] { display:inline-flex; width:100%; min-height:44px; align-items:center; justify-content:center; padding:10px 15px; border:0; border-radius:9px; background:var(--qw-accent); color:#fff; font:inherit; font-size:14px; font-weight:750; cursor:pointer; transition:background .18s ease,transform .18s ease; }
.quote .btn.btn-custom2:hover, .quote button[type=submit]:hover { background:var(--qw-accent-dark); }
.quote button:focus-visible { outline:3px solid rgba(0,157,164,.3); outline-offset:2px; }
.quote .nav-subhead { margin-top:14px; color:var(--qw-muted); font-size:12px; line-height:1.5; }
.quote .qw-provider-row { display:flex; align-items:center; justify-content:flex-end; gap:8px; margin:0 0 12px; color:var(--qw-muted); font-size:12px; }
.quote .qw-provider-row select { width:auto; max-width:100%; height:32px; padding:4px 28px 4px 9px; border:1px solid var(--qw-border); border-radius:8px; background:#fff; color:var(--qw-ink); font:inherit; }
.quote .qw-suggestions { position:absolute; z-index:10050; top:calc(100% + 4px); left:0; right:0; max-height:260px; overflow:auto; margin:0; padding:5px; list-style:none; border:1px solid var(--qw-border); border-radius:10px; background:#fff; box-shadow:0 12px 28px rgba(20,40,50,.16); }
.quote .qw-suggestions[hidden] { display:none; }
.quote .qw-suggestions button { display:block; width:100%; padding:10px; border:0; border-radius:7px; background:#fff; color:var(--qw-ink); text-align:left; font:inherit; font-size:13px; cursor:pointer; }
.quote .qw-suggestions button:hover, .quote .qw-suggestions button:focus { background:#edfafa; outline:0; }
.quote .geo-complete, .quote .geo-complete-drop-off, .quote .input-group:has(input[id^="geocomplete"]) { position:relative; }
.quote .pac-container { z-index:10050 !important; border-radius:10px; box-shadow:0 12px 28px rgba(20,40,50,.16); }
@media (max-width: 900px) {
 .quote form > #from, .quote form > #to, .quote form > .col-md-3 { grid-column:span 6; }
 .quote form > .col-md-2 { grid-column:span 4; }
 .quote form > .col-md-1 { grid-column:span 3; }
}
@media (max-width: 560px) {
 .quote { padding:12px; border-radius:14px; }
 .quote .nav.nav-pills { margin-bottom:12px; }
 .quote .nav.nav-pills > li > a { min-height:38px; padding:8px 6px; font-size:13px; }
 .quote form { grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
 .quote form > #from, .quote form > #to, .quote form > .col-md-3, .quote form > .col-md-2, .quote form > .col-md-1 { grid-column:span 2; }
 .quote form > .col-md-3:has(.col-md-4) { grid-column:span 2; }
 .quote form > .col-md-3:has(.col-md-4) > .col-md-4 { display:block; width:33.333%; float:left; padding:0 3px; }
 .quote form > .col-md-3:has(.col-md-4) > .col-md-4:first-child { padding-left:0; }
 .quote form > .col-md-3:has(.col-md-4) > .col-md-4:last-child { padding-right:0; }
 .quote input.form-control, .quote select.form-control, .quote .form-control { height:43px; font-size:14px; }
 .quote .qw-provider-row { justify-content:space-between; }
}
