/* Service pages (/roofing/, /flat-roofs/, ...). Shares header, footer, buttons, gallery and quote styles with css/site.css */
.wrap{width:100%;max-width:1440px;margin:0 auto;padding:0 48px}
.sec{padding:120px 0}
.sp-eyebrow{display:block;font-size:13px;font-weight:600;letter-spacing:.16em;color:#5A5A5A;margin-bottom:18px}
.sp-h2{margin:0 0 24px;font-weight:700;font-stretch:85%;font-size:clamp(34px,4.4vw,68px);line-height:1;letter-spacing:-.02em}
.sp-h2 em{font-style:italic;color:#1268E6}
.sp-steps .sp-h2 em,.sp-hero em{color:#38A3FF}

/* Hero */
.sp-hero{position:relative;overflow:hidden;background:#06203F;color:#FFFFFF;min-height:clamp(560px,80vh,760px);display:flex}
.sp-hero__img{position:absolute;inset:-6% 0 0;width:100%;height:112%;object-fit:cover;opacity:1;will-change:transform}
.sp-hero__shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,32,63,.7) 0%,rgba(6,32,63,.42) 40%,rgba(6,32,63,.06) 75%,rgba(6,32,63,0) 100%),linear-gradient(180deg,rgba(6,32,63,0) 60%,rgba(6,32,63,.45) 100%)}
.sp-hero__inner{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;gap:22px;padding-top:120px;padding-bottom:72px}
.sp-crumbs{display:flex;flex-wrap:wrap;align-items:center;gap:10px;font-size:14px;color:#CCCCCC}
.sp-crumbs a{color:#FFFFFF;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.35)}
.sp-crumbs a:hover{border-bottom-color:#FFFFFF}
.sp-crumbs span[aria-current]{color:#FFFFFF;font-weight:600}
.sp-kicker{display:flex;align-items:center;gap:14px;margin:8px 0 0;font-size:12px;font-weight:600;letter-spacing:.14em;color:#E8E8E8}
.sp-kicker span{width:28px;height:2px;background:#38A3FF;flex:0 0 auto}
.sp-title{margin:0;max-width:980px;font-weight:800;font-stretch:85%;font-size:clamp(46px,7.2vw,116px);line-height:.95;letter-spacing:-.02em;text-shadow:0 2px 40px rgba(0,0,0,.35)}
.sp-tagline{margin:0;max-width:620px;font-size:clamp(17px,1.5vw,21px);line-height:1.5;color:#E8E8E8}
.sp-hero .hero-ctas{margin-top:10px}

/* Trust strip */
.sp-why{background:#EEF4FF;border-bottom:1px solid rgba(11,31,58,.1)}
.sp-why__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.sp-why__item{display:flex;flex-direction:column;gap:6px;padding:30px 28px 30px 0}
.sp-why__item+.sp-why__item{padding-left:28px;border-left:1px solid rgba(11,31,58,.12)}
.sp-why__item strong{font-size:17px;font-weight:700}
.sp-why__item span{font-size:14px;color:#5A5A5A;line-height:1.5}

/* Intro + what we cover */
.sp-intro__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:72px;align-items:start}
.sp-intro__copy p{margin:0 0 20px;font-size:18px;line-height:1.7;color:#24344D;max-width:680px}
.sp-intro__copy .u-link{display:inline-block;margin-top:8px}
.sp-covers{background:#06203F;color:#FFFFFF;padding:40px}
.sp-covers h3{margin:0 0 22px;font-size:24px;font-weight:700;font-stretch:85%}
.sp-covers ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.sp-covers li{position:relative;padding:14px 0 14px 34px;border-top:1px solid rgba(255,255,255,.14);font-size:16px;line-height:1.45}
.sp-covers li::before{content:"";position:absolute;left:2px;top:19px;width:14px;height:8px;border-left:2px solid #38A3FF;border-bottom:2px solid #38A3FF;transform:rotate(-45deg)}
.sp-covers__call{display:flex;flex-direction:column;gap:4px;margin-top:22px;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);font-size:14px;color:#ADADAD}
.sp-covers__call a{font-size:26px;font-weight:700;font-stretch:85%;color:#FFFFFF;text-decoration:none}
.sp-covers__call a:hover{color:#38A3FF}

/* How it works */
.sp-steps{background:#06203F;color:#FFFFFF}
.sp-steps .sp-eyebrow{color:#ADADAD}
.sp-steps__list{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.sp-step{padding-top:24px;border-top:1px solid rgba(255,255,255,.22)}
.sp-step__no{display:block;font-size:44px;font-weight:800;font-stretch:85%;color:#38A3FF;line-height:1;margin-bottom:18px}
.sp-step h3{margin:0 0 10px;font-size:21px;font-weight:700}
.sp-step p{margin:0;color:#ADADAD;font-size:15px;line-height:1.6}

/* Gallery */
.sp-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px;margin-bottom:40px}
.sp-head .sp-h2{margin:0}
.sp-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-flow:dense;gap:14px}


/* FAQ */
.sp-faq__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px}
.sp-faq__list{border-bottom:1px solid rgba(11,31,58,.2)}
.sp-faq .faq-item{border-top:1px solid rgba(11,31,58,.2)}
.sp-faq summary{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:24px 0;font-size:21px!important;font-weight:600;line-height:1.3}
.sp-faq .faq-item p{margin:0 0 24px;max-width:640px;color:#5A5A5A}

/* Other services */
.sp-others__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:40px}
.sp-other{display:grid;grid-template-columns:1fr auto;gap:8px 16px;align-items:center;padding:28px;border:1px solid rgba(11,31,58,.14);color:#0B1F3A;text-decoration:none;transition:background-color .35s,color .35s,border-color .35s}
.sp-other__name{font-size:24px;font-weight:700;font-stretch:85%}
.sp-other__line{grid-column:1;font-size:15px;color:#5A5A5A;line-height:1.5;transition:color .35s}
.sp-other svg{grid-row:1/span 2;grid-column:2;transition:transform .35s}
.sp-other:hover,.sp-other:focus-visible{background:#1268E6;border-color:#1268E6;color:#FFFFFF}
.sp-other:hover .sp-other__line,.sp-other:focus-visible .sp-other__line{color:#FFFFFF}
.sp-other:hover svg{transform:translateX(6px)}

footer a[aria-current="page"]{color:#FFFFFF}


@media (max-width:1100px){
  .sp-why__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sp-why__item:nth-child(3){padding-left:0;border-left:0}
  .sp-why__item:nth-child(n+3){border-top:1px solid rgba(11,31,58,.12)}
  .sp-steps__list{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:40px}
  .sp-others__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .sp-intro__grid,.sp-faq__grid{grid-template-columns:1fr;gap:40px}
  .sp-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:820px){
  .wrap{padding:0 20px}
  .sec{padding:88px 0}
  .sp-hero{min-height:auto}
  .sp-hero__inner{padding-top:96px;padding-bottom:48px}
  .sp-hero__shade{background:linear-gradient(180deg,rgba(6,32,63,.3) 0%,rgba(6,32,63,.45) 50%,rgba(6,32,63,.72) 100%)}
  .sp-covers{padding:28px 22px}
}
@media (max-width:560px){
  .sp-why__grid{grid-template-columns:1fr}
  .sp-why__item,.sp-why__item+.sp-why__item{padding:18px 0;border-left:0}
  .sp-why__item+.sp-why__item{border-top:1px solid rgba(11,31,58,.12)}
  .sp-steps__list{grid-template-columns:1fr;row-gap:28px}
  .sp-others__grid{grid-template-columns:1fr}
  .sp-other{padding:22px}
  .sp-gallery{gap:8px}
  .sp-intro__copy p{font-size:17px}
  .sp-hero .hero-ctas{flex-direction:column;align-items:stretch}
  .sp-hero .hero-btn{width:100%}
}

/* Two-column gallery: a last photo on its own takes the full row */
@media (max-width:900px){.sp-gallery .gal-item:last-child:nth-child(even){grid-column:span 2}}

/* ---------- Company pages: About, Our work, Reviews, Contact ---------- */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.sp-hero--short{min-height:clamp(440px,60vh,600px)}
header .nav-link[aria-current="page"]::after{transform:scaleX(1)}
.mobile-menu>a[aria-current="page"]{color:#1268E6}

/* About: at-a-glance numbers */
.sp-stats{display:grid;grid-template-columns:1fr 1fr;background:#06203F;color:#FFFFFF}
.sp-stat{display:flex;flex-direction:column;gap:6px;padding:32px 28px;border-bottom:1px solid rgba(255,255,255,.14)}
.sp-stat:nth-child(odd){border-right:1px solid rgba(255,255,255,.14)}
.sp-stat:nth-last-child(-n+2){border-bottom:0}
.sp-stat strong{font-size:clamp(40px,4vw,60px);font-weight:800;font-stretch:85%;line-height:1}
.sp-stat strong em{font-style:normal;color:#38A3FF}
.sp-stat span{font-size:14px;color:#ADADAD}

/* About: six reasons */
.sp-why6{background:#EEF4FF}
.sp-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:40px}
.sp-card{background:#FFFFFF;padding:32px 28px;display:flex;flex-direction:column;gap:12px}
.sp-card__no{font-size:15px;font-weight:700;color:#1268E6}
.sp-card h3{margin:0;font-size:22px;font-weight:700;font-stretch:85%;line-height:1.15}
.sp-card p{margin:0;font-size:15px;line-height:1.65;color:#5A5A5A}

/* Our work: full gallery on black */
.sp-work-all{background:#06203F;color:#FFFFFF}
.sp-work-all .sp-h2 em{color:#38A3FF}

/* Reviews */
.sp-leave{background:#EEF4FF}
.sp-leave__grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start}
.sp-form{background:#FFFFFF;padding:40px;display:flex;flex-direction:column;gap:24px}
.sp-field{display:flex;flex-direction:column;gap:6px}
.sp-field label,.sp-stars legend{font-size:13px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:#5A5A5A}
.sp-field input,.sp-field textarea{width:100%;border:0;border-bottom:1px solid rgba(11,31,58,.3);background:transparent;padding:10px 0;font:inherit;font-size:17px;color:#0B1F3A;border-radius:0}
.sp-field input:focus,.sp-field textarea:focus{outline:none;border-bottom-color:#1268E6}
.sp-field [aria-invalid="true"]{border-bottom-color:#1268E6}
.sp-field textarea{resize:vertical}
.sp-stars{border:0;padding:0;margin:0}
.sp-stars legend{padding:0;margin-bottom:8px}
.sp-stars__row{display:inline-flex;flex-direction:row-reverse;gap:4px}
.sp-stars input{position:absolute;opacity:0;pointer-events:none}
.sp-stars label{width:40px;height:40px;cursor:pointer;background:no-repeat center/30px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.8l2.8 5.9 6.4.8-4.7 4.4 1.2 6.4L12 17.2l-5.7 3.1 1.2-6.4-4.7-4.4 6.4-.8z' fill='none' stroke='%231268E6' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E")}
.sp-stars input:checked~label,.sp-stars label:hover,.sp-stars label:hover~label{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2.8l2.8 5.9 6.4.8-4.7 4.4 1.2 6.4L12 17.2l-5.7 3.1 1.2-6.4-4.7-4.4 6.4-.8z' fill='%231268E6' stroke='%231268E6' stroke-width='1.5' stroke-linejoin='round'/%3E%3C/svg%3E")}
.sp-stars input:focus-visible+label{outline:2px solid #0B1F3A;outline-offset:2px}
.sp-form__btn{display:flex;align-items:center;justify-content:space-between;height:56px;padding:0 24px;border:0;background:#0B1F3A;color:#FFFFFF;font:inherit;font-weight:600;font-size:16px;cursor:pointer}
.sp-form__status{margin:0;font-size:14px;color:#5A5A5A;min-height:1em}

/* Contact */
.sp-contact__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:40px}
.sp-contact__card{display:flex;flex-direction:column;gap:8px;padding:30px 26px;border:1px solid rgba(11,31,58,.14);color:#0B1F3A;text-decoration:none;transition:background-color .35s,color .35s,border-color .35s}
.sp-contact__label{font-size:13px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#1268E6;transition:color .35s}
.sp-contact__value{font-size:clamp(20px,1.8vw,26px);font-weight:700;font-stretch:85%;line-height:1.2;overflow-wrap:anywhere}
.sp-contact__note{font-size:14px;color:#5A5A5A;transition:color .35s}
.sp-contact__card:hover,.sp-contact__card:focus-visible{background:#06203F;border-color:#06203F;color:#FFFFFF}
.sp-contact__card:hover .sp-contact__label,.sp-contact__card:focus-visible .sp-contact__label{color:#38A3FF}
.sp-contact__card:hover .sp-contact__note,.sp-contact__card:focus-visible .sp-contact__note{color:#ADADAD}
.sp-emergency{background:#1268E6;color:#FFFFFF}
.sp-emergency__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px 48px;padding-top:56px;padding-bottom:56px}
.sp-emergency h2{margin:0 0 8px;font-size:clamp(30px,3.4vw,52px);font-weight:800;font-stretch:85%;line-height:1}
.sp-emergency p{margin:0;max-width:560px;font-size:18px;color:#FFFFFF}
.sp-emergency__btn{display:inline-flex;align-items:center;gap:12px;height:60px;padding:0 28px;background:#FFFFFF;color:#0B1F3A;font-weight:700;font-size:17px;text-decoration:none;transition:background-color .3s,color .3s}
.sp-emergency__btn:hover{background:#0B1F3A;color:#FFFFFF}
.sp-map__frame{margin-top:32px;height:clamp(320px,45vh,480px);background:#E6EDF7}
.sp-map__frame iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(1)}

@media (max-width:1100px){
  .sp-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .sp-contact__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){.sp-leave__grid{grid-template-columns:1fr;gap:32px}}
@media (max-width:560px){
  .sp-cards,.sp-contact__grid{grid-template-columns:1fr}
  .sp-stat{padding:24px 18px}
  .sp-form{padding:26px 20px}
  .sp-emergency__btn{width:100%;justify-content:center}
}
.sp-contact__card[href^="mailto"] .sp-contact__value{font-size:clamp(15px,1.25vw,18px);overflow-wrap:break-word;word-break:normal}

/* Phones: breadcrumb links get a full-size tap area */
@media (max-width:820px){
  .sp-crumbs a,.sp-crumbs span[aria-current]{display:inline-flex;align-items:center;min-height:44px}
  .sp-crumbs{gap:6px 10px;font-size:15px}
  .sp-kicker{font-size:12px;line-height:1.6}
}

/* Reviews carousel on inner pages (styles shared with the homepage in site.css) */
.sp-carousel{background:#FFFFFF;overflow:hidden}
.sp-carousel .sp-head{margin-bottom:32px}
.sp-carousel .rv-marquee{margin-top:0}
@media (max-width:560px){
  .sp-hero__inner{padding-top:72px;padding-bottom:36px}
  .sp-steps__list{margin-top:32px}
  .sp-others__grid,.sp-cards,.sp-contact__grid{margin-top:28px}
  .sp-head{margin-bottom:28px}
}

/* Referral page */
.ref-hero .sp-title em{font-style:italic;color:#38A3FF}
.ref-tag{margin:0;font-size:15px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:#38A3FF}
.ref-steps{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.ref-covers{margin:40px 0 0;font-size:16px;color:#CFE3FF;max-width:760px}
.ref-form-sec{background:#EEF4FF}
.ref-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:64px;align-items:start}
.ref-intro p{margin:0 0 24px;font-size:18px;line-height:1.6;color:#4A5568}
.ref-reward{display:inline-flex;align-items:center;gap:16px;padding:18px 24px;background:#06203F;color:#FFFFFF;border-radius:6px}
.ref-reward b{font-size:44px;font-weight:800;font-stretch:85%;line-height:1;color:#38A3FF}
.ref-reward span{font-size:15px;max-width:180px;line-height:1.4}
.ref-form{gap:28px}
.ref-set{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:16px}
.ref-set legend{padding:0 0 4px;font-size:18px;font-weight:700;color:#0B1F3A}
.ref-help{margin:-4px 0 0;font-size:14px;color:#5A5A5A}
.ref-opt{text-transform:none;letter-spacing:0;font-weight:400;color:#8F8F8F}
.sp-field select{width:100%;height:52px;padding:0 44px 0 14px;background:#F1F5FB url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230B1F3A' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;border:1px solid rgba(11,31,58,.14);border-radius:4px;font:inherit;font-size:16px;color:#0B1F3A;appearance:none;-webkit-appearance:none;cursor:pointer}
.sp-field select:focus{outline:none;background-color:#FFFFFF;border-color:#1268E6;box-shadow:0 0 0 3px rgba(18,104,230,.15)}
.sp-field [aria-invalid="true"]{border-color:#1268E6!important;background-color:#F2F7FF!important}
.ref-consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;line-height:1.5;color:#4A5568;cursor:pointer}
.ref-consent input{flex:0 0 auto;width:22px;height:22px;margin:0;accent-color:#1268E6;cursor:pointer}
.ref-consent a{color:#1268E6;font-weight:600}
.ref-consent.is-invalid{color:#0B4FBF}
.ref-form .sp-form__btn{background:#1268E6}
.ref-form .sp-form__btn:hover{background:#0B4FBF}
.ref-terms__list{margin:24px 0 0;padding-left:22px;max-width:860px;display:flex;flex-direction:column;gap:12px;font-size:16px;line-height:1.6;color:#4A5568}
.ref-terms__list li::marker{color:#1268E6;font-weight:700}
.ref-terms__q{margin:28px 0 0;color:#4A5568}
@media (max-width:900px){.ref-grid{grid-template-columns:1fr;gap:32px}.ref-steps{grid-template-columns:1fr!important;row-gap:28px}}
@media (max-width:560px){.ref-reward b{font-size:36px}.ref-tag{font-size:13px}}

/* Hero copy stays readable over the brighter photo */
.sp-hero__inner .sp-crumbs,.sp-kicker,.sp-title,.sp-tagline,.ref-tag{text-shadow:0 1px 16px rgba(0,0,0,.55)}
.ref-consent a{display:inline-block;padding:6px 0}
.ref-consent{padding:6px 0}
