/* =========================================================
   TRIMWORKS — GENERAL BUILDING REPAIRS
   Page: /general-building-repairs/
   ========================================================= */

.tw-repair-page {
  --rpr-navy:var(--trim-navy,#061728);
  --rpr-red:var(--trim-red,#e30620);
  --rpr-off:var(--trim-off-white,#f2f5f7);
  --rpr-g100:var(--trim-gray-100,#e8edf1);
  --rpr-g300:var(--trim-gray-300,#c9cfd4);
  --rpr-g600:var(--trim-gray-600,#69737c);
  --rpr-text:var(--trim-charcoal,#20262b);
  --rpr-head:var(--trim-heading,"Oswald",Arial,sans-serif);
  --rpr-body:var(--trim-body,"Helvetica Neue",Helvetica,Arial,sans-serif);
  color:var(--rpr-text);
  font-family:var(--rpr-body);
  overflow:hidden;
}

.tw-repair-page *,
.tw-repair-page *::before,
.tw-repair-page *::after { box-sizing:border-box; }

.tw-repair-container {
  width:min(calc(100% - 96px),1240px);
  margin-inline:auto;
}

.tw-repair-kicker {
  margin:0 0 16px;
  color:var(--rpr-red);
  font:600 .8rem/1 var(--rpr-head);
  letter-spacing:.14em;
  text-transform:uppercase;
}

.tw-repair-page h1,
.tw-repair-page h2,
.tw-repair-page h3,
.tw-repair-page strong { font-family:var(--rpr-head); }

.tw-repair-page h1,
.tw-repair-page h2,
.tw-repair-page h3 { text-transform:uppercase; }

.tw-repair-page p { line-height:1.67; }

.tw-repair-page h2 {
  margin:0;
  color:var(--rpr-navy);
  font-size:clamp(2.55rem,4.5vw,4.6rem);
  font-weight:600;
  line-height:.98;
  letter-spacing:-.025em;
}

.tw-repair-inline-link,
.tw-repair-text-link,
.tw-repair-scope a {
  font:600 .8rem/1.2 var(--rpr-head);
  text-decoration:none;
  text-transform:uppercase;
}

/* HERO */
.tw-repair-hero {
  display:grid;
  grid-template-columns:1fr 1fr;
  min-height:650px;
  background:var(--rpr-navy);
  color:#fff;
}

.tw-repair-hero__content { display:flex; align-items:center; }

.tw-repair-hero__content .tw-repair-container {
  width:min(calc(100% - 96px),620px);
  margin-left:max(48px,calc((100vw - 1240px)/2));
  margin-right:48px;
}

.tw-repair-hero__copy { padding:170px 0 90px; }

.tw-repair-hero h1 {
  margin:0;
  color:#fff;
  font-size:clamp(3.5rem,5.6vw,6.3rem);
  font-weight:600;
  line-height:.92;
  letter-spacing:-.04em;
}

.tw-repair-hero__lead {
  max-width:650px;
  margin:26px 0 30px;
  color:rgba(255,255,255,.76);
  font-size:clamp(1.03rem,1.3vw,1.16rem);
}

.tw-repair-hero__actions {
  display:flex;
  align-items:center;
  gap:26px;
  flex-wrap:wrap;
}

.tw-repair-text-link { color:#fff; }

.tw-repair-hero__image {
  min-height:650px;
  background:#53616e center/cover no-repeat;
}

/* INTRO */
.tw-repair-intro {
  padding:clamp(80px,8vw,120px) 0;
  background:#fff;
}

.tw-repair-intro__grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(55px,8vw,120px);
}

.tw-repair-intro__grid > div:last-child p { color:var(--rpr-g600); }

.tw-repair-lead {
  margin-top:0;
  color:var(--rpr-text) !important;
  font-size:clamp(1.12rem,1.45vw,1.3rem);
}

/* SCOPE */
.tw-repair-scope {
  padding:clamp(80px,8vw,115px) 0;
  background:var(--rpr-off);
}

.tw-repair-scope__head {
  max-width:760px;
  margin-bottom:42px;
}

.tw-repair-scope__grid {
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:14px;
}

.tw-repair-scope article {
  min-height:235px;
  display:flex;
  flex-direction:column;
  padding:26px;
  background:#fff;
  border-top:4px solid var(--rpr-navy);
}

.tw-repair-scope span {
  color:var(--rpr-navy);
  font:600 1.02rem/1.2 var(--rpr-head);
  text-transform:uppercase;
}

.tw-repair-scope p {
  color:var(--rpr-g600);
  font-size:.91rem;
}

.tw-repair-scope a {
  margin-top:auto;
  padding-top:18px;
  color:var(--rpr-navy);
}

/* APPROACH */
.tw-repair-approach {
  padding:clamp(80px,8vw,120px) 0;
  background:var(--rpr-navy);
  color:#fff;
  scroll-margin-top:130px;
}

.tw-repair-approach__grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:clamp(55px,8vw,105px);
  align-items:center;
}

.tw-repair-approach__image {
  min-height:490px;
  background:#596875 center/cover no-repeat;
}

.tw-repair-approach h2 { color:#fff; }

.tw-repair-approach__copy > p:not(.tw-repair-kicker) {
  color:rgba(255,255,255,.7);
}

.tw-repair-approach__steps {
  margin-top:28px;
  border-top:1px solid rgba(255,255,255,.17);
}

.tw-repair-approach__steps > div {
  display:grid;
  grid-template-columns:.65fr 1.35fr;
  gap:18px;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.17);
}

.tw-repair-approach__steps strong {
  color:#fff;
  font-size:.9rem;
  text-transform:uppercase;
}

.tw-repair-approach__steps span {
  color:rgba(255,255,255,.62);
  font-size:.9rem;
}

/* RELATED */
.tw-repair-related {
  padding:clamp(75px,8vw,105px) 0;
  background:#e9edf0;
}

.tw-repair-related__grid {
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:75px;
}

.tw-repair-related__grid > div:last-child p {
  margin-top:0;
  color:var(--rpr-g600);
}

.tw-repair-inline-link {
  display:inline-block;
  margin-top:8px;
  color:var(--rpr-navy);
}

/* SERVICE AREA */
.tw-repair-service-area {
  padding:clamp(75px,8vw,105px) 0;
  background:#fff;
}

.tw-repair-service-area__grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:70px;
}

.tw-repair-service-area__grid > div:last-child > p {
  margin-top:0;
  color:var(--rpr-g600);
}

.tw-repair-city-links {
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  margin:22px 0 18px;
}

.tw-repair-city-links a {
  padding:10px 13px;
  color:var(--rpr-navy);
  background:var(--rpr-off);
  border:1px solid var(--rpr-g100);
  font:600 .75rem/1 var(--rpr-head);
  text-decoration:none;
  text-transform:uppercase;
}

/* FAQ */
.tw-repair-faq {
  padding:clamp(75px,8vw,110px) 0;
  background:var(--rpr-off);
}

.tw-repair-faq__head { margin-bottom:35px; }

.tw-repair-faq__grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.tw-repair-faq details {
  background:#fff;
  border-left:4px solid var(--rpr-red);
}

.tw-repair-faq summary {
  position:relative;
  padding:20px 42px 20px 20px;
  color:var(--rpr-navy);
  font:600 1rem/1.25 var(--rpr-head);
  text-transform:uppercase;
  list-style:none;
  cursor:pointer;
}

.tw-repair-faq summary::-webkit-details-marker { display:none; }

.tw-repair-faq summary::after {
  content:"+";
  position:absolute;
  right:17px;
  top:17px;
  color:var(--rpr-red);
  font:400 1.5rem/1 var(--rpr-head);
}

.tw-repair-faq details[open] summary::after { content:"–"; }

.tw-repair-faq details > div { padding:0 20px 20px; }

.tw-repair-faq details p {
  margin:0;
  color:var(--rpr-g600);
}

/* CTA */
.tw-repair-cta {
  padding:82px 0;
  background:#e9edf0;
}

.tw-repair-cta__inner {
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:50px;
}

.tw-repair-cta p:not(.tw-repair-kicker) {
  margin:15px 0 0;
  color:var(--rpr-g600);
}

/* RESPONSIVE */
@media (max-width:1050px) {
  .tw-repair-container { width:min(calc(100% - 64px),1240px); }

  .tw-repair-hero { grid-template-columns:1fr; }

  .tw-repair-hero__content .tw-repair-container {
    width:min(calc(100% - 64px),1240px);
    margin-inline:auto;
  }

  .tw-repair-hero__image { min-height:420px; }

  .tw-repair-intro__grid,
  .tw-repair-approach__grid,
  .tw-repair-related__grid,
  .tw-repair-service-area__grid {
    grid-template-columns:1fr;
    gap:36px;
  }

  .tw-repair-scope__grid { grid-template-columns:1fr 1fr; }
  .tw-repair-approach__image { min-height:420px; }
}

@media (max-width:700px) {
  .tw-repair-container { width:min(calc(100% - 36px),1240px); }

  .tw-repair-hero__content .tw-repair-container {
    width:min(calc(100% - 36px),1240px);
  }

  .tw-repair-hero__copy { padding:150px 0 66px; }
  .tw-repair-hero h1 { font-size:clamp(3.1rem,14vw,4.7rem); }
  .tw-repair-hero__image { min-height:320px; }

  .tw-repair-intro,
  .tw-repair-scope,
  .tw-repair-approach,
  .tw-repair-related,
  .tw-repair-service-area,
  .tw-repair-faq { padding:65px 0; }

  .tw-repair-scope__grid,
  .tw-repair-faq__grid { grid-template-columns:1fr; }

  .tw-repair-scope article { min-height:auto; }
  .tw-repair-approach__image { min-height:320px; }

  .tw-repair-approach__steps > div {
    grid-template-columns:1fr;
    gap:5px;
  }

  .tw-repair-cta { padding:68px 0; }

  .tw-repair-cta__inner {
    flex-direction:column;
    align-items:flex-start;
  }
}
