
/* Release 12 - semantic, responsive visual system.
   Uniform blue bordered hero, accessible FAQs and RFQ wrappers.
   No new font downloads or image scripts. */
:root{--r12-blue:#132BFF;--r12-yellow:#FFF000;--r12-black:#111;--r12-ground:#f2f4fa}
*,*::before,*::after{box-sizing:border-box}
body{overflow-x:clip}
:where(main,article,section,aside,figure,form){min-width:0}
:where(main,article,section)[id]{scroll-margin-top:100px}
:where(a,button,input,textarea,select,summary):focus-visible{outline:3px solid #e3342f!important;outline-offset:3px}
:where(button,summary){cursor:pointer}
:where(img){max-width:100%}
/* The bordered residential-service hero is the single visual reference for every family */
.r12-hero-frame{
  width:100%;max-width:1160px;margin:0 auto 30px;
  background:var(--r12-blue)!important;color:#fff!important;
  border:3px solid var(--r12-black)!important;
  box-shadow:6px 6px 0 var(--r12-black)!important;
  padding:clamp(24px,3.2vw,48px)!important;
  display:grid!important;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr)!important;
  gap:clamp(24px,4vw,54px)!important;align-items:center!important;
  min-height:0!important;height:auto!important;overflow:visible!important;
}
.r12-hero-frame h1{font-family:"Arial Black",Arial,sans-serif!important;font-weight:900!important;letter-spacing:-.036em!important;
 font-size:clamp(2rem,4.2vw,4rem)!important;line-height:1.07!important;color:#fff!important;
 max-width:19ch;overflow-wrap:break-word!important;margin:12px 0 20px!important}
.r12-hero-frame :is(.lead,.r11-lead,.outer-hero-lead,.aag-local-lead,.company-intro,.r12-legal-lead){
 color:#fff!important;font-size:clamp(1rem,1.36vw,1.14rem)!important;line-height:1.64!important;max-width:62ch}
.r12-hero-frame :is(.r11-eyebrow,.outer-kicker,.eyebrow,.aag-kicker,.kicker){color:#fff000!important}
.r12-hero-frame :is(.hero-copy,.r11-hero-content,.aag-local-hero-copy){min-width:0;max-width:unset}
.r12-hero-frame :is(.hero-media,.r11-hero-media,.aag-local-hero-figure,.aag-outer-photo,.aag-company-hero-image,.r11-landscape){
 align-self:center;width:100%;min-width:0;margin:0;background:#fff;color:#111;
 border:3px solid #111;box-shadow:5px 5px 0 #111;overflow:hidden}
.r12-hero-frame figure img,.r12-hero-frame .hero-media img{
 display:block;width:100%;aspect-ratio:16/9;height:auto!important;object-fit:cover;object-position:center}
.r12-hero-frame figcaption{color:#444!important;background:#fff!important;font-size:11px!important;line-height:1.5!important;padding:8px 10px!important}
.r12-hero-frame .hero-media{border:0!important;background:transparent!important;box-shadow:none!important}
.r12-hero-frame .hero-media figure{width:100%;margin:0}
.r12-hero-frame .hero-actions,.r12-hero-frame .r11-actions,.r12-hero-frame .outer-hero-actions,.r12-hero-frame .aag-hero-actions{
 display:flex;flex-wrap:wrap;gap:12px;margin-top:22px;align-items:center}
.r12-hero-frame :is(.hero-actions,.r11-actions,.outer-hero-actions,.aag-hero-actions) a{
 min-height:45px;display:inline-flex;align-items:center;justify-content:center;
 border:2px solid #111;box-shadow:4px 4px 0 #111;padding:11px 16px;line-height:1.3}
.r12-hero-frame a:focus-visible{outline-color:#fff000!important}
.r12-hero-frame .outer-hero-aside{width:100%;min-width:0;display:grid;align-content:start;gap:12px}
.r12-hero-frame .outer-hero-aside>figure{width:100%}
.r12-hero-frame .outer-hero-aside>:not(figure){background:#fff;color:#111;padding:10px 12px;font-size:12px;line-height:1.45}
.r12-hero-frame .outer-hero-aside a{color:#132bff}
.r12-hero-frame .company-hero-grid{padding:0}
.r12-hero-frame :where(p,li,a,span,strong){overflow-wrap:break-word}
.r12-hero-shell{background:var(--r12-ground)!important;color:#111!important;border:0!important;padding:12px 0 30px!important;min-height:0!important}
.r12-hero-shell .outer-breadcrumb{color:#111!important;padding:12px 0 20px!important}
.r12-hero-shell .outer-breadcrumb a{color:#122bc0!important}
.outer-hero.r12-hero-shell .container{max-width:1160px;width:calc(100% - 32px);margin:auto}
.r12-hero-shell .outer-hero-grid{margin:0 auto}
.r12-hero-shell .outer-hero-grid>div:first-child{min-width:0}
.blue-wrap{background:var(--r12-ground)!important;border:0!important;padding:10px 0 50px!important}
.blue-wrap::after{display:none!important}
.blue-wrap .breadcrumbs,.blue-wrap .breadcrumbs :is(a,span,li){color:#111!important}
.blue-wrap .breadcrumbs{padding:10px 0 22px}
.blue-wrap .hero{margin-top:0}
.r12-hero-frame.hero{padding:clamp(24px,3.2vw,48px)!important}
.r12-hero-frame.hero.home-hero{margin-bottom:24px}
.company-hero{background:var(--r12-ground)!important;color:#111!important;border:0!important;padding:18px 0 38px!important}
.company-hero .company-breadcrumbs,.company-hero .company-breadcrumbs a{color:#111!important}
.company-hero .company-hero-grid.r12-hero-frame{max-width:1160px;margin:auto}
.company-hero-grid.r12-hero-frame :is(h1,p){color:#fff!important}
.company-hero-grid.r12-hero-frame>a{color:#fff}
.aag-local-hero.r12-hero-frame{max-width:1160px;margin:0 auto 30px}
.r11-hero.r12-hero-frame{margin-bottom:32px}
.r12-legal-hero{margin:18px auto 32px;max-width:1080px}
.r12-legal-copy{min-width:0}
.r12-legal-copy h1{color:#fff}
.legal-page>.r12-legal-hero{width:calc(100% - 32px)}
.legal-page .legal-body{max-width:1100px;margin:auto}
/* All RFQ sections share a single readable structure */
.r12-form-section{width:calc(100% - 28px)!important;max-width:900px!important;margin:44px auto 60px!important;
 scroll-margin-top:110px!important;min-width:0!important;align-self:center}
.r12-form-card{background:#fff!important;color:#111!important;border:3px solid #111!important;
 box-shadow:6px 6px 0 #111!important;overflow:visible!important;padding:0!important}
.r12-form-card .form-head,.r12-form-card .aag-local-enquiry-intro{
 display:block;background:#fff000!important;color:#111!important;padding:clamp(18px,3vw,30px)!important;
 border-bottom:3px solid #111!important;margin:0!important}
.r12-form-card :is(.form-head,.aag-local-enquiry-intro) :is(h2,p,span){color:#111!important}
.r12-form-card .aag-local-form{background:#fff!important;padding:clamp(18px,3vw,30px)!important;border:0!important}
.r12-form-card .aag-rfq{background:#fff!important;color:#111!important;padding:clamp(18px,3vw,30px)!important;
 width:100%!important;max-width:100%!important;margin:0!important;border:0!important;box-shadow:none!important}
.r12-form-card .aag-local-form .aag-rfq{padding:0!important}
.r12-form-card .step-indicator{background:#fff;margin:0 0 27px;display:flex;gap:8px}
.r12-form-card .step-indicator span{flex:1;min-width:0}
.r12-form-card .aag-rfq :is(input:not([type=checkbox]):not([type=hidden]),select,textarea){
 background:#fff!important;color:#111!important;min-width:0;width:100%;
 border:2px solid #111!important;border-radius:0!important;font-size:16px;max-width:100%}
.r12-form-card .aag-rfq :is(input,select,textarea):not([type=checkbox]):focus{outline:3px solid #132bff;outline-offset:2px}
.r12-form-card .aag-rfq button{min-height:44px}
.r12-form-card .aag-rfq fieldset[hidden]{display:none!important}
.r12-form-card .form-state{font-size:13px;line-height:1.5}
.r12-form-card .form-error:not(:empty){border:2px solid #9c2525;padding:12px;background:#fff3f3;color:#7d1414}
.r12-added-enquiry{padding:0}
.r12-added-enquiry .r12-form-card{max-width:900px;margin:0 auto}
.r12-form-section:has(.form-card){background:transparent!important}
.r12-form-section .form-card.r12-form-card{margin:0}
/* Buttons remain fillable in non-configured preview; only final secure submission is gated. */
.r12-form-card .form-next{cursor:pointer}
.r12-form-card button:disabled{cursor:not-allowed;opacity:.62}
/* semantic FAQ: native HTML details and summary, no JS / layout shift */
.r12-faq-item{border:2px solid #111!important;background:#fff!important;color:#111!important;
 margin:12px 0!important;box-shadow:3px 3px 0 #111}
.r12-faq-item summary{display:list-item;list-style-position:inside;font-size:16px!important;
 font-weight:800!important;line-height:1.45;padding:16px 18px!important}
.r12-faq-item[open] summary{background:#fff000;border-bottom:2px solid #111}
.r12-faq-item>:not(summary){margin:0;padding:12px 18px 18px;font-size:15px;line-height:1.65}
.r12-faq-item p+p{padding-top:0}
.r12-faq-item a{color:#122dc6}
.r12-outer-main-wrapper{display:block;width:100%}
.r12-outer-main-wrapper article.outer-main{min-width:0}
.r12-outer-main-wrapper .outer-content-bg{background:var(--r12-ground)}
.r12-outer-main-wrapper .outer-article-layout{align-items:stretch}
.r12-outer-main-wrapper .outer-sidebar{align-self:stretch}
.r12-outer-main-wrapper .outer-sidebar>div{position:sticky;top:94px}
:where(.content-panel,.outer-section,.r11-section,.aag-local-section,.company-body article){scroll-margin-top:95px}
@media(max-width:920px){
 .r12-hero-frame{grid-template-columns:minmax(0,1fr) minmax(0,.82fr)!important;gap:24px!important}
 .r12-hero-frame h1{font-size:clamp(31px,4.7vw,48px)!important}
}
@media(max-width:760px){
 .r12-hero-frame{grid-template-columns:minmax(0,1fr)!important;margin-bottom:24px!important;padding:22px!important;gap:20px!important}
 .r12-hero-frame h1{max-width:none;font-size:clamp(30px,8vw,43px)!important}
 .r12-hero-frame figure{max-width:100%!important}
 .r12-hero-frame .hero-actions,.r12-hero-frame .r11-actions,.r12-hero-frame .aag-hero-actions{display:grid;grid-template-columns:1fr}
 .r12-hero-frame .hero-actions a,.r12-hero-frame .r11-actions a{width:100%}
 .outer-hero.r12-hero-shell .container{width:calc(100% - 24px)}
 .r12-form-section{width:calc(100% - 24px)!important;margin:32px auto 45px!important}
 .r12-hero-frame .outer-hero-aside>:not(figure){padding:10px}
 .r12-outer-main-wrapper .outer-sidebar>div{position:static}
}
@media(max-width:400px){
 .r12-hero-frame{padding:18px!important;box-shadow:4px 4px 0 #111!important}
 .r12-form-card .form-head,.r12-form-card .aag-local-enquiry-intro,
 .r12-form-card .aag-rfq,.r12-form-card .aag-local-form{padding:16px!important}
 .r12-form-card .aag-local-form .aag-rfq{padding:0!important}
 .r12-form-card .step-indicator span{font-size:11px}
}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation:none!important}}

/* Keep right-hand hero visual focused on photography; preserve context below hero. */
.r12-context-note{width:calc(100% - 32px);max-width:1160px;margin:0 auto 28px;
 padding:18px 24px;border:2px solid #111;background:#fff;box-shadow:4px 4px 0 #111;color:#111}
.r12-context-note :is(h2,h3,strong){color:#111}
.r12-context-note :is(p,a){font-size:13px;line-height:1.65}
.r12-context-note a{color:#112fbf}
.r12-outer-context{max-width:1160px}
.r12-context-note .outer-label{color:#122bc4;font-size:11px;font-weight:900;letter-spacing:.06em}
