/* Roofing v2 adapter. Load AFTER source, local and identity styles. */
body.roofing-v2{--ink:#172532;--muted:#475569;--line:#cbd5e1;--paper:#fff;--hero-shade:#f1f5f9;--theme-container:1184px;--theme-radius:12px;--theme-spacing:1;--font-body:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-heading:Georgia,"Times New Roman",serif;background:var(--paper);color:var(--ink);font-family:var(--font-body);padding-bottom:0}
body.roofing-v2[data-site=nevers]{--primary:#1e3a5f;--accent:#1e3a5f;--cta:#f97316;--cta-hover:#f97316;--cta-text:#111827}
body.roofing-v2[data-site=montlucon]{--primary:#9a3412;--accent:#9a3412;--cta:#1d4ed8;--cta-hover:#1d4ed8;--cta-text:#fff}
body.roofing-v2[data-site=chateauroux]{--primary:#166534;--accent:#166534;--cta:#b45309;--cta-hover:#b45309;--cta-text:#fff}
body.roofing-v2[data-site=moulins]{--primary:#155e75;--accent:#155e75;--cta:#f97316;--cta-hover:#f97316;--cta-text:#111827}
body.roofing-v2[data-site=bourges]{--primary:#7f1d3a;--accent:#7f1d3a;--cta:#fbbf24;--cta-hover:#fbbf24;--cta-text:#111827}
body.roofing-v2:is(.page-home,.page-inner) :is(h1,h2,h3){font-family:var(--font-heading);color:var(--primary);text-wrap:balance}
body.roofing-v2:is(.page-home,.page-inner) :is(p,figcaption,small){color:var(--muted)}
body.roofing-v2:is(.page-home,.page-inner) a:not(.btn){color:var(--primary)}
body.roofing-v2:is(.page-home,.page-inner) :is(.btn,.btn:visited,.btn:hover,.btn:active){background:var(--cta)!important;color:var(--cta-text)!important;border:1px solid var(--cta)!important;box-shadow:none;filter:none;transform:none;min-height:48px;border-radius:10px;white-space:normal}
body.roofing-v2 :is(a,button,select,summary):focus-visible{outline:3px solid var(--primary);outline-offset:4px}
body.roofing-v2 :is(.site-header,.brand,.roofing-figure,.roofing-home-composition,.home-hero,.section,.partner-form,.quote-panel,.site-footer)::before,body.roofing-v2 :is(.brand,.home-hero,.section,.partner-form,.quote-panel,.site-footer)::after{content:none!important;background-image:none;mask:none}
body.roofing-v2 :is(.image-brand,.comparison-brand,.home-icon-badge){display:none}
body.roofing-v2:is(.page-home,.page-inner) :is(header,main,footer){box-sizing:border-box}
body.roofing-v2:is(.page-home,.page-inner) main{width:min(100%,1232px);max-width:1232px;margin-inline:auto;padding:24px}
body.roofing-v2:is(.page-home,.page-inner) .site-header{width:min(100%,1232px);max-width:1232px;margin-inline:auto;padding:20px 24px;display:flex;flex-wrap:wrap;align-items:center;gap:20px;border-bottom:1px solid var(--line);background:#fff}
body.roofing-v2:is(.page-home,.page-inner) .site-header .brand{flex:1 1 220px;max-width:none;font-size:23px;margin:0}
body.roofing-v2:is(.page-home,.page-inner) .site-header nav{display:flex;flex:1 1 600px;flex-wrap:wrap;width:auto;gap:12px 20px;justify-content:flex-end;font-size:14px}
body.roofing-v2:is(.page-home,.page-inner) .site-header nav .btn{max-width:260px;padding:12px 16px;font-size:14px}
body.roofing-v2:is(.page-home,.page-inner) .menu-toggle{display:none}
body.roofing-v2:is(.page-home,.page-inner) .home-hero{position:relative;isolation:isolate;min-height:0;margin:0;padding:48px 0;background:#fff;color:var(--ink);border:0;overflow:visible}
body.roofing-v2:is(.page-home,.page-inner) .home-hero .hero-inner{width:100%;max-width:none;margin:0;padding:0;gap:34px}
body.roofing-v2:is(.page-home,.page-inner) .hero-copy{width:auto;max-width:none;margin:0;text-align:left;min-width:0}
body.roofing-v2:is(.page-home,.page-inner) .home-hero h1{font-size:clamp(34px,4.3vw,60px);line-height:1.12;color:var(--primary);margin:0 0 24px}
body.roofing-v2:is(.page-home,.page-inner) .hero-copy>p:not(.eyebrow){font-size:19px;color:var(--muted);margin-inline:0}
body.roofing-v2:is(.page-home,.page-inner) .home-hero .eyebrow{color:var(--primary)}
body.roofing-v2:is(.page-home,.page-inner) .hero-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:18px;margin:24px 0}
body.roofing-v2:is(.page-home,.page-inner) .home-section-links{display:flex;flex-wrap:wrap;gap:12px 24px;font-size:15px;margin:24px 0 0}
body.roofing-v2:is(.page-home,.page-inner) .section{width:100%;margin:64px 0;padding:0;background:transparent;border-radius:0}
body.roofing-v2:is(.page-home,.page-inner) .section-heading{max-width:760px;margin:0 0 28px;padding:0}
body.roofing-v2:is(.page-home,.page-inner) :is(.services-grid,.expertise-grid,.directory-grid,.quote-check-grid,.panorama-comparison,.steps-grid,.request-steps){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:24px 0;padding:0;list-style:none}
body.roofing-v2:is(.page-home,.page-inner) :is(.service-card,.expertise-card,.directory-card,.comparison-point,.quote-check-card,.step-card,.professional-roadmap-step,.request-steps>li,.quote-panel,.local-data-block,.partner-form){min-width:0;padding:24px;border:1px solid var(--line);border-radius:12px;box-shadow:none;background:#fff;color:var(--ink)}
body.roofing-v2:is(.page-home,.page-inner) :is(.service-card,.expertise-card,.directory-card){display:flex;flex-direction:column;gap:12px;text-decoration:none}
body.roofing-v2:is(.page-home,.page-inner) :is(.service-card,.expertise-card,.directory-card) :is(h3,p){margin:0}
body.roofing-v2:is(.page-home,.page-inner) :is(.service-card,.expertise-card,.directory-card)>.text-link{margin-top:auto;font-weight:650}
body.roofing-v2:is(.page-home,.page-inner) :is(.quote-check-heading,.comparison-point-heading,.step-heading){display:flex;gap:14px;align-items:baseline;margin:0 0 14px}
body.roofing-v2:is(.page-home,.page-inner) :is(.quote-check-number,.step-number){color:var(--primary);font:700 16px var(--font-body)}
body.roofing-v2:is(.page-home,.page-inner) :is(.quote-check-question,.comparison-question){padding:16px;border:1px solid var(--line);background:#f8fafc;color:var(--ink);border-radius:8px}
body.roofing-v2:is(.page-home,.page-inner) .comparison-question strong{display:block;color:var(--primary)}
body.roofing-v2:is(.page-home,.page-inner) .roofing-picture-group{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:24px 0}
body.roofing-v2:is(.page-home,.page-inner) .roofing-figure{position:static;min-width:0;max-width:100%;margin:0 0 20px;overflow:visible;background:none;border:0;border-radius:0}
body.roofing-v2:is(.page-home,.page-inner) .roofing-figure img{display:block;position:static;width:100%;height:auto;min-height:0;max-height:none;aspect-ratio:3/2;object-fit:cover;border-radius:10px}
body.roofing-v2:is(.page-home,.page-inner) .roofing-figure figcaption{position:static;display:block;margin:8px 0 0;padding:0;font:400 12px/1.5 var(--font-body);background:none;color:var(--muted);text-align:left}
body.roofing-v2:is(.page-home,.page-inner) .quote-context{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:32px;border:0;background:none;padding:0}
body.roofing-v2:is(.page-home,.page-inner) .quote-context .roofing-picture-group{grid-template-columns:1fr;margin:0}
body.roofing-v2:is(.page-home,.page-inner) .quote-panel{position:static;margin:0}
body.roofing-v2:is(.page-home,.page-inner) .quote-panel .affiliate-note{font-size:13px;color:var(--muted)}
body.roofing-v2:is(.page-home,.page-inner) .partner-form{margin:0;min-width:0}
body.roofing-v2:is(.page-home,.page-inner) .partner-form iframe{display:block;width:100%;max-width:100%;border:1px solid var(--line);background:#fff}
body.roofing-v2:is(.page-home,.page-inner) :is(button,input,select,textarea){font-family:var(--font-body)}
body.roofing-v2 .roofing-table-scroll{overflow-x:auto;max-width:100%;margin-block:24px}
body.roofing-v2 .roofing-table-scroll table{width:100%;border-collapse:collapse;text-align:left;font-size:15px}
body.roofing-v2 .roofing-table-scroll :is(th,td){padding:12px;border:1px solid var(--line);vertical-align:top}
/* Frame height intentionally remains under the root's validated message listener. */
body.roofing-v2:is(.page-home,.page-inner) .theme-inner-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:start;margin-top:32px}
body.roofing-v2:is(.page-home,.page-inner) .profile-details-main{min-width:0}
body.roofing-v2:is(.page-home,.page-inner) .article-narrow{max-width:820px;margin-inline:auto}
body.roofing-v2:is(.page-home,.page-inner) footer{background:#fff;color:var(--ink);border-top:1px solid var(--line);border-radius:0}
@media(max-width:800px){
 body.roofing-v2:is(.page-home,.page-inner) main{padding:20px}
 body.roofing-v2:is(.page-home,.page-inner) .site-header{padding:16px 20px;gap:12px}
 body.roofing-v2:is(.page-home,.page-inner) .site-header .brand{flex:1 1 180px;font-size:20px;max-width:calc(100% - 70px)}
 body.roofing-v2:is(.page-home,.page-inner) .menu-toggle{display:inline-flex;min-height:44px;border:1px solid var(--line);color:var(--primary);background:#fff;padding:10px}
 body.roofing-v2:is(.page-home,.page-inner) .site-header nav{display:none;flex:1 1 100%;width:100%}
 body.roofing-v2:is(.page-home,.page-inner) .site-header nav.is-open{display:flex;flex-direction:column;align-items:stretch}
 body.roofing-v2:is(.page-home,.page-inner) .site-header nav .btn{max-width:none}
 body.roofing-v2:is(.page-home,.page-inner) .home-hero{padding:28px 0}
 body.roofing-v2:is(.page-home,.page-inner) .section{margin:44px 0}
 body.roofing-v2:is(.page-home,.page-inner) :is(.services-grid,.expertise-grid,.directory-grid,.quote-check-grid,.panorama-comparison,.steps-grid,.request-steps,.theme-inner-layout,.quote-context){grid-template-columns:1fr;gap:24px}
 body.roofing-v2:is(.page-home,.page-inner) .partner-form{padding:20px 14px}
 body.roofing-v2:is(.page-home,.page-inner) .home-hero h1{font-size:clamp(32px,8vw,42px)}
}
@media(max-width:500px){body.roofing-v2:is(.page-home,.page-inner) .roofing-picture-group{grid-template-columns:1fr}}
/* Preserved Panorama centered hero, comparison grid and long roadmap. */
body.roofing-v2.roofing-panorama.page-home .home-hero .hero-inner{display:block}
body.roofing-v2.roofing-panorama.page-home .hero-copy{max-width:900px;margin:0 auto 32px;text-align:center}
body.roofing-v2.roofing-panorama.page-home .hero-copy>p{margin-inline:auto}
body.roofing-v2.roofing-panorama.page-home :is(.hero-actions,.home-section-links){justify-content:center}
body.roofing-v2.roofing-panorama.page-home .theme-hero-media{max-width:100%;margin:0}
body.roofing-v2.roofing-panorama.page-home .theme-hero-media img{aspect-ratio:2/1;max-height:580px}
body.roofing-v2.roofing-panorama.page-home .professional-roadmap{display:grid;gap:24px;list-style:none;margin:24px 0;padding:0}
body.roofing-v2.roofing-panorama.page-home .professional-roadmap-step{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:32px;align-items:center}
@media(max-width:800px){body.roofing-v2.roofing-panorama.page-home .professional-roadmap-step{grid-template-columns:1fr}}

/* Explicit layers preserve Panorama's photographic hero across inherited resets.
   The image fills the section; the copy and generated-image caption stay above it. */
body.roofing-v2.roofing-panorama.page-home main .home-hero.hero-with-background{position:relative;isolation:isolate;overflow:hidden;min-height:620px;padding:88px 40px 72px;border-radius:16px;background:var(--primary);display:grid;align-items:center}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-background{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0;z-index:0}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-background img{position:absolute;inset:0;width:100%;height:100%;max-height:none;aspect-ratio:auto;object-fit:cover;object-position:center;border-radius:0}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-background-shade{position:absolute;inset:0;z-index:1;background:linear-gradient(105deg,rgba(10,22,38,.84),rgba(10,22,38,.76))}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-inner{position:relative;z-index:2;width:100%;max-width:none}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-copy{max-width:880px;margin:0 auto;text-align:center}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background :is(h1,p,.eyebrow,a:not(.btn)){color:#fff}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background h1{max-width:800px;margin-inline:auto}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-background figcaption{position:absolute;z-index:3;inset:auto 20px 12px;margin:0;color:#fff;font-size:11px;text-align:center}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background :is(a,button):focus-visible{outline:3px solid #fff;outline-offset:5px}
@media(max-width:800px){
 body.roofing-v2.roofing-panorama.page-home main .home-hero.hero-with-background{min-height:600px;padding:48px 22px 64px;border-radius:12px}
 body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-actions{flex-direction:column;gap:20px}
 body.roofing-v2.roofing-panorama.page-home main .hero-with-background .home-section-links{gap:12px 18px}
 body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-background figcaption{inset:auto 12px 12px;font-size:10px;line-height:1.4}
}
/* Clear spacing left by the former two-column/standalone-photo source layout. */
body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-inner{min-height:0}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-copy{padding:0}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background h1{font-weight:700}
@media(max-width:800px){body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-copy>p:not(.eyebrow){font-size:17px;line-height:1.55}}
/* Keep the attribution above the shade, without lifting the photograph above it. */
body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-background{z-index:auto}
body.roofing-v2.roofing-panorama.page-home main .hero-with-background .hero-background img{z-index:0}
