.quote-shell{display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:clamp(2rem,6vw,7rem);padding-top:3rem;padding-bottom:6rem;align-items:start}.quote-intro{position:sticky;top:7rem}.quote-intro h1{font-size:clamp(2.7rem,4.5vw,4.9rem);line-height:1.03;letter-spacing:-.045em;margin:1rem 0 1.4rem}.quote-intro .lead{font-size:1.1rem;max-width:30rem}.quote-proof{display:inline-block;font-size:.86rem;margin:1.3rem 0;color:var(--euc);text-underline-offset:4px}.quote-aside{border-top:1px solid var(--line);margin-top:1.3rem;padding-top:2rem}.quote-aside>p{font-family:Newsreader,Georgia,serif;font-size:1.7rem;line-height:1.2;margin:1rem 0}.quote-aside ul{list-style:none;padding:0;font-size:.88rem;line-height:2}.quote-aside li:before{content:'—';margin-right:.65rem;color:var(--brass)}.quote-human{margin-top:2rem;font-size:.9rem;line-height:1.7}.quote-human a{font-size:1.12rem;color:var(--euc)}.quote-workspace{min-width:0;border:1px solid var(--line);background:var(--paper);padding:clamp(1.2rem,3vw,2.6rem)}.quote-progress{display:flex;justify-content:space-between;gap:.75rem;padding:0 0 1.25rem;margin:0 0 2rem;list-style:none;border-bottom:1px solid var(--line);font-size:.78rem;color:var(--mist)}.quote-progress span{display:block;font-size:.7rem;letter-spacing:.08em;margin-bottom:.25rem}.quote-progress [aria-current]{color:var(--euc);font-weight:700}.quote-step h2{font-size:clamp(1.9rem,3vw,2.45rem);line-height:1.1;margin:0 0 .7rem;letter-spacing:-.03em}.quote-step h2:focus{outline:none}.quote-caption{font-size:.95rem;color:var(--mist);line-height:1.6;margin:0 0 1.7rem}.quote-fields{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}.quote-field{min-width:0}.quote-field label{display:block;font-size:.86rem;font-weight:600;margin-bottom:.5rem}.quote-field label span{font-weight:400;color:var(--mist);margin-left:.4rem;font-size:.75rem}.quote-field input,.quote-field select,.quote-field textarea{width:100%;max-width:100%;border:1px solid #9c9b8b;border-radius:2px;background:var(--paper);color:var(--ink);padding:.8rem .85rem;font:inherit;font-size:16px;min-height:48px;box-sizing:border-box}.quote-field textarea{resize:vertical;min-height:90px}.quote-field small{display:block;font-size:.76rem;line-height:1.5;color:var(--mist);margin-top:.4rem}.quote-fields .full{grid-column:1/-1}.quote-check{display:flex;align-items:flex-start;gap:.65rem;cursor:pointer;font-size:.86rem;line-height:1.5}.quote-check input{flex:0 0 19px;width:19px;height:19px;margin:2px 0 0;accent-color:var(--euc)}.quote-consent{font-size:.76rem;background:var(--paper-2);padding:1rem}.quote-price{margin:1.5rem 0;padding:1.25rem 1.4rem;background:var(--euc-soft);border-left:2px solid var(--euc)}.quote-price>span{display:block;font-size:.76rem;color:var(--euc)}.quote-price strong{font-family:Newsreader,Georgia,serif;font-size:2.65rem;line-height:1.3;font-weight:400;letter-spacing:-.035em}.quote-price p{font-size:.78rem;line-height:1.6;margin:.2rem 0 0;color:var(--ink-soft)}.quote-next{width:100%;justify-content:space-between}.quote-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.8rem}.quote-actions .button{gap:1.25rem}.quote-back{background:none;border:0;font:inherit;font-size:.85rem;min-height:48px;padding:0;color:var(--euc);cursor:pointer;text-decoration:underline;text-underline-offset:4px}.quote-fine{font-size:.72rem;line-height:1.6;color:var(--mist);margin:.75rem 0 0}.quote-fine a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.quote-review dl{margin:0}.quote-review .quote-review-row{display:flex;justify-content:space-between;gap:1.5rem;padding:.9rem 0;border-bottom:1px solid var(--line);font-size:.89rem}.quote-review dt{color:var(--mist)}.quote-review dd{margin:0;max-width:65%;text-align:right;overflow-wrap:anywhere}.quote-review .quote-review-notes{font-size:.88rem;line-height:1.6;overflow-wrap:anywhere;white-space:pre-wrap}.quote-what-next{margin-top:1.6rem;padding:1.25rem;background:var(--paper-2)}.quote-what-next h3{font-family:Newsreader,Georgia,serif;font-weight:400;font-size:1.4rem;margin:0 0 .7rem}.quote-what-next ol{font-size:.82rem;line-height:1.7;padding-left:1.2rem;margin:0}.quote-what-next p{font-size:.75rem;line-height:1.6;margin:.8rem 0 0}.quote-notice,.quote-status{padding:1rem;border:1px solid var(--brass-line);font-size:.85rem;line-height:1.6;background:var(--paper-2);overflow-wrap:anywhere}.quote-notice a{text-decoration:underline}.quote-status[data-error=true]{border-color:var(--brass);color:var(--ink)}.quote-honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}.quote-shell [hidden]{display:none!important}.quote-shell :focus-visible{outline:2px solid var(--euc);outline-offset:3px}.quote-field [aria-invalid=true]{border:2px solid var(--brass)}.quote-shell button:disabled{opacity:.55;cursor:wait}#q-complete p{font-size:.95rem;line-height:1.7}#q-booking-action{margin:1.5rem 0}.page-quote .mobile-actions{display:none}.page-quote .breadcrumb{margin-bottom:0}
@media(max-width:800px){.quote-shell{display:block;padding-top:1.5rem;padding-bottom:3rem}.quote-intro{position:static}.quote-intro h1{font-size:2.9rem}.quote-intro .lead{font-size:.98rem}.quote-aside,.quote-human{display:none}.quote-proof{margin:.7rem 0 1.6rem}.quote-workspace{padding:1.25rem}.quote-progress{margin-bottom:1.6rem}.quote-actions{gap:.75rem}.quote-actions .button{padding:.9rem 1rem;font-size:.8rem;gap:.5rem}.quote-check{font-size:.81rem}.quote-consent{font-size:.74rem}.quote-fields{gap:1rem}.quote-review .quote-review-row{font-size:.82rem}.quote-review dd{max-width:64%}}
@media(prefers-reduced-motion:reduce){.quote-shell *{scroll-behavior:auto}}

.quote-step h2{scroll-margin-top:8rem}.quote-workspace>.quote-notice{margin:0 0 1.3rem}

/* Keep prices, instructions and consent readable on a phone. */
.quote-field label,.quote-field small,.quote-fine,.quote-price>span,.quote-price p,.quote-consent,.quote-check,.quote-progress,.quote-what-next ol,.quote-what-next p{font-size:.875rem}
.quote-progress span,.quote-field label span{font-size:.8125rem}
.quote-caption{font-size:1rem}.quote-review .quote-review-row{font-size:.9375rem}
.quote-next,.quote-actions .button{font-size:1rem;min-height:48px}
.quote-field input,.quote-field select,.quote-field textarea{scroll-margin-top:8rem}
@media(max-width:800px){
  .quote-shell{padding-top:1rem}.quote-intro h1{font-size:2.15rem;margin:.75rem 0}
  .quote-intro .lead{font-size:1rem;margin-bottom:.5rem}.quote-proof{font-size:.875rem;margin:.5rem 0 1rem}
  .quote-workspace{padding:1rem}.quote-progress{margin-bottom:1.25rem}
  .quote-actions{flex-wrap:wrap}.quote-actions .button{flex:1;justify-content:center}
  .quote-check,.quote-consent{font-size:.875rem}.quote-review .quote-review-row{font-size:.9375rem}
}
@media(max-width:480px){.quote-fields{grid-template-columns:minmax(0,1fr)}}
@media(max-width:359px){.quote-actions .button{width:100%;flex-basis:100%}}
#q-contact-summary strong{font-size:2rem}#q-contact-summary .quote-back{display:block}#q-contact-summary>span{font-size:.875rem}#q-contact-summary p{font-size:.875rem}@media(max-width:800px){.quote-from-calculator .quote-intro h1{font-size:2rem;margin:.5rem 0}.quote-from-calculator .quote-intro .lead{display:none}.quote-from-calculator .quote-proof{margin:.3rem 0 1rem}}
