:root {
  --orange: #fe6600;
  --orange-dark: #e55c00;
  --red: #ee212b;
  --dark: #1a1a1a;
  --header-dark: #282828;
  --card: #302e2e;
  --text: #333;
  --muted: #666;
  --light: #f8f8f8;
  --white: #fff;
  --max: 1200px;
  --wide: 1450px;
  --radius: 25px;
  --font: "Montserrat", Arial, sans-serif;
  --display: "Archivo Black", "Archivo", Arial, sans-serif;
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
  margin: 0;
  font-family: var(--font);
  font-size: 16px;
  line-height: 1.7;
  color: var(--text);
  background: var(--white);
}

img { max-width: 100%; height: auto; display: block; }

a { color: var(--orange); text-decoration: none; }
a:hover { color: var(--orange-dark); }

h1, h2, h3, h4 {
  font-family: var(--display);
  line-height: 1.2;
  color: var(--dark);
  font-weight: 400;
}

.container { width: min(100% - 32px, var(--max)); margin-inline: auto; }
.container-wide { width: min(100% - 30px, var(--wide)); margin-inline: auto; }

.skip-link {
  position: absolute;
  left: -999px;
  top: 0;
  background: var(--orange);
  color: #fff;
  padding: 8px 12px;
  z-index: 10000;
}
.skip-link:focus { left: 8px; top: 8px; }

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
}

.btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 16px 25px;
  border-radius: 33px;
  font-weight: 700;
  letter-spacing: 1px;
  text-transform: uppercase;
  border: 0;
  cursor: pointer;
  font-family: var(--font);
  font-size: 15px;
}
.btn-orange { background: var(--orange); color: #fff; }
.btn-orange:hover { background: var(--orange-dark); color: #fff; }
.btn-light { background: #fff; color: var(--dark); }
.btn-light:hover { background: #f3f3f3; color: var(--dark); }

/* Header overlays the hero — same as live trheader / header-style-2 */
.site-header,
body.trheader .site-header,
#masthead {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  z-index: 200;
  background: transparent !important;
  box-shadow: none;
}
.header-top-bar {
  background: #282828 !important;
  color: #fff;
  font-size: 15px;
  line-height: 1.5;
  padding: 13px 0;
  border-bottom: none;
}
.topbar-inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
}
.topbar-contact,
.topbar-social,
.footer-social,
.footer-links,
.footer-contact,
.footer-hours,
.primary-menu,
.primary-menu .sub-menu,
.mobile-menu,
.mobile-menu .sub-menu { list-style: none; margin: 0; padding: 0; }

.topbar-contact { display: flex; gap: 24px; flex-wrap: wrap; }
.topbar-contact li,
.footer-contact li { display: flex; align-items: center; gap: 8px; }
.topbar-contact li { font-size: 15px; }
.footer-contact svg,
.footer-social svg,
.header-phone-btn svg,
.menu-toggle svg { width: 16px; height: 16px; fill: currentColor; }
.topbar-contact svg {
  height: 16px;
  width: auto;
  flex: 0 0 auto;
  fill: currentColor;
}
.topbar-social svg {
  height: 16px;
  width: auto;
  fill: currentColor;
  display: block;
}
.topbar-contact a,
.topbar-social a { color: #fff; }
.topbar-social a:hover { color: var(--red); }
.topbar-social-wrap { display: flex; align-items: center; gap: 8px; }
.follow-label { color: #fff; font-size: 15px; }
.topbar-social { display: flex; gap: 13px; }

.header-main,
#header-menu {
  background: transparent !important;
  box-shadow: none;
}
.header-main-inner {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  min-height: 75px;
}
.site-logo { justify-self: start; }
.site-logo img { width: 195px; height: auto; padding: 5px 0; }
.main-navigation { justify-self: center; }
.header-cta { justify-self: end; }
.primary-menu {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0;
  flex-wrap: nowrap;
}
.primary-menu > li { position: relative; }
.primary-menu > li > a {
  display: block;
  padding: 30px 12px;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .02em;
  line-height: 1;
  white-space: nowrap;
}
.primary-menu > li > a:hover,
.primary-menu > li.current-menu-item > a { color: var(--orange); }
.primary-menu .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  width: 240px;
  margin: 0;
  padding: 0;
  list-style: none;
  background: #fff;
  border-top: 1px solid var(--red);
  border-bottom-left-radius: 4px;
  border-bottom-right-radius: 4px;
  box-shadow: 0 0 2px rgba(0, 0, 0, 0.1);
  z-index: 20;
  text-align: left;
}
.primary-menu .sub-menu li {
  display: block;
  list-style: none;
  margin: 0;
  padding: 0 15px 0 20px;
}
.primary-menu > li:hover > .sub-menu,
.primary-menu > li:focus-within > .sub-menu { display: block; }
.primary-menu .sub-menu a {
  display: block;
  padding: 10px 2px;
  color: #222;
  font-size: 14px;
  font-weight: 600;
  text-transform: none;
  letter-spacing: 0;
  line-height: 1.4;
}
.primary-menu .sub-menu a:hover { color: var(--orange); background: #fafafa; }

.header-phone-btn {
  background: transparent !important;
  color: #fff !important;
  padding: 0 8px;
  text-align: left;
  min-width: 180px;
  border-radius: 0;
  text-transform: none;
  letter-spacing: 0;
  font-weight: 500;
}
.header-phone-btn span {
  display: block;
  font-size: 15px;
  font-weight: 500;
  color: #cdcccc;
}
.header-phone-btn strong {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 18px;
  font-weight: 600;
  color: #fff;
}
.header-btn-mobile { display: none; }

.menu-toggle {
  display: none;
  background: none;
  border: 0;
  padding: 8px;
  color: #fff;
}
.menu-toggle svg { width: 28px; height: 28px; }

@media (min-width: 1643px) {
  .header-top-bar .container-wide,
  .header-main .container-wide {
    width: auto;
    max-width: none;
    padding-left: 200px;
    padding-right: 200px;
  }
}

/* Sticky header after scroll — dark grey bar, white links (live rt-sticky #191818) */
body.is-stuck .site-header,
body.is-stuck #masthead {
  position: fixed !important;
  background: #191818 !important;
  box-shadow: 0 5px 5px rgba(0,0,0,.3);
}
body.is-stuck .header-top-bar { display: none; }
body.is-stuck .header-main,
body.is-stuck #header-menu { background: #191818 !important; }
body.is-stuck .primary-menu > li > a { color: #fff; }
body.is-stuck .primary-menu > li > a:hover { color: var(--orange); }
body.is-stuck .header-phone-btn span { color: #cdcccc; }
body.is-stuck .header-phone-btn strong { color: #fff; }
body.is-stuck .menu-toggle { color: #fff; }
body.is-stuck .header-btn-mobile { color: #fff; }

.admin-bar .site-header { top: 32px; }
.admin-bar.is-stuck .site-header { top: 32px; }
@media (max-width: 782px) {
  .admin-bar .site-header { top: 46px; }
  .admin-bar.is-stuck .site-header { top: 46px; }
}

.mobile-drawer {
  position: fixed;
  inset: 0 auto 0 0;
  width: min(86vw, 360px);
  background: #fff;
  z-index: 200;
  padding: 24px;
  box-shadow: 8px 0 30px rgba(0,0,0,.2);
  overflow: auto;
}
.mobile-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.45);
  z-index: 150;
}
.mobile-menu a { display: block; padding: 10px 0; color: var(--dark); font-weight: 600; }
.mobile-menu .sub-menu { padding-left: 16px; }
.mobile-drawer-close { background: none; border: 0; float: right; }
.mobile-drawer-close svg { width: 24px; height: 24px; }
.mobile-meta { margin-top: 24px; color: var(--muted); }

/* Hero — live Elementor padding 300/250, centered, 30% black overlay */
.hero-home {
  min-height: 0;
  padding: 300px 0 250px;
  background-size: cover;
  background-position: top center;
  display: block;
  color: #fff;
  position: relative;
  text-align: center;
}
.hero-home::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #000;
  opacity: .3;
}
.hero-home-copy {
  position: relative;
  max-width: 900px;
  margin: 0 auto;
  padding: 0;
}
.eyebrow {
  color: var(--orange);
  text-transform: uppercase;
  letter-spacing: 1px;
  font-weight: 700;
  font-size: 14px;
  margin: 0 0 10px;
  font-family: var(--font);
}
.eyebrow.center { text-align: center; }
.hero-home h1 {
  color: #fff;
  font-size: 58px;
  line-height: 1.2;
  margin: 0 0 12px;
  text-shadow: 0 0 10px rgba(0,0,0,.5);
}
.hero-sub {
  color: #ff6600;
  font-size: 21px;
  font-weight: 500;
  margin: 0 0 8px;
}
.reviews-badge {
  margin: 16px auto 24px;
  width: 16%;
  min-width: 160px;
  max-width: 260px;
}

.page-hero {
  background-size: cover;
  background-position: center;
  position: relative;
  min-height: 220px;
  display: flex;
  align-items: center;
}
.page-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.6);
}
.page-hero-content { position: relative; color: #fff; padding: 180px 0 147px; }
.page-hero h1 {
  color: #fff;
  font-size: 42px;
  font-weight: 400;
  line-height: 1.4;
  margin: 0 0 10px;
  text-transform: capitalize;
}
.blog .page-hero h1,
.single-post .page-hero h1 {
  font-size: 32px;
  line-height: 1.2;
  margin: 0;
}
.blog .page-hero h1 { font-size: 28px; }
.breadcrumbs,
.breadcrumbs a { color: #fff; font-size: 18px; }
.breadcrumbs .sep { color: #fff; }

.section { padding: 72px 0; }
.section-title { text-align: center; margin: 0 0 40px; font-size: clamp(28px, 4vw, 40px); }

/* Services — light rounded panel overlapping the hero, dark cards inside */
.service-cards {
  background: transparent;
  padding: 0 0 20px;
  margin-top: -120px;
  position: relative;
  z-index: 2;
}
.service-cards-wrap { width: min(100% - 32px, 1320px); }
.service-cards-panel {
  position: relative;
  background-color: #f8f8f8;
  background-image: var(--shape-1);
  background-position: top left;
  background-repeat: no-repeat;
  border-radius: 20px;
  padding: 120px 145px 100px;
  overflow: hidden;
}
.service-cards-panel::after {
  content: "";
  position: absolute;
  inset: 0;
  background-image: var(--shape-2);
  background-position: bottom right;
  background-repeat: no-repeat;
  opacity: .5;
  pointer-events: none;
}
.service-cards-panel > * { position: relative; z-index: 1; }
.service-cards .section-title {
  color: #393738;
  font-size: 36px;
  margin: 0 0 50px;
}
.service-cards-grid {
  display: grid;
  gap: 20px;
}
.service-cards-row-3 { grid-template-columns: repeat(3, 1fr); }
.service-cards-row-2 { grid-template-columns: repeat(2, 1fr); margin-top: 20px; }
.service-card {
  background: var(--card);
  color: #fefdfd;
  border-radius: 25px;
  padding: 20px;
  text-align: center;
  display: block;
}
.service-card:hover { color: #fefdfd; }
.service-card-icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 70px;
  height: 70px;
  padding: 9px;
}
.service-card i { display: block; color: var(--orange); }
.service-card i::before { font-size: 60px; line-height: 1; color: var(--orange); }
.service-card-body { padding-top: 70px; }
.service-card h3 {
  color: #eee;
  margin: 0 0 10px;
  font-size: 20px;
  line-height: 1.9;
  font-family: var(--display);
  font-weight: 600;
}
.service-card:hover h3 { color: var(--orange); }
.service-card .title-style {
  display: inline-block;
  width: 50px;
  height: 4px;
  margin: 0 auto 15px;
  background: var(--orange);
  border-radius: 4px;
}
.service-card p {
  font-family: "Archivo", var(--font);
  font-size: 16px;
  margin: 0;
  color: #fefdfd;
}

.about-home {
  padding: 116px 0 144px;
  overflow: visible;
}
.about-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: start;
}
.about-photos {
  position: relative;
  min-height: 464px;
}
.about-photo-back {
  position: absolute;
  width: 100%;
  max-width: none;
  left: -17.5%;
  top: -25px;
}
.about-photo-front {
  position: absolute;
  width: 63%;
  max-width: none;
  right: 3.67%;
  top: 203px;
  z-index: 1;
}
.about-copy { padding-right: 50px; }
.about-eyebrow {
  position: relative;
  display: inline-flex;
  margin: 0 0 11px;
  padding-left: 30px;
  color: #707173;
  font-family: Inter, var(--font);
  font-size: 16px;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 21px;
  text-transform: uppercase;
}
.about-eyebrow::after {
  content: "";
  position: absolute;
  top: 9px;
  left: 0;
  width: 21px;
  height: 3px;
  background: var(--orange);
}
.about-copy h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 700;
  line-height: 1.1;
  margin: 0 0 20px;
}
.about-copy h2 span {
  display: block;
  font-weight: 400;
  font-family: var(--display);
}
.about-lead {
  position: relative;
  margin: 0 0 20px;
  color: #111;
  font-family: var(--display);
  font-size: 20px;
  font-style: italic;
  font-weight: 500;
  line-height: 26px;
}
.about-lead::before {
  content: "";
  position: absolute;
  left: -20px;
  top: 0;
  bottom: 0;
  width: 5px;
  background: var(--orange);
  border-radius: 4px;
}
.about-checks {
  list-style: none;
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 5px;
  padding: 0;
}
.about-checks li {
  position: relative;
  width: 50%;
  margin: 0 0 16px;
  padding-left: 26px;
  color: #707173;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
}
.about-checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--orange);
}
.about-checks li::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 6px;
  width: 5px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.check-list { list-style: none; padding: 0; columns: 1; }
.check-list li { display: flex; gap: 10px; margin: 8px 0; }
.check-list svg { width: 18px; height: 18px; color: var(--orange); flex: 0 0 18px; margin-top: 4px; }

.consult-section {
  background: #242424;
  color: #fff;
  position: relative;
  z-index: 2;
  padding: 0;
}
.home .consult-section { margin-top: -33px; }
.consult-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  align-items: stretch;
}
.consult-grid-single {
  grid-template-columns: 1fr;
  max-width: 600px;
  margin-inline: auto;
}
.consult-info {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 20px;
  padding: 40px 40px 40px 90px;
}
.consult-info h2 {
  color: var(--orange);
  font-family: var(--display);
  font-size: 36px;
  font-weight: 400;
  line-height: 1;
  margin: 0;
}
.consult-info p { margin: 0; }
.consult-address {
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 28px;
}
.consult-phone {
  color: var(--orange);
  font-family: var(--font);
  font-size: 36px;
  font-weight: 700;
  line-height: 1.2;
}
.consult-email {
  color: var(--orange);
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
}
.consult-section a.consult-phone,
.consult-section a.consult-email { color: var(--orange); }
.consult-form { padding: 50px; }
.wpcf7-spinner {
  position: absolute !important;
  width: 0 !important;
  height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  visibility: hidden !important;
  pointer-events: none;
}
.consult-form .wpcf7 p,
.consult-form .impact-form-row { padding: 0 5px; }
.consult-form h3 {
  color: var(--orange);
  font-family: var(--display);
  font-size: 22px;
  font-weight: 400;
  line-height: 1;
  margin: 0 0 20px;
}
.consult-form .wpcf7 p { margin: 0 0 20px; }
.consult-form,
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
  width: 100%;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 textarea {
  border: 1px solid #ddd;
  padding: 5px 14px;
  height: 40px;
  border-radius: 3px;
  font-family: var(--font);
  font-size: 15px;
  background: #fff;
}
.wpcf7 textarea { height: auto; padding: 12px 14px; }
.wpcf7 input[type="submit"] {
  background: var(--orange);
  color: #fff;
  border: 0;
  padding: 13px;
  height: 41px;
  border-radius: 25px;
  font-family: var(--font);
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  width: 100%;
  text-transform: none;
}
.impact-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
  margin: 0 0 20px;
}
.impact-form-row p { margin: 0; }
.wpcf7-acceptance,
.consult-form .wpcf7-list-item-label {
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
  color: #f4f4f4;
}
.wpcf7-acceptance a,
.consult-form .wpcf7-list-item-label a { color: var(--orange); }

.consult-eyebrow {
  position: relative;
  display: inline-flex;
  margin: 0 0 8px;
  padding-left: 30px;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 1px;
  line-height: 21px;
  text-transform: uppercase;
}
.consult-eyebrow::after {
  content: "";
  position: absolute;
  left: 0;
  top: 9px;
  width: 21px;
  height: 3px;
  background: #fff;
}
.consult-section-orange {
  background: var(--orange);
  padding: 0;
  overflow: hidden;
}
.consult-section-orange .consult-grid-photo {
  grid-template-columns: 371px 1fr;
  align-items: end;
  max-width: none;
  gap: 20px;
}
.consult-photo img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 464px;
  object-fit: contain;
  object-position: bottom center;
}
.consult-section-orange .consult-form {
  padding: 50px 0 48px;
}
.consult-section-orange .consult-form h3 {
  color: #fff;
  font-size: 36px;
  line-height: 46px;
  margin: 0 0 20px;
}
.consult-section-orange .wpcf7-acceptance,
.consult-section-orange .consult-form .wpcf7-list-item-label {
  color: #fff;
}
.consult-section-orange .wpcf7-acceptance a,
.consult-section-orange .consult-form .wpcf7-list-item-label a {
  color: #fff;
  text-decoration: underline;
}
.consult-section-orange .consult-form .wpcf7 p,
.consult-section-orange .consult-form .impact-form-row {
  padding: 0;
  margin: 0;
}
.consult-section-orange .impact-cf7 {
  display: grid;
  grid-template-columns: 1fr 1fr 221px;
  gap: 10px;
  align-items: end;
}
.consult-section-orange .impact-cf7 > p:first-of-type {
  grid-column: 1 / -1;
  margin: 0 0 16px;
}
.consult-section-orange .impact-form-row {
  display: contents;
}
.consult-section-orange .wpcf7 input[type="text"],
.consult-section-orange .wpcf7 input[type="tel"],
.consult-section-orange .wpcf7 input[type="submit"] {
  height: 40px;
  margin: 0;
  padding: 0 14px;
  border-radius: 3px;
  box-sizing: border-box;
}
.consult-section-orange .impact-cf7 > p:has(.wpcf7-submit) {
  position: relative;
  margin: 0;
  padding: 0;
}
.consult-section-orange .wpcf7 input[type="submit"] {
  width: 100%;
  padding: 0 24px;
  line-height: 40px;
  background: #fff;
  color: var(--orange);
  text-transform: uppercase;
  letter-spacing: 1px;
}

.cta-banner { padding: 48px 0; color: #fff; }
.cta-help, .cta-red { background: var(--red); }
.cta-orange { background: var(--orange); }
.cta-inner { display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.cta-banner h2 { color: #fff; margin: 0 0 8px; }
.cta-banner p { margin: 0; }

.testimonials-band {
  background: #242424;
  padding: 120px 0 80px;
}
.testimonials-band .logo-bar { padding: 20px 0 0; }
.logo-bar { padding-top: 24px; }
.logo-bar-track {
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 16px;
  align-items: center;
  justify-items: center;
}
.logo-bar-track img {
  width: 108px;
  height: 108px;
  object-fit: contain;
  filter: grayscale(1);
  transition: filter .3s ease-out;
}
.logo-bar-track a:hover img { filter: grayscale(0); }

.project-gallery {
  background: #f8f8f8;
  padding: 120px 0;
}
.project-gallery-intro { text-align: center; margin-bottom: 20px; }
.project-gallery-intro .about-eyebrow { margin-bottom: 10px; }
.project-gallery-title {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 46px;
  margin: 0 0 20px;
}
.project-gallery-title span { display: block; }
.gallery-wrap { position: relative; }
.gallery-track {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scrollbar-width: none;
}
.gallery-track::-webkit-scrollbar { display: none; }
.gallery-track figure {
  flex: 0 0 calc((100% - 20px) / 3);
  scroll-snap-align: start;
  margin: 0;
}
.gallery-item { display: block; cursor: zoom-in; color: inherit; }
.gallery-track img {
  width: 100%;
  height: 200px;
  object-fit: cover;
}
.project-gallery-track img { height: 267px; }
.lightbox {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .92);
  padding: 40px;
}
.lightbox[hidden] { display: none; }
.lightbox img {
  max-width: min(1200px, 90vw);
  max-height: 88vh;
  width: auto;
  height: auto;
  object-fit: contain;
}
.lightbox-close,
.lightbox-prev,
.lightbox-next {
  position: absolute;
  background: transparent;
  border: 0;
  color: #fff;
  cursor: pointer;
  padding: 0;
}
.lightbox-close {
  top: 16px;
  right: 20px;
  width: 36px;
  height: 36px;
}
.lightbox-close svg { width: 28px; height: 28px; }
.lightbox-prev,
.lightbox-next {
  top: 50%;
  transform: translateY(-50%);
  width: 44px;
  height: 44px;
}
.lightbox-prev { left: 16px; }
.lightbox-next { right: 16px; }
.lightbox-prev svg,
.lightbox-next svg { width: 28px; height: 28px; display: block; }
.gallery-nav {
  position: absolute;
  top: 100px;
  transform: translateY(-50%);
  width: 20px;
  height: 20px;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(237, 237, 237, .9);
  cursor: pointer;
  z-index: 2;
}
.gallery-nav svg { display: block; width: 20px; height: 20px; }
.gallery-nav.prev { left: 10px; }
.gallery-nav.next { right: 10px; }
.gallery-dots {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0;
  margin-top: 40px;
}
.gallery-dots button {
  width: 6px;
  height: 6px;
  padding: 0;
  margin: 0 6px;
  border: 0;
  border-radius: 50%;
  background: #000;
  opacity: .2;
  cursor: pointer;
}
.gallery-dots button.is-active { opacity: 1; }

.video-testimonials {
  background-size: cover;
  background-position: center;
  background-attachment: fixed;
  color: #fff;
  position: relative;
  padding: 100px 0;
}
.video-testimonials::before {
  content: "";
  position: absolute;
  inset: 0;
  background: #101010;
  opacity: .4;
}
.video-testimonials .container { position: relative; }
.video-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 32px; align-items: center; }
.video-testimonials h2 { color: #fff; }
.video-testimonials p { color: #fffafa; font-weight: 500; }
.video-embeds { display: grid; gap: 16px; }
.video-frame {
  border: 5px solid var(--orange);
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 16/9;
}
.video-frame iframe { width: 100%; height: 100%; border: 0; }

.prose { max-width: 860px; margin: 0 auto 48px; }
.prose h2, .prose h3 { margin-top: 1.6em; }
.icon-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 20px;
  margin: 32px 0;
}
.icon-box {
  background: var(--light);
  padding: 24px;
  border-radius: 12px;
}
.icon-box h3 { margin-top: 0; color: var(--orange); }

.faq-list details {
  border-bottom: 1px solid #e5e5e5;
  padding: 14px 0;
}
.faq-list summary { cursor: pointer; font-weight: 700; }

.faq-page { padding: 50px 0 80px; }
.faq-page-grid {
  display: grid;
  grid-template-columns: 345px minmax(0, 1fr);
  gap: 40px;
  align-items: start;
}
.faq-aside-title {
  color: #000;
  font-size: 20px;
  margin-bottom: 10px;
}
.faq-aside-text {
  margin: 0 0 24px;
  color: #646464;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.75;
  max-width: 275px;
}
.faq-page-aside img {
  display: block;
  width: 100%;
  height: auto;
}
.faq-page-main h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 1;
  margin: 0 0 16px;
}
.faq-page-intro {
  margin: 0 0 24px;
  color: #707173;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
}
.faq-page-intro a { color: var(--orange); }
.faq-page .repair-faq-list { border: 0; }
.faq-page .repair-faq-item {
  margin: 0 0 10px;
}
.faq-page .repair-faq-item + .repair-faq-item { border-top: 0; }
.faq-page .repair-faq-trigger {
  gap: 0;
  min-height: 58px;
  padding: 0 0 0 20px;
  background: var(--orange);
}
.faq-page .repair-faq-q {
  flex: 1;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.2;
}
.faq-page .repair-faq-icon {
  flex: 0 0 60px;
  width: 60px;
  height: 58px;
  background: #3c3c3c;
}
.faq-page .repair-faq-item.is-open .repair-faq-icon {
  background: #e11a21;
}
.faq-page .repair-faq-icon::before,
.faq-page .repair-faq-icon::after,
.faq-page .repair-faq-trigger:hover .repair-faq-icon::before,
.faq-page .repair-faq-trigger:hover .repair-faq-icon::after,
.faq-page .repair-faq-item.is-open .repair-faq-icon::before,
.faq-page .repair-faq-item.is-open .repair-faq-icon::after {
  background: #fff;
}
.faq-page .repair-faq-panel {
  background: #f6f6f6;
}
.faq-page .repair-faq-panel-inner { padding: 0; }
.faq-page .repair-faq-panel p {
  margin: 0;
  padding: 15px 20px 0;
  color: #707173;
  font-size: 16px;
  font-weight: 400;
  line-height: 1.7;
}
.faq-page .repair-faq-panel p:last-child { padding-bottom: 15px; }
.faq-page .repair-faq-panel p + p { padding-top: 12px; }

.team-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 16px;
}
.team-card { background: var(--light); padding: 16px; border-radius: 10px; text-align: center; }
.team-card h3 { font-size: 16px; margin: 0 0 4px; }
.team-card p { margin: 0; font-size: 13px; color: var(--muted); }

.about-community {
  position: relative;
  background-color: #fff;
  background-image: url("../img/bg/about-shap-2.png");
  background-position: -1% 100%;
  background-repeat: no-repeat;
  padding: 0 0 120px;
}
.about-community::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("../img/bg/about-shap-1.png") no-repeat 100% 100%;
  pointer-events: none;
}
.about-community-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
  position: relative;
  z-index: 1;
  padding-top: 40px;
}
.about-community-copy { max-width: 524px; }
.about-community-copy h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 46px;
  margin: 0 0 20px;
}
.about-community-copy p {
  color: #707173;
  font-size: 16px;
  font-weight: 400;
  line-height: 28px;
  margin: 0 0 20px;
}
.about-community-photo img {
  width: 100%;
  max-width: 581px;
  height: auto;
  border-radius: 12px;
  display: block;
}

.about-leading {
  background-color: #191818;
  background-image: url("../img/bg/stap-banner1.png");
  background-position: 50% 100%;
  background-size: cover;
  background-repeat: no-repeat;
  padding: 90px 0 66px;
}
.about-leading-copy { max-width: 545px; margin-bottom: 40px; }
.about-leading-copy h2 {
  color: #fff;
  font-size: 36px;
  font-weight: 400;
  line-height: 46px;
  margin: 0 0 20px;
}
.about-leading-copy p {
  color: #f8f8f8;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
  margin: 0 0 20px;
}
.about-process {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 20px;
  margin-bottom: 40px;
  align-items: start;
}
.about-process-card {
  background: var(--orange);
  border-top: 5px solid var(--orange);
  border-radius: 12px;
  padding: 50px 24px;
  text-align: center;
  color: #fff;
  box-shadow: 0 5px 24px rgba(0, 0, 0, 0.2);
}
.about-process-card:nth-child(even) { margin-top: 52px; }
.about-process-icon {
  width: 60px;
  height: 60px;
  margin: 0 auto 25px;
  color: #fff;
}
.about-process-icon svg { width: 100%; height: 100%; display: block; }
.about-process-label {
  margin: 0;
  color: #e4e4e4;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.3;
  text-transform: uppercase;
}
.about-leading-video {
  border: 5px solid var(--orange);
  border-radius: 10px;
  overflow: hidden;
  aspect-ratio: 16 / 9;
}
.about-leading-video iframe { width: 100%; height: 100%; border: 0; display: block; }

.about-team {
  background: #f8f8f8 url("../img/bg/blog_shape02.png") no-repeat right top;
  padding: 120px 0 90px;
}
.about-team-kicker {
  color: #ff6600;
  font-family: var(--font);
  font-size: 36px;
  font-weight: 900;
  line-height: 1.2;
  text-align: center;
  margin: 0 0 12px;
}
.about-team-heading {
  color: #393738;
  font-family: var(--font);
  font-size: 36px;
  font-weight: 800;
  text-align: center;
  margin: 0 0 40px;
}
.about-leader-featured {
  display: grid;
  grid-template-columns: 276px 1fr;
  gap: 32px;
  align-items: start;
  margin-bottom: 48px;
}
.about-leader-featured img,
.about-leader-card img {
  width: 100%;
  height: auto;
  display: block;
}
.about-leader-copy h3,
.about-leader-card h3 {
  font-family: var(--font);
  font-size: 28px;
  font-weight: 800;
  color: #393738;
  margin: 0 0 10px;
}
.about-leader-role {
  color: #707173;
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 16px;
}
.about-leader-copy p,
.about-leader-card p {
  color: #707173;
  font-size: 16px;
  line-height: 28px;
  margin: 0 0 12px;
}
.about-leaders-pair {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
}
.about-leader-card { text-align: center; }
.about-leader-card img { max-width: 270px; margin: 0 auto 16px; }

.about-staff-band {
  background: #2b2b2b;
  padding: 48px 0 24px;
}
.about-staff {
  background: #2b2b2b url("../img/bg/section-tes-h3-bg.jpg") no-repeat center / cover;
  padding: 0 0 90px;
}
.about-specialists-band {
  background: #000;
  padding: 48px 0 24px;
}
.about-specialists {
  background: #000;
  padding: 0 0 90px;
}
.about-staff-grid {
  display: grid;
  gap: 24px;
}
.about-staff-grid-5,
.about-staff-grid-3 {
  grid-template-columns: repeat(3, 1fr);
}
.about-staff-card {
  background: #fff;
  border-radius: 4px;
  padding: 55px 40px 48px;
  text-align: center;
  transition: transform 0.3s ease;
}
.about-staff-card:hover { transform: scale(1.05); }
.about-staff-card img {
  width: 250px;
  max-width: 100%;
  height: auto;
  margin: 0 auto 16px;
  display: block;
}
.about-staff-card h3 {
  font-family: var(--font);
  font-size: 17px;
  font-weight: 800;
  color: #000;
  margin: 0 0 10px;
}
.about-staff-card p {
  margin: 0;
  color: #707173;
  font-size: 12px;
  font-weight: 600;
  line-height: 26px;
}
.about-specialists .about-staff-card h3 { font-size: 18px; }

.projects-page {
  padding: 10px 0 20px;
}
.projects-heading {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 36px;
  text-align: center;
  margin: 20px 0;
}
.projects-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
.projects-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  background: #ededed;
  border-radius: 5px;
  padding: 10px;
  text-align: center;
}
.projects-card-photo {
  display: block;
  width: 100%;
  line-height: 0;
}
.projects-card-photo img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 570 / 706;
  object-fit: cover;
  border: 7px solid var(--orange);
  border-radius: 13px;
  transition: transform 0.4s ease;
}
.projects-card-photo:hover img {
  transform: scale(1.08);
}
.projects-card h3 {
  color: #393738;
  font-size: 22px;
  font-weight: 400;
  line-height: 22px;
  margin: 10px 0 0;
}
.projects-card-type,
.projects-card-meta {
  margin: 0 0 20px;
  color: #000;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}
.projects-card-type { font-weight: 400; }
.projects-card-meta strong { font-weight: 700; }
.projects-card-meta em { font-style: italic; font-weight: 300; }
.projects-card-btn {
  display: inline-block;
  margin-top: 0;
  padding: 12px 24px;
  background: var(--orange);
  color: #fff;
  font-size: 15px;
  font-weight: 300;
  line-height: 1;
  border-radius: 20px;
  text-transform: none;
  letter-spacing: 0;
  transition: transform 0.4s ease;
}
.projects-card-btn:hover {
  background: var(--orange);
  color: #fff;
  transform: scale(1.08);
}

.project-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}
.project-card {
  background: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.08);
  border-radius: 12px;
  overflow: hidden;
  display: block;
  color: inherit;
}
.project-card img { width: 100%; height: 180px; object-fit: cover; }
.project-card div { padding: 16px; }
.project-card h3 { margin: 0 0 6px; }

.blog-list { display: grid; gap: 32px; }
.blog-item {
  display: grid;
  grid-template-columns: 306px 1fr;
  gap: 30px;
  align-items: center;
}
.blog-item-thumb {
  position: relative;
  display: block;
  overflow: hidden;
  border-radius: 6px;
  line-height: 0;
}
.blog-item-thumb::before {
  content: "";
  position: absolute;
  top: 0;
  left: -75%;
  z-index: 1;
  display: block;
  width: 50%;
  height: 100%;
  background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 100%);
  transform: skewX(-25deg);
  pointer-events: none;
}
.blog-item-thumb:hover::before {
  animation: shine 0.75s ease;
}
.blog-item-thumb img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 475 / 460;
  object-fit: cover;
  border-radius: 6px;
  transition: 0.5s ease-out;
}
@keyframes shine {
  100% { left: 125%; }
}
.single-post-article {
  padding: 48px 0 72px;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}
.single-post-article .container { max-width: 1170px; }
.single-post-thumb {
  position: relative;
  float: right;
  width: 200px;
  margin: 0 0 20px 30px;
  overflow: hidden;
  border-radius: 4px;
}
.single-post-thumb img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1200 / 700;
  object-fit: cover;
  border-radius: 4px;
}
.single-post-date {
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: 2;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 12px;
  background: var(--orange);
  color: #fff;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  border-radius: 6px 6px 0 0;
}
.single-post-body { overflow: hidden; }
.single-post-body p:has(style) { display: none; }
.single-post-body h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 46px;
  margin: 40px 0 20px;
}
.single-post-body h3 {
  color: #393738;
  font-size: 24px;
  font-weight: 400;
  line-height: 1.3;
  margin: 28px 0 10px;
}
.single-post-body p {
  margin: 0 0 16px;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}
.single-post-body p img,
.single-post-body strong img {
  display: inline-block;
  vertical-align: middle;
  width: auto;
  height: auto;
  max-height: 40px;
}
.single-post-body a { color: var(--orange); font-weight: 600; }
.single-post-body a:hover { text-decoration: underline; }
.single-post-body ul,
.single-post-body ol { margin: 0 0 20px 24px; }
.single-post-body li {
  margin: 0 0 8px;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.65;
}
.single-post-body hr {
  border: 0;
  border-top: 1px solid #ddd;
  margin: 32px 0;
}
.single-post-body blockquote {
  margin: 24px 0;
  padding: 40px;
  border-left: 4px solid var(--orange);
  background: #fdf6f0;
  border-radius: 0 8px 8px 0;
  color: #444;
  font-family: Inter, var(--font);
  font-size: 20px;
  font-weight: 700;
  font-style: italic;
  line-height: 1.4;
}
.single-post-body blockquote p,
.single-post-body blockquote em {
  margin: 0;
  color: inherit;
  font-size: inherit;
  font-weight: inherit;
  font-style: inherit;
  line-height: inherit;
}
.single-post-body .impact-acv-rcv .title,
.single-post-body .impact-acv-rcv .tip,
.single-post-body .impact-acv-rcv .example {
  margin: 0;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}
.single-post-body .card {
  display: flex;
  flex-direction: column;
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.125);
  border-radius: 2.5px;
}
.single-post-body .card-header {
  padding: 7.5px 12.5px;
  background: rgba(0, 0, 0, 0.03);
  border-bottom: 1px solid rgba(0, 0, 0, 0.125);
  border-radius: 1.5px 1.5px 0 0;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}
.single-post-body .card-body {
  padding: 12.5px;
}
.single-post-body .card-body p {
  margin: 0 0 20px;
}
.single-post-body .tag img {
  display: inline-block;
  vertical-align: middle;
  width: 40px;
  height: 40px;
}
.single-post-pagination {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  clear: both;
  margin: 50px 0 20px;
  padding: 40px;
  border: 1px solid #e4e4e4;
  border-radius: 4px;
}
.single-post-pag-item { max-width: 300px; }
.single-post-pag-next { margin-left: auto; text-align: right; }
.single-post-pag-link {
  display: block;
  margin-bottom: 10px;
  color: #707173;
  font-size: 16px;
  line-height: 1;
}
.single-post-pag-prev .single-post-pag-link::before { content: "← "; }
.single-post-pag-next .single-post-pag-link::after { content: " →"; }
.single-post-pag-link:hover { color: var(--orange); }
.single-post-pagination h3 {
  margin: 0;
  font-size: 16px;
  line-height: 1.4;
}
.single-post-pagination h3 a { color: #393738; }
.single-post-pagination h3 a:hover { color: var(--orange); }

.site-footer {
  background: #0a0a0a;
  color: #a5a5a5;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
  padding: 0;
}
.footer-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  padding: 90px 0 100px;
}
.site-footer h3 {
  color: #fff;
  font-size: 24px;
  line-height: 38px;
  margin: 0 0 28px;
  position: relative;
  padding-bottom: 22px;
}
.site-footer h3::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 49px;
  height: 4px;
  background: var(--orange);
}
.footer-links a,
.footer-contact a,
.footer-contact li {
  color: #a5a5a5;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}
.footer-links a {
  display: inline;
  padding: 5px 0;
  transition: color 0.7s ease-out, padding-left 0.7s ease-out;
}
.footer-links a:hover {
  color: #fff;
  padding-left: 5px;
}
.footer-links li {
  position: relative;
  display: block;
  margin: 0 0 10px;
  padding-left: 22px;
  line-height: 28px;
}
.footer-links li:last-child { margin-bottom: 0; }
.footer-links li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 7px;
  width: 9px;
  height: 14px;
  background-color: #a5a5a5;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='%23000' d='M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='%23000' d='M285.476 272.971L91.132 467.314c-9.373 9.373-24.569 9.373-33.941 0l-22.667-22.667c-9.357-9.357-9.375-24.522-.04-33.901L188.505 256 34.484 101.255c-9.335-9.379-9.317-24.544.04-33.901l22.667-22.667c9.373-9.373 24.569-9.373 33.941 0L285.475 239.03c9.373 9.372 9.373 24.568.001 33.941z'/%3E%3C/svg%3E") center / contain no-repeat;
  transition: background-color 0.7s ease-out;
}
.footer-links li:hover::before { background-color: var(--red); }
.footer-contact li { margin: 0 0 10px; }
.footer-hours { font-size: 16px; color: #d5d2d2; }
.footer-hours li { margin: 0 0 12px; font-weight: 600; }
.footer-hours span { display: inline-block; min-width: 90px; font-weight: 300; }
.footer-hours .is-closed { color: var(--orange); }
.footer-social { display: flex; gap: 12px; }
.footer-bottom {
  border-top: 1px solid #242424;
  padding: 40px 0 35px;
  font-size: 16px;
  font-weight: 300;
  text-align: center;
  color: #777;
}
.footer-bottom a { color: #fff; }
.footer-bottom a:hover { color: var(--orange); }

.entry-content { padding: 48px 0 72px; }

.project-intro {
  background-color: #f9f9f9;
  background-image: url("../img/bg/about-2banner1.png");
  background-position: center center;
  background-repeat: no-repeat;
  padding: 20px 0 80px;
}
.project-intro-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 48px;
  align-items: start;
}
.project-intro-copy h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 46px;
  margin: 0 0 20px;
}
.project-intro-copy p {
  color: #111;
  margin: 0 0 20px;
}
.project-intro-photo {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 0 24px;
}
.project-intro-copy h3 {
  color: #393738;
  font-size: 22px;
  font-weight: 400;
  line-height: 22px;
  margin: 0 0 16px;
}
.project-summary {
  list-style: none;
  margin: 0;
  padding: 0;
}
.project-summary li {
  position: relative;
  padding-left: 26px;
  color: #707173;
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  margin: 0 0 16px;
}
.project-summary li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--orange);
}
.project-summary li::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 6px;
  width: 5px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.project-summary strong { font-weight: 700; color: #393738; }
.project-intro .repair-consult { position: sticky; top: 120px; }

.project-story { padding: 20px 0 30px; }
.project-story h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 36px;
  margin: 0 0 16px;
}
.project-story p {
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
  margin: 0 0 16px;
}
.project-story-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}
.project-story-photo { margin: 0; }
.project-story-photo img {
  display: block;
  width: 100%;
  height: auto;
}
.project-photos { padding: 10px 0 30px; }
.project-photos-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
}
.project-photos-row figure { margin: 0; }
.project-photos-row img {
  display: block;
  width: 100%;
  height: auto;
}
.project-gallery-track figure {
  flex: 0 0 calc((100% - 20px) / 3);
}

.project-cta-wrap { padding: 20px 0 40px; }
.project-cta {
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  border-radius: 6px;
}
.project-cta-call {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 36px 32px;
  background-color: var(--orange);
  background-image: url("../img/bg/bgicon.png");
  background-position: center;
  background-repeat: no-repeat;
  color: #fff;
}
.project-cta-call:hover { color: #fff; }
.project-cta-icon {
  flex: 0 0 60px;
  width: 60px;
  height: 60px;
  border: 2px solid #fff;
  border-radius: 50%;
  display: grid;
  place-items: center;
  color: #fff;
}
.project-cta-icon svg { width: 24px; height: 24px; }
.project-cta-call strong {
  display: block;
  font-family: var(--font);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  margin: 0 0 4px;
}
.project-cta-call span span {
  display: block;
  font-size: 16px;
  font-weight: 500;
  line-height: 28px;
}
.project-cta-quote {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 36px 32px;
  background: #f3f3f3;
  color: #393738;
  font-family: var(--display);
  font-size: 22px;
  font-weight: 400;
  line-height: 32px;
}

/* Roof repair page — matched to live /roof-repair/ */
.repair-intro {
  background-color: #f9f9f9;
  background-image: url("../img/bg/about-2banner1.png");
  background-position: center center;
  background-repeat: no-repeat;
  padding: 40px 0 80px;
}
.repair-intro-grid {
  display: grid;
  grid-template-columns: 1.15fr 0.85fr;
  gap: 48px;
  align-items: start;
}
.repair-intro-copy h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.2;
  margin: 0 0 16px;
}
.repair-intro-copy p {
  color: #111;
  margin: 0 0 16px;
}
.repair-intro-lead {
  font-family: var(--display);
  font-size: 20px;
  font-weight: 400;
  color: #393738 !important;
  margin: 8px 0 12px !important;
}
.repair-checks {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px 24px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.repair-checks li {
  position: relative;
  padding-left: 28px;
  color: #707173;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.5;
}
.repair-checks li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 3px;
  width: 18px;
  height: 18px;
  border-radius: 50%;
  background: var(--orange);
}
.repair-checks li::after {
  content: "";
  position: absolute;
  left: 6px;
  top: 6px;
  width: 5px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}
.repair-consult h2 {
  color: var(--orange);
  font-family: var(--display);
  font-size: 23px;
  font-weight: 400;
  line-height: 1.2;
  margin: 0 0 16px;
}
.repair-consult .wpcf7 p { margin: 0 0 16px; }
.repair-consult textarea { min-height: 90px; }
.repair-consult .wpcf7-acceptance,
.repair-consult .wpcf7-list-item-label {
  color: #555;
  font-size: 13px;
  font-weight: 300;
  line-height: 1.5;
}
.repair-consult .wpcf7-acceptance a,
.repair-consult .wpcf7-list-item-label a {
  color: var(--orange);
}

.repair-why {
  background-color: #000;
  background-image: url("../img/bg/home_eight_hero_bg-min.png");
  background-position: center;
  background-size: cover;
  padding: 100px 0;
}
.repair-why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  align-items: center;
}
.repair-why .about-eyebrow { color: #fff; }
.repair-why h2 {
  color: #fff;
  font-size: 36px;
  margin: 0 0 28px;
}
.repair-why-item {
  display: grid;
  grid-template-columns: 60px 1fr;
  gap: 16px;
  align-items: start;
  margin: 0 0 22px;
}
.repair-why-item img {
  width: 60px;
  height: 60px;
  object-fit: contain;
}
.repair-why-item h3 {
  color: #fff;
  font-size: 22px;
  font-weight: 400;
  margin: 0 0 6px;
}
.repair-why-item p {
  color: #ddd;
  margin: 0;
  font-size: 16px;
  line-height: 1.6;
}

.repair-ready {
  position: relative;
  padding: 120px 0;
  overflow: hidden;
}
.repair-ready-workers {
  position: absolute;
  right: 0;
  top: 35px;
  width: 542px;
  height: auto;
  pointer-events: none;
  z-index: 0;
}
.repair-ready-grid {
  display: grid;
  grid-template-columns: 535px minmax(0, 1fr);
  gap: 50px;
  align-items: start;
  position: relative;
  z-index: 1;
}
.repair-ready-photo-wrap {
  position: relative;
  max-width: 535px;
}
.repair-ready-photo { width: 100%; }
.repair-ready-callout {
  position: absolute;
  right: 0;
  bottom: 0;
  display: flex;
  align-items: center;
  background: var(--orange);
  color: #fff;
  border-radius: 30px 0 0 0;
  padding: 20px 41px 20px 30px;
  min-height: 108px;
}
.repair-ready-callout:hover { color: #fff; }
.repair-ready-callout-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  margin-right: 20px;
  flex-shrink: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
}
.repair-ready-callout-icon svg {
  width: 24px;
  height: 24px;
  fill: #fff;
  color: #fff;
}
.repair-ready-callout:hover,
.repair-ready-callout:hover .repair-ready-callout-text span,
.repair-ready-callout:hover .repair-ready-callout-text strong,
.repair-ready-callout:hover .repair-ready-callout-icon {
  color: #fff;
}
.repair-ready-callout-text span,
.repair-ready-callout-text strong {
  display: block;
  color: #fff;
  font-family: var(--font);
  line-height: 28px;
}
.repair-ready-callout-text span {
  font-size: 14px;
  font-weight: 300;
}
.repair-ready-callout-text strong {
  font-size: 24px;
  font-weight: 600;
}
.repair-ready-copy { max-width: 600px; }
.repair-ready-copy h2 {
  color: #111;
  font-size: 36px;
  line-height: 46px;
  margin: 0 0 16px;
}
.repair-ready-copy > p {
  margin: 0 0 16px;
  color: #000;
  font-weight: 300;
}
.repair-ready-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 30px;
  margin-top: 24px;
}
.repair-ready-card-icon {
  display: flex;
  align-items: center;
  width: 70px;
  height: 70px;
  margin-bottom: 8px;
  color: var(--orange);
}
.repair-ready-card-icon i::before {
  font-size: 60px;
  line-height: 60px;
  color: var(--orange);
}
.repair-ready-cards h3 {
  color: #393738;
  font-size: 20px;
  font-weight: 700;
  font-family: var(--font);
  margin: 0 0 10px;
}
.repair-ready-cards p {
  margin: 0;
  color: #020101;
  font-size: 16px;
  line-height: 24px;
  font-weight: 300;
}

.repair-finance { padding: 30px 0 40px; }
.repair-finance-grid {
  display: grid;
  grid-template-columns: 300px 1fr;
  gap: 48px;
  align-items: center;
}
.repair-finance-grid img {
  width: 300px;
  height: 300px;
  object-fit: cover;
}
.repair-finance h2 {
  color: #000;
  font-size: 36px;
  margin: 0 0 16px;
}
.repair-finance p { margin: 0 0 20px; }
.btn-normal {
  text-transform: none;
  letter-spacing: 0;
}
.repair-btn-finance {
  border-radius: 25px;
  font-size: 15px;
  font-weight: 600;
  padding: 12px 24px;
  height: auto;
}
.testimonials-band-repair {
  background-color: #242424;
  background-image: url("../img/bg/testimonial_bg6.png");
  background-position: 50% 0;
  background-size: cover;
  padding: 70px 0;
}
.testimonials-band-repair .logo-bar-track img {
  width: 160px;
  height: 160px;
}
.cta-banner-repair { padding: 60px 0 54px; }
.cta-banner-repair h2 {
  font-size: 29px;
  font-weight: 700;
  font-family: var(--display);
}
.cta-banner-repair p {
  font-size: 20px;
  font-weight: 500;
}
.cta-banner-repair .btn-light {
  text-transform: uppercase;
  letter-spacing: 0;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 700;
  padding: 10px 45px;
  height: 48px;
  color: #000;
}

.repair-seo {
  padding: 60px 0 40px;
  text-align: center;
}
.repair-seo h2 {
  color: #393738;
  font-size: 46px;
  line-height: 1.2;
  margin: 0 0 16px;
}
.repair-seo p { margin: 0 0 16px; font-weight: 300; }
.repair-trust {
  font-weight: 400;
  color: #393738;
}
.repair-btn-seo {
  border-radius: 20px;
  font-size: 20px;
  font-weight: 700;
  padding: 12px 24px;
  height: auto;
}
.repair-or-call { color: #707173; font-weight: 300; }
.repair-or-call a { color: var(--orange); font-weight: 300; }

.repair-common { padding: 20px 0 40px; }
.repair-common h2,
.repair-vs h2,
.repair-process h2,
.repair-choose h2,
.repair-faq h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  margin: 0 0 16px;
  text-align: left;
}
.repair-common h3 {
  color: #393738;
  font-size: 22px;
  font-weight: 400;
  margin: 20px 0 8px;
}
.repair-common p,
.repair-common li,
.repair-process li {
  font-weight: 300;
  color: #333;
}
.repair-common ul {
  margin: 0;
  padding-left: 20px;
}
.repair-common li { margin: 0 0 12px; }

.repair-vs {
  background: #ebeaea;
  padding: 30px 0 40px;
}
.repair-vs-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
}
.repair-vs-card {
  background: #fff;
  border-radius: 10px;
  padding: 10px 20px 20px;
}
.repair-vs h3 {
  color: #393738;
  font-size: 28px;
  font-weight: 400;
  margin: 0 0 12px;
}
.repair-vs ul {
  margin: 0;
  padding-left: 20px;
}
.repair-vs li {
  margin: 0 0 8px;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
}

.repair-process { padding: 40px 0 30px; }
.repair-process ol {
  margin: 0;
  padding-left: 22px;
}
.repair-process li { margin: 0 0 10px; }

.repair-choose {
  background: #ebebeb;
  padding: 40px 0 50px;
}
.repair-choose ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.repair-choose li {
  position: relative;
  padding-left: 28px;
  margin: 0 0 16px;
  font-weight: 300;
}
.repair-choose li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--orange);
  font-weight: 700;
}

.repair-faq { padding: 50px 0 60px; }
.repair-faq h2 { margin-bottom: 20px; }
.repair-faq-list {
  border: 1px solid #d5d8dc;
}
.repair-faq-item + .repair-faq-item {
  border-top: 1px solid #d5d8dc;
}
.repair-faq-trigger {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  min-height: 50px;
  margin: 0;
  padding: 10px;
  background: transparent;
  border: 0;
  cursor: pointer;
  text-align: left;
  font-family: var(--font);
  color: #010000;
}
.repair-faq-icon {
  position: relative;
  flex: 0 0 18px;
  width: 18px;
  height: 18px;
}
.repair-faq-icon::before,
.repair-faq-icon::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  background: #fe6600;
  transform: translate(-50%, -50%);
  transition: transform 0.4s ease, background-color 0.4s ease;
}
.repair-faq-icon::before {
  width: 14px;
  height: 2.5px;
}
.repair-faq-icon::after {
  width: 2.5px;
  height: 14px;
}
.repair-faq-trigger:hover .repair-faq-icon::before,
.repair-faq-trigger:hover .repair-faq-icon::after,
.repair-faq-item.is-open .repair-faq-icon::before,
.repair-faq-item.is-open .repair-faq-icon::after {
  background: #1f2124;
}
.repair-faq-item.is-open .repair-faq-icon::after {
  transform: translate(-50%, -50%) scaleY(0);
}
.repair-faq-q {
  display: block;
  font-size: 18px;
  font-weight: 600;
  line-height: 28px;
  color: #010000;
}
.repair-faq-panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.4s ease;
}
.repair-faq-item.is-open .repair-faq-panel {
  grid-template-rows: 1fr;
}
.repair-faq-panel-inner {
  overflow: hidden;
  min-height: 0;
}
.repair-faq-panel p {
  margin: 0;
  padding: 0 10px 20px 38px;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
  color: #707173;
}
.repair-faq-panel strong {
  font-weight: 700;
  color: #333;
}
@media (prefers-reduced-motion: reduce) {
  .repair-faq-panel,
  .repair-faq-icon::before,
  .repair-faq-icon::after {
    transition: none;
  }
}

.repair-bottom-cta {
  background: var(--orange);
  text-align: center;
  padding: 48px 10px;
}
.repair-bottom-cta h2 {
  color: #000101;
  font-size: 36px;
  margin: 0 0 12px;
}
.repair-bottom-cta p {
  margin: 0 0 16px;
  color: #fff;
  font-size: 18px;
  font-weight: 700;
}
.repair-bottom-cta .repair-or-call,
.repair-bottom-cta .repair-or-call a {
  color: #fff;
  font-weight: 700;
  font-size: 18px;
}
.repair-btn-bottom {
  border-radius: 21px;
  font-size: 22px;
  font-weight: 700;
  padding: 12px 24px;
  height: auto;
  color: var(--orange);
}

/* Roof inspections page — matched to live /roof-inspections/ */
.inspect-why { padding-bottom: 180px; }
.inspect-why .about-eyebrow { color: var(--orange); }
.inspect-why .repair-why-item {
  grid-template-columns: 40px 1fr;
  margin-bottom: 18px;
}
.inspect-check {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: var(--orange);
  color: #fff;
}
.inspect-check svg {
  width: 18px;
  height: 18px;
}
.inspect-call {
  position: relative;
  z-index: 2;
  margin-top: -140px;
  padding: 0 0 20px;
}
.inspect-call-box {
  position: relative;
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  background: #fff;
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.24);
}
.inspect-call-box::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  width: 50%;
  background: var(--orange);
}
.inspect-call-phone,
.inspect-call-copy {
  position: relative;
  z-index: 1;
  margin: 0;
  padding: 50px 36px 30px;
}
.inspect-call-phone {
  display: flex;
  align-items: center;
  gap: 16px;
  color: #fff;
}
.inspect-call-phone:hover { color: #fff; }
.inspect-call-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  flex-shrink: 0;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
}
.inspect-call-icon svg {
  width: 24px;
  height: 24px;
}
.inspect-call-phone-text {
  display: flex;
  flex-direction: column;
}
.inspect-call-phone-text strong {
  display: block;
  color: #fff;
  font-family: var(--font);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  margin-bottom: 5px;
}
.inspect-call-phone-text span {
  color: #fff;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.4;
}
.inspect-call-copy {
  color: #111;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.6;
  align-self: center;
}
.inspect-during,
.inspect-save {
  padding: 20px 0 40px;
}
.inspect-during h2,
.inspect-when h2,
.inspect-save h2,
.inspect-diff h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  margin: 0 0 16px;
}
.inspect-during p,
.inspect-during li,
.inspect-save p,
.inspect-save li {
  font-weight: 300;
  color: #333;
}
.inspect-during ol,
.inspect-save ul {
  margin: 0 0 16px;
  padding-left: 22px;
}
.inspect-during li,
.inspect-save li { margin: 0 0 10px; }
.inspect-when,
.inspect-diff {
  background: #ebebeb;
  padding: 40px 0 50px;
}
.inspect-when-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px 24px;
}
.inspect-when-card {
  padding: 10px;
}
.inspect-when h3 {
  color: #393738;
  font-family: var(--display);
  font-size: 22px;
  font-weight: 400;
  margin: 0 0 8px;
}
.inspect-when p {
  margin: 0;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.6;
}
.inspect-when a { color: var(--orange); font-weight: 600; }
.inspect-diff ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.inspect-diff li {
  position: relative;
  padding-left: 28px;
  margin: 0 0 16px;
  font-weight: 300;
  color: #333;
}
.inspect-diff li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--orange);
  font-weight: 700;
}
.inspect-diff blockquote {
  margin: 24px 0 0;
  padding: 20px 24px;
  border-left: 4px solid var(--orange);
  background: #fff;
  border-radius: 0 8px 8px 0;
  font-style: italic;
  color: #444;
}
.inspect-diff blockquote p { margin: 0; }

body.header-variant-g-ads .site-content,
body.header-variant-g-ads-hsv .site-content,
body.header-variant-meta-ads .site-content,
body.header-variant-youtube-ads .site-content {
  padding-top: 120px;
}

.referrals-page {
  background-color: #f7f7f7;
  background-image: url("../img/bg/h7_section_bg1.jpg");
  background-position: 50% 50%;
  background-repeat: repeat;
  padding: 120px 0;
}
.referrals-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: start;
}
.referrals-copy {
  padding: 0 60px 0 12px;
}
.referrals-copy .about-eyebrow {
  color: #444;
  margin-bottom: 10px;
}
.referrals-copy h2 {
  color: #111;
  font-size: 36px;
  font-weight: 400;
  line-height: 46px;
  margin: 0 0 20px;
}
.referrals-copy p {
  color: #393939;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
  margin: 0 0 20px;
}
.referrals-copy img {
  width: 397px;
  max-width: 100%;
  height: auto;
  margin: 0 auto;
}
.referrals-form {
  width: 485px;
  max-width: 100%;
  background: #111;
  border-radius: 10px;
  padding: 45px;
}
.referrals-form .about-eyebrow {
  color: #fff;
  font-size: 14px;
  font-weight: 500;
  margin-bottom: 0;
}
.referrals-form h2 {
  color: #fff;
  font-size: 28px;
  font-weight: 400;
  line-height: 46px;
  margin: 0 0 16px;
}
.referrals-form .wpcf7 p {
  margin: 0 0 16px;
}
.referrals-form .wpcf7 p:last-of-type { margin-bottom: 0; }
.referrals-form .wpcf7 input[type="text"],
.referrals-form .wpcf7 input[type="email"],
.referrals-form .wpcf7 input[type="tel"] {
  border: 1px solid #69727d;
}
.referrals-form .wpcf7 input[type="submit"] {
  height: 40px;
  padding: 0 24px;
  font-weight: 600;
}

.careers-page {
  padding: 20px 0;
}
.careers-intro {
  margin: 0 0 30px;
}
.careers-intro .about-eyebrow { margin-bottom: 10px; }
.careers-intro h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 46px;
  margin: 0 0 20px;
}
.careers-open {
  margin: 0;
  color: #707173;
  font-size: 18px;
  font-weight: 700;
  line-height: 28px;
}
.careers-jobs {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 20px;
  padding: 10px 0;
}
.careers-job {
  display: flex;
  align-items: center;
  justify-content: space-around;
  gap: 20px;
  width: 70%;
  margin-left: 10px;
  padding: 10px;
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 0 6px rgba(0, 0, 0, 0.5);
}
.careers-job-title {
  margin: 0;
  color: #393738;
  font-size: 22px;
  font-weight: 400;
  line-height: 22px;
  text-align: center;
}
.careers-job-role,
.careers-job-loc {
  margin: 0;
  color: #707173;
  font-size: 18px;
  font-weight: 300;
  line-height: 28px;
  text-align: center;
}
.careers-job-role em { font-style: italic; }
.careers-job-btn {
  display: inline-block;
  padding: 12px 24px;
  background: var(--orange);
  color: #fff;
  border-radius: 20px;
  font-family: var(--font);
  font-size: 15px;
  font-weight: 600;
  line-height: 15px;
  text-align: center;
  white-space: nowrap;
}
.careers-job-btn:hover {
  background: var(--orange-dark);
  color: #fff;
}

.job-page { padding: 50px 0 0; }
.job-layout {
  display: grid;
  grid-template-columns: minmax(0, 50%) 468px;
  justify-content: start;
  align-items: start;
  gap: 0;
}
.job-copy {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding-right: 30px;
}
.job-copy h2 {
  margin: 0;
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 36px;
}
.job-copy h3 {
  margin: 0;
  color: #393738;
  font-size: 28px;
  font-weight: 400;
  line-height: 28px;
}
.job-loc {
  margin: 0;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}
.job-kicker {
  margin: 0;
  color: #ff6600;
  font-family: var(--display);
  font-size: 16px;
  font-weight: 400;
  line-height: 16px;
}
.job-lede p,
.job-copy ul,
.job-why ul {
  margin: 0 0 16px;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}
.job-lede p {
  margin: 0 0 20px;
}
.job-copy ul,
.job-why ul {
  padding-left: 20px;
}
.job-copy ul:last-child,
.job-why ul:last-child { margin-bottom: 0; }
.job-copy h4,
.job-why h4 {
  margin: 0;
  color: #393738;
  font-size: 22px;
  font-weight: 400;
  line-height: 22px;
}
.job-apply {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 30px 40px;
  border: 8px solid #ff6600;
  border-radius: 13px;
  text-align: center;
}
.job-apply h2 {
  margin: 0;
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 36px;
  text-align: center;
}
.job-apply-copy p {
  margin: 0 0 20px;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}
.job-apply-copy p:last-child { margin-bottom: 20px; }
.job-apply-btn {
  display: inline-block;
  align-self: center;
  padding: 12px 24px;
  background: var(--orange);
  color: #fff;
  border-radius: 20px;
  font-family: var(--font);
  font-size: 15px;
  font-weight: 600;
  line-height: 15px;
  text-align: center;
  white-space: nowrap;
}
.job-apply-btn:hover {
  background: var(--orange-dark);
  color: #fff;
}
.job-apply-hiring {
  margin: 0;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 28px;
}
.job-why {
  display: flex;
  flex-direction: column;
  gap: 20px;
  padding: 10px 0 120px;
}

.svc-materials { padding: 40px 0 50px; }
.svc-materials h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  margin: 0 0 16px;
}
.svc-materials > .container > p {
  margin: 0 0 20px;
  color: #333;
  font-weight: 300;
}
.svc-materials h3 {
  color: #393738;
  font-family: var(--display);
  font-size: 22px;
  font-weight: 400;
  margin: 0 0 8px;
}
.svc-materials .inspect-when-card p {
  margin: 0;
  color: #707173;
  font-size: 16px;
  font-weight: 300;
  line-height: 1.6;
}
.svc-materials a { color: var(--orange); font-weight: 600; }
.svc-star-list li::before { content: "★"; }
.repair-choose blockquote {
  margin: 24px 0 0;
  padding: 20px 24px;
  border-left: 4px solid var(--orange);
  background: #fff;
  border-radius: 0 8px 8px 0;
  font-style: italic;
  color: #444;
}
.repair-choose blockquote p { margin: 0; }
.loc-photo {
  width: 100%;
  max-width: 860px;
  margin: 0 0 24px;
}

.contact-intro {
  background-color: #f9f9f9;
  background-image: url("../img/bg/about-2banner1.png");
  background-position: center center;
  background-repeat: no-repeat;
  padding: 50px 0 70px;
}
.contact-intro-grid {
  display: grid;
  grid-template-columns: 1.1fr 0.9fr;
  gap: 48px;
  align-items: start;
}
.contact-intro-copy h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.2;
  margin: 0 0 20px;
}
.contact-checks { grid-template-columns: 1fr; }
.contact-offices {
  display: flex;
  flex-direction: column;
  gap: 28px;
}
.contact-office {
  display: grid;
  grid-template-columns: 48px 1fr;
  gap: 16px;
  align-items: start;
}
.contact-office-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  color: var(--orange);
}
.contact-office-icon svg {
  width: 28px;
  height: 28px;
}
.contact-office-label {
  margin: 0 0 4px;
  color: #393738;
  font-family: var(--display);
  font-size: 18px;
  font-weight: 400;
}
.contact-office p {
  margin: 0 0 6px;
  color: #555;
  font-weight: 300;
}
.contact-form-band {
  padding: 50px 0 40px;
}
.contact-form-band h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  margin: 0 0 20px;
}
.contact-photos { padding: 0 0 70px; }
.contact-photos-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 24px;
  align-items: center;
}

.news-list { padding: 50px 0 80px; }
.news-item { max-width: 860px; }
.news-item h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.25;
  margin: 0 0 16px;
}
.news-item p {
  margin: 0 0 20px;
  color: #333;
  font-weight: 300;
}
.news-divider {
  border: 0;
  border-top: 1px solid #d5d8dc;
  margin: 40px 0;
  max-width: 860px;
}
.news-article { padding: 50px 0 80px; }
.news-article h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  line-height: 1.25;
  margin: 0 0 24px;
}
.news-article p {
  margin: 0 0 16px;
  color: #333;
  font-weight: 300;
  max-width: 860px;
}
.news-badge {
  width: 150px;
  height: auto;
  margin: 0 0 24px;
}
.news-shot {
  width: 100%;
  max-width: 900px;
  margin: 16px 0;
}

.legal-content { padding: 50px 0 80px; }
.legal-logo {
  width: 220px;
  height: auto;
  margin: 0 0 28px;
}
.legal-content h2 {
  color: #393738;
  font-size: 36px;
  font-weight: 400;
  margin: 0 0 12px;
}
.legal-date {
  margin: 0 0 24px;
  color: #555;
  font-weight: 500;
}
.legal-content h3 {
  color: #393738;
  font-size: 22px;
  font-weight: 400;
  margin: 28px 0 10px;
}
.legal-content p,
.legal-content li {
  color: #333;
  font-weight: 300;
}
.legal-content p { margin: 0 0 14px; }
.legal-content ul { margin: 0 0 16px; padding-left: 20px; }
.legal-checks {
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
}
.legal-checks li {
  position: relative;
  padding-left: 28px;
  margin: 0 0 10px;
}
.legal-checks li::before {
  content: "✓";
  position: absolute;
  left: 0;
  top: 0;
  color: var(--orange);
  font-weight: 700;
}

@media (max-width: 1024px) {
  .page-hero-content .breadcrumbs { display: none; }
  .header-top-bar { display: none !important; }
  .main-navigation,
  .header-cta { display: none; }
  .menu-toggle { display: block; }
  .header-btn-mobile {
    display: inline-flex;
    margin-left: auto;
    background: var(--red);
    color: #fff;
    border-radius: 4px;
    padding: 6px 14px;
    font-size: 14px;
    font-weight: 700;
    text-transform: none;
  }
  .header-main-inner {
    display: flex;
    gap: 16px;
  }
  .site-header,
  body.trheader .site-header {
    background: #fff !important;
    position: absolute;
  }
  .header-main,
  #header-menu { background: #fff !important; }
  .menu-toggle { color: var(--dark); }
  .site-logo img { width: 130px; }
  .about-split,
  .about-community-grid,
  .about-leader-featured,
  .about-leaders-pair,
  .consult-grid,
  .video-grid,
  .footer-grid,
  .blog-item,
  .repair-intro-grid,
  .repair-why-grid,
  .repair-ready-grid,
  .repair-finance-grid,
  .repair-vs-grid,
  .inspect-call-box,
  .inspect-when-grid,
  .faq-page-grid,
  .contact-intro-grid,
  .contact-photos-grid { grid-template-columns: 1fr; }
  .inspect-why { padding-bottom: 120px; }
  .inspect-call { margin-top: -80px; }
  .inspect-call-box::before { display: none; }
  .inspect-call-phone { background: var(--orange); }
  .inspect-call-phone,
  .inspect-call-copy { padding: 32px 28px; }
  .repair-ready-workers { display: none; }
  .repair-ready-photo-wrap { max-width: none; }
  .repair-finance-grid img { margin-inline: auto; }
  .testimonials-band-repair .logo-bar-track img {
    width: 120px;
    height: 120px;
  }
  .about-process,
  .about-staff-grid-5,
  .about-staff-grid-3 { grid-template-columns: 1fr 1fr; }
  .projects-grid { grid-template-columns: 1fr 1fr; }
  .project-intro-grid,
  .project-story-split,
  .project-cta,
  .referrals-grid { grid-template-columns: 1fr; }
  .referrals-copy { padding: 0 0 40px; }
  .referrals-form { width: 100%; }
  .project-intro .repair-consult { position: static; }
  .project-story-split-flip { display: flex; flex-direction: column-reverse; }
  .project-gallery-track figure { flex: 0 0 calc((100% - 10px) / 2); }
  .consult-section-orange .consult-grid-photo { grid-template-columns: 280px 1fr; }
  .consult-section-orange .impact-cf7 { grid-template-columns: 1fr 1fr; }
  .consult-section-orange .wpcf7 input[type="submit"] { width: 100%; grid-column: 1 / -1; }
  .about-process-card:nth-child(even) { margin-top: 0; }
  .about-community { padding: 40px 0 80px; }
  .about-team { padding: 80px 0 60px; }
  .page-hero h1 { font-size: 36px; }
  .cta-inner { flex-direction: column; text-align: center; }
  .impact-form-row { grid-template-columns: 1fr; }
  .service-cards { margin-top: -40px; }
  .service-cards-panel { padding: 80px 30px 50px; }
  .logo-bar-track { grid-template-columns: repeat(3, 1fr); }
  .about-home { display: none; }
  .consult-info { display: none; }
  .hero-home { padding: 120px 0 200px; }
  .hero-home h1 { font-size: 60px; }
  .hero-home-copy { padding-top: 0; }
  .page-hero-content { padding-top: 120px; }
  .reviews-badge { width: 27%; }
  .gallery-track figure { flex: 0 0 calc((100% - 10px) / 2); }
}

@media (max-width: 767px) {
  .topbar-contact { display: none; }
  .hero-home { padding: 80px 0 180px; text-align: center; }
  .hero-home h1 { font-size: 36px; }
  .hero-home-copy { margin-inline: auto; }
  .reviews-badge { width: 50%; margin-inline: auto; }
  .service-cards-panel { padding: 50px 16px 30px; }
  .service-cards-row-3,
  .service-cards-row-2 { grid-template-columns: 1fr; }
  .gallery-track figure { flex: 0 0 100%; }
  .video-testimonials { background-attachment: scroll; padding: 80px 0; }
  .about-process,
  .about-staff-grid-5,
  .about-staff-grid-3 { grid-template-columns: 1fr; }
  .about-staff-card { padding: 32px 20px; }
  .page-hero h1 { font-size: 36px; line-height: 42px; }
  .projects-grid { grid-template-columns: 1fr; }
  .project-photos-row { grid-template-columns: 1fr; }
  .project-cta-call strong { font-size: 24px; }
  .project-intro-copy h2,
  .project-story h2 { font-size: 28px; line-height: 34px; }
  .projects-heading { font-size: 28px; line-height: 32px; }
  .consult-photo { display: none; }
  .consult-section-orange .consult-grid-photo { grid-template-columns: 1fr; }
  .consult-section-orange .consult-form { padding: 40px 0 20px; }
  .repair-checks,
  .repair-ready-cards { grid-template-columns: 1fr; }
  .inspect-why { padding-bottom: 100px; }
  .inspect-call { margin-top: -60px; }
  .inspect-call-phone,
  .inspect-call-copy { padding: 28px 24px; }
  .repair-intro-copy h2,
  .repair-why h2,
  .repair-ready-copy h2,
  .repair-seo h2,
  .repair-common h2,
  .repair-vs h2,
  .repair-process h2,
  .repair-choose h2,
  .repair-faq h2,
  .repair-bottom-cta h2,
  .svc-materials h2,
  .contact-intro-copy h2,
  .contact-form-band h2,
  .news-item h2,
  .news-article h2,
  .legal-content h2 { font-size: 28px; line-height: 1.25; }
  .repair-ready-callout { padding: 16px 24px 16px 20px; min-height: 88px; }
  .repair-ready-callout-text strong { font-size: 20px; }
  .referrals-page { padding: 60px 0; }
  .careers-intro h2 { font-size: 30px; line-height: 36px; }
  .careers-job {
    width: 100%;
    margin-left: 0;
    flex-direction: column;
    justify-content: center;
  }
  .job-layout { grid-template-columns: 1fr; }
  .job-copy { padding-right: 30px; }
  .job-apply { padding: 25px 20px; }
  .referrals-copy { padding: 0 0 40px; }
  .referrals-copy h2 { font-size: 28px; line-height: 34px; }
  .referrals-form { width: 100%; padding: 32px 24px; }
  .referrals-form h2 { font-size: 24px; line-height: 32px; }
  .single-post-thumb { float: none; width: 100%; max-width: 200px; margin: 0 0 20px; }
  .single-post-body h2 { font-size: 28px; line-height: 34px; }
  .single-post-pagination { flex-direction: column; padding: 12px; }
  .single-post-pag-item { max-width: none; }
  .single-post .page-hero h1 { font-size: 28px; }
}
