/* Quotation-only styling. Shared approved components are not restyled. */
.quote-page { color: #080e2c; background: #f8f9ff; }
.quote-page__inner.container { width: min(80rem,89%); }
.quote-page__hero { position: relative; isolation: isolate; overflow: hidden; padding-block: 2.5rem; color: #f6f8ff; background: radial-gradient(ellipse at 0 100%,#0b3f8b,transparent 55%),radial-gradient(ellipse at 85% 25%,#27206d,transparent 60%),#020d26; }
.quote-page__glass { position: absolute; z-index: -1; right: -15rem; top: -8rem; width: 36rem; max-width: none; height: auto; opacity: .65; pointer-events: none; }
.quote-page__hero-grid { display: grid; grid-template-columns: 1.05fr 1fr; gap: 2.5rem; align-items: center; }
.quote-page__eyebrow { margin: 0 0 .8rem; font-size: .6875rem; font-weight: 650; letter-spacing: .19em; text-transform: uppercase; }
.quote-page h1 { margin: 0; font-size: clamp(2.5rem,3.9vw,3.75rem); line-height: 1.05; font-weight: 800; letter-spacing: -.045em; }
.quote-page h1 > span { color: #39a6ff; background: linear-gradient(105deg,#00c5ed,#2177ff 45%,#9847ff); background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
.quote-page__lead { margin: 1.25rem 0 2rem; max-width: 49ch; font-size: 1.0625rem; line-height: 1.6; color: #e5ebfa; }
.quote-page h2 { margin: 0; font-size: 1.5rem; line-height: 1.15; letter-spacing: -.025em; font-weight: 750; }
.quote-page__principles { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.25rem; margin: 2.25rem 0; padding: 0; list-style: none; }
.quote-page__principles li { padding-right: 1rem; border-right: 1px solid #849bed22; }
.quote-page__principles li:last-child { border: 0; padding-right: 0; }
.quote-page__principles li > span,.quote-page__contact-icon { display: grid; place-items: center; width: 2.6rem; height: 2.6rem; border-radius: 50%; background: linear-gradient(135deg,#009ee8,#343aff 60%,#9a4bf3); color: #fff; font-size: 1.45rem; font-weight: 700; }
.quote-page__principles h2 { margin: .8rem 0 .45rem; font-size: .9375rem; letter-spacing: 0; }
.quote-page__principles p { margin: 0; font-size: .8125rem; line-height: 1.55; color: #d6e1f7; }
.quote-page__contact { display: grid; grid-template-columns: 1fr 1.25fr; gap: .75rem; }
.quote-page__contact > div { display: flex; align-items: center; gap: .85rem; padding: 1.1rem; min-width: 0; border: 1px solid #7b97dc55; border-radius: .9rem; background: #07122e70; }
.quote-page__contact-icon { flex-shrink: 0; }
.quote-page__contact h2 { font-size: .875rem; letter-spacing: 0; }
.quote-page__contact p { margin: .35rem 0 0; color: #d6e1f7; font-size: .75rem; line-height: 1.5; }
.quote-page__form-panel { min-width: 0; padding: 1.5rem; border: 1px solid #788ac6; border-radius: 1rem; background: linear-gradient(130deg,#0a1538eb,#0c1234e8); box-shadow: 0 18px 45px #00051c33; scroll-margin-top: 1.5rem; }
.quote-page__form-intro { margin: .55rem 0 1rem; font-size: .8125rem; color: #dce5fa; }
.quote-page__availability { margin: 0 0 1.1rem; padding: .75rem .9rem; border: 1px solid #b0a3ed88; border-radius: .5rem; color: #f1e9ff; background: #3b286b55; font-size: .8125rem; line-height: 1.5; }
.quote-page__fields { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem 1rem; }
.quote-page__fields > div { min-width: 0; }
.quote-page__full-field { grid-column: 1/-1; }
.quote-page label { display: block; margin-bottom: .3rem; color: #f1f4ff; font-size: .75rem; font-weight: 600; }
.quote-page label > span { font-weight: 400; }
.quote-page input:not([type="hidden"]),.quote-page select,.quote-page textarea { display: block; width: 100%; min-width: 0; min-height: 2.75rem; padding: .65rem .75rem; border: 1px solid #63739a88; border-radius: .5rem; background: #1a2a50; color: #fff; font: inherit; font-size: .8125rem; line-height: 1.4; color-scheme: dark; }
.quote-page textarea { resize: vertical; min-height: 7rem; }
.quote-page input::placeholder,.quote-page textarea::placeholder { color: #bcc9e5; opacity: 1; }
.quote-page select { padding-right: 1.5rem; }
.quote-page [aria-invalid="true"] { border-color: #ffb7ca !important; }
.quote-page__field-error { display: block; color: #ffbdcc; font-size: .75rem; line-height: 1.4; }
.quote-page__field-error:not(:empty) { margin-top: .3rem; }
.quote-page__field-help { display: block; margin-top: .35rem; color: #bac7e5; font-size: .6875rem; line-height: 1.5; }
.quote-page__required-note { margin: 1rem 0 .75rem; color: #c5d2ee; font-size: .6875rem; line-height: 1.5; }
.quote-page__status { color: #e7edff; font-size: .875rem; line-height: 1.5; }
.quote-page__status:not(:empty) { margin-block: .75rem; padding: .75rem; border: 1px solid #8b9cce; border-radius: .5rem; }
.quote-page__submit { display: flex; align-items: center; justify-content: center; gap: 1rem; width: 100%; min-height: 3rem; padding: .6rem 1rem; border: 1px solid #6c65fa; border-radius: .6rem; background: linear-gradient(100deg,#0788e5,#3a50f4 55%,#862cf5); color: #fff; font: inherit; font-size: .875rem; font-weight: 650; cursor: pointer; }
.quote-page__submit:disabled { cursor: not-allowed; opacity: .65; }
.quote-page__form[aria-busy="true"] .quote-page__submit { cursor: wait; }
.quote-page__honeypot { display: none; }
.quote-page__details { padding-block: 2rem; }
.quote-page__details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.75rem; align-items: stretch; }
.quote-page__location { display: grid; grid-template-columns: .9fr 1.1fr; overflow: hidden; border: 1px solid #243259; border-radius: .9rem; background: #04122e; color: #fff; }
.quote-page__map { position: relative; overflow: hidden; background: #132241; min-height: 16rem; }
.quote-page__map svg { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.quote-page__location > div:last-child { padding: 1.5rem; align-self: center; }
.quote-page__location .quote-page__eyebrow { color: #b8d1ff; }
.quote-page__location h2 { font-size: 1.375rem; }
.quote-page__location p:not(.quote-page__eyebrow) { margin: .75rem 0 0; color: #d1def6; font-size: .875rem; line-height: 1.55; }
.quote-page__location p.quote-page__map-note { font-size: .6875rem; color: #acbcdf; }
.quote-page__faq { padding: 1.5rem; border: 1px solid #e3e6fb; border-radius: .9rem; background: #fbfcff; }
.quote-page__faq > .quote-page__eyebrow { margin-bottom: .35rem; color: #6350d4; }
.quote-page__faq > h2 { margin-bottom: 1rem; font-size: 1.375rem; }
.quote-page__faq details { margin-top: .5rem; border: 1px solid #e0e5fa; border-radius: .45rem; }
.quote-page__faq summary { position: relative; cursor: pointer; padding: .65rem 2rem .65rem .75rem; font-size: .8125rem; font-weight: 600; line-height: 1.45; }
.quote-page__faq summary::marker { color: #6558cd; }
.quote-page__faq summary > span { position: absolute; top: .4rem; right: .7rem; color: #6055ce; font-size: 1.2rem; }
.quote-page__faq details[open] summary > span { transform: rotate(45deg); }
.quote-page__faq details > p { margin: 0; padding: .25rem .9rem .9rem; color: #424e75; font-size: .8125rem; line-height: 1.65; }
.quote-page__closing { position: relative; isolation: isolate; overflow: hidden; padding-block: 2rem; background: linear-gradient(110deg,#06316d,#0a1241 50%,#4a1ca0); color: #fff; }
.quote-page__closing > img { position: absolute; z-index: -1; right: -3rem; top: -9rem; width: 24rem; max-width: none; height: auto; opacity: .55; pointer-events: none; }
.quote-page__closing > div { display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.quote-page__closing p { margin: .5rem 0 0; color: #e2e6fa; font-size: .875rem; }
.quote-page__closing a { flex-shrink: 0; display: inline-flex; gap: 1.5rem; align-items: center; justify-content: center; min-height: 3rem; padding: .65rem 1.3rem; border: 1px solid #d7d8ff; border-radius: 2rem; background: #f9faff; color: #3630b8; font-size: .8125rem; font-weight: 650; text-decoration: none; }
.quote-page :focus-visible { outline: 3px solid #6adfff; outline-offset: 4px; }
.quote-page__details :focus-visible { outline-color: #227ef7; }
@media(max-width:74.99rem) { .quote-page__hero-grid { gap: 1.5rem; grid-template-columns: 1fr 1.1fr; } .quote-page__contact { grid-template-columns: 1fr; } .quote-page__principles { gap: .75rem; } .quote-page__location { grid-template-columns: 1fr; } .quote-page__map { min-height: 11rem; } }
@media(max-width:63.99rem) { .quote-page__inner.container { width: calc(100% - 3rem); } .quote-page__hero-grid { grid-template-columns: 1fr; gap: 2rem; } .quote-page__contact { grid-template-columns: 1fr 1fr; } .quote-page__lead { max-width: 58ch; } .quote-page__principles { margin-block: 1.5rem; } .quote-page__closing > div { align-items: flex-start; flex-direction: column; gap: 1.25rem; } }
@media(max-width:39.99rem) { .quote-page__inner.container { width: calc(100% - 2.5rem); } .quote-page__hero { padding-block: 2rem; } .quote-page h1 { font-size: 2.5rem; } .quote-page__lead { font-size: 1rem; } .quote-page__principles { grid-template-columns: 1fr; gap: 1rem; } .quote-page__principles li { border: 0; display: grid; grid-template-columns: 2.6rem 1fr; gap: .25rem .75rem; padding: 0; } .quote-page__principles li > span { grid-row: 1/3; } .quote-page__principles h2 { margin: 0; align-self: end; } .quote-page__principles li p { grid-column: 2; } .quote-page__contact { grid-template-columns: 1fr; } .quote-page__form-panel { padding: 1.2rem; } .quote-page__fields,.quote-page__details-grid { grid-template-columns: 1fr; } .quote-page__details-grid { gap: 1.25rem; } .quote-page__faq { padding: 1.2rem; } .quote-page__closing h2 { font-size: 1.4rem; } .quote-page__glass { right: -22rem; } }
@media(prefers-reduced-motion:reduce) { .quote-page { scroll-behavior: auto; } }
@media(forced-colors:active) { .quote-page h1 > span { background: none; -webkit-text-fill-color: currentColor; } }
