:root{--ink:#173044;--deep:#10283d;--blue:#2078b9;--blue-dark:#155982;--green:#0d8159;--green-bright:#28b578;--light:#f4f8f9;--line:#dbe6e8;--muted:#546674;--white:#fff;--shadow:0 18px 48px rgba(15,46,66,.1)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:110px}body{margin:0;color:var(--ink);font:16px/1.65 system-ui,-apple-system,'Segoe UI',Arial,sans-serif;background:#fff}img{max-width:100%;height:auto}a{color:var(--blue-dark);text-decoration-thickness:1px;text-underline-offset:3px}a:hover{color:var(--green)}button,input,textarea,select{font:inherit}button{cursor:pointer}h1,h2,h3{font-family:inherit;line-height:1.13;letter-spacing:-.035em;color:var(--deep);margin:0 0 .68em;font-weight:780}h1{font-size:clamp(2.45rem,5.4vw,4.65rem)}h2{font-size:clamp(1.95rem,3.5vw,3.2rem)}h3{font-size:1.24rem;letter-spacing:-.016em}p{margin:0 0 1.15em}ul{margin:0 0 1.2em;padding-left:1.3em}strong{font-weight:730}.wrap{width:min(1180px,calc(100% - 42px));margin:auto}.skip{position:absolute;z-index:40;top:-120px;left:12px;background:#fff;padding:12px 16px;border:2px solid var(--blue)}.skip:focus{top:8px}.eyebrow{text-transform:uppercase;font-size:.75rem;font-weight:800;letter-spacing:.14em;color:var(--green);margin-bottom:12px;line-height:1.5}.muted{color:var(--muted)}.small{font-size:.89rem;color:var(--muted)}.kicker{font-size:1.15rem;color:var(--muted);max-width:690px}.topbar{background:var(--deep);color:#eff8ff;font-size:.78rem;letter-spacing:.015em}.topbar .wrap{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:7px 0}.topbar a{color:#fff;font-weight:750;white-space:nowrap}.site-header{background:#fff;box-shadow:0 4px 22px rgba(12,40,62,.07);position:sticky;top:0;z-index:30}.nav-row{display:flex;align-items:center;justify-content:space-between;gap:26px;min-height:90px}.brand{display:block;flex:0 0 auto}.brand img{display:block;width:192px;height:auto}.nav-links{display:flex;gap:clamp(9px,1.5vw,24px);align-items:center}.nav-links a:not(.btn){color:var(--ink);font-size:.86rem;font-weight:680;text-decoration:none;white-space:nowrap}.nav-links a:not(.btn):hover,.nav-links a[aria-current='page']{color:var(--green);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:7px}.menu-btn{display:none;border:1px solid var(--line);background:#fff;padding:10px 14px;border-radius:9px;color:var(--ink);font-weight:760}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 21px;border-radius:8px;font-weight:780;font-size:.95rem;text-decoration:none;border:2px solid transparent;line-height:1.25;transition:background .15s ease,transform .15s ease,box-shadow .15s ease;white-space:normal;text-align:center}.btn:hover{transform:translateY(-1px);text-decoration:none}.btn-green{background:var(--green);color:#fff}.btn-green:hover{background:#076c49;color:#fff;box-shadow:0 8px 22px rgba(13,129,89,.22)}.btn-white{background:#fff;color:var(--deep)}.btn-white:hover{background:#eaf5fa;color:var(--deep)}.btn-blue{background:var(--blue-dark);color:white}.btn-blue:hover{background:var(--deep);color:#fff}.btn-outline{background:transparent;color:var(--blue-dark);border-color:var(--blue-dark)}.btn-outline:hover{background:#f0faf6;color:var(--deep)}.btn-outline-white{border-color:#fff;color:#fff;background:transparent}.btn-outline-white:hover{color:var(--deep);background:#fff}.btn-sm{font-size:.82rem;padding:10px 14px}.actions{display:flex;gap:12px;flex-wrap:wrap}.hero{position:relative;min-height:640px;display:flex;align-items:center;background:var(--deep);overflow:hidden}.hero-media{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 45%;filter:saturate(.96)}.hero:before{position:absolute;z-index:1;content:'';inset:0;background:linear-gradient(90deg,rgba(9,30,47,.95) 0%,rgba(9,30,47,.87) 43%,rgba(9,30,47,.39) 76%,rgba(9,30,47,.13) 100%)}.hero .wrap{position:relative;z-index:2}.hero-content{max-width:675px;padding:75px 0 86px}.hero .eyebrow{color:#abf8cc}.hero h1{color:white;margin-bottom:16px}.hero p{color:#edf5fa;font-size:1.19rem;max-width:570px}.hero .micro{font-size:.85rem;color:#e1f0e9;margin-top:19px}.proofstrip{border-bottom:1px solid var(--line);background:#f5f9f9}.proofstrip .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;padding:16px 0}.proofstrip span{text-align:center;font-size:.89rem;font-weight:735;color:var(--ink)}.proofstrip svg{height:18px;width:18px;vertical-align:-4px;color:var(--green)}.section{padding:84px 0}.section.alt{background:var(--light)}.section.slim{padding:54px 0}.section-top{max-width:755px;margin:0 auto 38px;text-align:center}.section-top p{font-size:1.05rem;color:var(--muted)}.section-top h2{margin-bottom:12px}.grid{display:grid;gap:20px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:white;border:1px solid var(--line);border-radius:14px;overflow:hidden;box-shadow:0 10px 35px rgba(10,42,60,.05)}.card img.cover{width:100%;height:225px;object-fit:cover;display:block}.card .pad{padding:23px}.card .pad p:last-child{margin-bottom:0}.card h3{margin-bottom:10px}.textlink{font-weight:780;text-decoration:none}.textlink:hover{text-decoration:underline}.split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(28px,5vw,84px);align-items:center}.split.reverse .split-media{order:2}.split .split-media{width:100%;height:430px;object-fit:cover;border-radius:16px;box-shadow:var(--shadow)}.check-list{padding:0;list-style:none;display:grid;gap:12px}.check-list li{position:relative;padding-left:30px}.check-list li:before{content:'✓';position:absolute;left:0;top:0;color:var(--green);font-weight:800}.badges{display:flex;align-items:center;justify-content:center;gap:clamp(16px,4vw,48px);flex-wrap:wrap}.badge-brand{height:85px;max-width:200px;object-fit:contain;display:block}.badges .ct-badge{max-width:128px;height:95px}.badges .oc-badge{max-width:175px;height:64px}.badges .tamko-badge{height:98px;max-width:130px}.badges .gaf-badge{max-width:195px}.inset-box{border-radius:16px;background:#eef6f8;padding:25px}.guarantee{background:#123c56;color:#fff}.guarantee h2,.guarantee h3{color:#fff}.guarantee p{color:#e1eefa}.guarantee .eyebrow{color:#9cf0c1}.guarantee strong{color:#b0ffc8}.review{padding:29px;border-radius:15px;background:white;border:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between;min-height:225px}.review blockquote{font-size:1rem;margin:0 0 22px;color:var(--ink);line-height:1.6}.review .name{font-size:.9rem;font-weight:780;color:var(--blue-dark)}.review .star{color:#b77b18;letter-spacing:.12em;font-size:1.08rem}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.photo-card{margin:0;position:relative;overflow:hidden;border-radius:13px;background:#dde8ee}.photo-card img{display:block;width:100%;height:248px;object-fit:cover;transition:transform .3s}.photo-card:hover img{transform:scale(1.035)}.photo-card figcaption{padding:11px 14px;font-weight:670;background:#fff;border:1px solid var(--line);border-top:0;color:var(--ink);font-size:.89rem}.flow{counter-reset:step;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.step{padding:28px;border-radius:15px;background:#f4f9fa;border:1px solid var(--line)}.step .stepnum{display:inline-grid;place-items:center;border-radius:50%;width:48px;height:48px;background:#d5eee2;color:#085838;font-weight:850;margin-bottom:16px}.faqs{max-width:880px;margin:0 auto}.faqs details{border-bottom:1px solid var(--line);padding:17px 0}.faqs summary{cursor:pointer;font-weight:780;color:var(--deep);font-size:1.04rem}.faqs p{margin:13px 0 0;color:var(--muted)}.tags{display:flex;flex-wrap:wrap;gap:9px}.tags a,.tags span{padding:8px 13px;border:1px solid #d6e7e7;border-radius:999px;background:#fff;color:var(--blue-dark);font-size:.87rem;text-decoration:none;font-weight:670}.tags a:hover{background:#e8f4f8}.callout{border-left:4px solid var(--green);padding:15px 21px;background:#eef8f3;border-radius:0 9px 9px 0}.cta-band{background:var(--deep);color:#fff;text-align:center;padding:70px 0}.cta-band h2{color:#fff}.cta-band p{color:#d8e7ef}.cta-band .actions{justify-content:center}.page-hero{background:#e9f3f7;padding:76px 0 70px;position:relative;overflow:hidden}.page-hero .wrap{position:relative;z-index:2}.page-hero h1{max-width:920px}.page-hero p{max-width:750px;font-size:1.1rem}.page-hero.with-image{background:#0e2e45;color:white}.page-hero.with-image h1{color:white}.page-hero.with-image p{color:#eaf5fa}.page-hero.with-image:before{position:absolute;z-index:1;content:'';inset:0;background:linear-gradient(90deg,rgba(9,33,52,.96),rgba(9,33,52,.77),rgba(9,33,52,.28))}.page-hero.with-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.form-shell{background:white;border:1px solid var(--line);padding:30px;border-radius:16px;box-shadow:var(--shadow)}.lead-form .field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.lead-form label{font-size:.89rem;font-weight:780;color:var(--deep)}.lead-form input,.lead-form textarea,.lead-form select{width:100%;background:#fff;border:1px solid #9fb7c3;border-radius:8px;padding:12px 13px;color:#163047;min-height:48px}.lead-form textarea{min-height:115px;resize:vertical}.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{outline:3px solid rgba(34,120,185,.3);border-color:var(--blue)}.lead-form .form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lead-form .note{color:var(--muted);font-size:.8rem;margin-top:10px}.lead-form .feedback{padding:13px;border:1px solid #bed7cb;border-radius:9px;margin:12px 0;background:#eef9f2;color:#125a3f}.lead-form .feedback[hidden]{display:none}.lead-form .feedback.error{border-color:#e1a6a6;background:#fff4f3;color:#802927}.lead-form button:disabled{opacity:.7;cursor:wait}.form-shell .eyebrow{margin-bottom:8px}.form-shell h3{font-size:1.6rem;margin-bottom:8px}.hp-field{position:absolute!important;left:-200vw!important;opacity:0!important;width:1px!important;height:1px!important;overflow:hidden!important}.form-inline{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:start}.form-inline h2{margin-top:2px}.contact-flex{display:grid;grid-template-columns:1.05fr .95fr;gap:48px}.contact-card{border:1px solid var(--line);border-radius:14px;padding:23px}.contact-card p{margin:9px 0}.finance-card{padding:28px;border:1px solid var(--line);border-radius:15px;background:#f4f9f7}.finance-big{font-size:clamp(2.4rem,4.8vw,4.1rem);font-weight:850;color:#0b7350;letter-spacing:-.04em;line-height:1.05;margin:10px 0}.site-footer{background:#0e283c;color:#e9f2f6;padding:60px 0 27px}.site-footer a{color:#e9f2f6;text-decoration:none}.site-footer a:hover{text-decoration:underline;color:#b6eec9}.site-footer .footer-logo{background:#fff;padding:9px;border-radius:9px;width:210px}.footergrid{display:grid;grid-template-columns:1.5fr .9fr 1.15fr;gap:50px}.footergrid h3{color:white}.footergrid a{display:block;margin-bottom:8px}.footnote{font-size:.78rem;color:#b8cbd5;border-top:1px solid #36556a;margin-top:38px;padding-top:21px;line-height:1.7}.footerlinks{display:flex;flex-wrap:wrap;gap:16px;margin-top:12px}.mobile-cta{display:none}body:has(.mobile-cta){}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #de9e37;outline-offset:3px}.iframe-shell{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#f2f8fa}.iframe-shell iframe{border:0;width:100%;height:750px;display:block}.quote-fallback{padding:18px;text-align:center;background:#f5f9fa}.mini-photo{width:100%;height:230px;object-fit:cover;border-radius:14px}.breadcrumbs{font-size:.82rem;margin-bottom:21px;color:var(--muted)}.breadcrumbs a{color:var(--blue-dark)}
@media(max-width:1050px){.nav-row{min-height:78px}.brand img{width:172px}.menu-btn{display:block}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;flex-direction:column;align-items:stretch;gap:0;padding:15px 24px 23px;border-top:1px solid var(--line);box-shadow:0 15px 25px rgba(15,46,66,.15)}.nav-links.open{display:flex}.nav-links a:not(.btn){padding:13px 7px;border-bottom:1px solid var(--line);font-size:1rem}.nav-links .btn{margin-top:15px}.hero{min-height:570px}.grid.four{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){body{font-size:15.5px}.wrap{width:min(100% - 30px,1180px)}.topbar span:first-child{font-size:.72rem}.topbar a{font-size:.76rem}.hero{min-height:565px}.hero:before{background:linear-gradient(90deg,rgba(7,28,45,.92),rgba(7,28,45,.72))}.hero-content{padding:75px 0 65px}.hero h1{font-size:clamp(2.65rem,10vw,4rem)}.hero p{font-size:1.05rem}.proofstrip .wrap{grid-template-columns:repeat(2,1fr)}.proofstrip span{font-size:.77rem}.section{padding:62px 0}.section.slim{padding:45px 0}.split,.form-inline,.contact-flex{grid-template-columns:1fr;gap:30px}.split.reverse .split-media{order:0}.split .split-media{height:330px}.grid.three,.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.two{grid-template-columns:1fr}.flow{grid-template-columns:1fr}.footergrid{grid-template-columns:1fr 1fr;gap:28px}.footergrid>div:first-child{grid-column:span 2}.form-shell{padding:22px}.mobile-cta{position:fixed;z-index:29;display:grid;grid-template-columns:1fr 1fr;gap:8px;bottom:0;left:0;right:0;background:#fff;padding:10px 12px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--line);box-shadow:0 -8px 30px rgba(0,0,0,.09)}.mobile-cta .btn{padding:10px 7px;font-size:.78rem}.site-footer{padding-bottom:95px}.page-hero{padding:56px 0}.iframe-shell iframe{height:630px}}
@media(max-width:480px){.topbar .wrap{justify-content:center}.topbar span:first-child{display:none}.brand img{width:158px}.nav-row{min-height:72px}.grid.four,.grid.three,.gallery{grid-template-columns:1fr}.grid.four .card img.cover{height:220px}.grid.three .card img.cover{height:210px}.gallery .photo-card img{height:230px}.lead-form .form-row{grid-template-columns:1fr;gap:0}.actions>.btn{width:100%}.review{min-height:0}.page-hero h1{font-size:clamp(2.25rem,10vw,3rem)}.badge-brand{max-width:125px;max-height:80px}.badges{gap:20px}.hero-content{padding:56px 0 59px}.hero .micro{font-size:.74rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:0.01ms!important;animation-duration:0.01ms!important}}

/* Roofle quick-access tab: compact desktop entry, existing mobile action bar */
.roofle-edge-tab{position:fixed;right:0;top:52%;transform:translateY(-50%);z-index:28;display:flex;align-items:center;justify-content:center;gap:10px;width:49px;min-height:188px;padding:16px 11px;color:white;background:#126da6;border:2px solid #fff;border-right:0;border-radius:12px 0 0 12px;box-shadow:-4px 7px 20px rgba(13,40,60,.24);font-weight:800;font-size:14px;text-decoration:none;writing-mode:vertical-rl;transform-origin:center;letter-spacing:.015em;transition:width .15s ease,background .15s ease}
.roofle-edge-tab:hover{width:56px;background:#0d8258;color:#fff;text-decoration:none}
.roofle-edge-tab:focus-visible{outline:3px solid #fbbf24;outline-offset:3px}
.roofle-edge-tab .roofle-tab-icon{font-size:19px;line-height:1}
@media(max-width:760px){.roofle-edge-tab{display:none}}
@media print{.roofle-edge-tab,.mobile-cta{display:none!important}}

/* Original long-form local SEO pages; lightweight, accessible and responsive. */
.reading{max-width:880px;}.reading p{font-size:1.075rem;line-height:1.8;}.reading a{font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;}
.resource-item{display:flex;flex-direction:column;gap:7px;padding:21px;border:1px solid var(--line);border-radius:13px;background:#fff;text-decoration:none;color:var(--ink);}
.resource-item strong{color:var(--blue-dark);font-size:1.05rem;}.resource-item span{color:var(--muted);font-size:.9rem;line-height:1.4;}.resource-item:hover{background:#edf6f7;border-color:#74bbc0;}
@media(max-width:760px){.resource-grid{grid-template-columns:1fr 1fr}.reading p{font-size:1rem;}}
@media(max-width:480px){.resource-grid{grid-template-columns:1fr;}}
