:root { --ink:#10284a; --muted:#617087; --line:#d8dee8; --orange:#f56600; }
* { box-sizing: border-box; }
body { margin:0; min-width:320px; color:var(--ink); font-family:'DM Sans',sans-serif; background:linear-gradient(120deg,#f3f7fb 0%,#fff 48%,#f6f9fc 100%); }
.page-shell { min-height:100vh; padding:20px; display:grid; place-items:center; }
.quote-card { width:min(100%,1080px); background:rgba(255,255,255,.96); padding:27px 42px 22px; border-radius:0 0 18px 18px; box-shadow:0 10px 28px rgba(15,39,72,.09); }
.hero { text-align:center; margin:0 0 16px; }.eyebrow { margin:0 0 4px; color:var(--orange); font-size:.7rem; letter-spacing:.14em; font-weight:700; }.hero h1 { font:800 clamp(2rem,4vw,2.6rem)/1.12 'Manrope',sans-serif; margin:0; letter-spacing:-1.4px; }.hero p { margin:7px 0 0; color:#506078; font-size:1.03rem; line-height:1.45; }
.form-section { border:1px solid #e1e6ed; border-radius:10px; padding:22px 20px 24px; margin-top:18px; }.form-section h2 { font:800 1.23rem/1.2 'Manrope',sans-serif; margin:0 0 20px; letter-spacing:-.35px; display:flex; align-items:center; gap:13px; }.section-icon { color:var(--orange); font-size:31px; font-weight:400; display:grid; place-items:center; }.form-section h2 small { font:inherit; font-size:.95em; }.two-column,.three-column { display:grid; gap:22px; }.two-column{grid-template-columns:1fr 1fr}.three-column{grid-template-columns:1.35fr 1fr 1.13fr}
.field { color:#172d4d; font-weight:700; font-size:.93rem; display:block; }.field span, fieldset span { color:#e84335; }.field input,.field textarea,.location-box input,.location-box select { appearance:none; border:1px solid var(--line); border-radius:8px; width:100%; font:500 1rem 'DM Sans',sans-serif; color:var(--ink); outline:none; background:#fff; transition:border-color .2s,box-shadow .2s; }.field input,.location-box input,.location-box select { height:49px; padding:0 14px; margin-top:10px; }.field input::placeholder,.field textarea::placeholder,.location-box input::placeholder { color:#8a95a8; }.field input:focus,.field textarea:focus,.location-box input:focus,.location-box select:focus { border-color:#8bb6ec; box-shadow:0 0 0 3px rgba(80,151,229,.12); }.input-with-icon { position:relative; }.input-with-icon>i { position:absolute; z-index:1; left:15px; top:50%; transform:translateY(-50%); color:#77869a; font-size:21px; pointer-events:none; }.input-with-icon input,.input-with-icon select { padding-left:48px; }.input-with-icon select { padding-right:38px; background-image:linear-gradient(45deg,transparent 50%,#718096 50%),linear-gradient(135deg,#718096 50%,transparent 50%);background-position:calc(100% - 18px) 21px,calc(100% - 13px) 21px;background-size:5px 5px,5px 5px;background-repeat:no-repeat;}
.route-grid { display:grid; grid-template-columns:minmax(0,1fr) 45px minmax(0,1fr); align-items:center; }.location-box { min-width:0; margin:0; padding:20px 18px; border-radius:8px; }.location-box.origin{border:1px solid #b9d6f7}.location-box.destination{border:1px solid #ffc8a8}.location-box legend { padding:0; font-weight:700; font-size:.97rem; }.location-box p { margin:6px 0 11px; font-size:.86rem; color:#55647b; }.location-box input,.location-box select { margin-top:7px; height:46px; }.route-arrow { text-align:center; font-size:34px; color:var(--ink); }.additional-section { padding-top:24px; }.additional-section h2 { margin-bottom:22px; }.comments-label { margin-top:23px; color:#0c5c9e; font-size:1rem; }.comments-label em { display:block; color:#647287; font-style:normal; font-size:.86rem; font-weight:500; margin:5px 0 10px; }.field textarea { min-height:73px; resize:vertical; padding:13px; margin-top:0; }.form-footer { text-align:center; margin-top:27px; }.form-footer button { width:min(100%,450px); height:47px; border:0; border-radius:7px; color:#fff; background:linear-gradient(100deg,#f56600,#ff6710); font:700 1rem 'DM Sans',sans-serif; cursor:pointer; box-shadow:0 5px 10px rgba(245,102,0,.2); transition:transform .2s,box-shadow .2s,opacity .2s; }.form-footer button:hover{transform:translateY(-1px);box-shadow:0 7px 14px rgba(245,102,0,.28)}.form-footer button:disabled{opacity:.65;cursor:wait;transform:none}.form-footer button i{font-size:20px;vertical-align:-3px;margin-right:12px}.form-footer p{margin:17px 0 0;color:#687588;font-size:.86rem}.form-footer p i{font-size:18px;vertical-align:-3px;margin-right:6px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.location-methods{display:flex;gap:12px;flex-wrap:wrap;margin:2px 0 12px}.location-methods label{display:flex;align-items:center;gap:6px;border:1px solid #d9e0ea;border-radius:6px;padding:7px 9px;color:#40516a;font-size:.76rem;font-weight:700;cursor:pointer}.location-methods input{width:auto;height:auto;margin:0;accent-color:var(--orange)}.location-methods i{font-size:16px;color:var(--orange)}.gps-panel{margin-top:7px;border:1px dashed #8bb6ec;border-radius:8px;background:#f7fbff;padding:13px}.gps-panel button{border:0;border-radius:6px;background:#0c5c9e;color:#fff;padding:9px 12px;font:700 .82rem 'DM Sans',sans-serif;cursor:pointer}.gps-panel button i{font-size:17px;vertical-align:-2px;margin-right:4px}.gps-panel p{margin:8px 0 0;font-size:.77rem;line-height:1.35;color:#52647c}.gps-panel p.is-ready{color:#16803b;font-weight:700}.gps-panel p.is-error{color:#b42318;font-weight:700}.gps-preview{margin-top:12px}.gps-preview a{display:inline-block;color:#0c5c9e;font-size:.78rem;font-weight:700;text-decoration:none}.gps-preview a:hover{text-decoration:underline}.gps-preview a i{vertical-align:-2px;margin-right:3px}.gps-preview iframe{display:block;width:100%;height:175px;margin-top:8px;border:1px solid #cbd9e9;border-radius:6px;background:#eaf2fa}[hidden]{display:none!important}
@media(max-width:720px){.page-shell{padding:0}.quote-card{padding:28px 16px 18px;border-radius:0}.hero h1{letter-spacing:-1px}.desktop-break{display:none}.form-section{padding:19px 14px}.two-column,.three-column{grid-template-columns:1fr;gap:17px}.route-grid{grid-template-columns:1fr;gap:14px}.route-arrow{transform:rotate(90deg);font-size:29px}.location-box{padding:16px 13px}.additional-section h2{align-items:flex-start}.form-footer button{width:100%}}
