/* Quote workflow and readable contact forms. */
.nav-shell nav{gap:18px;font-size:12px}
.nav-shell nav a[aria-current=page]{text-decoration:underline;text-underline-offset:7px}
.nav-shell nav .nav-quote{font-weight:700}
.request-form fieldset,.quote-form>fieldset{border:0;margin:0;padding:0;min-width:0}
.request-form [disabled],.quote-form [disabled]{cursor:default}
.request-form button[disabled],.quote-form button[disabled]{opacity:.55}
.classic-hero .request-form>p{font-size:14px;line-height:1.65}
.classic-hero .request-form label{font-size:13px}
.classic-hero :is(input,select,textarea){font-size:16px;min-height:47px}
.classic-hero input::placeholder,.classic-hero textarea::placeholder{font-size:14px;color:#666}
.classic-hero .request-form>h2{font-size:34px}
.request-optional{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:5px 0 20px}
.request-optional>summary{font-size:13px;font-weight:700;padding:15px 0;cursor:pointer;min-height:48px}
.request-optional[open]>summary{padding-bottom:20px}
.request-optional input{font-weight:400}
.classic-hero .request-form .form-privacy{font-size:12px;line-height:1.7}
.request-form .quote-entry{border-top:1px solid var(--line);padding-top:19px;margin-top:20px!important;margin-bottom:0!important;font-size:13px!important;color:#444}
.quote-entry>a{display:block;margin-top:5px;text-decoration:underline;text-underline-offset:4px;font-weight:700;min-height:30px;width:fit-content}
.classic-hero-actions .button:first-child{background:#fff;border-color:#fff;color:#111}
.classic-hero-actions .button:not(:first-child){background:#151515cc;border-color:#fff9;color:#fff}
.classic-hero-actions .button:hover{background:#eae7e0;color:#111}
.service-photo figcaption,.about-grid figcaption{font-size:12px}
.service-links-extra{margin-top:18px;font-size:14px;line-height:1.8}
.service-links-extra a{text-decoration:underline;text-underline-offset:4px}
.quote-heading{padding-block:30px 42px}
.quote-heading .breadcrumb{margin-bottom:32px}
.quote-heading .eyebrow{margin-bottom:17px}
.quote-heading h1{font-family:'Playfair Display',Georgia,serif;font-size:clamp(40px,4.1vw,58px);line-height:1.13;letter-spacing:-.025em}
.quote-heading .lead{max-width:780px;font-size:17px;line-height:1.8;margin-top:22px}
.quote-layout{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:65px;align-items:start;padding-bottom:20px}
.quote-context{min-width:0}
.quote-context figure{margin:0}
.quote-context img{aspect-ratio:1.45;object-fit:cover;object-position:center 48%;width:100%;border-radius:12px}
.quote-context figcaption{font-size:12px;line-height:1.65;color:#626262;margin-top:12px}
.quote-context-copy{padding-top:35px}
.quote-context-copy .eyebrow{margin-bottom:16px}
.quote-context h2{font-size:32px}
.quote-steps{list-style:none;padding:0;margin:24px 0 0;counter-reset:quote}
.quote-steps li{counter-increment:quote;border-top:1px solid var(--line);padding:20px 0 20px 37px;position:relative}
.quote-steps li:before{content:counter(quote);position:absolute;left:0;top:21px;color:#736e64;font-size:14px}
.quote-steps strong{font-size:16px;line-height:1.5;display:block}
.quote-steps p{font-size:14px;line-height:1.75;margin-top:8px}
.quote-direct{background:#f2efe9;border-radius:10px;padding:25px;margin-top:14px}
.quote-direct>p{font-size:14px;color:#444}
.quote-direct>a{display:block;font-size:28px;letter-spacing:-.025em;font-weight:700;margin-block:8px}
.quote-direct>span{font-size:12px;color:#666}
.quote-form{background:#f7f5f1;border:1px solid #e0dcd4;border-radius:16px;padding:35px;min-width:0}
.quote-form>.eyebrow{margin-bottom:17px}
.quote-form>h2{font-size:33px;line-height:1.15;scroll-margin-top:16px}
.quote-form>#quote-intro{font-size:14px;line-height:1.75;margin-block:17px 25px;color:#555}
.quote-form label{display:block;font-size:14px;font-weight:700;color:#222;margin:20px 0 0}
.quote-form fieldset>label:first-of-type{margin-top:0}
.quote-form :is(input,select,textarea){font-size:16px;font-weight:400;padding:12px;min-height:49px;border-radius:5px;border-color:#bbb;background:white;margin-top:8px}
.quote-form textarea{line-height:1.65}
.quote-form input::placeholder,.quote-form textarea::placeholder{font-size:14px;color:#666}
.quote-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.quote-row>div{min-width:0}
.field-help{font-size:12px;line-height:1.75;color:#626262;margin-top:10px}
.quote-details{border-top:1px solid #d6d0c6;margin-top:23px}
.quote-details+.quote-details{margin-top:0;border-bottom:1px solid #d6d0c6}
.quote-details summary{padding:19px 0;font-size:14px;line-height:1.5;font-weight:700;cursor:pointer;min-height:55px}
.quote-details summary>span{font-size:11px;font-weight:400;color:#666;margin-left:6px}
.details-content{padding-bottom:23px}
.quote-services{border:0;margin:22px 0 0;padding:0;min-width:0}
.quote-services legend{font-size:14px;font-weight:700;padding:0;margin-bottom:5px}
.quote-services label{display:flex;align-items:center;gap:10px;font-weight:400;margin:0;min-height:44px}
.quote-services input[type=checkbox]{width:18px;height:18px;min-height:18px;margin:0;accent-color:#222;flex:none}
.quote-submit{display:flex;flex-direction:column;align-items:stretch;gap:13px;margin-top:25px}
.quote-submit>span{font-size:12px;color:#666}
.quote-submit .button{white-space:normal;font-size:15px;min-height:53px}
.quote-privacy{font-size:12px;line-height:1.75;color:#5a5a5a;margin-top:18px}
.quote-privacy a,.field-help a{text-decoration:underline;text-underline-offset:3px}
.form-errors{padding:18px 20px;background:#fff4ef;border:1px solid #a55739;margin:22px 0;border-radius:7px;color:#6d2c15}
.form-errors h3{font-size:18px;line-height:1.4}
.form-errors ul{padding-left:20px;font-size:13px;line-height:1.7;margin-bottom:0}
.form-errors li+li{margin-top:7px}
.form-errors a{text-decoration:underline;text-underline-offset:3px}
.quote-form [aria-invalid=true]{border:2px solid #a55739}
.quote-result{border-top:2px solid #34302a;margin-top:30px;padding-top:26px;scroll-margin-top:100px}
.quote-result .eyebrow{margin-bottom:12px}
.quote-result h3{font-size:25px;line-height:1.3}
.quote-result>p:not(.eyebrow){font-size:13px;line-height:1.8;margin-top:13px}
.quote-result details{margin-top:18px;font-size:13px}
.quote-result summary{font-weight:700;cursor:pointer;min-height:44px;padding-block:11px}
.quote-result pre{font:13px/1.7 'DM Sans',Arial,sans-serif;white-space:pre-wrap;overflow-wrap:anywhere;background:#fff;border:1px solid var(--line);padding:18px;border-radius:5px}
.quote-send-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.quote-send-actions .button{font-size:13px;padding-inline:14px;white-space:normal}
.quote-result button.text-link{border:0;border-bottom:1px solid #666;background:transparent;padding:11px 0;margin-top:15px;min-height:44px;cursor:pointer}
.quote-faq{display:grid;grid-template-columns:.8fr 1.2fr;gap:65px;margin-top:30px;border-top:1px solid var(--line)}
.quote-faq h2{font-size:35px}
.quote-related{padding-block:10px 60px}
.quote-related h2{font-size:26px}
.quote-related>div{display:flex;gap:12px 25px;flex-wrap:wrap;margin-top:23px}
.quote-related a{font-size:14px;text-decoration:underline;text-underline-offset:5px;min-height:36px}
/* A single column prevents the narrow form and joined headline found on tablets. */
@media(min-width:701px) and (max-width:1000px){.classic-hero{background:#f6f4f0}.classic-hero-grid{grid-template-columns:minmax(0,1fr);max-width:720px;gap:32px}.classic-hero-copy{padding-top:0}.classic-hero-copy h1{font-size:46px}.classic-hero-copy h1 br:first-child{display:block}.classic-hero-copy>p:not(.eyebrow){max-width:640px;font-size:17px}.classic-hero-image,.classic-hero:after{height:760px}.classic-hero:after{background:linear-gradient(180deg,#0009,#0009)}.classic-hero .request-form{width:100%;max-width:650px;justify-self:center}.classic-hero-locations{margin-top:22px}.classic-hero-grid>.request-form{padding:34px}.classic-hero .form-end{flex-direction:row;align-items:center}.classic-hero .form-end .button{width:auto}}
@media(max-width:1200px){.nav-shell nav{gap:13px;font-size:11px}.quote-layout,.quote-faq{gap:38px}.quote-form{padding:29px}}
@media(max-width:1000px){.quote-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:30px}.quote-form{padding:25px}.quote-form>h2{font-size:28px}.quote-row{grid-template-columns:1fr;gap:0}.quote-context h2{font-size:28px}.quote-heading h1{font-size:46px}.quote-send-actions{grid-template-columns:1fr}}
@media(max-width:700px){html{scroll-padding-top:86px;scroll-padding-bottom:85px}.nav-shell nav{font-size:16px}.classic-hero .request-form>h2{font-size:31px}.classic-hero .request-form{padding:25px 22px}.classic-hero .request-form>p{font-size:14px}.request-optional>summary{font-size:13px}.classic-hero .form-end .button{min-height:50px}.classic-hero .request-form .form-privacy{font-size:12px}.quote-heading{padding-block:25px 30px}.quote-heading .breadcrumb{margin-bottom:28px}.quote-heading .eyebrow{font-size:10px;line-height:1.7}.quote-heading h1{font-size:37px}.quote-heading .lead{font-size:15px;margin-top:20px}.quote-layout{display:flex;flex-direction:column;gap:36px}.quote-form{order:0;padding:25px 21px;width:100%}.quote-context{order:1;width:100%}.quote-form>h2{font-size:29px}.quote-form>#quote-intro{font-size:14px}.quote-details summary{font-size:14px}.quote-details summary>span{display:block;margin-left:0;margin-top:4px}.quote-result h3{font-size:24px}.quote-result{scroll-margin-top:90px}.quote-context img{aspect-ratio:1.5}.quote-context-copy{padding-top:27px}.quote-direct>a{font-size:27px}.quote-faq{grid-template-columns:1fr;gap:25px;padding-block:35px;margin-top:30px}.quote-faq h2{font-size:32px}.quote-related{padding-bottom:45px}.quote-related>div{flex-direction:column;gap:8px}.quote-related a{line-height:1.7}.quote-related h2{font-size:27px}.quote-form :is(input,textarea,select){scroll-margin-block:100px 100px}.mobile-contact{padding-bottom:env(safe-area-inset-bottom)}.page-quote .footer-bottom{padding-bottom:95px}}
@media(max-width:360px){.quote-form{padding:23px 18px}.quote-heading h1{font-size:33px}.quote-form>h2{font-size:26px}.quote-submit .button{font-size:14px;padding-inline:12px}}
