/* Scoped to imported Roof Edge Elementor templates and their editor canvas. */
:root{--re-black:#0a0b0f;--re-ink:#0e1727;--re-navy:#142236;--re-red:#e32537;--re-white:#fff;--re-mute:#b9c2d0}
.re-section{position:relative;width:100%!important;max-width:none!important; margin:0!important;box-sizing:border-box}
.re-section .elementor-container{max-width:1240px!important;width:calc(100% - 64px)!important;margin:0 auto!important;display:flex;align-items:stretch}
.re-section .elementor-column,.re-section .elementor-widget-wrap{min-width:0!important;box-sizing:border-box}
.re-section .elementor-widget:not(:last-child){margin-bottom:12px}
.re-section h1,.re-section h2,.re-section h3{font-family:Inter,'Arial Black',Arial,sans-serif;font-weight:900;letter-spacing:-.045em;line-height:1.05;margin:0}
.re-section p{font-family:Inter,Arial,sans-serif;line-height:1.65;margin:0}
.re-section .elementor-button{font-family:Inter,Arial,sans-serif;letter-spacing:.05em;font-size:12px;font-weight:850;text-transform:uppercase;background:var(--re-red);color:#fff!important;border-radius:4px;padding:17px 23px;transition:background .2s,transform .2s;text-align:center;white-space:normal}
.re-section .elementor-button:hover{background:#ae1020;transform:translateY(-1px)}
.re-kicker p,.re-eyebrow p{color:var(--re-red);letter-spacing:.16em;text-transform:uppercase;font-size:12px;font-weight:900}
.re-hero-title h1{color:white;font-size:clamp(44px,5.6vw,82px);max-width:740px}
.re-hero-title h1 span,.re-section-title h2 span{color:var(--re-red)}
.re-lead p{color:#dce3ef;font-size:clamp(16px,1.4vw,19px);max-width:680px}
.re-btn-outline .elementor-button{background:transparent!important;border:1px solid #bdc9db;color:#fff!important}
.re-btn-outline .elementor-button:hover{border-color:#fff}
/* Compact persistent header with Elementor-native editable link widgets */
.re-header{position:sticky!important;top:0;z-index:9998;background:var(--re-black);box-shadow:0 3px 22px #0007;border-bottom:1px solid #ffffff17}
.admin-bar .re-header{top:32px}
.re-header .elementor-container{min-height:82px;align-items:center}
.re-logo-col{width:20%!important;flex:0 0 20%!important}
.re-logo img{max-height:61px!important;width:auto!important;max-width:180px!important;object-fit:contain}
.re-nav-col{width:63%!important;flex:1 1 auto!important}
.re-nav-col>.elementor-widget-wrap{display:flex!important;align-items:center;justify-content:center;gap:5px;flex-wrap:nowrap}
.re-nav-col .re-navlink{margin:0!important;flex:0 1 auto;max-width:max-content}
.re-nav-col .re-navlink .elementor-button{font-size:11px!important;letter-spacing:.025em!important;color:#f5f7fc!important;background:transparent!important;padding:12px 9px!important;border-radius:0}
.re-nav-col .re-navlink .elementor-button:hover{color:#ff5362!important;transform:none}
.re-head-action{width:17%!important;flex:0 0 17%!important}
.re-head-action>.elementor-widget-wrap{display:flex!important;justify-content:flex-end;align-items:center}
.re-header-cta .elementor-button{white-space:nowrap}
.re-toggle-widget{display:none}
.re-hero{background:radial-gradient(circle at 72% 37%,#2a3651 0%,transparent 45%),linear-gradient(120deg,#0a0b0f 0%,#101b2e 100%);padding:100px 0 94px;overflow:hidden;color:#fff}
.re-hero:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(140deg,transparent,transparent 45px,#ffffff06 46px);pointer-events:none}
.re-hero>.elementor-container{gap:56px;align-items:center!important}
.re-hero .re-left{width:55%!important;flex:0 0 55%!important}
.re-hero .re-right{width:45%!important;flex:1 1 45%!important}
.re-hero .re-right img{width:100%!important;max-width:none!important;aspect-ratio:5/4;object-fit:cover;border-radius:12px;box-shadow:22px 24px 0 #e325372a}
.re-hero .re-left>.elementor-widget-wrap{display:flex;flex-wrap:wrap;align-content:center;align-items:center;gap:10px}
.re-hero .re-left>.elementor-widget-wrap>.re-hero-title,.re-hero .re-left>.elementor-widget-wrap>.re-lead,.re-hero .re-left>.elementor-widget-wrap>.re-kicker{width:100%;flex:0 0 100%}
.re-hero .re-left .re-btn,.re-hero .re-left .re-btn-outline{margin:5px 0 0}
.re-intro{padding:85px 0 45px;background:#fff}
.re-intro>.elementor-container>.elementor-column>.elementor-widget-wrap{max-width:930px;margin:auto;text-align:center}
.re-section-title h2{color:var(--re-ink);font-size:clamp(35px,4vw,59px);line-height:1.04}
.re-copy p{color:#38465c;font-size:17px}
.re-card-row{background:#fff;padding:20px 0 27px}
.re-card-row>.elementor-container{gap:22px}
.re-card-row .re-card-col{background:#f4f6f9;border-top:4px solid var(--re-red);padding:32px 30px 35px;border-radius:5px;box-shadow:0 10px 30px #13203a10;flex:1 1 0!important;width:0!important}
.re-card-row .re-card-title h3{color:#101b2c;font-size:clamp(22px,2vw,29px);margin:7px 0 5px}
.re-card-row .re-card-text p{color:#46526a;font-size:15px}
.re-card-row .re-inline .elementor-button{background:transparent!important;color:#d42133!important;padding:8px 0!important;text-align:left;font-size:12px}
.re-story,.re-contact-panel{background:#f4f6fa;padding:100px 0}
.re-story>.elementor-container,.re-contact-panel>.elementor-container{gap:66px;align-items:center}
.re-story .re-left,.re-story .re-right,.re-contact-panel .re-left,.re-contact-panel .re-right{width:50%!important;flex:1 1 50%!important}
.re-story .re-photo img{width:100%;border-radius:10px;aspect-ratio:5/4;object-fit:cover}
.re-small-badge img,.re-badge img{width:170px;max-width:100%;height:auto}
.re-small-badge img{width:95px}
.re-feature-video{background:#111d30;padding:95px 0;color:white;text-align:center}
.re-feature-video .re-section-title h2{color:white}
.re-feature-video .re-video{max-width:960px;width:100%;margin:26px auto}
.re-feature-video .re-video iframe,.re-feature-video video{width:100%;aspect-ratio:16/9}
.re-caption p{color:#acb7c6}
.re-reviews{padding:90px 0;background:#f1f5f9}
.re-reviews .re-testimonial{background:white;border-left:4px solid var(--re-red);padding:22px 30px;margin:15px 0;max-width:960px}
.re-reviews .re-testimonial p{font-size:19px;color:#182438;font-weight:600}
.re-quote{background:linear-gradient(110deg,#0b0d13,#16243c);padding:90px 0;color:white}
.re-quote>.elementor-container{gap:56px}
.re-quote .re-left,.re-quote .re-right{width:50%!important;flex:1 1 50%!important}
.re-quote .re-section-title h2,.re-contact-panel .re-section-title h2{color:inherit}
.re-quote .re-copy p{color:#d1d9e8}
.re-form{background:#fff;color:#141e2c;padding:25px;border-radius:8px;min-height:240px}
.re-form input:not([type=checkbox]),.re-form textarea,.re-form select{max-width:100%;width:100%;padding:10px;border:1px solid #d4dbe4;color:#141e2c!important;background:#fff!important}
.re-form button[type=submit],.re-form input[type=submit]{background:var(--re-red)!important;color:#fff!important;border:0;padding:13px 25px;border-radius:3px}
.re-gallery-row{padding:15px 0;background:#fff}
.re-gallery-row>.elementor-container{gap:23px}
.re-gallery-row .re-gallery-col{width:0!important;flex:1 1 0!important}
.re-gallery-image img{aspect-ratio:4/3;object-fit:cover;width:100%;border-radius:5px}
.re-gallery-link .elementor-button{background:transparent;color:#13223b!important;border:1px solid #d3d9e1;padding:12px}
.re-gallery-link .elementor-button:hover{color:#e32537!important}
.re-footer{background:#06080d;color:white;text-align:center;padding:68px 0 28px}
.re-footer>.elementor-container>.elementor-column>.elementor-widget-wrap{max-width:750px;margin:auto}
.re-footer-logo img{height:78px!important;width:auto;max-width:180px!important;object-fit:contain}
.re-footer-heading h3{font-size:clamp(24px,3vw,38px);color:white}
.re-foot-blurb p,.re-foot-note p{color:#c6cfdd;font-size:13px}
.re-foot-note a{color:#fff;text-decoration:underline}
.re-footer .re-btn .elementor-button{font-size:14px}
/* Easy to edit sections in both Elementor canvas and normal page */
.re-section .elementor-widget-wrap{align-content:center}
@media(max-width:1100px){.re-header .elementor-container{width:calc(100% - 34px)!important}.re-nav-col .re-navlink .elementor-button{font-size:10px!important;padding:8px 6px!important}.re-logo img{max-width:135px!important}.re-header-cta .elementor-button{font-size:10px!important;padding:12px!important}}
@media(max-width:900px){
.admin-bar .re-header{top:46px}
.re-section .elementor-container{width:calc(100% - 38px)!important}
.re-header .elementor-container{min-height:70px!important;display:flex!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:0!important;flex-wrap:nowrap!important}
.re-header .re-logo-col{flex:0 0 auto!important;width:115px!important}
.re-logo img{width:auto!important;max-width:112px!important;max-height:55px!important}
.re-header .re-head-action{flex:0 0 auto!important;width:auto!important;max-width:calc(100% - 120px)!important}
.re-head-action>.elementor-widget-wrap{display:flex!important;flex-wrap:nowrap!important;gap:7px}
.re-header-cta .elementor-button{padding:12px 13px!important;font-size:10px!important}
.re-toggle-widget{display:block!important;margin:0!important}
.re-menu-toggle{width:45px;height:42px;border:1px solid #687080;background:#141822;border-radius:4px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;cursor:pointer;position:relative;z-index:10005}
.re-menu-toggle span{height:2px;width:20px;background:white;display:block}
.re-header .re-nav-col{display:none!important;position:fixed!important;top:70px!important;left:0!important;right:0!important;width:100vw!important;height:calc(100dvh - 70px);max-height:calc(100dvh - 70px);background:#090b11!important;overflow-y:auto!important;z-index:10004;box-sizing:border-box;padding:25px 24px 55px!important}
.admin-bar .re-header .re-nav-col{top:116px!important;height:calc(100dvh - 116px)!important}
.re-header.re-menu-open .re-nav-col{display:block!important}
.re-nav-col>.elementor-widget-wrap{display:flex!important;flex-direction:column!important;align-items:stretch!important;justify-content:flex-start!important;gap:0!important;width:100%!important}
.re-nav-col .re-navlink{width:100%!important;max-width:none!important;display:block!important;flex:0 0 auto!important;border-bottom:1px solid #ffffff25}
.re-nav-col .re-navlink .elementor-button{width:100%!important;font-size:18px!important;text-align:left!important;padding:18px 9px!important}
.re-hero{padding:68px 0}
.re-hero>.elementor-container,.re-story>.elementor-container,.re-quote>.elementor-container,.re-contact-panel>.elementor-container{flex-direction:column!important;gap:32px!important}
.re-hero .re-left,.re-hero .re-right,.re-story .re-left,.re-story .re-right,.re-quote .re-left,.re-quote .re-right,.re-contact-panel .re-left,.re-contact-panel .re-right{width:100%!important;flex:0 0 auto!important;max-width:100%!important}
.re-card-row>.elementor-container{gap:16px}
.re-card-row .re-card-col{padding:25px 20px}
}
@media(max-width:640px){
.re-hero-title h1{font-size:clamp(36px,11vw,56px)}
.re-section-title h2{font-size:clamp(32px,9vw,47px)}
.re-card-row>.elementor-container,.re-gallery-row>.elementor-container{flex-direction:column!important;gap:15px!important}
.re-card-row .re-card-col,.re-gallery-row .re-gallery-col{width:100%!important;flex:0 0 auto!important}
.re-hero{padding:50px 0 60px}
.re-story,.re-contact-panel,.re-quote,.re-reviews,.re-feature-video{padding:65px 0}
.re-intro{padding:65px 0 35px}
.re-hero .re-right img{aspect-ratio:4/3}
.re-foot-blurb p{font-size:14px}
}
