/* Restore the captured theme's shared chrome and content geometry. */
html body header.page-header {
  position: relative !important;
  inset: auto !important;
  background: #fff !important;
  padding: 20px 0 !important;
  height: auto !important;
  min-height: 0 !important;
  z-index: 10000 !important;
}
html body header.page-header .page-header-content { align-items: center !important; }
html body header.page-header .branding { display: flex !important; align-items: center !important; gap: 24px; }
html body header.page-header .branding > a.rr-wordmark { flex: 0 0 210px !important; width: 210px !important; min-height: 0 !important; height: auto !important; }
html body header.page-header img.rr-brand-logo, html body footer.page-footer img.rr-footer-brand-logo { position: static !important; inset: auto !important; transform: none !important; translate: none !important; margin: 0 !important; float: none !important; width: 100% !important; height: auto !important; max-width: 100% !important; max-height: none !important; object-fit: contain !important; clip-path: none !important; }
html body footer.page-footer .rr-footer-brand-wrap > a { width: 300px !important; max-width: 100% !important; }
html body header.page-header .menu { display: flex !important; align-items: center; flex-wrap: nowrap !important; gap: clamp(14px, 1.6vw, 28px); }
html body header.page-header .menu > * { margin: 0 !important; padding: 0 !important; flex-shrink: 0; }
html body header.page-header .menu a { color: #003058 !important; font-size: 16px; white-space: nowrap; }
html body header.page-header .main-menu { flex: 1 1 auto; min-width: 0; width: auto !important; margin-left: auto; }
html body header.page-header .menu { justify-content: flex-end; }
html body header.page-header .menu > .menu-branch > .link > a { display: inline-flex; align-items: center; min-height: 46px; padding: 0 !important; font-size: 16px !important; background: transparent !important; }
html body header.page-header [data-rr-desktop-phone] {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 8px;
  flex: 0 0 auto; position: static !important; inset: auto !important; transform: none !important;
  width: auto !important; min-height: 46px; margin: 0 !important; padding: 12px 16px !important;
  border: 1px solid #003058 !important; border-radius: 4px;
  background: #003058 !important; color: #fff !important;
  white-space: nowrap; font-size: 15px !important; font-weight: 700; line-height: 1.4;
  text-decoration: none !important;
}
html body header.page-header [data-rr-desktop-phone] :is(span,svg) { color: inherit !important; }
html body header.page-header [data-rr-desktop-phone]:is(:hover,:focus-visible) { background: #174b68 !important; border-color: #174b68 !important; color: #fff !important; }
html body header.page-header [data-rr-desktop-phone]:focus-visible { outline: 3px solid #c49a32; outline-offset: 3px; }
html body .landing-page > .hero { padding: 0 !important; min-height: 0 !important; }
html body .landing-page > .hero :is(.slick-slider,.slick-list,.slick-track,.slick-slide) { min-height: 0 !important; height: auto !important; }
html body .landing-page > .hero .hero-item { min-height: min(660px,calc(100svh - 108px)) !important; }
html body .landing-page > .hero .rr-fallback-carousel-controls { display: none !important; }
html body .landing-page > .hero .slick-dots { display: none !important; }

html body .hero .hero-item {
  height: auto !important;
  min-height: 440px !important;
  display: flex !important;
  align-items: center;
  background-position: center !important;
  background-size: cover !important;
}
html body .hero .hero-item > img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
html body .hero .hero-item .overlay { position: absolute !important; inset: 0 !important; width: 100% !important; height: 100% !important; background: linear-gradient(90deg,rgba(4,24,40,.82),rgba(4,24,40,.36)) !important; opacity: 1 !important; z-index: 1; }
html body .hero .hero-item-content {
  position: relative !important;
  inset: auto !important;
  transform: none !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 64px 32px !important;
  z-index: 2;
}
html body .hero .hero-item-title { height: auto !important; margin: 0 0 24px !important; }
html body .hero .hero-item-title :is(h1,h2) {
  color: #fff !important;
  font-size: clamp(38px,4.4vw,68px) !important;
  line-height: 1.08 !important;
  max-width: 1040px;
  margin: 0 !important;
  text-shadow: none !important;
}
html body .hero .hero-item-details { height: auto !important; margin: 0 !important; }
html body .hero .hero-item-details :is(p,h4) { color: #fff !important; font-size: clamp(17px,1.4vw,21px) !important; line-height: 1.55 !important; max-width: 790px; margin: 0 !important; }
html body [data-sb-hero] .hero-item { min-height: min(680px,calc(100svh - 108px)) !important; }
html body [data-sb-hero] .slick-track { align-items: stretch !important; }
html body [data-sb-hero] .slick-slide > div, html body [data-sb-hero] .hero-item { height: 100% !important; }
html body [data-sb-actions] .button { font-size: 14px !important; line-height: 1.4 !important; }
html body [data-sb-actions] .button { margin: 0 !important; }

html body [data-sb-projects] { display: block !important; margin: 0 auto !important; }
html body [data-sb-projects] .headline { max-width: 100%; width: 100%; padding: 0; margin: 0 0 36px; border: 0 !important; }
html body [data-sb-projects] .headline h2 { position: static !important; transform: none !important; writing-mode: horizontal-tb !important; background: transparent !important; font-size: clamp(32px,4vw,56px); line-height: 1.1; padding: 0; margin: 0; }
html body [data-sb-projects] :is(hr,.headline:before,.headline:after,.articles:before,.articles:after) { display: none !important; }
html body [data-sb-projects] .articles { width: 100%; max-width: 100%; padding: 0; border: 0 !important; }
html body [data-sb-projects] .article-teaser { border: 0 !important; background: transparent; margin: 0; padding: 0; }
html body [data-sb-projects] .article-teaser a { padding: 20px 28px 20px 0; }
html body [data-sb-projects] .article-teaser a:hover h3 { text-decoration: underline; text-underline-offset: 5px; }
html body [data-sb-inspection] .content { padding-top: 0 !important; padding-bottom: 0 !important; }
html body [data-sb-locations] { background: linear-gradient(90deg,rgba(4,24,40,.92),rgba(4,24,40,.64)),url('/ours/service-areas/commercial-roofing-contractors-san-bernardino-ca-01.webp') center/cover; padding: clamp(64px,8vw,112px) 24px; }
html body [data-sb-locations] :is(h2,p,a,span) { color: #fff !important; }
html body [data-sb-locations] h2 { font-size: clamp(34px,4.5vw,64px); line-height: 1.08; max-width: 840px; }
html body [data-sb-locations] p { max-width: 640px; line-height: 1.65; }
html body [data-sb-locations] nav { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px 40px; margin: 32px 0; }
html body [data-sb-locations] nav a { display: flex; justify-content: space-between; padding: 16px 0; font-size: 22px; }
html body [data-sb-locations] a { text-underline-offset: 5px; }
html body [data-sb-locations] a:hover { color: #f0bd55 !important; }

html body footer.page-footer { background: #183b4e; isolation: isolate; padding: 0 0 36px !important; }
html body footer.page-footer :is(p,div,span,h2,h3,a) { color: #fff; }
html body footer.page-footer .rr-footer-brand-wrap { max-width: 1320px; margin: auto !important; padding: 48px 32px 32px !important; }
/* Blend the opaque master into the footer without adding an outline or matte. */
html body footer.page-footer .rr-footer-brand-logo { max-height: 88px !important; mix-blend-mode: lighten; }
html body footer.page-footer .pre-footer .flex-container { margin: 0 !important; position: static !important; transform: none !important; }
html body footer.page-footer .pre-footer .flexible { margin: 0 !important; position: static !important; transform: none !important; padding: 40px 32px !important; background: #244c60; }
html body footer.page-footer .pre-footer .background-prime-dark { background: #1b3c50; }
html body footer.page-footer .pre-footer .flex-content { max-width: 590px; padding: 0 !important; }
html body footer.page-footer .pre-footer h2 { font-size: 28px; line-height: 1.2; margin: 0 0 18px; }
html body footer.page-footer a { color: #fff !important; text-decoration: none; }
html body footer.page-footer a:hover { color: #f0bd55 !important; text-decoration: underline; }
html body footer.page-footer .sb-footer-contact { display: grid; gap: 12px; }
html body footer.page-footer .sb-footer-contact a { overflow-wrap: anywhere; font-size: 16px; }
html body footer.page-footer .footer { padding: 40px 24px !important; }
html body footer.page-footer .logo-copyright { max-width: 320px; font-size: 14px; line-height: 1.65; }
html body footer.page-footer .rr-footer-map { position: relative !important; height: 300px !important; width: calc(100% - 64px) !important; max-width: 1256px !important; margin: 0 auto !important; border-radius: 0 !important; }
html body footer.page-footer .rr-footer-ia { display: grid !important; grid-template-columns: repeat(3,minmax(0,1fr)) !important; gap: 40px; width: 100% !important; max-width: 1320px !important; box-sizing: border-box; margin: 0 auto !important; padding: 48px 32px 16px !important; border: 0 !important; }
html body footer.page-footer .rr-footer-ia h3 { font-size: 20px; line-height: 1.3; margin: 0 0 20px; }
html body footer.page-footer .rr-footer-ia a { display: block !important; width: auto !important; margin: 0 !important; font-size: 15px !important; font-weight: 400; letter-spacing: 0; text-transform: none; line-height: 1.5; padding: 6px 0; }
html body [data-rh-map]::before { display: none !important; }
html body .rr-nav-open, html body.rr-nav-open { overflow: hidden !important; }
html body [data-sb-mobile-help] { display: none !important; }
html body .hero[data-sb-static-hero] { padding: 0 !important; min-height: 0 !important; height: auto !important; }
html body .hero[data-sb-static-hero] .hero-item { min-height: 390px !important; height: auto !important; }
html body .sb-breadcrumb { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; font-size: 13px; line-height: 1.5; margin: 0 0 24px; }
html body .sb-breadcrumb :is(a,span) { position: static !important; display: inline-block !important; float: none !important; transform: none !important; margin: 0 !important; padding: 0 !important; width: auto !important; height: auto !important; font-size: inherit !important; line-height: inherit !important; }
html body .hero .sb-breadcrumb :is(a,span) { color: #fff !important; }
html body .sb-legal { max-width: 1040px; margin: 0 auto; padding: 64px 28px 80px; background: #fff; }
html body .sb-legal h1 { font-size: clamp(38px,4vw,56px); line-height: 1.12; margin: 0 0 24px; }
html body .sb-legal h2 { margin: 36px 0 16px; line-height: 1.2; }
html body .sb-legal p { line-height: 1.75; }
html body .sb-detail-body { max-width: 1040px; padding: 60px 28px 80px; }
html body .market-detail-page:has(> .sb-detail-body) { padding-bottom: 0 !important; }
html body .sb-detail-body [data-rh-leak-page] { color: #003058; background: #fff; }
html body .sb-detail-body .rh-intent-hero { padding: 0; background: transparent; }
html body .sb-detail-body .rh-intent-content { padding: 0; }
html body .sb-detail-body [data-rh-leak-page] :is(p,li) { color: #003058; font-size: 17px; line-height: 1.75; }
html body .sb-detail-body [data-rh-leak-page] :is(h2,h3) { color: #003058; margin: 36px 0 18px; line-height: 1.2; }
html body .sb-detail-body [data-rh-leak-page] a { color: #24566c; text-underline-offset: 3px; }
html body [data-rr-mobile-phone] .rr-call-icon { color: #fff !important; }
html body.rr-nav-open [data-rr-mobile-phone] { visibility: hidden !important; }
html body [data-rr-mobile] a[href^="tel:"] { display: block; margin: 24px 0; color: #003058 !important; font-size: 18px; font-weight: 700; }

@media(min-width:1280px) {
  html body header.page-header .branding { width: 100% !important; max-width: 100% !important; flex: 0 0 100%; }
  html body header.page-header .search-wrapper { display: none !important; }
  /* The mobile repair can move this button directly into the header. */
  html body header.page-header .rr-burger { display: none !important; }
  html body [data-rr-mobile], html body .rr-scrim { display: none !important; }
}
@media(max-width:1279px) {
  html body header.page-header .main-menu { display: none !important; }
  html body header.page-header [data-rr-desktop-phone] { display: none !important; }
  html body header.page-header .branding { width: 80% !important; max-width: 80% !important; flex: 0 0 80%; }
  html body header.page-header .search-wrapper { width: 20% !important; max-width: 20% !important; flex: 0 0 20%; display: flex !important; justify-content: flex-end; }
  html body header.page-header .rr-burger { display: flex !important; align-items: center; justify-content: center; flex: 0 0 48px; min-width: 48px; min-height: 48px; padding: 0 !important; position: relative !important; right: auto !important; margin: 0 0 0 auto !important; }
  html body header.page-header > .rr-burger { position: absolute !important; top: 50% !important; right: 15px !important; margin: 0 !important; transform: translateY(-50%) !important; }
  html body header.page-header .rr-burger span { background: #003058 !important; }
  html body.rr-nav-open .rr-scrim { display: block !important; }
}
@media(max-width:767px) {
  html body .sb-detail-body { padding: 32px 24px 48px; }
  html body header.page-header { padding: 12px 0 !important; }
  html body header.page-header .branding > a.rr-wordmark { flex-basis: 190px !important; width: 190px !important; min-height: 0 !important; }
  html body .hero .hero-item { min-height: 340px !important; }
  html body .hero[data-sb-static-hero] .hero-item { min-height: 310px !important; }
  html body .hero .hero-item-content { padding: 40px 20px !important; }
  html body .hero .hero-item-title :is(h1,h2) { font-size: clamp(30px,8.5vw,44px) !important; line-height: 1.12 !important; }
  html body [data-sb-hero] .hero-item { min-height: 600px !important; }
  html body .landing-page > .hero .hero-item { min-height: 590px !important; }
  html body [data-sb-hero] .hero-item-content { padding: 36px 20px !important; }
  html body .hero .hero-item-details :is(p,h4) { font-size: 16px !important; line-height: 1.5 !important; }
  html body [data-sb-locations] nav { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 4px 24px; }
  html body [data-sb-locations] nav a { font-size: 18px; }
  html body footer.page-footer .pre-footer .flexible { padding: 32px 24px !important; }
  html body footer.page-footer .rr-footer-brand-wrap { padding: 36px 24px 24px !important; }
  html body footer.page-footer .footer-content { gap: 24px; }
  html body footer.page-footer .rr-footer-map { width: calc(100% - 40px) !important; height: 280px !important; }
  html body footer.page-footer .rr-footer-ia { grid-template-columns: 1fr !important; gap: 28px; padding: 36px 24px !important; }
  html body .rankhound-visible-phone { display: none !important; }
  html body .rr-contact-form { margin-bottom: 32px !important; }
}

/* inner-page repairs: landing copy gutters, footer panels and map, contrast, raised-roof copy */
.landing-page .content-wrapper.container{padding-left:32px;padding-right:32px}
.landing-page .content-wrapper.container p.text-align-center{max-width:62rem;margin-left:auto;margin-right:auto;padding-top:24px}
footer.page-footer .pre-footer{border-top:1px solid rgba(255,255,255,.16);border-bottom:1px solid rgba(255,255,255,.16);background:#1b3c50}
footer.page-footer .pre-footer .flexible,footer.page-footer .pre-footer .offset-down{background:transparent!important}
footer.page-footer .pre-footer .flexible+.flexible{border-left:1px solid rgba(255,255,255,.16)}
html body footer.page-footer .rr-footer-map{height:240px!important;min-height:0!important;background:#1b3c50!important;margin-bottom:24px!important;overflow:hidden;border-radius:4px!important}
html body footer.page-footer .rr-footer-map iframe{background:#1b3c50!important}
footer.page-footer .sb-footer-contact a{overflow-wrap:anywhere}
@media(max-width:700px){
  footer.page-footer .pre-footer .flexible+.flexible{border-left:0;border-top:1px solid rgba(255,255,255,.16)}
  footer.page-footer .sb-footer-contact a[href^="mailto:"]{font-size:clamp(12px,3.4vw,16px)}
  html body footer.page-footer .rr-footer-map{height:200px!important}
}
/* service detail (raised-roof copy) */
.roof-lift-copy{max-width:56rem;margin:0 auto}
.roof-lift-copy .rl-section{border-top:1px solid #d6dde3!important}
.market-card .content h3{font-size:clamp(23px,2.4vw,32px)!important;line-height:1.15!important}
