/* Readable type at the existing scale and spacing. Load after connections.css. */
body.site-v3 {
  font-size: var(--read-copy, 17px);
  line-height: 1.75;
}

/* Reading copy. Large display copy and headings keep their existing sizes. */
body.site-v3 .hero-v2-description,
body.site-v3 .hero-copy > p,
body.site-v3 .intro-body > p:not(.large-copy),
body.site-v3 .section-heading > p,
body.site-v3 .service-card p,
body.site-v3 .brand-project p,
body.site-v3 .brand-projects--compact .brand-project p,
body.site-v3 .styles-content > p,
body.site-v3 .style-description p,
body.site-v3 .process-steps p,
body.site-v3 .owner-section p:not(.large-copy):not(.eyebrow),
body.site-v3 .area-section > div > p,
body.site-v3 .faq-section > div > p,
body.site-v3 .faq-list details p,
body.site-v3 .faq-list details > div > p,
body.site-v3 .page-intro__bottom p,
body.site-v3 .content-row p,
body.site-v3 .coverage-grid p,
body.site-v3 .commercial-story p,
body.site-v3 .community-story p,
body.site-v3 .curb-studio-copy > p,
body.site-v3 .brian-strip p,
body.site-v3 .quote-intro > p:not(.eyebrow),
body.site-v3 .field-help,
body.site-v3 .quote-panel #quote-review > p:not(.eyebrow),
body.site-v3 .business-facts > div > p,
body.site-v3 .customer-question [data-answer-text],
body.site-v3 .question-topic .customer-question [data-answer-text],
body.site-v3 .project-library__intro,
body.site-v3 .project-library__empty,
body.site-v3 .project-library-dialog__description,
body.site-v3 .project-dialog__description,
body.site-v3 .error-page p {
  font-size: var(--read-copy, 17px);
  line-height: 1.75;
}

/* The earlier stylesheet forces this paragraph to 12px with !important. */
body.site-v3 .city-list p {
  font-size: var(--read-copy, 17px) !important;
  line-height: 1.75;
}

body.site-v3 .check-list li {
  font-size: var(--read-copy, 17px);
  line-height: 1.7;
}

body.site-v3 .check-list li::before {
  top: 15px;
}

body.site-v3 .eyebrow,
body.site-v3 .section-heading .eyebrow,
body.site-v3 .hero-v2-copy .eyebrow,
body.site-v3 .page-intro .eyebrow,
body.site-v3 .quote-intro .eyebrow,
body.site-v3 .quote-panel > .eyebrow,
body.site-v3 .home-close .eyebrow,
body.site-v3 .brian-strip .eyebrow {
  font-size: var(--read-eyebrow, 14px);
  line-height: 1.5;
  letter-spacing: .09em;
}

/* Text actions, labels and captions; decorative arrows and SVGs are excluded. */
body.site-v3 .button,
body.site-v3 .button--small,
body.site-v3 .text-link,
body.site-v3 .text-button,
body.site-v3 .hero-v2-actions .button,
body.site-v3 .hero-copy > .button,
body.site-v3 .home-close .button,
body.site-v3 .home-close .text-link,
body.site-v3 .home-close .home-review-link,
body.site-v3 .curb-studio-copy > .text-link,
body.site-v3 .brian-strip .text-link,
body.site-v3 .brand-project .text-link,
body.site-v3 .coverage-grid .text-link,
body.site-v3 .commercial-story .text-link,
body.site-v3 .discovery-faq .text-link,
body.site-v3 .gallery-page-intro .text-link,
body.site-v3 .form-next,
body.site-v3 .form-actions .button,
body.site-v3 .form-actions .text-button,
body.site-v3 .quote-review__actions .text-button,
body.site-v3 #quote-review > .button,
body.site-v3 .work-filters > button,
body.site-v3 .curb-layout-options > button,
body.site-v3 .quick-services > a,
body.site-v3 .video-play,
body.site-v3 .cta-call,
body.site-v3 .hero-call {
  font-size: var(--read-action, 16px);
  line-height: 1.5;
}

body.site-v3 .menu-toggle > b {
  font-size: var(--read-xs, 13px);
  line-height: 1.1;
}

body.site-v3 .small-note,
body.site-v3 .review-note,
body.site-v3 .review-note-simple,
body.site-v3 .comparison-note,
body.site-v3 .comparison-grid--single .comparison-note,
body.site-v3 .alignment-note,
body.site-v3 .guidance-note,
body.site-v3 .quote-disclaimer,
body.site-v3 .quote-proof,
body.site-v3 .quote-proof > span:last-child,
body.site-v3 .optional,
body.site-v3 .consent,
body.site-v3 .noscript,
body.site-v3 .project-dialog__caption,
body.site-v3 .project-library-dialog__attribution,
body.site-v3 .style-photo-grid figcaption,
body.site-v3 .owner-editorial figcaption,
body.site-v3 .page-intro__bottom > span,
body.site-v3 .content-index,
body.site-v3 .brand-role,
body.site-v3 .brand-projects--compact .brand-role,
body.site-v3 .award-proof-year,
body.site-v3 .award-proof > span > span:last-child,
body.site-v3 .award-year,
body.site-v3 .award-panel > strong,
body.site-v3 .award-panel > span:nth-last-child(2),
body.site-v3 .award-verify,
body.site-v3 .recognition-rating p,
body.site-v3 .hero-rating > span:nth-child(2) > span,
body.site-v3 .hero-review,
body.site-v3 .hero-review > span:last-child,
body.site-v3 .hero-photo__caption > span,
body.site-v3 .hero-bottom,
body.site-v3 .review-score > span:last-child,
body.site-v3 .review-card figcaption strong,
body.site-v3 .review-card figcaption div > span,
body.site-v3 .review-card figcaption > span:nth-child(2) > span,
body.site-v3 .service-card > div > span:first-child,
body.site-v3 .project-card__number,
body.site-v3 .project-card__caption > span,
body.site-v3 .portfolio-count,
body.site-v3 .image-corner-label,
body.site-v3 .owner-photo__label,
body.site-v3 .video-caption,
body.site-v3 .city-list > a > span,
body.site-v3 .coverage-grid article > span,
body.site-v3 .quote-phone > span,
body.site-v3 .brian-strip-phone > span {
  font-size: var(--read-detail, 15px);
  line-height: 1.65;
}

body.site-v3 .style-options > button,
body.site-v3 .faq-list summary,
body.site-v3 .customer-question summary,
body.site-v3 .question-topic .customer-question summary {
  font-size: var(--read-copy, 17px);
  line-height: 1.6;
}

/* Forms stay at least 16px, including the native selectors and placeholders. */
body.site-v3 .field-label {
  font-size: var(--read-action, 16px);
  line-height: 1.6;
}

body.site-v3 .field-label > input,
body.site-v3 .field-label > select,
body.site-v3 .field-label > textarea,
body.site-v3 .field-label > input::placeholder,
body.site-v3 .field-label > textarea::placeholder {
  font-size: var(--read-copy, 17px);
}

body.site-v3 .quote-review__summary dl,
body.site-v3 #quote-summary dl {
  font-size: var(--read-action, 16px);
  line-height: 1.7;
}

/* Discovery pages, crawlable gallery pages and factual information. */
body.site-v3 .breadcrumb,
body.site-v3 .discovery-breadcrumb,
body.site-v3 .related-pages > a,
body.site-v3 .question-topic-links > a,
body.site-v3 .gallery-page-links > summary,
body.site-v3 .gallery-sequential > a,
body.site-v3 .gallery-sequential > span,
body.site-v3 .gallery-page-numbers > a {
  font-size: var(--read-detail, 15px);
  line-height: 1.6;
}

body.site-v3 .related-pages > a,
body.site-v3 .question-topic-links > a,
body.site-v3 .gallery-sequential > a {
  min-height: 44px;
}

body.site-v3 .gallery-page-numbers > a {
  min-width: 44px;
  height: 44px;
}

body.site-v3 .business-facts dt {
  font-size: var(--read-detail, 15px);
  line-height: 1.6;
}

body.site-v3 .business-facts dd {
  font-size: var(--read-copy, 17px);
  line-height: 1.7;
}

body.site-v3 .business-facts dd > span {
  font-size: var(--read-detail, 15px);
}

/* Both server-rendered photo cards and their enhanced controls use this scale. */
body.site-v3 .project-library__label {
  font-size: var(--read-detail, 15px);
  line-height: 1.5;
  letter-spacing: .035em;
}

body.site-v3 .project-library__search input,
body.site-v3 .project-library__filter select,
body.site-v3 .project-library__page-select {
  font-size: var(--read-copy, 17px);
  line-height: 1.5;
}

body.site-v3 .project-library__status,
body.site-v3 .project-library__view-label,
body.site-v3 .project-library__page-button,
body.site-v3 .project-library__gallery-link,
body.site-v3 .project-library-dialog__arrow,
body.site-v3 .project-library-dialog__counter,
body.site-v3 .project-dialog__controls button,
body.site-v3 .project-dialog__controls .button,
body.site-v3 .project-dialog__counter {
  font-size: var(--read-detail, 15px);
  line-height: 1.5;
}

body.site-v3 .project-library__title {
  font-size: var(--read-copy, 17px);
  line-height: 1.5;
}

body.site-v3 .project-card__caption h3 {
  font-size: 18px;
  line-height: 1.5;
}

body.site-v3 .project-library__page-select {
  width: 156px;
  min-height: 46px;
}

body.site-v3 .project-library__page-button {
  min-height: 46px;
}

/* Comparison descriptions remain legible alongside the project views. */
body.site-v3 .comparison-tabs button,
body.site-v3 .comparison-switch button {
  font-size: var(--read-action, 16px);
  line-height: 1.45;
  white-space: normal;
  text-align: left;
  min-width: 0;
}

body.site-v3 .comparison-tabs button {
  align-items: flex-start;
}

body.site-v3 .comparison-tabs button > span,
body.site-v3 .comparison-card__top > span,
body.site-v3 .comparison-toolbar > [data-alignment-status],
body.site-v3 .comparison-toolbar > label,
body.site-v3 .comparison-label,
body.site-v3 .aligned-tag,
body.site-v3 .comparison-caption > span,
body.site-v3 .pair-navigation > span,
body.site-v3 .drawing-top,
body.site-v3 .drawing-bottom > span {
  font-size: var(--read-detail, 15px);
  line-height: 1.5;
}

body.site-v3 .drawing-bottom strong {
  font-size: var(--read-action, 16px);
  line-height: 1.5;
}

body.site-v3 .drawing-top,
body.site-v3 .drawing-bottom,
body.site-v3 .comparison-toolbar {
  flex-wrap: wrap;
  gap: 10px 14px;
}

body.site-v3 .comparison-toolbar > label {
  flex: 1 1 225px;
  min-width: 0;
  flex-wrap: wrap;
  row-gap: 6px;
}

body.site-v3 .comparison-toolbar select {
  flex: 1 1 185px;
  width: auto;
  min-width: 0;
  max-width: none;
  font-size: var(--read-copy, 17px);
  line-height: 1.5;
  min-height: 44px;
}

/* Footer copy and profile buttons remain readable at every width. */
body.site-v3 .footer-main p,
body.site-v3 .footer-connect p {
  font-size: var(--read-action, 16px);
  line-height: 1.65;
}

body.site-v3 .footer-main h3,
body.site-v3 .footer-connect h3,
body.site-v3 .footer-bottom {
  font-size: var(--read-detail, 15px);
  line-height: 1.65;
}

body.site-v3 .footer-main > div > a:not(.brand):not(.footer-phone):not(.button) {
  font-size: var(--read-action, 16px);
  line-height: 1.6;
  min-height: 38px;
}

body.site-v3 .social-link,
body.site-v3 .footer-connect .social-link {
  font-size: var(--read-action, 16px);
  line-height: 1.5;
}

@media (min-width: 851px) {
  body.site-v3 .site-header nav > a,
  body.site-v3 .site-header > .button {
    font-size: var(--read-detail, 15px);
    line-height: 1.5;
  }

  body.site-v3 .header-phone {
    font-size: var(--read-action, 16px);
  }
}

@media (max-width: 700px) {
  body.site-v3 .eyebrow,
  body.site-v3 .section-heading .eyebrow,
  body.site-v3 .hero-v2-copy .eyebrow,
  body.site-v3 .page-intro .eyebrow,
  body.site-v3 .quote-intro .eyebrow,
  body.site-v3 .quote-panel > .eyebrow,
  body.site-v3 .home-close .eyebrow,
  body.site-v3 .brian-strip .eyebrow {
    font-size: var(--read-xs, 13px);
    letter-spacing: .07em;
  }

  body.site-v3 .project-library__title,
  body.site-v3 .project-card__caption h3 {
    font-size: var(--read-detail, 15px);
    min-height: 42px;
  }

  body.site-v3 .project-library__view-label {
    display: none;
  }

  body.site-v3 .project-library__page-select {
    width: 100%;
    max-width: 156px;
  }

  body.site-v3 .comparison-tabs button {
    padding: 11px 12px;
    min-height: 48px;
  }

  body.site-v3 .quote-review__summary dl,
  body.site-v3 #quote-summary dl {
    grid-template-columns: 85px minmax(0, 1fr);
    font-size: var(--read-detail, 15px);
    gap: 12px;
  }

  body.site-v3 .business-facts dl > div {
    grid-template-columns: 95px minmax(0, 1fr);
  }
}

@media (max-width: 500px) {
  body.site-v3 .footer-connect .social-links {
    grid-template-columns: minmax(0, 1fr);
  }

  body.site-v3 .project-library-dialog__controls {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 8px;
  }

  body.site-v3 .project-library-dialog__counter {
    grid-row: 1;
    grid-column: 1 / -1;
    text-align: center;
  }

  body.site-v3 .project-library-dialog__arrow {
    grid-row: 2;
    width: 100%;
    min-height: 44px;
  }

  body.site-v3 .project-library-dialog__arrow:first-child {
    grid-column: 1;
  }

  body.site-v3 .project-library-dialog__arrow:last-child {
    grid-column: 2;
  }
}

@media (max-width: 480px) {
  body.site-v3 .project-library__toolbar {
    grid-template-columns: minmax(0, 1fr);
    gap: 13px;
  }

  body.site-v3 .project-library__filter select,
  body.site-v3 .project-library__search input {
    height: 48px;
  }
}

@media (max-width: 400px) {
  body.site-v3 .project-library__pager {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    width: 100%;
    gap: 8px;
  }

  body.site-v3 .project-library__page-label {
    grid-column: 1 / -1;
    grid-row: 1;
    justify-self: center;
    width: 156px;
  }

  body.site-v3 .project-library__page-button {
    grid-row: 2;
    width: 100%;
  }

  body.site-v3 [data-library-prev] {
    grid-column: 1;
  }

  body.site-v3 [data-library-next] {
    grid-column: 2;
  }
}

/* Larger business branding without reducing the readable navigation text. */
body.site-v3 .site-header > .brand {
  width: 214px;
  flex-basis: 214px;
}

body.site-v3 .footer-brand {
  width: 214px;
}

body.site-v3 .header-social .social-link {
  display: inline-flex;
  justify-content: center;
  align-items: center;
  width: auto;
  min-width: 0;
  height: auto;
  min-height: 40px;
  padding: 8px 10px;
  gap: 6px;
  border-radius: 9px;
  font-size: var(--read-detail, 15px);
  line-height: 1.3;
  white-space: nowrap;
}

body.site-v3 .hero-rating .review-source {
  color: #203c2b;
  font-size: var(--read-detail, 15px);
  font-weight: 600;
  line-height: 1.3;
  white-space: nowrap;
  flex: 0 0 auto;
}

/* Partner references use plain text, rather than imitation wordmarks. */
body.site-v3 .brand-project-nameplate {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 112px;
  margin-bottom: 21px;
  padding: 18px;
  border: 1px solid #d7e0ca;
  border-radius: 12px;
  background: #ecf0e4;
  color: #203c2b;
  font-family: inherit;
  font-size: 18px;
  font-weight: 600;
  font-style: normal;
  line-height: 1.45;
  letter-spacing: normal;
  text-align: center;
  text-transform: none;
  overflow-wrap: break-word;
}

body.site-v3 .brand-project-nameplate > span {
  font: inherit;
  letter-spacing: normal;
  color: inherit;
}

body.site-v3 .commercial-brand-label {
  background: #ecf0e4;
  color: #203c2b;
  font-family: inherit;
  font-size: clamp(28px, 3.2vw, 40px);
  font-weight: 600;
  font-style: normal;
  line-height: 1.25;
  letter-spacing: normal;
  text-transform: none;
}

@media (min-width: 851px) {
  body.site-v3 .site-header {
    height: 126px;
    padding-inline: clamp(24px, 4vw, 64px);
    gap: 12px;
  }
}

@media (max-width: 1380px) {
  body.site-v3 .header-social {
    display: none;
  }
}

@media (max-width: 850px) {
  body.site-v3 .site-header {
    height: 112px;
    padding-block: 6px;
    gap: 12px;
  }

  body.site-v3 .site-header > .brand {
    width: 190px;
    flex-basis: 190px;
  }

  body.site-v3 .site-header #site-nav {
    top: 112px;
    height: calc(100dvh - 112px);
  }
}

@media (max-width: 700px) {
  body.site-v3 .footer-brand {
    width: 180px;
    grid-row: auto;
  }

  body.site-v3 .footer-main > div:first-child {
    grid-template-columns: 180px minmax(0, 1fr);
  }

  body.site-v3 .brand-projects--compact .brand-project {
    grid-template-columns: minmax(0, 1fr);
    gap: 12px;
  }

  body.site-v3 .brand-project-nameplate {
    min-height: 58px;
    margin-bottom: 0;
    padding: 13px 16px;
    font-size: var(--read-action, 16px);
    border-radius: 9px;
  }
}

@media (max-width: 500px) {
  body.site-v3 .site-header {
    height: 104px;
    padding-inline: 20px;
    gap: 10px;
  }

  body.site-v3 .site-header > .brand {
    width: 184px;
    flex-basis: 184px;
  }

  body.site-v3 .site-header > .button {
    gap: 0;
    min-height: 46px;
  }

  body.site-v3 .site-header > .button > svg {
    display: none;
  }

  body.site-v3 .site-header #site-nav {
    top: 104px;
    height: calc(100dvh - 104px);
  }
}

@media (max-width: 400px) {
  body.site-v3 .footer-main > div:first-child {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 360px) {
  body.site-v3 .site-header {
    padding-inline: 14px;
    gap: 7px;
  }

  body.site-v3 .site-header > .brand {
    width: 168px;
    flex-basis: 168px;
  }
}

/* A further step in text size for phone and tablet reading. */
body.site-v3 {
  --site-header-height: 126px;
}
body.site-v3 main [id] {
  scroll-margin-top: calc(var(--site-header-height) + 16px);
}
@media (max-width: 1100px) and (min-width: 851px) {
  body.site-v3 .site-header { padding-inline:20px; gap:10px; }
  body.site-v3 .site-header > .brand { width:190px; flex-basis:190px; }
}
@media (max-width: 850px) {
  body.site-v3 {
    --read-xs:14px;
    --read-eyebrow:15px;
    --read-detail:16px;
    --read-action:17px;
    --read-copy:18px;
    --site-header-height:112px;
  }
  body.site-v3 .project-library__title { min-height:48px; }
  body.site-v3 .project-library__page-label { width:174px; }
  body.site-v3 .project-library__page-select { max-width:174px; }
}
@media (max-width: 500px) {
  body.site-v3 { --site-header-height:104px; }
  body.site-v3 .mobile-contact-bar a { font-size:16px; line-height:1.4; }
  body.site-v3 .project-library__page-select { max-width:100%; }
}
@media (max-width: 700px) {
  body.site-v3 .hero-v2-copy { padding-bottom:165px; }
}
@media (max-width: 430px) {
  body.site-v3 .site-header > .button { display:none; }
  body.site-v3 .site-header > .brand { margin-right:auto; }
}
@media (max-width: 380px) {
  body.site-v3 .mobile-contact-bar a > svg { display:none; }
}
