/* Quote page only — scoped to .quote-page to avoid affecting other routes. */
.quote-page {
  --quote-green: #073f30;
  --quote-dark-green: #06372a;
  --quote-title: #0b3d2e;
  --quote-gold: #d2a126;
  --quote-gold-hover: #be8e19;
  --quote-background: #fcfbf8;
  --quote-soft-background: #f8f4ec;
  --quote-card: #fff;
  --quote-border: #e5ded2;
  --quote-text: #153d30;
  --quote-body: #5e6963;
  --quote-muted: #858d88;
  --quote-error: #b42318;
  background: var(--quote-background);
  color: var(--quote-text);
  overflow-x: hidden;
}

/* Quote-page footer palette only. Layout and typography remain inherited. */
.quote-page #site-footer,
.quote-page #footer { background: #000 !important; }
.quote-page #site-footer .nav-logo-text,
.quote-page #site-footer .nav-logo-text span,
.quote-page #site-footer .footer-desc,
.quote-page #site-footer .footer-contact-item,
.quote-page #site-footer .footer-heading,
.quote-page #site-footer .footer-link { color: #f7f7f7; }
.quote-page #site-footer .footer-copy,
.quote-page #site-footer .footer-bottom-link { color: #aeb7c4; }

.quote-page .quote-shell { width: min(100% - 48px, 1160px); margin-inline: auto; }
.quote-main { background: var(--quote-background); }

/* Reusable local icon masks. */
.quote-ui-icon,
.quote-capability-icon {
  display: inline-block;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: var(--quote-icon) center / contain no-repeat;
  mask: var(--quote-icon) center / contain no-repeat;
}
.quote-ui-icon { width: 16px; height: 16px; }
.quote-ui-icon--check { --quote-icon: url('/assets/svg/icon-check-circle.svg'); }
.quote-ui-icon--clock { --quote-icon: url('/assets/svg/icon-clock.svg'); }
.quote-ui-icon--message { --quote-icon: url('/assets/svg/icon-message-circle.svg'); }
.quote-ui-icon--lock { --quote-icon: url('/assets/svg/icon-lock.svg'); }
.quote-ui-icon--upload { --quote-icon: url('/assets/svg/icon-upload.svg'); }
.quote-ui-icon--send { --quote-icon: url('/assets/svg/icon-send.svg'); }
.quote-ui-icon--chevron { --quote-icon: url('/assets/svg/icon-chevron-down.svg'); }
.quote-ui-icon--trash { --quote-icon: url('/assets/svg/icon-trash.svg'); }
.quote-ui-icon--search { --quote-icon: url('/assets/svg/icon-search.svg'); }

/* Heading */
.quote-hero { padding: 42px 0 30px; text-align: center; }
.quote-page .quote-hero h1 { margin: 0; color: var(--quote-title); font-size: clamp(40px, 4vw, 46px) !important; font-weight: 700; letter-spacing: -.035em; line-height: 1.15; }
.quote-page .quote-hero p { max-width: 680px; margin: 10px auto 0; color: var(--quote-body); font-size: 16px !important; line-height: 1.6; }

/* Core two-column layout */
.quote-core { display: grid; grid-template-columns: minmax(300px,337px) minmax(700px,783px); align-items: stretch; justify-content: space-between; gap: 40px; padding-bottom: 34px; }
.quote-intro { min-width: 0; display: flex; flex-direction: column; padding-top: 18px; }
.quote-page .quote-intro h2 { margin: 0; color: var(--quote-title); font-size: 24px !important; font-weight: 700; letter-spacing: -.025em; line-height: 1.25; }
.quote-page .quote-intro__copy > p { max-width: 370px; margin: 12px 0 18px; color: var(--quote-body); font-size: 15px !important; line-height: 1.65; }
.quote-check-list { display: grid; gap: 13px; margin: 0; }
.quote-check-list li { display: flex; align-items: center; gap: 10px; color: #334d43; font-size: 14px; line-height: 1.35; }
.quote-check-list .quote-ui-icon { width: 16px; height: 16px; color: var(--quote-green); }
.quote-help-card { position: relative; margin-top: auto; border: 1px solid var(--quote-border); border-radius: 14px; background: var(--quote-soft-background); padding: 22px; box-shadow: 0 8px 24px rgba(21,54,42,.045); }
.quote-help-card > .quote-ui-icon { position: absolute; top: 20px; right: 20px; width: 19px; height: 19px; color: var(--quote-green); }
.quote-page .quote-help-card h3 { max-width: calc(100% - 34px); margin: 0; color: var(--quote-title); font-size: 17px !important; font-weight: 700; line-height: 1.35; }
.quote-page .quote-help-card p { margin: 13px 0 18px; color: var(--quote-body); font-size: 14px !important; line-height: 1.65; }
.quote-help-card__name { color: var(--quote-title); font-weight: 700; }
.quote-help-card__button { min-height: 44px; border: 1px solid rgba(7,63,48,.34); border-radius: 6px; background: #fff; color: var(--quote-green); display: inline-flex; align-items: center; justify-content: center; padding: 10px 15px; font-size: 13px; font-weight: 700; line-height: 1.3; text-align: center; transition: border-color .18s ease, background .18s ease, color .18s ease; }
.quote-help-card__button:hover { border-color: var(--quote-green); background: #edf4f0; }
.quote-help-card a:focus-visible { outline: 3px solid rgba(7,63,48,.22); outline-offset: 3px; }

/* Form card */
.quote-form-card { min-width: 0; max-width: 783px; width: 100%; justify-self: end; background: var(--quote-card); border: 1px solid #e6e0d6; border-radius: 14px; box-shadow: 0 10px 30px rgba(21,54,42,.06); padding: 27px 29px 20px; }
.quote-honeypot { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; opacity: 0 !important; pointer-events: none !important; }
.quote-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px 15px; }
.quote-field { min-width: 0; position: relative; }
.quote-field--full { grid-column: 1 / -1; }
.quote-field label { display: block; margin: 0 0 6px; color: var(--quote-text); font-size: 13px; font-weight: 600; line-height: 1.3; }
.quote-label-optional { color: var(--quote-body); font-weight: 500; }
.quote-field input:not([type="file"]),
.quote-field select,
.quote-field textarea {
  width: 100%;
  min-width: 0;
  border: 1px solid #ddd8cf;
  border-radius: 6px;
  background: #fff;
  color: #263c34;
  font: 400 14px/1.4 var(--font-body);
  transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.quote-field input:not([type="file"]), .quote-field select { height: 47px; padding: 0 13px; }
.quote-field select { cursor: pointer; }
.quote-field textarea { min-height: 108px; padding: 11px 13px 24px; line-height: 1.5; resize: vertical; }
.quote-field input::placeholder, .quote-field textarea::placeholder { color: #9a9f9b; opacity: 1; }
.quote-field input:not([type="file"]):focus,
.quote-field select:focus,
.quote-field textarea:focus {
  border-color: #0b4a38;
  box-shadow: 0 0 0 3px rgba(11,74,56,.1);
  outline: 0;
}
.quote-field--phone > label,
.quote-field--quantity > label { margin-bottom: 10px; font-size: 18px; font-weight: 500; line-height: 1.35; }
.quote-field--phone > label { margin-left: -3px; }
.quote-phone-control { display: grid; grid-template-columns: 50px minmax(0,1fr); }
.quote-phone-country { position: relative; min-width: 0; }
.quote-phone-country__trigger { width: 100%; height: 48px; border: 1px solid #d2d8df; border-right: 0; border-radius: 8px 0 0 8px; background: #fff; display: flex; align-items: center; justify-content: center; gap: 4px; padding: 0 5px; color: #263c34; font: 400 16px/1.4 var(--font-body); cursor: pointer; }
.quote-phone-country__trigger:hover { background: #fdfcf9; }
.quote-phone-country__trigger:focus-visible { position: relative; z-index: 4; border-color: #0b4a38; box-shadow: 0 0 0 3px rgba(11,74,56,.1); outline: 0; }
.quote-phone-country__trigger .iti__flag,
.quote-phone-option .iti__flag { --iti-flag-width: 22px; flex: 0 0 auto; background-image: url('/assets/vendor/intl-tel-input/img/flags@2x.webp?v=20260717-1'); image-rendering: auto; }
.quote-phone-country__trigger .quote-ui-icon { width: 8px; height: 8px; transition: transform .18s ease; }
.quote-phone-country__trigger[aria-expanded="true"] .quote-ui-icon { transform: rotate(180deg); }
.quote-phone-menu { position: absolute; z-index: 1000; top: calc(100% + 12px); left: -4px; width: min(405px, calc(100vw - 32px)); overflow: hidden; border: 1px solid #e4e4e4; border-radius: 1px; background: #fff; box-shadow: 0 2px 12px rgba(0,0,0,.24); }
.quote-phone-menu[hidden] { display: none; }
.quote-phone-search { position: relative; border-bottom: 1px solid #e6e6e6; padding: 12px 58px 12px 48px; background: #fff; }
.quote-phone-search__icon { position: absolute; left: 16px; top: 50%; width: 26px; height: 26px; object-fit: contain; transform: translateY(-50%); }
.quote-phone-search input { height: 44px !important; border: 2px solid #2463eb !important; border-radius: 5px !important; padding: 0 11px !important; font-size: 20px !important; line-height: 1.2 !important; box-shadow: none !important; outline: 0 !important; }
.quote-phone-search input::placeholder { color: #3f4850; opacity: 1; }
.quote-phone-list { max-height: 200px; overflow-y: scroll; overscroll-behavior: contain; padding: 0; }
.quote-phone-group + .quote-phone-group { margin-top: 0; padding-top: 0; border-top: 0; }
.quote-phone-group__label { display: none; }
.quote-phone-option { min-height: 50px; display: flex; align-items: center; gap: 8px; padding: 10px 12px; color: #111; font-size: 16px; font-weight: 400; line-height: 1.2; cursor: pointer; }
.quote-phone-option:hover, .quote-phone-option.is-active { background: #f1f1f1; }
.quote-phone-option[aria-selected="true"] { background: #f1f1f1; color: #111; font-weight: 400; }
.quote-phone-option__flag { display: flex; align-items: center; justify-content: center; }
.quote-phone-option__name { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.quote-phone-option__code { color: #60666b; font-variant-numeric: tabular-nums; white-space: nowrap; }
.quote-phone-empty { margin: 0; padding: 22px 16px; color: var(--quote-muted); font-size: 13px !important; text-align: center; }
.quote-phone-empty[hidden] { display: none; }
.quote-phone-control input:not([type="file"]) { height: 48px; border-color: #d2d8df; border-radius: 0 8px 8px 0; padding-inline: 12px; font-size: 17px; }
.quote-phone-control:focus-within .quote-phone-country__trigger { border-color: #d2d8df; }
.quote-field.has-error .quote-phone-country__trigger { border-color: var(--quote-error); background: #fffafa; }
.quote-field.has-error .quote-phone-menu .quote-phone-search input:not([type="file"]) { border-color: #ddd8cf; background: #fff; }
.quote-character-count { position: absolute; right: 11px; bottom: 9px; color: var(--quote-muted); font-size: 11px; line-height: 1; pointer-events: none; }
.quote-field--details.has-error .quote-character-count { bottom: 30px; }

.quote-field.has-error input:not([type="file"]),
.quote-field.has-error select,
.quote-field.has-error textarea,
.quote-field.has-error .quote-upload { border-color: var(--quote-error); background: #fffafa; }
.quote-field-error { display: none; margin: 5px 0 0; color: var(--quote-error); font-size: 12px !important; line-height: 1.35; }
.quote-field.has-error > .quote-field-error { display: block; }

/* Upload */
.quote-upload { position: relative; min-height: 88px; border: 1px dashed #d8d3cb; border-radius: 6px; background: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 12px 18px; text-align: center; color: var(--quote-body); transition: border-color .18s ease, box-shadow .18s ease, background .18s ease; }
.quote-upload:hover, .quote-upload.is-dragging { border-color: #8aa096; background: #fbfdfc; }
.quote-upload:focus-within { border-color: #0b4a38; box-shadow: 0 0 0 3px rgba(11,74,56,.1); }
.quote-upload input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; cursor: pointer; }
.quote-upload .quote-ui-icon { width: 17px; height: 17px; margin-bottom: 4px; color: var(--quote-green); }
.quote-upload__primary { font-size: 13px; line-height: 1.4; }
.quote-upload__primary strong { color: var(--quote-title); font-weight: 600; }
.quote-upload__help { margin-top: 3px; color: var(--quote-muted); font-size: 11px; }
.quote-file { min-height: 62px; border: 1px solid var(--quote-border); border-radius: 6px; background: #fbfaf7; display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; gap: 6px 14px; padding: 10px 12px; }
.quote-file[hidden] { display: none; }
.quote-file__details { min-width: 0; display: flex; flex-direction: column; }
.quote-file__details strong { overflow: hidden; color: var(--quote-text); font-size: 13px; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.quote-file__details small, .quote-file__status { color: var(--quote-muted); font-size: 11px; }
.quote-file__status { grid-column: 1; color: #397358; }
.quote-file__remove { grid-column: 2; grid-row: 1 / span 2; display: inline-flex; align-items: center; gap: 5px; border: 0; background: transparent; color: var(--quote-body); font-size: 12px; cursor: pointer; }
.quote-file__remove:hover { color: var(--quote-error); }
.quote-file__remove:focus-visible { outline: 2px solid var(--quote-green); outline-offset: 3px; border-radius: 3px; }
.quote-file__remove .quote-ui-icon { width: 14px; height: 14px; }

/* Submit and success */
.quote-submit { width: 100%; height: 50px; margin-top: 16px; border: 0; border-radius: 6px; background: var(--quote-gold); color: #fff; display: flex; align-items: center; justify-content: center; gap: 9px; font-size: 15px; font-weight: 600; cursor: pointer; transition: background .18s ease, transform .12s ease, opacity .18s ease; }
.quote-submit:hover { background: var(--quote-gold-hover); }
.quote-submit:active { transform: translateY(1px) scale(.998); }
.quote-submit:focus-visible { outline: 3px solid rgba(7,63,48,.35); outline-offset: 3px; }
.quote-submit:disabled { cursor: wait; opacity: .72; }
.quote-submit.is-loading .quote-ui-icon { animation: quote-send-pulse .8s ease-in-out infinite alternate; }
@keyframes quote-send-pulse { to { transform: translateX(3px); opacity: .72; } }
.quote-privacy { display: flex; align-items: center; justify-content: center; gap: 6px; margin: 10px 0 0; color: #7d8580; font-size: 12px !important; line-height: 1.4; text-align: center; }
.quote-privacy .quote-ui-icon { width: 12px; height: 12px; }
.quote-privacy a:hover { color: var(--quote-green); text-decoration: underline; text-underline-offset: 2px; }
.quote-submit-error { margin-top: 14px; border: 1px solid #f0c7c2; border-radius: 6px; background: #fff6f5; padding: 10px 12px; color: var(--quote-error); font-size: 13px; line-height: 1.45; }
.quote-success { min-height: 580px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 34px 18px; text-align: center; }
.quote-success[hidden] { display: none; }
.quote-success__icon { width: 56px; height: 56px; color: var(--quote-green); }
.quote-page .quote-success h2 { max-width: 460px; margin: 20px 0 12px; color: var(--quote-title); font-size: 28px !important; font-weight: 700; line-height: 1.25; }
.quote-page .quote-success > p { max-width: 460px; margin: 0; color: var(--quote-body); font-size: 15px !important; line-height: 1.65; }
.quote-page .quote-success__reference { margin-top: 14px; color: var(--quote-text); font-size: 13px !important; font-weight: 600; }
.quote-success__primary { width: min(100%, 320px); min-height: 48px; margin-top: 24px; border-radius: 6px; background: var(--quote-gold); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; font-weight: 600; }
.quote-success__primary:hover { background: var(--quote-gold-hover); }
.quote-success__secondary { margin-top: 15px; color: var(--quote-green); font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }

/* Capability strip */
.quote-capabilities { background: var(--quote-soft-background); border-block: 1px solid rgba(229,222,210,.7); }
.quote-capabilities__grid { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); padding-block: 25px; }
.quote-capabilities article { min-width: 0; display: flex; align-items: center; gap: 13px; padding: 0 18px; }
.quote-capabilities article + article { border-left: 1px solid #e0d6c7; }
.quote-capabilities article:first-child { padding-left: 0; }
.quote-capabilities article:last-child { padding-right: 0; }
.quote-capability-icon { width: 32px; height: 32px; color: var(--quote-green); }
.quote-capability-icon--box { --quote-icon: url('/assets/svg/icon-box.svg'); }
.quote-capability-icon--print { --quote-icon: url('/assets/svg/icon-print.svg'); }
.quote-capability-icon--inserts { --quote-icon: url('/assets/svg/icon-custom-inserts.svg'); }
.quote-capability-icon--layers { --quote-icon: url('/assets/svg/icon-layers.svg'); }
.quote-capability-icon--spark { --quote-icon: url('/assets/svg/icon-spark.svg'); }
.quote-capability-icon--clock { --quote-icon: url('/assets/svg/icon-clock.svg'); }
.quote-page .quote-capabilities h3 { margin: 0; color: var(--quote-title); font-size: 14px !important; font-weight: 700; line-height: 1.3; }
.quote-page .quote-capabilities p { margin: 4px 0 0; color: var(--quote-body); font-size: 11px !important; line-height: 1.35; }

/* FAQ */
.quote-faq { max-width: 740px; padding-top: 28px; padding-bottom: 52px; text-align: center; }
.quote-page .quote-faq header h2 { margin: 0; color: var(--quote-title); font-size: 24px !important; font-weight: 700; letter-spacing: -.02em; line-height: 1.25; }
.quote-page .quote-faq header p { margin: 4px 0 16px; color: var(--quote-body); font-size: 13px !important; }
.quote-faq-list { overflow: hidden; border: 1px solid var(--quote-border); border-radius: 7px; background: #fff; text-align: left; }
.quote-faq-item + .quote-faq-item { border-top: 1px solid var(--quote-border); }
.quote-page .quote-faq-item h3 { margin: 0; font-size: 14px !important; }
.quote-faq-item button { width: 100%; min-height: 46px; border: 0; background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 14px; color: #28463a; font-size: 13px; font-weight: 600; text-align: left; cursor: pointer; }
.quote-faq-item button:hover { background: #fdfcf9; }
.quote-faq-item button:focus-visible { position: relative; z-index: 1; outline: 3px solid rgba(11,74,56,.18); outline-offset: -3px; }
.quote-faq-item button .quote-ui-icon { width: 15px; height: 15px; transition: transform .18s ease; }
.quote-faq-item button[aria-expanded="true"] .quote-ui-icon { transform: rotate(180deg); }
.quote-faq-answer { animation: quote-faq-in .18s ease; }
.quote-faq-answer[hidden] { display: none; }
.quote-page .quote-faq-answer p { margin: 0; padding: 0 42px 14px 14px; color: var(--quote-body); font-size: 13px !important; line-height: 1.6; }
@keyframes quote-faq-in { from { opacity: 0; transform: translateY(-3px); } to { opacity: 1; transform: translateY(0); } }

@media (max-width: 1100px) {
  .quote-page .quote-shell { width: min(100% - 48px, 1040px); }
  .quote-core { grid-template-columns: minmax(280px,.75fr) minmax(500px,1.25fr); gap: 38px; }
  .quote-capabilities article { flex-direction: column; align-items: flex-start; gap: 8px; padding-inline: 14px; }
}

@media (max-width: 900px) {
  .quote-core { grid-template-columns: minmax(250px,.7fr) minmax(450px,1.3fr); gap: 28px; }
  .quote-form-card { padding-inline: 22px; }
  .quote-capabilities__grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 0; padding-block: 12px; }
  .quote-capabilities article { min-height: 92px; flex-direction: row; align-items: center; padding: 14px 20px; }
  .quote-capabilities article:nth-child(4) { border-left: 0; }
  .quote-capabilities article:nth-child(n+4) { border-top: 1px solid #e0d6c7; }
}

@media (max-width: 767px) {
  .quote-page .quote-shell { width: min(100% - 36px, 680px); }
  .quote-hero { padding: 34px 0 26px; }
  .quote-page .quote-hero h1 { font-size: clamp(30px,8.4vw,34px) !important; }
  .quote-page .quote-hero p { max-width: 520px; margin-top: 9px; font-size: 15px !important; }
  .quote-core { display: flex; flex-direction: column; gap: 30px; padding-bottom: 32px; }
  .quote-form-card { order: 1; max-width: none; padding: 21px 20px 18px; }
  .quote-intro { order: 2; padding-top: 0; }
  .quote-page .quote-intro h2 { font-size: 23px !important; }
  .quote-help-card { width: min(100%, 500px); margin: 2px auto 0; }
  .quote-form-grid { grid-template-columns: 1fr; gap: 14px; }
  .quote-field--full { grid-column: auto; }
  .quote-field input:not([type="file"]), .quote-field select { height: 48px; }
  .quote-submit { height: 52px; }
  .quote-success { min-height: 520px; }
  .quote-capabilities__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .quote-capabilities article { min-height: 104px; border-top: 1px solid #e0d6c7; }
  .quote-capabilities article:nth-child(-n+2) { border-top: 0; }
  .quote-capabilities article:nth-child(odd) { border-left: 0; }
  .quote-capabilities article:nth-child(even) { border-left: 1px solid #e0d6c7; }
  .quote-faq { padding-top: 32px; padding-bottom: 44px; }
}

@media (max-width: 479px) {
  .quote-page .quote-shell { width: calc(100% - 32px); }
  .quote-hero { padding-top: 30px; }
  .quote-form-card { padding: 19px 17px 17px; border-radius: 12px; }
  .quote-phone-control { grid-template-columns: 44px minmax(0,1fr); }
  .quote-upload { min-height: 92px; }
  .quote-page .quote-success h2 { font-size: 25px !important; }
  .quote-capabilities article { align-items: flex-start; padding: 15px 12px; }
  .quote-capability-icon { width: 28px; height: 28px; }
  .quote-faq-item button { min-height: 48px; padding-inline: 12px; }
  .quote-faq-item button span:first-child { min-width: 0; overflow-wrap: anywhere; }
}

@media (prefers-reduced-motion: reduce) {
  .quote-page *, .quote-page *::before, .quote-page *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; transition-duration: .01ms !important; }
}
