/* =========================================================
   TRIMWORKS — CAPITAL IMPROVEMENT PROJECTS
   Page: /capital-improvement-projects/
   ========================================================= */

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

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

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

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

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

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

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

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

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

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

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

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

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

.tw-cap-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-cap-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-cap-hero__actions {
  display:flex;
  align-items:center;
  gap:26px;
  flex-wrap:wrap;
}

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

.tw-cap-planning h2 { color:#fff; }

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

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

.tw-cap-planning__points > div {
  display:grid;
  grid-template-columns:.6fr 1.4fr;
  gap:18px;
  padding:14px 0;
  border-bottom:1px solid rgba(255,255,255,.17);
}

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

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

/* COMPARE */
.tw-cap-compare {
  padding:clamp(75px,8vw,105px) 0;
  background:#e9edf0;
}

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

.tw-cap-compare__cards {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14px;
}

.tw-cap-compare__cards > div {
  padding:26px;
  background:#fff;
  border-top:4px solid var(--cap-navy);
}

.tw-cap-compare__cards strong {
  color:var(--cap-navy);
  font-size:1.05rem;
  text-transform:uppercase;
}

.tw-cap-compare__cards p {
  margin-bottom:0;
  color:var(--cap-g600);
}

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

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

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

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

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

.tw-cap-inline-link { color:var(--cap-navy); }

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  .tw-cap-intro__grid,
  .tw-cap-planning__grid,
  .tw-cap-compare__grid,
  .tw-cap-service-area__grid {
    grid-template-columns:1fr;
    gap:36px;
  }

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

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

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

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

  .tw-cap-intro,
  .tw-cap-scope,
  .tw-cap-planning,
  .tw-cap-compare,
  .tw-cap-service-area,
  .tw-cap-faq { padding:65px 0; }

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

  .tw-cap-scope article { min-height:auto; }
  .tw-cap-planning__image { min-height:320px; }

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

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

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