/* Shared contrast palette. Keep this stylesheet last on all public pages. */
:root {
  color-scheme: light;
  --ink: #172e4b;
  --muted: #465b73;
  --line: #c4d2e2;
  --cloud: #f2f6fc;
  --accent: #174fbb;
  --soft: #edf3ff;
  --tone-ink: #174fbb;
  --blue-gradient: linear-gradient(115deg, #174fbb, #5332a5);
}
[data-tone="place"] { --accent: #174fbb; --soft: #edf3ff; --tone-ink: #174fbb; }
[data-tone="signal"] { --accent: #6030a8; --soft: #f3edff; --tone-ink: #6030a8; }
[data-tone="purpose"] { --accent: #9b3c20; --soft: #fff2e8; --tone-ink: #9b3c20; }
[data-tone="power"] { --accent: #00685f; --soft: #eaf8f3; --tone-ink: #00685f; }
[data-tone="mount"] { --accent: #982656; --soft: #fff0f5; --tone-ink: #982656; }
[data-tone="care"] { --accent: #07567d; --soft: #eaf6ff; --tone-ink: #07567d; }

body { color: var(--ink); background: #fff; }
.site-header, .mobile-nav, .service-nav-wrap { background: #fff; color: var(--ink); }
.desktop-nav a, .mobile-nav a, .service-nav a { color: #243e60; }
.desktop-nav a:hover, .mobile-nav a:hover, .service-nav a:hover { color: #174fbb; }
.menu-toggle, .header-phone { color: #174fbb; }
.section h2, .section h3, .guide-photo-title { color: var(--ink); }
.section .eyebrow { color: #174fbb; }
.section h2 em, .diagnosis-copy h2 em, .quote-copy h2 em { color: #5332a5; }
.section-intro { color: var(--muted); }
.text-link { color: #174fbb; }

/* Color stays in pale section surfaces and accents, with opaque reading areas. */
.hero { background: linear-gradient(125deg, #e8f2ff, #ecf9f5); color: var(--ink); }
.hero h1 { color: #173457; }
.hero .hero-eyebrow, .hero .hero-eyebrow span { color: #244c84; }
.hero .hero-description { color: #334f6e; }
.hero-photo > figcaption { background: #173a58; color: #fff; }
.hero-photo > figcaption > strong { color: #fff; }
.hero-photo > figcaption > span { color: #ddf6ef; }
.hero .intent-install { background: #174fbb; border-color: #174fbb; color: #fff; }
.hero .intent-repair { background: #982656; border-color: #982656; color: #fff; }
.hero .intent-option strong, .hero .intent-option small { color: #fff; opacity: 1; }
.hero .intent-install:hover { background: #123d91; border-color: #123d91; }
.hero .intent-repair:hover { background: #771c42; border-color: #771c42; }

#quote { background: linear-gradient(120deg, #e9f1ff, #f1ecff); }
#quote .quote-copy > p:not(.eyebrow) { color: #3c526f; }
#quote .quote-copy .eyebrow { color: #174fbb; }
#quote .quote-form-wrap { background: #fff; border-color: #aabfdd; }
.apartment-section { background: linear-gradient(130deg, #e8f8f2, #edf5ff); }
.apartment-section h2, .apartment-section .eyebrow { color: #085e57; }
.apartment-photo > figcaption { background: #075e65; color: #fff; }
.apartment-places article > span { color: #00685f; }
.apartment-places h3, .apartment-services h3, .apartment-ready h3 { color: var(--ink); }
.apartment-places p, .apartment-services ul, .apartment-service-description,
.apartment-ready li span, .apartment-ready > p { color: #3c536c; }
.apartment-card-top, .apartment-sub-link { color: #174fbb; }
.apartment-repair .apartment-card-top, .apartment-card-note { color: #852548; }
.apartment-ready {
  margin-top: 28px; padding: 32px;
  background: #fff; border: 1px solid #b4d7cd; border-top: 4px solid #00685f;
  border-radius: 18px; text-align: center;
}
.apartment-ready > h3 {
  margin: 0; color: #172e4b; font-size: 1.625rem; font-weight: 800;
  line-height: 1.5; letter-spacing: -.025em; text-wrap: balance;
}
.apartment-ready > ol {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch; gap: 16px; margin: 28px 0 0; padding: 0;
  list-style: none;
}
.apartment-ready ol > li {
  display: flex; flex-direction: column; min-width: 0; padding: 0;
  overflow: hidden; background: #f7fcfa;
  border: 1px solid #b4d7cd; border-radius: 12px; text-align: center;
}
.apartment-ready li > b {
  display: block; padding: 16px 14px;
  background: #e1f3ec; border-bottom: 1px solid #bedbd1;
  color: #085e57; font-size: 1.375rem; font-weight: 800; line-height: 1.5;
}
.apartment-ready li > span {
  display: flex; flex: 1; align-items: center; justify-content: center;
  margin: 0; padding: 20px 16px;
  color: #344c68; font-size: 1.25rem; line-height: 1.7;
  word-break: keep-all; overflow-wrap: break-word; text-wrap: balance;
}
.apartment-ready > p {
  max-width: none; margin: 20px 0 0; padding: 18px 24px;
  background: #f0f6f4; border: 1px solid #d3e3dd; border-radius: 10px;
  color: #344c68; font-size: 1.25rem; line-height: 1.8; text-wrap: balance;
}
.services-section { background: #f7faff; }
.services-grid .service-card { background: #fff; border-color: #c4d2e2; border-top-color: var(--accent); }
.services-grid .service-card > p, .service-checks { color: #40566f; }
.services-grid .service-card h3 { color: var(--ink); }
.services-grid .service-card .service-kicker, .services-grid .service-card > .text-link { color: var(--tone-ink); }
.service-symptoms { color: #8c3523; }
.service-process {
  margin-top: 34px; padding: 32px;
  background: #edf3ff; border: 1px solid #bdcfe9; border-top: 4px solid #174fbb;
  border-radius: 18px; text-align: center;
}
.service-process > h3 {
  margin: 0 0 28px; color: #172e4b; font-size: 1.625rem;
  font-weight: 800; line-height: 1.5; letter-spacing: -.025em; text-wrap: balance;
}
.service-process > ol {
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr));
  align-items: stretch; gap: 16px; margin: 0; padding: 0; list-style: none;
}
.service-process ol > li, .service-process ol > li:last-child {
  display: flex; flex-direction: column; align-items: center; gap: 0;
  min-width: 0; padding: 24px 16px;
  background: #fff; border: 1px solid #bdcfe9; border-top: 3px solid #174fbb;
  border-radius: 12px; box-shadow: 0 6px 16px rgb(23 79 187 / 5%);
  text-align: center;
}
.service-process li > b {
  display: grid; place-items: center; flex-shrink: 0;
  width: 56px; height: 56px; margin: 0 0 18px;
  background: #174fbb; border: 0; border-radius: 14px;
  color: #fff; font-size: 1.5rem; font-weight: 800; line-height: 1;
  font-variant-numeric: tabular-nums;
}
.service-process li > strong {
  display: block; margin: 0; color: #172e4b;
  font-size: 1.375rem; font-weight: 800; line-height: 1.5;
  word-break: keep-all;
}
.service-process li > span {
  display: block; margin: 10px 0 0; color: #344c68;
  font-size: 1.25rem; line-height: 1.7;
  word-break: keep-all; overflow-wrap: break-word; text-wrap: balance;
}
.service-process > p {
  margin: 20px 0 0; padding: 18px 20px;
  background: #fff; border: 1px solid #c8d7ee; border-radius: 10px;
  color: #344c68; font-size: 1.25rem; line-height: 1.8; text-wrap: balance;
}
@media (max-width: 1023px) {
  .service-process > ol { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 820px) {
  .apartment-ready > ol { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .apartment-ready, .service-process { padding: 24px 18px; border-radius: 14px; }
  .apartment-ready > h3, .service-process > h3 { font-size: 1.5rem; }
  .apartment-ready > ol { margin-top: 22px; gap: 14px; }
  .apartment-ready li > b { padding: 14px 16px; }
  .apartment-ready li > span { padding: 16px; }
  .service-process > h3 { margin-bottom: 22px; }
  .service-process > ol { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .apartment-ready > p, .service-process > p { padding: 16px; }
}
.scope-card { background: #f0f5ff; }
.repair-scope { background: #fff2e8; }
.scope-card ul, .care-points p, .care-contact p { color: #40566f; }
.scope-label { color: #174fbb; }
.repair-scope .scope-label { color: #913c22; }
.scope-card li strong { color: var(--ink); }
.consultation-care { background: linear-gradient(120deg, #e8f8f2, #edf3ff); }
.care-contact { background: #fff; }
.care-points article > span { background: #eaf0ff; color: #244b88; }
.pricing-section { background: #f2edff; border-block: 1px solid #dfd4f2; }
.price-card, .price-card-featured { background: #fff; color: var(--ink); border-color: #b9cbe2; }
.price-card-featured { border-top-color: #6030a8; }
.price-card h3 strong { color: #174fbb; }
.price-card-featured h3 strong { color: #6030a8; }
.price-card .price-purpose, .price-card-featured .price-purpose,
.price-card .price-description, .price-card-featured .price-description,
.price-card .check-list, .price-card-featured .check-list,
.price-card .price-footer, .price-card-featured .price-footer, .cost-factors ul { color: #40566f; }
.price-card .price-footer > a { background: #eaf0ff; color: #174fbb; }
.price-card-featured .price-footer > a { background: #6030a8; color: #fff; }
.price-card .price-footer > a:hover { background: #dae6ff; color: #123d91; }
.price-card-featured .price-footer > a:hover { background: #492180; color: #fff; }
.diagnosis-section { background: #e1f3ee; color: var(--ink); border-block: 1px solid #b8d9cf; }
#diagnosis .diagnosis-copy .eyebrow, #diagnosis .diagnosis-copy h2 em { color: #00685f; }
.diagnosis-list { display: grid; gap: 12px; border-top: 0; }
.diagnosis-list details { padding-inline: 24px; background: #fff; border: 1px solid #b8d9cf; border-radius: 12px; }
#diagnosis .diagnosis-copy > p:not(.eyebrow), .diagnosis-answer p { color: #40566f; }
.diagnosis-list summary { color: #173b71; }
.diagnosis-list details[open] summary { color: #00685f; }
.diagnosis-list summary b { color: #375d52; }
.diagnosis-answer .text-link { color: #174fbb; }
#diagnosis .diagnosis-contact { background: #fff; border-color: #b8d9cf; }
#diagnosis .diagnosis-phone > span, #diagnosis .diagnosis-contact .diagnosis-note { color: #40566f; }
#diagnosis .diagnosis-phone > strong, #diagnosis .diagnosis-phone > .icon { color: #174fbb; }
.conversion-faq { background: #fff7ed; }
.conversion-faq-list summary { color: #203e64; }
.conversion-faq-list details[open] summary { background: #edf3ff; }
.conversion-faq-list details p { color: #40566f; }
.conversion-faq-list .text-link { color: #174fbb; }
.area-options button { background: #fff; border-color: #8aa3c2; color: #244b80; }
.area-options button:hover { background: #edf3ff; border-color: #174fbb; }
.area-options button[aria-pressed="true"] { background: #174fbb; border-color: #174fbb; color: #fff; }
.area-detail { background: #edf3ff; }
.area-kicker { color: #244b88; }
.area-note, #area-description, .area-seal span { color: #40566f; }
#areas .area-seal {
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 12px; padding-top: 26px; margin-top: 26px; text-align: center;
}
#areas .area-seal > .icon {
  box-sizing: border-box; width: 52px; height: 52px; padding: 11px;
  margin: 0; flex-shrink: 0; color: #174fbb; background: #eaf0ff;
}
#areas .area-seal > div { display: grid; justify-items: center; gap: 6px; text-align: center; }
#areas .area-seal strong { margin: 0; font-size: 1.375rem; line-height: 1.5; color: #172e4b; }
#areas .area-seal span { margin: 0; font-size: 1.25rem; line-height: 1.7; text-align: center; text-wrap: balance; }

/* Explanations, image cards, and the same form inside all six dialogs. */
.selection-section { background: linear-gradient(130deg, #edf4ff, #f5f0ff); }
.guide-photo-card, .guide-item, .guide-image-dialog .guide-item { background: #fff; }
.guide-photo-number { color: #fff; background: var(--accent); }
.guide-photo-question, .guide-photo-types { color: #40566f; }
.guide-photo-footer, .guide-photo-count { color: var(--tone-ink); }
.guide-photo-footer { background: var(--soft); }
.guide-combination { background: #fff; }
.guide-combination b { color: #174fbb; }
.guide-combination > p, .overview-note, .guide-summary-text > span,
.guide-category-intro, .guide-item-copy > p, .guide-item-copy .guide-bullets,
.guide-fit > p, .guide-tip > p, .guide-source-note { color: #40566f; }
.guide-item-copy h4 { color: var(--ink); }
.guide-fit, .guide-tip, .guide-source-note, .guide-power-flow { background: #edf3ff; }
.guide-tip > strong, .guide-fit > span { color: #244b88; }
.guide-choice, .guide-item-callout .guide-choice { background: var(--soft); }
.guide-choice > span, .guide-choice > p, .guide-item-enquire { color: var(--tone-ink); }
.guide-item-enquire { background: #fff; border-color: var(--accent); }
.guide-item-enquire:hover { background: var(--soft); }
.guide-category-footer .text-link { color: var(--tone-ink); }
.guide-reading-toolbar > button { background: #fff; color: #244b88; border-color: #8aa3c2; }
.guide-reading-toolbar > button:hover, .guide-reading-toolbar > button[aria-expanded="true"] { background: #eaf0ff; color: #173b71; }
.monthly-check { background: #eaf8f3; }
.monthly-check-heading p, .monthly-check-footer > span { color: #285c50; }
.monthly-check-items label { background: #fff; color: #244c40; }
.monthly-check-items label.is-checked { background: #d8f2e7; color: #174e3d; }
.monthly-check-heading > span, .monthly-check-footer > button { color: #175c4b; }
.guide-image-dialog { background: #f3f6fc; color: var(--ink); }
.guide-dialog-top { background: #fff; }
.guide-dialog-top > button { background: var(--accent); color: #fff; }
.guide-dialog-heading { background: var(--soft); }
.guide-dialog-heading > p, .guide-dialog-form .quote-form-heading p { color: #40566f; }
.guide-dialog-heading h2, .guide-dialog-top > span { color: var(--tone-ink); }
.guide-dialog-form, .guide-dialog-form .quote-form-wrap { background: #fff; }
.guide-dialog-form .quote-form-heading h3 { color: var(--ink); }
.guide-image-dialog .guide-category-footer .text-link { background: var(--accent); color: #fff; }
.guide-dialog-nav > button, .guide-dialog-back { background: #fff; color: #244b88; border-color: #8aa3c2; }

/* Always pair the telephone label with a deliberate, opaque surface. */
.hero .hero-phone-row .phone-number,
#quote .contact-block > a, .guide-phone-band .guide-phone-actions > a {
  background: #fff; color: #174fbb; border: 1px solid #8aa3c2;
}
.hero .hero-phone-row .phone-number[href]:hover,
#quote .contact-block > a[href]:hover,
.guide-phone-band .guide-phone-actions > a[href]:hover { background: #edf3ff; color: #123d91; }
.phone-section-title, #quote .contact-block > a > strong { color: #174fbb; }
#quote .contact-block > a > span, #quote .quote-contact > .quote-note { color: #40566f; }
.guide-phone-band { background: linear-gradient(115deg, #173d77, #423078); color: #fff; }
.guide-phone-band h3 { color: #fff; }
.guide-phone-band > div:first-child > p { color: #ddf6ef; }
.guide-phone-band .guide-phone-actions > a { padding: 16px 20px; border-radius: 10px; border-color: #fff; }
.guide-phone-band .guide-phone-actions > a > span { color: #40566f; }
.guide-phone-band .guide-phone-actions > a > strong,
.guide-phone-band .guide-phone-actions > a:hover > strong { color: #174fbb; }

/* Inputs, required labels, selections, and feedback stay legible in every state. */
.quote-form-wrap .field label { color: #203e64; }
.field label > span, .privacy-consent b { color: #972647; }
.quote-form-wrap .field label small, .guide-dialog-form .field label small,
.field-hint, .form-help, .guide-dialog-form .form-help { color: #465b73; }
.quote-form-wrap .field input:not([type="checkbox"]),
.quote-form-wrap .field select, .quote-form-wrap .field textarea {
  color: #172e4b; background: #fff; border-color: #8299b5;
}
.quote-form-wrap input::placeholder, .quote-form-wrap textarea::placeholder { color: #53647a; opacity: 1; }
.quote-form-wrap option { color: #172e4b; background: #fff; }
.lead-badge { color: #244b88; background: #edf3ff; }
.quote-extra { background: #f3f6fc; border-color: #bacbdd; }
.quote-extra > summary { color: #244b88; }
.quote-extra > summary > span { color: #465b73; }
.privacy-block { background: #edf3ff; border-color: #bdcfe5; }
.privacy-consent, .privacy-details dt { color: #203e64; }
.privacy-details { color: #40566f; }
.privacy-consent input { accent-color: #174fbb; }
.selected-guide { background: #f3edff; border-color: #bca3db; color: #563087; }
.selected-symptom { background: #eaf8f3; border-color: #9ecbbd; color: #175c4b; }
.selected-guide button, .selected-symptom button { background: #fff; color: #244b88; border: 1px solid #8aa3c2; }
.quote-form-wrap .quote-status { background: #edf3ff; color: #244b88; }
.quote-form-wrap .quote-status[data-state="error"] { background: #fff0f0; color: #972637; }
.quote-form-wrap .quote-status[data-state="success"] { background: #eaf8f1; color: #175c3d; }

/* Primary actions have white labels; secondary actions use dark text on white. */
.button-navy, .button-lime, .quote-form-wrap .button-full { background: var(--blue-gradient); color: #fff; border-color: transparent; }
.button-navy:hover, .button-lime:hover, .quote-form-wrap .button-full:hover { background: #123d91; color: #fff; }
.button-coral { background: #982656; color: #fff; }
.button-coral:hover { background: #771c42; color: #fff; }
.button-outline-light, .quote-form-wrap .lead-new { background: #fff; color: #174fbb; border-color: #8aa3c2; }
.button-outline-light:hover, .quote-form-wrap .lead-new:hover { background: #edf3ff; color: #123d91; }
.quote-form-wrap .button-full:disabled, .quote-form-wrap .button-full:disabled:hover { background: #4a5c76; color: #fff; opacity: 1; }
.mobile-contact-bar { background: #fff; }
.mobile-contact-bar a:first-child { background: #174fbb; color: #fff; }
.mobile-contact-bar a:last-child { background: #982656; color: #fff; }
.beginner-number { background: #eaf0ff; color: #244b88; }
.beginner-steps p, .beginner-finish p { color: #40566f; }
.beginner-example { color: #244b88; }
.beginner-finish { background: #edf3ff; }
.last-inquiry { background: linear-gradient(120deg, #e8f2ff, #f3edff); }
.last-inquiry p { color: #40566f; }
.site-footer { background: #edf3fa; color: #203e64; }
.site-footer .brand-word { color: #172e4b; }
.site-footer .brand-word > span { color: #4f741a; }
.site-footer .brand-word small { color: #35455a; }
.footer-main > p, .footer-scope-note, .footer-bottom p { color: #40566f; }
.footer-contacts .phone-number { color: #174fbb; }
.footer-business { color: #344c68; font-size: 1.25rem; }
.footer-business-title, .footer-business dt { color: #203e64; opacity: 1; font-size: 1.25rem; }
.footer-business dd { color: #344c68; font-size: 1.25rem; }

/* Balance the brand, message and phone; give the two message lines a clear hierarchy. */
.site-footer > .container { max-width: var(--content-width, 1140px); }
.site-footer .footer-main {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 1.5fr) minmax(0, 1fr);
  align-items: center;
  gap: 20px 24px;
  padding: 8px 0 32px;
}
.site-footer .brand-footer { justify-self: center; align-self: center; }
.site-footer .footer-main > .footer-message {
  width: 100%; max-width: none; margin: 0;
  font-size: 1.25rem; line-height: 1.6;
  text-align: center; text-wrap: balance; color: #40566f;
}
.footer-message > span { display: block; }
.footer-message > span:first-child {
  color: #172e4b; font-size: 1.375rem; font-weight: 750; line-height: 1.5;
}
.footer-message > span + span { margin-top: 6px; }
.site-footer .footer-contacts {
  display: flex; align-items: center; justify-content: center;
  width: 100%; margin: 0; gap: 0; justify-self: center;
}
.site-footer .footer-contacts .phone-number {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 60px; padding: 12px 20px;
  background: #fff; border: 1px solid #aabfdb; border-radius: 10px;
  color: #174fbb; font-size: 1.5rem; line-height: 1.4;
  font-weight: 800; letter-spacing: 0; white-space: nowrap;
}
.site-footer .footer-contacts .phone-number[href]:hover { background: #eaf0ff; border-color: #174fbb; }

/* Pair short fields in equal columns; the full address gets its own row. */
.site-footer .footer-business {
  margin: 0; padding: 26px 28px;
  background: #fff; border: 1px solid #c4d2e2; border-radius: 12px;
}
.site-footer .footer-business-title {
  display: block; margin: 0 0 20px; padding: 0 0 16px;
  border-bottom: 1px solid #dce4ee;
  font-size: 1.25rem; line-height: 1.5; letter-spacing: 0;
}
.site-footer .footer-business dl {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px 32px; max-width: none; margin: 0;
}
.site-footer .footer-business dl > .footer-business-item {
  display: grid; grid-template-columns: 92px minmax(0, 1fr);
  align-items: baseline; gap: 12px; min-width: 0; margin: 0;
}
.site-footer .footer-business dl > .footer-business-address {
  grid-column: 1 / -1;
  padding-top: 16px; border-top: 1px solid #dce4ee;
}
.site-footer .footer-business dt, .site-footer .footer-business dd {
  margin: 0; font-size: 1.25rem; line-height: 1.7; opacity: 1;
}
.site-footer .footer-business dt { white-space: nowrap; font-weight: 750; }
.site-footer .footer-business dd { min-width: 0; overflow-wrap: anywhere; }
.site-footer .footer-scope-note {
  max-width: 1020px; margin: 22px auto 0; padding: 0 20px;
  color: #40566f; font-size: 1.25rem; line-height: 1.8;
  text-align: center; text-wrap: balance;
}
.site-footer .footer-bottom {
  display: grid; grid-template-columns: minmax(0, 1fr);
  justify-items: center; align-items: center; gap: 12px;
  margin-top: 22px; padding-top: 22px;
}
.site-footer .footer-bottom p { width: 100%; margin: 0; text-align: center; line-height: 1.8; text-wrap: balance; }
.site-footer .footer-bottom p + p { text-align: center; }

@media (max-width: 1023px) {
  .site-footer .footer-main { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .site-footer .footer-main > .footer-message { grid-column: 1; grid-row: auto; }
  .site-footer .footer-contacts { grid-column: 1; grid-row: auto; }
}
@media (max-width: 900px) {
  .site-footer .footer-business dl { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .site-footer .footer-business dl > .footer-business-item { grid-template-columns: 92px minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .diagnosis-list details { padding-inline: 18px; }
  .site-footer .footer-main { grid-template-columns: minmax(0, 1fr); gap: 18px; text-align: center; }
  .site-footer .brand-footer { justify-self: center; }
  .site-footer .footer-main > .footer-message { grid-column: 1; grid-row: auto; text-align: center; }
  .site-footer .footer-contacts { grid-column: 1; grid-row: auto; justify-content: center; }
  .site-footer .footer-contacts .phone-number { width: 100%; max-width: 360px; }
  .site-footer .footer-scope-note { padding: 0 4px; }
  .site-footer .footer-business { padding: 22px 20px; }
  .site-footer .footer-business dl > .footer-business-item { grid-template-columns: 80px minmax(0, 1fr); gap: 10px; }
  .site-footer .footer-bottom { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .site-footer .footer-bottom p, .site-footer .footer-bottom p + p { text-align: center; }
}
@media (max-width: 440px) {
  .site-footer .footer-business dl { gap: 16px; }
  .site-footer .footer-business dl > .footer-business-item { grid-template-columns: minmax(0, 1fr); gap: 3px; }
}

/* One spacing scale for every content section, including the consultation form. */
@media screen {
  main {
    --section-space: 80px;
    --section-heading-gap: 36px;
  }
  main > section.section,
  main > #quote.section {
    margin-block: 0;
    padding-block: var(--section-space);
  }
  main > .section > .container > .section-heading {
    margin-top: 0;
    margin-bottom: var(--section-heading-gap);
  }
  main > #quote > .quote-grid,
  main > #diagnosis > .diagnosis-grid,
  main > #areas > .areas-grid {
    row-gap: var(--section-heading-gap);
  }
}
@media screen and (max-width: 1023px) {
  main {
    --section-space: 64px;
    --section-heading-gap: 32px;
  }
}
@media screen and (max-width: 640px) {
  main {
    --section-space: 48px;
    --section-heading-gap: 28px;
  }
}

:where(a,button,summary,input,select,textarea):focus-visible {
  outline: 3px solid #174fbb;
  outline-offset: 4px;
}
.guide-phone-band a:focus-visible { outline-color: #fff; }
@media print {
  .hero, .section, .site-footer, .guide-phone-band { background: #fff; color: #172e4b; }
  .guide-phone-band h3, .guide-phone-band > div:first-child > p,
  .hero-photo > figcaption, .hero-photo > figcaption > span, .hero-photo > figcaption > strong { background: #fff; color: #172e4b; }
}
