/* Asas quotation centre: inherits the established Manrope and Ocean Blue tokens. */
.quote-page{background:radial-gradient(ellipse at 12% 5%,#e1edfa 0,transparent 47%),radial-gradient(ellipse at 95% 80%,#f1e8d6 0,transparent 43%),#faf9f6;color:#1d3148}
.quote-page [hidden]{display:none!important}.quote-page .site-header{background:#faf9f6ee;backdrop-filter:blur(14px)}
.quote-layout{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:56px;padding-top:54px;padding-bottom:64px;align-items:start}
.quote-intro{position:sticky;top:110px}.quote-intro h1{font-size:clamp(38px,3.6vw,54px);line-height:1.15;letter-spacing:-.035em;font-weight:650;max-width:15ch;text-wrap:balance}.quote-intro h1 span{color:#245ea8;font-weight:500}.quote-intro .lead{font-size:19px;line-height:1.7;margin:24px 0}.quote-promise{display:grid;grid-template-columns:28px 1fr;gap:18px 14px;margin:32px 0}.quote-promise>span{color:#245ea8;font-size:15px;font-weight:700;padding-top:2px}.quote-promise p{font-size:16px;line-height:1.6;margin:0}.quote-promise strong{display:block;font-size:18px;margin-bottom:4px}.quote-scope{font-size:14px;line-height:1.7;color:#52657a;border-top:1px solid #cbd8e6;padding-top:20px}
.quote-panel{background:linear-gradient(140deg,#fff,#f8fbff);padding:32px;border:1px solid #d6e1ed;border-radius:24px;box-shadow:0 20px 65px #142e4c0b;min-width:0}.quote-panel h2{font-size:32px;line-height:1.25;font-weight:650;letter-spacing:-.025em;margin:26px 0 12px;text-wrap:balance}.quote-help{font-size:16px;line-height:1.65;color:#52657a;margin:10px 0 18px}.quote-help a{text-decoration:underline;text-underline-offset:3px}.quote-panel .eyebrow{font-size:13px;letter-spacing:.08em}.quote-progress-track{height:4px;background:#e3ebf4;border-radius:8px;overflow:hidden}.quote-progress-track span{display:block;height:100%;width:33.333%;background:#245ea8;transition:width .3s ease}
.quote-choices{display:grid;gap:12px;margin-top:24px}.quote-choice{display:flex;gap:14px;align-items:center;padding:16px 18px;border:1px solid #8b9eb4;border-radius:14px;cursor:pointer;background:#fff;transition:border-color .16s,background .16s,box-shadow .16s}.quote-choice:has(input:checked){border-color:#245ea8;background:#eaf2fc;box-shadow:inset 3px 0 #245ea8}.quote-choice:hover{background:#f1f6fc}.quote-choice strong{display:block;font-size:20px;font-weight:650}.quote-choice small{display:block;font-size:16px;line-height:1.5;color:#52657a;margin-top:4px}.quote-page input[type=radio],.quote-page input[type=checkbox]{width:21px;height:21px;flex:none;accent-color:#245ea8;margin:2px 0}.quote-fields{display:grid;grid-template-columns:1fr 1fr;gap:20px}.quote-field{margin-top:20px;min-width:0}.quote-field label{display:block;font-size:17px;font-weight:650;margin-bottom:9px}.quote-field input,.quote-field select{width:100%;min-height:52px;border:1px solid #738498;border-radius:10px;background:#fff;color:#1d3148;padding:12px;font:inherit;font-size:17px}.quote-field .quote-help{font-size:14px;margin-bottom:0}.quote-panel [aria-invalid=true]{outline:2px solid #9d3030;outline-offset:2px}.quote-review{padding:18px 20px;background:#edf3fa;border-radius:14px;margin:22px 0}.quote-review summary{font-weight:650;cursor:pointer;font-size:18px;min-height:32px}.quote-review dl{display:grid;grid-template-columns:1fr 1.1fr;font-size:16px;line-height:1.6;gap:8px 16px;margin:14px 0}.quote-review dt{color:#52657a}.quote-review dd{margin:0;font-weight:600;overflow-wrap:anywhere}.quote-review p{white-space:pre-line;font-size:16px}.quote-contact{border:0;padding:0;margin:24px 0 16px}.quote-contact legend{font-weight:650;font-size:17px;margin-bottom:10px}.quote-methods{display:flex;flex-wrap:wrap;gap:8px 20px}.quote-methods label{display:flex;gap:9px;align-items:center;min-height:44px;cursor:pointer;font-size:17px}.quote-consent{display:flex;align-items:start;gap:12px;font-size:15px;line-height:1.7;margin-top:24px;cursor:pointer}.quote-honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.quote-actions{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:26px;border-top:1px solid #d6e1ed;padding-top:24px}.quote-actions .button{margin-left:auto;min-height:54px;font-size:17px}.quote-page button.text-link{background:transparent;border:0;color:#245ea8;font:inherit;font-size:16px;min-height:44px;cursor:pointer}.quote-error{color:#8c2525;background:#fff1f0;padding:16px;border-left:3px solid #9d3030;font-size:16px;margin-top:20px}.quote-page :focus-visible{outline:3px solid #245ea8;outline-offset:4px}.quote-page button:disabled{opacity:.65;cursor:wait}.quote-reference{font-size:14px;overflow-wrap:anywhere;background:#edf3fa;padding:14px;border-radius:10px}.quote-footer{display:flex;flex-wrap:wrap;gap:16px 24px;border-top:1px solid #d6e1ed;padding-top:24px;padding-bottom:28px;font-size:14px}.quote-footer span{margin-right:auto}#quote-success p{line-height:1.7}#quote-success .button{margin-top:16px}
@media(max-width:900px){.quote-layout{grid-template-columns:1fr;max-width:700px;gap:28px;padding-top:28px}.quote-intro{position:static}.quote-intro h1{max-width:22ch;font-size:40px}.quote-promise{display:none}.quote-intro .lead{font-size:18px;margin:18px 0}.quote-scope{margin:0;font-size:14px;padding-top:14px}.quote-panel{padding:26px}.quote-panel h2{font-size:30px}.quote-page .header-row{gap:20px}.quote-page .header-row>.text-link{font-size:15px;margin-left:auto}.quote-page .logo{flex-shrink:0}}
@media(max-width:480px){.quote-layout{gap:24px}.quote-intro h1{font-size:36px}.quote-panel{padding:22px 18px;border-radius:20px}.quote-fields{grid-template-columns:1fr;gap:0}.quote-choice{padding:14px}.quote-choice strong{font-size:19px}.quote-choice small{font-size:16px}.quote-panel h2{font-size:28px}.quote-review{padding:16px}.quote-actions{gap:8px}.quote-actions .button{padding:14px 18px;font-size:16px}.quote-methods{gap:8px 16px}.quote-page .header-row>.text-link{font-size:14px}.quote-page .logo{font-size:30px}.quote-page .logo svg{width:30px}}
@media(prefers-reduced-motion:reduce){.quote-page *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

@media(min-width:1000px){.quote-choices{grid-template-columns:1fr 1fr}.quote-choice{align-items:flex-start}.quote-choice input{margin-top:5px}.quote-choice strong{font-size:19px}}
#quote-progress{scroll-margin-top:110px}

/* Mobile audit: consistent action sizing and field-local validation. */
.quote-panel [aria-invalid=true]:focus-visible{outline-color:#9d3030}.quote-field .quote-error{margin:10px 0;font-size:15px}.quote-page input,.quote-page select{scroll-margin-block:110px 100px}
@media(max-width:480px){.quote-intro .lead{margin:16px 0}.quote-layout{padding-top:22px;gap:20px}.quote-panel h2{margin-top:20px}.quote-actions{align-items:stretch}.quote-actions .button{flex:1}.quote-actions #quote-back{flex-shrink:0}.quote-review dl{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:10px 14px}.quote-review dd{margin:0}}

@media(max-width:360px){.quote-actions{flex-wrap:wrap}.quote-actions .button{min-width:100%;order:-1}.quote-actions #quote-back{margin-inline:auto}.quote-review dl{font-size:15px}}

/* Quotation motion: direction reflects the journey, figures remain immediately readable. */
@media(prefers-reduced-motion:no-preference){
 @keyframes quote-forward{from{opacity:1;transform:translateX(12px)}to{opacity:1;transform:none}}
 @keyframes quote-back{from{opacity:1;transform:translateX(-12px)}to{opacity:1;transform:none}}
 @keyframes quote-choice-in{from{opacity:1;transform:translateY(12px)}to{opacity:1;transform:none}}
 @keyframes quote-answer-in{from{opacity:1;transform:translateY(-6px)}to{opacity:1;transform:none}}
 .quote-page .quote-intro h1{animation:quote-choice-in .42s cubic-bezier(.16,1,.3,1) both}
 .quote-page .quote-progress-track span{transition:width .5s cubic-bezier(.16,1,.3,1)}
 .quote-page #quote-form [data-step]:not([hidden]) .quote-fields{animation:quote-forward .3s cubic-bezier(.16,1,.3,1) both}
 .quote-page #quote-form[data-direction=back] [data-step]:not([hidden]) .quote-fields{animation-name:quote-back}
 .quote-page [data-step]:not([hidden]) .quote-choice{animation:quote-choice-in .3s cubic-bezier(.16,1,.3,1) both}
 .quote-page .quote-choice:nth-child(2){animation-delay:30ms}
 .quote-page .quote-choice:nth-child(3){animation-delay:60ms}
 .quote-page .quote-choice:nth-child(4){animation-delay:90ms}
 .quote-page .quote-choice:nth-child(5){animation-delay:90ms}
 .quote-page .quote-choice:nth-child(6){animation-delay:90ms}
 .quote-page .quote-choice:has(input:focus-visible),.quote-page #quote-form [data-step] .quote-fields:has(:focus-visible){animation:none}
 .quote-page .quote-review[open] dl{animation:quote-answer-in .25s cubic-bezier(.16,1,.3,1)}
 .quote-page #quote-success:not([hidden]) h2,.quote-page #quote-success:not([hidden]) p{animation:quote-choice-in .3s cubic-bezier(.16,1,.3,1) both}
 .quote-page .quote-choice{transition:background .22s,border-color .22s,box-shadow .3s,translate .3s}
 @media(hover:hover){.quote-page .quote-choice:hover{translate:0 -2px;box-shadow:0 10px 22px -18px #142e4c88}}
}
@media(prefers-reduced-motion:reduce){.quote-page .quote-choice:hover{translate:none}}

/* Compact quotation rhythm, preserving field size, labels and error space. */
.quote-layout{gap:32px;padding-block:32px 40px}
.quote-intro{top:96px}
.quote-intro .lead{margin-block:16px}
.quote-promise{grid-template-columns:1fr;gap:12px;margin-block:20px}
.quote-panel{padding:24px;box-shadow:none;background:var(--white)}
.quote-panel h2{margin-top:20px}
.quote-choices{gap:10px;margin-top:16px}
.quote-choice{padding:14px 16px}
.quote-field{margin-top:16px}
.quote-fields{gap:16px}
.quote-review{margin-block:16px;padding:12px 16px}
.quote-review summary{min-height:44px;padding-block:6px}
.quote-actions{margin-top:20px;padding-top:16px}
.quote-contact{margin-block:20px 12px}
.quote-consent{margin-top:20px}
.quote-footer a{min-height:44px;display:inline-flex;align-items:center}
@media(max-width:900px){.quote-layout{gap:20px;padding-top:24px}.quote-intro{position:static}}
@media(max-width:480px){.quote-panel{padding:20px 16px}.quote-layout{padding-block:20px 32px}.quote-fields{gap:0}.quote-choice{padding:12px}.quote-review{padding:10px 14px}}
.quote-selected-product{padding:16px 18px;border-left:3px solid var(--accent);border-radius:0 12px 12px 0;background:var(--sky);color:var(--ink);font-size:16px;line-height:1.65;font-weight:600;overflow-wrap:anywhere}
.quote-selected-product[hidden]{display:none}
@media(prefers-reduced-motion:no-preference){
 .quote-page #quote-form [data-step]:not([hidden]) .quote-fields{animation-duration:var(--page-transition-duration);animation-timing-function:var(--page-transition-ease)}
 .quote-page [data-step]:not([hidden]) .quote-choice,.quote-page .quote-review[open] dl{animation-timing-function:var(--page-transition-ease)}
}
