:root {
  --cd-stack-gap: 1.5rem;
  --cd-content-gap: 1rem;
  --cd-hero-gap: 0.75rem;
  --cd-flow: clamp(1.5rem, 2.4vw, 2.25rem);
  --cd-flow-tight: 0.8rem;
  --cd-section-pad: clamp(3.5rem, 6vw, 6rem);
  --cd-header-h: 76px;
  --cd-page-gutter: clamp(1rem, 2vw, 2.25rem);
  --cd-content-max: 1640px;

  --cd-radius-sm: 8px;
  --cd-radius: 12px;
  --cd-radius-lg: 16px;

  --cd-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.06), 0 1px 3px rgba(0, 0, 0, 0.08);
  --cd-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.06);
  --cd-shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.16), 0 4px 12px rgba(0, 0, 0, 0.10);

  --cd-tool-wrap-compact: clamp(420px, 54vw, 820px);
  --cd-tool-wrap-standard: clamp(560px, 66vw, 1060px);
  --cd-tool-wrap-wide: clamp(640px, 90vw, 1380px);
  --cd-tool-wrap-detail: clamp(720px, 94vw, 1540px);

  --bs-body-bg: #FFFFFF;
  --cd-surface: #F6F8FB;
  --cd-surface-mid: #ECEFF4;
  --bs-border-color: #D5DBE4;
  --bs-border-color-rgb: 213, 219, 228;

  --cd-text-heading: #101010;
  --bs-body-color: #1F2430;
  --bs-body-color-rgb: 31, 36, 48;
  --bs-secondary-color: #4A515E;
  --bs-tertiary-color: #6B7280;

  --bs-primary: #3359E0;
  --bs-primary-rgb: 51, 89, 224;
  --bs-link-color: #3359E0;
  --bs-link-color-rgb: 51, 89, 224;
  --bs-link-hover-color: #2645B8;
  --bs-focus-ring-color: rgba(var(--bs-primary-rgb), 0.40);

  --cd-primary-btn: #15803D;
  --cd-primary-btn-hover: #11652F;
  --cd-on-primary-btn: #FFFFFF;
  --cd-primary-btn-rgb: 21, 128, 61;

  --bs-success: #1F8A4C;
  --bs-success-rgb: 31, 138, 76;
  --bs-warning: #B26A00;
  --bs-warning-rgb: 178, 106, 0;
  --bs-danger: #C42E22;
  --bs-danger-rgb: 196, 46, 34;
  --bs-info: #1466B8;
  --bs-info-rgb: 20, 102, 184;

  --cd-band-glow: rgba(var(--bs-primary-rgb), 0.06);
}

[data-bs-theme="dark"] {
  --bs-body-bg: #15171C;
  --cd-surface: #1B1E25;
  --cd-surface-mid: #22262F;
  --bs-border-color: #333A47;
  --bs-border-color-rgb: 51, 58, 71;

  --cd-text-heading: #EDEFF4;
  --bs-body-color: #D4D8E0;
  --bs-body-color-rgb: 212, 216, 224;
  --bs-secondary-color: #A7AEBC;
  --bs-tertiary-color: #8A92A1;

  --bs-primary: #88A4FF;
  --bs-primary-rgb: 136, 164, 255;
  --bs-link-color: #88A4FF;
  --bs-link-color-rgb: 136, 164, 255;
  --bs-link-hover-color: #A9BEFF;
  --bs-focus-ring-color: rgba(var(--bs-primary-rgb), 0.45);

  --bs-success: #4ED08A;
  --bs-success-rgb: 78, 208, 138;
  --bs-warning: #F0B45C;
  --bs-warning-rgb: 240, 180, 92;
  --bs-danger: #FF6B6B;
  --bs-danger-rgb: 255, 107, 107;
  --bs-info: #5AA9F0;
  --bs-info-rgb: 90, 169, 240;

  --cd-band-glow: rgba(var(--bs-primary-rgb), 0.08);
  --cd-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.30);
  --cd-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.40), 0 2px 4px rgba(0, 0, 0, 0.30);
  --cd-shadow-lg: 0 16px 40px rgba(0, 0, 0, 0.55), 0 4px 12px rgba(0, 0, 0, 0.40);
}

html {
  font-size: 18px;
  scrollbar-gutter: stable;
  overflow-y: scroll;
  scroll-behavior: smooth;
  scroll-padding-top: calc(var(--cd-header-h) + 0.75rem);
}

html.cd-booting *,
html.cd-booting *::before,
html.cd-booting *::after {
  transition: none !important;
}

html.cd-booting:not(:has(.global-header)) body { visibility: hidden; animation: cd-fouc-reveal 0s linear 2.5s forwards; }
@keyframes cd-fouc-reveal { to { visibility: visible; } }

body {
  font-family: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  background-color: var(--bs-body-bg);
  color: var(--bs-secondary-color);
  font-weight: 400;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
  overflow-wrap: break-word;
}

h1, h2, h3, h4, h5, h6,
.h1, .h2, .h3, .h4, .h5, .h6 {
  font-family: "Montserrat", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  color: var(--cd-text-heading);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

h1, .h1 { font-size: clamp(2rem, 5vw, 3rem); }
h2, .h2 { font-size: clamp(1.6rem, 3.5vw, 2.25rem); }
h3, .h3 { font-size: clamp(1.2rem, 2.2vw, 1.5rem); }

p, li { font-size: 1.0625rem; }

strong, b, .fw-bold { font-weight: 700; }

a {
  color: var(--bs-link-color);
  text-decoration-thickness: 1px;
  text-underline-offset: 0.15em;
}
a:hover { color: var(--bs-link-hover-color); }
a[href^="mailto:"] { overflow-wrap: anywhere; min-width: 0; }

::selection { background: rgba(var(--bs-primary-rgb), 0.22); }

:focus-visible {
  outline: none;
  box-shadow: 0 0 0 3px var(--bs-focus-ring-color);
  border-radius: var(--cd-radius-sm);
}

main {
  flex-grow: 1;
}

.page-band {
  padding-block: var(--cd-section-pad);
  position: relative;
}
.page-band + .page-band { border-top: 1px solid rgba(var(--bs-border-color-rgb), 0.6); }
.page-band > * { margin-bottom: 0 !important; }
.page-band.band-alt { background-color: var(--cd-surface); }
.page-band.band-glow::before {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(60% 80% at 50% 0%, var(--cd-band-glow), transparent 70%);
  pointer-events: none;
  z-index: 0;
}
.page-band > .band-inner { position: relative; z-index: 1; }

.band-inner > * { margin-bottom: 0 !important; }
.band-inner > * + * { margin-top: var(--cd-flow) !important; }
.band-inner > p + p, .band-inner > ul + p, .band-inner > p + ul, .band-inner > ul + ul { margin-top: 1rem !important; }
.band-inner > :is(h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.eyebrow) + :is(p,ul,ol) { margin-top: var(--cd-flow-tight) !important; }
.band-inner > .eyebrow + :is(h1,h2,h3,.h1,.h2,.h3) { margin-top: var(--cd-flow-tight) !important; }
.band-inner > .faq-item + .faq-item { margin-top: 0.75rem !important; }

.hero {
  text-align: center;
}
.hero > * + * { margin-top: var(--cd-hero-gap); }
.hero .hero-cta {
  margin-top: calc(var(--cd-hero-gap) * 1.5);
  flex-wrap: wrap;
}

.wrap-compact { max-width: var(--cd-tool-wrap-compact); margin-inline: auto; }
.wrap-standard { max-width: var(--cd-tool-wrap-standard); margin-inline: auto; }
.wrap-wide { max-width: var(--cd-tool-wrap-wide); margin-inline: auto; }

.btn {
  font-family: "Montserrat", sans-serif;
  border-radius: var(--cd-radius-sm);
  font-weight: 700;
  transition: transform 0.12s ease, background-color 0.12s ease, box-shadow 0.12s ease;
}
.btn:active { transform: translateY(1px); }

.btn-primary,
.btn-primary:visited {
  background-color: var(--cd-primary-btn);
  border-color: var(--cd-primary-btn);
  color: var(--cd-on-primary-btn);
  box-shadow: var(--cd-shadow-sm);
}
.btn-primary:hover,
.btn-primary:focus-visible {
  background-color: var(--cd-primary-btn-hover);
  border-color: var(--cd-primary-btn-hover);
  color: var(--cd-on-primary-btn);
}

.btn-outline-primary,
.btn-outline-primary:visited {
  background-color: transparent;
  border: 1px solid var(--bs-primary);
  color: var(--bs-primary);
}
.btn-outline-primary:hover,
.btn-outline-primary:focus-visible {
  background-color: rgba(var(--bs-primary-rgb), 0.08);
  border-color: var(--bs-primary);
  color: var(--bs-primary);
}

.form-control,
.form-select,
textarea.form-control {
  background-color: var(--cd-surface);
  border: 1px solid var(--bs-border-color);
  color: var(--bs-body-color);
  font-size: 1.0625rem;
  padding: 0.75rem 1rem;
  border-radius: var(--cd-radius-sm);
}
.form-control:focus,
.form-select:focus {
  background-color: var(--cd-surface);
  border-color: var(--bs-primary);
  box-shadow: inset 0 0 0 1px var(--bs-primary);
  color: var(--bs-body-color);
}
.form-check-input:focus { box-shadow: 0 0 0 3px var(--bs-focus-ring-color); }
.form-check-input:checked { background-color: var(--bs-primary); border-color: var(--bs-primary); }

.field-label {
  display: block;
  font-weight: 600;
  font-size: 0.8125rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--bs-secondary-color);
  margin-bottom: 0.35rem;
}

.form-control[aria-invalid="true"],
.form-select[aria-invalid="true"] {
  border-color: var(--bs-danger);
  box-shadow: inset 0 0 0 1px var(--bs-danger);
}
[data-error-for] {
  display: block;
  color: var(--bs-danger);
  font-size: 0.8125rem;
  min-height: 1.1em;
  margin-top: 0.2rem;
}
.cd-form-status { font-weight: 600; }
.cd-form-status:empty { display: none; }
.cd-field { margin-bottom: var(--cd-content-gap); }

.cd-quote-card { max-width: 760px; margin-inline: auto; }
.cd-quote-form { max-width: 680px; margin-inline: auto; }
.cd-form-grid textarea.form-control { min-height: 0; }
.cd-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--cd-content-gap) var(--cd-stack-gap); }
.cd-form-grid .cd-field { margin-bottom: 0; }
.cd-form-grid .cd-field-full { grid-column: 1 / -1; }
@media (max-width: 520px) { .cd-form-grid { grid-template-columns: 1fr; } }
.cd-field-hint { display: block; font-size: 0.8125rem; color: var(--bs-tertiary-color); margin-top: 0.3rem; }
.cd-quote-form button[type="submit"] { margin-top: 0.5rem; }
.cd-form-fineprint { font-size: 0.8125rem; color: var(--bs-tertiary-color); text-align: center; margin: 0.85rem auto 0; max-width: 680px; }

.cd-card {
  background-color: var(--cd-surface);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--cd-radius);
  padding: 1.5rem;
  box-shadow: var(--cd-shadow-sm);
  margin-bottom: var(--cd-content-gap);
}
.cd-card-lift { transition: transform 0.15s ease, box-shadow 0.15s ease; }
.cd-card-lift:hover { transform: translateY(-3px); box-shadow: var(--cd-shadow-md); }

.def-grid,
.related-grid,
.auto-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: var(--cd-stack-gap);
  justify-content: center;
}

.def-card {
  background-color: var(--cd-surface);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--cd-radius);
  padding: 1.5rem;
  box-shadow: var(--cd-shadow-sm);
  text-decoration: none;
  color: inherit;
  display: block;
  transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease;
}
a.def-card:hover {
  transform: translateY(-3px);
  box-shadow: var(--cd-shadow-md);
  border-color: rgba(var(--bs-primary-rgb), 0.5);
}

.card-icon {
  width: 2.5rem;
  height: 2.5rem;
  color: var(--bs-primary);
  margin-bottom: 0.75rem;
}
.bi { width: 1em; height: 1em; vertical-align: -0.125em; overflow: visible; }

.faq-item {
  background-color: var(--cd-surface);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--cd-radius);
  margin-bottom: var(--cd-content-gap);
  overflow: hidden;
}
.faq-item > summary {
  cursor: pointer;
  list-style: none;
  padding: 1.15rem 1.35rem;
  font-family: "Montserrat", sans-serif;
  font-weight: 600;
  color: var(--cd-text-heading);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
}
.faq-item > summary::-webkit-details-marker { display: none; }
.faq-item > summary .faq-chevron { transition: transform 0.2s ease; flex: none; color: var(--bs-primary); }
.faq-item[open] > summary .faq-chevron { transform: rotate(180deg); }
.faq-item .faq-body { padding: 0 1.35rem 1.25rem; }

.cd-call-link {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  font-weight: 700;
  text-decoration: none;
  color: var(--bs-primary);
}
.cd-nap {
  font-style: normal;
  line-height: 1.6;
}
.cd-nap-name { font-weight: 700; color: var(--cd-text-heading); }
.cd-directions-link { font-weight: 600; }

.map-facade {
  position: relative;
  display: block;
  border-radius: var(--cd-radius);
  overflow: hidden;
  border: 1px solid var(--bs-border-color);
  background-color: var(--cd-surface-mid);
  min-height: 280px;
  text-decoration: none;
}

.cd-map-embed {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
  width: 100%;
  height: 240px;
  text-align: center;
  text-decoration: none;
  color: var(--bs-secondary-color);
  background-color: var(--cd-surface-mid);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--cd-radius);
  overflow: hidden;
  padding: 1.25rem;
  cursor: pointer;
  transition: border-color 0.15s ease, color 0.15s ease;
}
@media (min-width: 768px) { .cd-map-embed { height: 300px; } }
@media (min-width: 1100px) { .cd-map-embed { height: 360px; } }
.cd-map-embed:hover, .cd-map-embed:focus-visible { border-color: var(--bs-primary); color: var(--bs-primary); }
.cd-map-embed .cd-map-embed-icon { width: 2rem; height: 2rem; color: var(--bs-primary); }
.cd-map-embed .cd-map-embed-text { font-family: "Montserrat", sans-serif; font-weight: 700; color: var(--cd-text-heading); font-size: 0.95rem; }
.cd-map-embed .cd-map-embed-sub { font-size: 0.85rem; color: var(--bs-secondary-color); line-height: 1.4; }
.cd-map-embed .cd-map-embed-hint { font-size: 0.78rem; color: var(--bs-tertiary-color); display: inline-flex; align-items: center; gap: 0.3rem; margin-top: 0.1rem; }
.cd-map-embed .cd-map-embed-hint svg { width: 0.9em; height: 0.9em; }
.cd-map-embed.is-loaded { padding: 0; display: block; cursor: default; }
.cd-map-embed-frame { display: block; width: 100%; height: 100%; border: 0; }

.cd-skip-link {
  position: absolute;
  left: -9999px;
  top: 0;
  z-index: 2000;
  padding: 0.6rem 1rem;
  background-color: var(--cd-primary-btn);
  color: var(--cd-on-primary-btn);
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
  text-decoration: none;
  border-radius: 0 0 var(--cd-radius-sm) 0;
}
.cd-skip-link:focus {
  left: 0;
  color: var(--cd-on-primary-btn);
}

.global-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  height: var(--cd-header-h);
  background-color: var(--bs-body-bg);
  border-bottom: 1px solid var(--bs-border-color);
  display: flex;
  align-items: stretch;
}
.global-header > .container-fluid { align-items: center; }
.brand-logo { aspect-ratio: 2386 / 1838; }
.global-header .brand-logo { height: 40px; width: auto; max-width: 210px; display: block; }
.global-header .container-fluid { max-width: var(--cd-content-max); margin-inline: auto; padding-inline: var(--cd-page-gutter) !important; }
.global-header .cd-call-link { padding: 0.5rem 0.9rem; border: 1px solid var(--bs-border-color); border-radius: 999px; font-family: "Montserrat", sans-serif; font-size: 0.92rem; white-space: nowrap; transition: border-color 0.15s ease, background-color 0.15s ease; }
.global-header .cd-call-link:hover { border-color: var(--bs-primary); background-color: rgba(var(--bs-primary-rgb), 0.06); }
.global-header .cd-call-link svg { width: 1.05rem; height: 1.05rem; }
@media (max-width: 767.98px) { .global-header .cd-call-link .cd-call-num { display: none; } .global-header .cd-call-link { padding: 0.5rem; } }
.global-header .navbar-nav { gap: clamp(0.4rem, 0.9vw, 1.1rem) !important; align-items: stretch; height: 100%; }
.global-header nav[aria-label="Primary"] { align-self: stretch; }
.global-header .navbar-nav > li { display: flex; align-items: stretch; }
.global-header .navbar-nav .nav-link { font-weight: 600; font-size: 0.9rem; display: inline-flex; align-items: center; white-space: nowrap; padding-inline: 0.55rem; position: relative; }
.global-header .nav-link.is-current { color: var(--bs-primary); }
.global-header .nav-link.is-current::after { content: ""; position: absolute; left: 0.55rem; right: 0.55rem; bottom: 0; height: 3px; background-color: var(--bs-primary); border-radius: 3px 3px 0 0; }
.global-header .btn { white-space: nowrap; padding-inline: 0.95rem; }

.cd-icon-btn { display: inline-flex; align-items: center; justify-content: center; width: 2.5rem; height: 2.5rem; padding: 0; flex: none; border: 0; background-color: transparent; color: var(--cd-text-heading); border-radius: var(--cd-radius-sm); cursor: pointer; -webkit-tap-highlight-color: transparent; transition: background-color 0.15s ease, color 0.15s ease; }
.cd-icon-btn:hover, .cd-icon-btn:focus-visible { background-color: var(--cd-surface); color: var(--bs-primary); }
.cd-icon-btn svg { width: 1.5rem; height: 1.5rem; }
.cd-hamburger svg { width: 1.7rem; height: 1.7rem; stroke: currentColor; stroke-width: 0.4; }

.site-footer {
  background-color: var(--cd-surface);
  border-top: 1px solid var(--bs-border-color);
  margin-top: auto;
}
.site-footer a { color: var(--bs-secondary-color); text-decoration: none; }
.site-footer a:hover { color: var(--bs-primary); }
.footer-inner { max-width: var(--cd-content-max); margin-inline: auto; padding-inline: var(--cd-page-gutter); padding-block: clamp(2.5rem, 4vw, 4rem) clamp(1.25rem, 2vw, 1.75rem); }

.footer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(2rem, 3vw, 3.25rem) clamp(1.5rem, 2.5vw, 2.75rem); align-items: start; }
.footer-brand-col { display: flex; flex-direction: column; align-items: flex-start; gap: 1rem; min-width: 0; }
.footer-brand-col .brand-logo { height: 42px; width: auto; display: block; }
.footer-blurb { margin: 0; max-width: 42ch; color: var(--bs-secondary-color); line-height: 1.6; }
.footer-brand-col .cd-social { margin: 0; }

.footer-acc { min-width: 0; }
.footer-acc-head { font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--cd-text-heading); }
.footer-acc > summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; cursor: pointer; margin-bottom: 1rem; }
.footer-acc > summary::-webkit-details-marker { display: none; }
.footer-acc > summary::marker { content: ""; }
.footer-acc-caret { width: 0.8em; height: 0.8em; flex: none; color: var(--bs-tertiary-color); transition: transform 0.15s ease; }
.footer-acc[open] > summary .footer-acc-caret { transform: rotate(180deg); }
.footer-acc-body ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; }
.footer-acc-body li { line-height: 1.4; }
.footer-acc-body a { font-size: 0.95rem; }
.footer-all { color: var(--bs-primary) !important; font-weight: 600; }

.footer-contact-col { display: flex; flex-direction: column; align-items: flex-start; gap: 0; min-width: 0; }
.footer-contact-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.6rem; width: 100%; }
.footer-contact-list li { display: flex; align-items: flex-start; gap: 0.5rem; color: var(--bs-secondary-color); font-size: 0.95rem; line-height: 1.5; min-width: 0; }
.footer-contact-list svg { width: 1rem; height: 1rem; flex: none; color: var(--bs-primary); margin-top: 0.15rem; }
.footer-contact-list a { color: var(--bs-secondary-color); min-width: 0; overflow-wrap: break-word; word-break: break-word; }
.footer-contact-list a:hover { color: var(--bs-primary); }
.footer-legal-col { min-width: 0; }
.footer-legal-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.5rem; line-height: 1.4; }
.footer-legal-list a { font-size: 0.95rem; line-height: 1.4; color: var(--bs-secondary-color); }
.footer-legal-list a:hover { color: var(--bs-primary); }
.footer-grid .cd-map-embed { height: clamp(230px, 18vw, 265px); }

.footer-bottom { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 0.5rem 1rem; margin-top: clamp(1.5rem, 2.5vw, 2.25rem); padding-top: clamp(1.1rem, 1.8vw, 1.5rem); border-top: 1px solid var(--bs-border-color); }
.footer-copy { grid-column: 2; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.15rem; }
.footer-copy-name { color: var(--bs-secondary-color); font-weight: 600; font-size: 0.85rem; }
.footer-copy-meta { color: var(--bs-tertiary-color); font-size: 0.8rem; }
.footer-toggle { grid-column: 3; justify-self: end; }

@media (min-width: 1280px) { .footer-acc > summary { pointer-events: none; } .footer-acc-caret { display: none; } }
@media (max-width: 1279px) {
  .footer-grid { grid-template-columns: 1fr; gap: 0; }
  .footer-brand-col { order: 1; align-items: center; text-align: center; gap: 1rem; padding-bottom: 1.35rem; border-bottom: 1px solid var(--bs-border-color); }
  .footer-blurb { max-width: 50ch; }
  .footer-acc { order: 3; border-bottom: 1px solid var(--bs-border-color); }
  .footer-acc > summary { margin-bottom: 0; padding-block: 0.95rem; }
  .footer-acc-body { padding-bottom: 1rem; }
  .footer-legal-col { order: 4; padding-block: 1.1rem; border-bottom: 1px solid var(--bs-border-color); }
  .footer-contact-acc { order: 5; }
  .footer-contact-body .cd-map-embed { margin: 1rem auto 0.25rem; max-width: 480px; }
  .footer-bottom { grid-template-columns: 1fr; justify-items: center; margin-top: 1.25rem; }
  .footer-copy, .footer-toggle { grid-column: 1; justify-self: center; }
}

table.cd-table {
  width: 100%;
  border-collapse: collapse;
}
table.cd-table th[scope="row"] {
  text-align: left;
  background-color: var(--cd-surface-mid);
  font-weight: 600;
  white-space: nowrap;
}
table.cd-table th, table.cd-table td {
  padding: 0.75rem 1rem;
  border: 1px solid var(--bs-border-color);
  vertical-align: top;
}
table.cd-table thead th { background-color: var(--cd-surface-mid); color: var(--cd-text-heading); }
.table-scroll-wrap { overflow-x: auto; }

.modal, .modal-body { overscroll-behavior: contain; }
body.modal-open { padding-right: 0 !important; }
html.cd-nav-open { overflow: hidden !important; }
html.cd-nav-open body { overflow: hidden; }

.cd-theme-switching, .cd-theme-switching * { transition: none !important; }

@media (max-width: 576px) {
  :root { --cd-content-gap: 0.75rem; }
}

@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

.blog-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 320px;
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: start;
  max-width: clamp(720px, 92vw, 1180px);
  margin-inline: auto;
  padding-inline: var(--cd-page-gutter);
}
.blog-main { min-width: 0; }
.blog-main > * + * { margin-top: var(--cd-content-gap); }
.blog-main h2 { margin-top: var(--cd-stack-gap); }
.blog-main h3 { margin-top: var(--cd-content-gap); }
.blog-main ul, .blog-main ol { padding-left: 1.25rem; }
.blog-main li { margin-bottom: 0.4rem; }
.blog-sidebar { position: sticky; top: calc(var(--cd-header-h) + 1rem); display: flex; flex-direction: column; gap: var(--cd-stack-gap); }
@media (max-width: 991.98px) {
  .blog-layout { grid-template-columns: 1fr; max-width: 760px; }
  .blog-sidebar { display: none; }
}

.cd-breadcrumb { font-size: 0.875rem; color: var(--bs-secondary-color); list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 0.55rem; padding: 0; margin: 0; }
.cd-breadcrumb li { display: inline-flex; align-items: center; gap: 0.55rem; }
.cd-breadcrumb li:not(:last-child)::after { content: "/"; color: var(--bs-tertiary-color); }
.cd-breadcrumb a { color: var(--bs-secondary-color); text-decoration: none; display: inline-flex; align-items: center; gap: 0.3rem; }
.cd-breadcrumb a:hover { color: var(--bs-primary); text-decoration: underline; }
.cd-breadcrumb .bi-house-door { width: 1.05em; height: 1.05em; }
.cd-breadcrumb li[aria-current="page"] { color: var(--cd-text-heading); font-weight: 600; }
.hero-content > nav[aria-label="Breadcrumb"] { margin-bottom: 0.1rem; }
.hero-content > nav[aria-label="Breadcrumb"] + .eyebrow { margin-top: clamp(1.3rem, 2vw, 1.7rem); }
.byline { font-size: 0.9375rem; }
@media (max-width: 640px) {
  .cd-breadcrumb { font-size: 0.72rem; gap: 0.4rem; }
  .cd-breadcrumb .bi-house-door { width: 0.9em; height: 0.9em; }
  .cd-breadcrumb li[aria-current="page"] { font-weight: 500; }
}

.cd-key-takeaways {
  background-color: var(--cd-surface);
  border: 1px solid var(--bs-border-color);
  border-left: 4px solid var(--bs-primary);
  border-radius: var(--cd-radius);
  padding: 1.25rem 1.5rem;
}
.cd-key-takeaways h2 { font-size: 1.125rem; margin-top: 0; }
.cd-key-takeaways ul { margin-bottom: 0; }

.cd-toc {
  background-color: var(--cd-surface);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--cd-radius);
  padding: 1rem 1.5rem;
}
.cd-toc .field-label { margin-bottom: 0.5rem; }
.cd-toc ul { margin-bottom: 0; list-style: none; padding-left: 0; }
.cd-toc li { margin-bottom: 0.3rem; }

.cd-inline-cta {
  background-color: var(--cd-primary-btn);
  border: 0;
  border-radius: var(--cd-radius-lg);
  padding: clamp(1.5rem, 3vw, 2rem) clamp(1.25rem, 2.5vw, 1.75rem);
  box-shadow: var(--cd-shadow-md);
  text-align: center;
}
.cd-inline-cta h2, .cd-inline-cta h3 { color: #FFFFFF; margin-top: 0; }
.cd-inline-cta h2 { font-size: clamp(1.35rem, 2.4vw, 1.7rem); }
.cd-inline-cta p { margin-bottom: 0.75rem; color: #FFFFFF !important; }
.cd-inline-cta p:last-of-type { color: rgba(255, 255, 255, 0.92) !important; }
.cd-inline-cta p a { color: #FFFFFF; text-decoration: underline; font-weight: 600; }
.cd-inline-cta p a:hover, .cd-inline-cta p a:focus-visible { color: #FFFFFF; text-decoration: none; }
.cd-inline-cta .d-flex { justify-content: center; }

.review-cta .btn-primary, .cd-inline-cta .btn-primary { background-color: #FFFFFF; border-color: #FFFFFF; color: var(--cd-primary-btn); }
.review-cta .btn-primary:hover, .review-cta .btn-primary:focus-visible, .cd-inline-cta .btn-primary:hover, .cd-inline-cta .btn-primary:focus-visible { background-color: #EFEFEF; border-color: #EFEFEF; color: var(--cd-primary-btn-hover); }
.review-cta .btn-outline-primary, .cd-inline-cta .btn-outline-primary { border: 1px solid rgba(255, 255, 255, 0.85); color: #FFFFFF; background-color: transparent; }
.review-cta .btn-outline-primary:hover, .review-cta .btn-outline-primary:focus-visible, .cd-inline-cta .btn-outline-primary:hover, .cd-inline-cta .btn-outline-primary:focus-visible { background-color: rgba(255, 255, 255, 0.14); border-color: #FFFFFF; color: #FFFFFF; }

.cd-sidebar-cta {
  background-color: var(--cd-surface);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--cd-radius-lg);
  padding: 1.5rem;
  box-shadow: var(--cd-shadow-sm);
}
.cd-sidebar-cta h2 { font-size: 1.1875rem; margin-top: 0; }

.cd-author-box {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  background-color: var(--cd-surface);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--cd-radius-lg);
  padding: 1.5rem;
  box-shadow: var(--cd-shadow-sm);
}
.cd-author-box img { width: 64px; height: 64px; border-radius: 50%; flex-shrink: 0; object-fit: cover; background-color: var(--cd-surface-mid); padding: 8px; }
.cd-author-box .cd-author-name { font-family: "Montserrat", sans-serif; font-weight: 700; color: var(--cd-text-heading); }

.cd-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--cd-stack-gap);
}
.cd-post-nav a {
  display: block;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--cd-radius);
  padding: 1rem 1.25rem;
  text-decoration: none;
  color: inherit;
  background-color: var(--cd-surface);
  transition: transform 0.15s ease, box-shadow 0.15s ease;
}
.cd-post-nav a:hover { transform: translateY(-3px); box-shadow: var(--cd-shadow-md); }
.cd-post-nav .cd-post-nav-next { text-align: right; }
.cd-post-nav-label { display: block; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--bs-secondary-color); font-weight: 600; margin-bottom: 0.25rem; }
@media (max-width: 576px) {
  .cd-post-nav { grid-template-columns: 1fr; }
  .cd-post-nav .cd-post-nav-next { text-align: left; }
}

.cd-share { display: flex; align-items: center; gap: 0.75rem; }
.cd-share a { color: var(--bs-secondary-color); display: inline-flex; }
.cd-share a:hover { color: var(--bs-primary); }
.cd-share svg { width: 1.25rem; height: 1.25rem; }


.navbar-nav .nav-link { font-family: "Montserrat", sans-serif; font-weight: 600; color: var(--bs-body-color); text-decoration: none; padding: 0.5rem 0.3rem; border-radius: var(--cd-radius-sm); }
.navbar-nav .nav-link:hover, .navbar-nav .nav-link:focus-visible { color: var(--bs-primary); }
.nav-has-menu { position: static; align-self: stretch; }
.nav-has-menu > .nav-link { display: inline-flex; align-items: center; gap: 0.3rem; height: 100%; }
.nav-caret { width: 0.7em; height: 0.7em; transition: transform 0.15s ease; flex: none; }
.nav-menu {
  position: absolute; top: 100%; left: 0; right: 0;
  background-color: var(--bs-body-bg);
  border: 0; border-bottom: 1px solid var(--bs-border-color);
  border-radius: 0;
  box-shadow: var(--cd-shadow-lg);
  padding-block: clamp(1.75rem, 2.5vw, 2.5rem);
  padding-inline: 0;
  opacity: 0; visibility: hidden; transform: translateY(8px);
  transition: opacity 0.14s ease, transform 0.14s ease;
  z-index: 1040;
}
.nav-menu::before { content: ""; position: absolute; top: -1.75rem; left: 0; right: 0; height: 1.75rem; }
.nav-has-menu:hover > .nav-menu, .nav-has-menu:focus-within > .nav-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.nav-has-menu:hover .nav-caret, .nav-has-menu:focus-within .nav-caret { transform: rotate(180deg); }
.nav-menu-inner { display: flex; flex-wrap: wrap; gap: clamp(1.5rem, 3vw, 3.5rem); align-items: stretch; max-width: var(--cd-content-max); margin-inline: auto; padding-inline: var(--cd-page-gutter); }
.nav-menu-col { flex: 1 1 200px; min-width: 170px; display: flex; flex-direction: column; }
.nav-menu-col.cols-2 { flex: 2 1 360px; }
.nav-menu-col-links { display: grid; grid-template-columns: 1fr; }
.nav-menu-col.cols-2 .nav-menu-col-links { grid-template-columns: 1fr 1fr; column-gap: 1.75rem; }
.nav-menu-head { font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 0.8125rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--bs-tertiary-color); text-decoration: none; padding-bottom: 0.5rem; margin-bottom: 0.5rem; border-bottom: 1px solid var(--bs-border-color); }
a.nav-menu-head:hover { color: var(--bs-primary); }
.nav-menu a:not(.nav-menu-head):not(.btn) { color: var(--bs-secondary-color); text-decoration: none; font-size: 0.95rem; padding: 0.34rem 0; display: block; }
.nav-menu a:not(.nav-menu-head):not(.btn):hover { color: var(--bs-primary); }
.nav-menu a.is-current { color: var(--bs-primary); font-weight: 700; }
.nav-menu .nav-menu-head.is-current { color: var(--bs-primary); }
.nav-menu-all { color: var(--bs-primary) !important; font-weight: 600; margin-top: 0.5rem; }
.nav-menu-feature { flex: 0 0 clamp(240px, 24%, 330px); background-color: var(--cd-surface); border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius); padding: 1.3rem 1.45rem; display: flex; flex-direction: column; gap: 0.65rem; }
.nav-menu-feature-title { font-family: "Montserrat", sans-serif; font-weight: 700; color: var(--cd-text-heading); }
.nav-menu-feature p { font-size: 0.9rem; color: var(--bs-secondary-color); margin: 0; }
.nav-menu-feature .btn { align-self: flex-start; }
.nav-menu-phone { display: inline-flex; align-items: center; gap: 0.4rem; font-weight: 700; color: var(--bs-primary) !important; text-decoration: none; margin-top: auto; }
.nav-menu-phone svg { width: 1rem; height: 1rem; }

.cd-theme-toggle .btn { padding: 0.4rem 0.55rem; line-height: 1; }
.cd-theme-toggle .btn svg { width: 1rem; height: 1rem; vertical-align: middle; }
.cd-theme-toggle .btn.active { background-color: rgba(var(--bs-primary-rgb), 0.14); color: var(--bs-primary); border-color: var(--bs-primary); }

.site-footer ul.list-unstyled li { margin-bottom: 0.4rem; }
.site-footer .cd-social a { color: var(--bs-secondary-color); display: inline-flex; }
.site-footer .cd-social svg { width: 1.25rem; height: 1.25rem; }
.site-footer .cd-social a:hover { color: var(--bs-primary); }
.site-footer .cd-call-link { color: var(--bs-primary); }

.hero.page-band { padding-block: clamp(4.5rem, 9vw, 8rem); }
.page-band > .band-inner > h2:first-child, .page-band > .band-inner > .h2:first-child { margin-bottom: 0.75rem; }

.hero.page-band.band-glow + .policy-body { padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.page-band + .policy-body, .policy-body + .page-band { border-top: 0; }
.policy-body .band-inner > h2:not(:first-child) { margin-top: clamp(2.25rem, 4vw, 3rem); }

.def-card, .cd-card { border-radius: var(--cd-radius-lg); }
.def-grid, .related-grid, .auto-grid { gap: clamp(1rem, 2.5vw, 1.75rem); }

.cd-img-slot { margin: 0; display: block; }
.cd-img-frame {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem;
  width: 100%; text-align: center; color: var(--bs-tertiary-color);
  background-color: var(--cd-surface-mid);
  border: 1px solid var(--bs-border-color);
  border-radius: var(--cd-radius-lg);
  overflow: hidden;
}
.cd-img-frame.ar-4x3 { aspect-ratio: 4 / 3; }
.cd-img-frame.ar-3x2 { aspect-ratio: 3 / 2; }
.cd-img-frame.ar-16x9 { aspect-ratio: 16 / 9; }
.cd-img-frame.ar-3x4 { aspect-ratio: 3 / 4; }
.cd-img-frame.ar-1x1 { aspect-ratio: 1 / 1; }
.cd-img-frame .bi-image { width: 2.25rem; height: 2.25rem; opacity: 0.55; }
.cd-img-label { font-size: 0.78rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase; }
.cd-img-cap { font-size: 0.9375rem; color: var(--bs-secondary-color); margin-top: 0.6rem; line-height: 1.5; }
img.cd-img { display: block; width: 100%; height: auto; border-radius: var(--cd-radius-lg); background-color: var(--cd-surface-mid); object-fit: cover; }
/* Card images sit above a text body, so their BOTTOM must be a straight edge (the card's overflow:hidden rounds only the top). The hydrated <img> loses the .cd-img-frame override, so square it here too. Standalone images (masonry gallery, feature, hero) keep their full radius. */
.why-card img.cd-img, .svc-card img.cd-img, .area-card img.cd-img, .step-card img.cd-img, .post-card img.cd-img, .audience-card img.cd-img, .cd-worry-card img.cd-img, .cd-quote-aside img.cd-img, .faq-aside img.cd-img { border-radius: 0; }

.cd-masonry { columns: 3; column-gap: clamp(0.7rem, 1.6vw, 1.1rem); }
.cd-masonry.cd-masonry-2 { columns: 2; }
.cd-masonry.cd-masonry-4 { columns: 4; }
@media (max-width: 992px) { .cd-masonry, .cd-masonry.cd-masonry-4 { columns: 2; } }
@media (max-width: 540px) { .cd-masonry, .cd-masonry.cd-masonry-2, .cd-masonry.cd-masonry-4 { columns: 1; } .cd-masonry.cd-masonry-keep2 { columns: 2; } }
.cd-masonry-item { break-inside: avoid; margin: 0 0 clamp(0.7rem, 1.6vw, 1.1rem); display: block; }
.cd-masonry-item .cd-img-slot, .cd-masonry-item .cd-img-frame { width: 100%; }
.cd-light-trigger { display: block; width: 100%; padding: 0; border: 0; background: none; border-radius: var(--cd-radius-lg); overflow: hidden; cursor: default; }
.cd-light-trigger.is-zoomable { cursor: zoom-in; }
.cd-light-trigger img.cd-img { transition: transform 0.3s ease; }
.cd-light-trigger.is-zoomable:hover img.cd-img { transform: scale(1.04); }
.cd-light-trigger:focus-visible { outline: 3px solid var(--bs-primary); outline-offset: 2px; }

.cd-lightbox { position: fixed; inset: 0; z-index: 1090; display: none; align-items: center; justify-content: center; background: rgba(8, 10, 14, 0.92); padding: clamp(0.75rem, 4vw, 3rem); }
.cd-lightbox.is-open { display: flex; }
.cd-lightbox-stage { position: relative; max-width: min(1400px, 100%); max-height: 100%; display: flex; flex-direction: column; align-items: center; gap: 0.85rem; }
.cd-lightbox img { max-width: 100%; max-height: 82vh; width: auto; height: auto; border-radius: var(--cd-radius); object-fit: contain; box-shadow: 0 22px 60px rgba(0,0,0,0.5); background: var(--cd-surface-mid); }
.cd-lightbox-cap { color: rgba(255,255,255,0.92); font-size: 0.95rem; text-align: center; max-width: 60ch; }
.cd-lightbox-btn { position: absolute; top: 50%; transform: translateY(-50%); width: 3rem; height: 3rem; display: inline-flex; align-items: center; justify-content: center; border: 0; border-radius: 999px; background: rgba(255,255,255,0.14); color: #fff; cursor: pointer; }
.cd-lightbox-btn:hover { background: rgba(255,255,255,0.26); }
.cd-lightbox-prev { left: clamp(0.5rem, 2vw, 1.5rem); }
.cd-lightbox-next { right: clamp(0.5rem, 2vw, 1.5rem); }
.cd-lightbox-close { position: fixed; top: clamp(0.75rem, 2vw, 1.5rem); right: clamp(0.75rem, 2vw, 1.5rem); transform: none; }
.cd-lightbox-btn svg { width: 1.4rem; height: 1.4rem; }
.cd-lightbox-count { position: fixed; top: clamp(1rem, 2vw, 1.7rem); left: clamp(1rem, 2vw, 1.7rem); color: rgba(255,255,255,0.8); font-size: 0.9rem; font-weight: 600; letter-spacing: 0.03em; }
@media (max-width: 540px) { .cd-lightbox-btn { width: 2.5rem; height: 2.5rem; } .cd-lightbox img { max-height: 74vh; } }
.cd-lightbox-stage img { cursor: zoom-in; transform-origin: center center; transition: transform 0.22s ease; will-change: transform; touch-action: none; user-select: none; -webkit-user-select: none; -webkit-user-drag: none; }
.cd-lightbox-stage.is-zoomed img { cursor: grab; }
.cd-lightbox-stage.cd-no-trans img { transition: none; cursor: grabbing; }
.cd-lightbox-btn, .cd-lightbox-count, .cd-lightbox-hint { z-index: 2; }
.cd-lightbox-hint { position: fixed; bottom: clamp(0.6rem, 2vw, 1.4rem); left: 50%; transform: translateX(-50%); color: rgba(255, 255, 255, 0.6); font-size: 0.78rem; letter-spacing: 0.02em; pointer-events: none; }
.cd-lightbox-stage.is-zoomed ~ .cd-lightbox-hint { opacity: 0; }

:root { --cd-star: #E0A100; }
[data-bs-theme="dark"] { --cd-star: #F2C14E; }

.stat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: clamp(1rem, 3vw, 2.5rem); text-align: center; }
.stat-num { font-family: "Montserrat", sans-serif; font-weight: 700; color: var(--bs-primary); font-size: clamp(2.1rem, 5vw, 3.25rem); line-height: 1; }
.stat-label { font-weight: 600; color: var(--bs-secondary-color); margin-top: 0.45rem; }

.feature-row { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.5rem, 4vw, 3.5rem); align-items: center; }
.feature-row .feature-body > * + * { margin-top: 0.9rem; }
@media (max-width: 768px) { .feature-row { grid-template-columns: 1fr; } .feature-row .feature-media { order: -1; } }
.feature-points { list-style: none; padding: 0; margin: 0; display: grid; gap: 0; }
.feature-points li { display: grid; grid-template-columns: auto 1fr; gap: 0.85rem; align-items: start; padding: 1rem 0; }
.feature-points li:first-child { padding-top: 0; }
.feature-points li:last-child { padding-bottom: 0; }
.feature-points li + li { border-top: 1px solid var(--bs-border-color); }
.feature-points li > svg { width: 1.5rem; height: 1.5rem; color: var(--bs-primary); margin-top: 0.15rem; flex: none; }
.feature-points strong { display: block; }
.feature-points li > div > p { margin: 0.15rem 0 0; color: var(--bs-secondary-color); font-size: 0.95rem; }

.svc-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-lg); background-color: var(--bs-body-bg); box-shadow: var(--cd-shadow-sm); text-decoration: none; color: inherit; transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; }
.svc-card:hover { transform: translateY(-4px); box-shadow: var(--cd-shadow-md); border-color: rgba(var(--bs-primary-rgb), 0.4); }
.svc-card .cd-img-slot { display: flex; margin: 0; }
.svc-card .cd-img-frame { border: 0; border-radius: 0; width: 100%; }
.svc-card-body { padding: 1.1rem 1.3rem 1.3rem; display: flex; flex-direction: column; gap: 0.4rem; flex: 1 1 auto; }
.svc-card-body h3 { margin: 0; }
.svc-card-arrow { margin-top: auto; padding-top: 0.4rem; color: var(--bs-primary); font-weight: 700; display: inline-flex; align-items: center; gap: 0.3rem; }

.review-grid { display: flex; align-items: stretch; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; gap: clamp(1rem, 2.5vw, 1.75rem); padding-block: 0.5rem; padding-inline: 0.625rem; margin-inline: -0.625rem; scroll-padding-inline: 0.625rem; scrollbar-width: none; }
@media (max-width: 640px) { .review-grid { align-items: flex-start; } }
.review-grid::-webkit-scrollbar { display: none; }
.review-grid > .review-card { scroll-snap-align: start; }
.svc-standard-grid > :last-child, .why-grid > :last-child, .areas-grid > :last-child, .review-grid > :last-child, .build-scroll > :last-child { scroll-snap-align: end; }
@media (min-width: 1025px) { .review-grid > .review-card { flex: 0 0 calc((100% - 2 * clamp(1rem, 2.5vw, 1.75rem)) / 3); } }
@media (min-width: 641px) and (max-width: 1024px) { .review-grid > .review-card { flex: 0 0 calc((100% - clamp(1rem, 2.5vw, 1.75rem)) / 2); } }
.review-grid + .cd-carousel-nav { display: flex; align-items: center; justify-content: center; gap: 0.85rem; margin-top: 1.4rem; }
.review-card { display: flex; flex-direction: column; gap: 0.75rem; background-color: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-lg); padding: 1.5rem; box-shadow: var(--cd-shadow-sm); text-align: left; }
.review-stars { color: var(--cd-star); display: inline-flex; gap: 0.08rem; }
.review-stars svg { width: 1.05rem; height: 1.05rem; }
.review-quote { font-size: 1.0625rem; line-height: 1.62; color: var(--bs-body-color); }
.review-attr { margin-top: auto; }
.review-name { font-family: "Montserrat", sans-serif; font-weight: 700; color: var(--cd-text-heading); }
.review-source { font-size: 0.85rem; color: var(--bs-tertiary-color); }
.review-source svg { width: 0.95em; height: 0.95em; margin-right: 0.3rem; vertical-align: -0.12em; }
.review-source a { color: var(--bs-primary); font-weight: 600; text-decoration: none; }
.review-source a:hover, .review-source a:focus-visible { text-decoration: underline; }
.review-source a.review-svc { color: var(--bs-secondary-color); font-weight: 600; }
.review-source a.review-svc:hover, .review-source a.review-svc:focus-visible { color: var(--bs-primary); }
.review-more { display: inline-block; margin-top: 0.4rem; padding: 0; background: none; border: 0; color: var(--bs-primary); font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 0.9rem; cursor: pointer; }
.review-more:hover, .review-more:focus-visible { text-decoration: underline; }
.review-clampable .review-quote { display: -webkit-box; -webkit-line-clamp: 4; line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.review-clampable .review-quote.is-expanded { display: block; -webkit-line-clamp: unset; line-clamp: unset; overflow: visible; }

.review-masonry { columns: 3 320px; column-gap: clamp(1.25rem, 2.4vw, 2rem); }
.review-masonry > .review-card { break-inside: avoid; margin: 0 0 clamp(1.25rem, 2.4vw, 2rem) !important; width: 100%; }
.review-cta { column-span: all; break-inside: avoid; text-align: center; background-color: var(--cd-primary-btn); border: 0; border-radius: var(--cd-radius-lg); padding: clamp(1.5rem, 3vw, 2rem) clamp(1.25rem, 2.5vw, 1.75rem); margin: clamp(1.75rem, 3.6vw, 3rem) 0 clamp(2rem, 4vw, 3.25rem); box-shadow: var(--cd-shadow-md); }
.review-cta p { font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 1.2rem; color: #FFFFFF; margin: 0 0 1rem; }
.review-cta-actions { display: flex; gap: 0.6rem; justify-content: center; flex-wrap: wrap; }
@media (max-width: 560px) { .review-masonry { columns: 1; } .review-cta-actions { flex-direction: column; } .review-cta-actions .btn { justify-content: center; } }
.review-verify { display: inline-flex; align-items: center; gap: 0.3rem; margin-top: 0.5rem; font-size: 0.8rem; font-weight: 600; color: var(--bs-primary); text-decoration: none; }
.review-verify svg { width: 0.95em; height: 0.95em; flex: none; }
.review-verify:hover, .review-verify:focus-visible { text-decoration: underline; }

.band-cta-bold { background-color: var(--cd-primary-btn); text-align: center; }
.band-cta-bold h2, .band-cta-bold p { color: #FFFFFF; }
.band-cta-bold .btn-light { background-color: #FFFFFF; border-color: #FFFFFF; color: var(--cd-primary-btn); font-weight: 700; }
.band-cta-bold .btn-light:hover, .band-cta-bold .btn-light:focus-visible { background-color: #EFEFEF; border-color: #EFEFEF; color: var(--cd-primary-btn-hover); }
.band-cta-bold .btn-outline-light { border: 1px solid rgba(255, 255, 255, 0.85); color: #FFFFFF; }
.band-cta-bold .btn-outline-light:hover, .band-cta-bold .btn-outline-light:focus-visible { background-color: rgba(255, 255, 255, 0.14); color: #FFFFFF; }

main.container-fluid { max-width: none !important; padding: 0 !important; }
.band-inner { max-width: var(--cd-content-max); margin-inline: auto; padding-inline: var(--cd-page-gutter); }
.home-main [aria-label="Services we offer"] .def-grid,
.home-main [aria-label="Service areas"] .def-grid { grid-template-columns: repeat(3, 1fr); }
.home-main [aria-label="Why choose us"] .def-grid { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1100px) { .home-main [aria-label="Why choose us"] .def-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 900px) { .home-main [aria-label="Services we offer"] .def-grid, .home-main [aria-label="Service areas"] .def-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .home-main [aria-label="Services we offer"] .def-grid, .home-main [aria-label="Service areas"] .def-grid, .home-main [aria-label="Why choose us"] .def-grid { grid-template-columns: 1fr; } }

.eyebrow { display: inline-block; font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 0.75rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cd-primary-btn); background-color: rgba(var(--cd-primary-btn-rgb), 0.10); border-radius: 999px; padding: 0.4rem 0.9rem; }

.hero-full { position: relative; border-bottom: 1px solid rgba(var(--bs-border-color-rgb), 0.6); }
.hero-full .band-inner { position: relative; z-index: 2; }
.hero-content { max-width: 600px; padding-block: clamp(1.25rem, 2.5vw, 2rem); padding-right: clamp(0px, 2vw, 2rem); }
.hero-content > * + * { margin-top: clamp(1.1rem, 1.9vw, 1.7rem); }
.hero-content h1 { margin: 0; }
.hero-content > .eyebrow + h1, .hero-content > .eyebrow + .h1 { margin-top: clamp(1.15rem, 1.7vw, 1.5rem); }
.hero-content .hero-cta { margin-top: clamp(1.25rem, 2.2vw, 1.9rem); }
.hero-content .trust-row { margin-top: clamp(1.4rem, 2.4vw, 2rem); padding-top: clamp(1.1rem, 2vw, 1.5rem); border-top: 1px solid var(--bs-border-color); grid-template-columns: repeat(2, 1fr); gap: 0.9rem clamp(1.5rem, 4vw, 2.75rem); justify-items: start; }
@media (min-width: 1200px) {
  .hero-content .trust-row { grid-template-columns: repeat(3, 1fr); justify-items: start; gap: 1rem clamp(1rem, 1.5vw, 1.75rem); }
}
.hero-accent { color: var(--cd-primary-btn); }
.hero-full-media { position: absolute; top: 0; bottom: 0; left: 50%; right: 0; z-index: 1; }
.hero-full-media .cd-img-slot { margin: 0; height: 100%; display: block; }
.hero-full-media .cd-img-frame { width: 100%; height: 100%; aspect-ratio: auto; min-height: 0; border: 0; border-radius: 0; }
.hero-full-media img.cd-img { width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.hero-review { position: absolute; right: clamp(0.75rem, 2vw, 1.75rem); bottom: clamp(0.75rem, 2vw, 1.75rem); z-index: 2; max-width: 19rem; background-color: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-lg); box-shadow: var(--cd-shadow-lg); padding: 0.85rem 1.05rem; }
.hero-review .review-quote { font-size: 0.9rem; margin: 0.3rem 0 0.15rem; }
.hero-review .review-name { font-size: 0.85rem; font-family: "Montserrat", sans-serif; font-weight: 700; color: var(--cd-text-heading); }
@media (min-width: 992px) {
  .hero-full { min-height: calc(100vh - var(--cd-header-h)); display: flex; align-items: center; }
  .hero-full > .band-inner { width: 100%; }
  .hero-content { width: 48%; max-width: 760px; }
  .hero-content .trust-row { justify-content: start; }
}
@media (max-width: 991px) {
  /* Mobile/tablet: the hero photo becomes a full-bleed COVER background behind the text (was stacked below the fold). Graceful dark-green brand fallback shows before a photo is uploaded. */
  .hero-full { min-height: clamp(460px, 80vh, 640px); display: flex; flex-direction: column; justify-content: center; overflow: hidden; border-bottom: 0; background: linear-gradient(135deg, #0c3a23 0%, #07271a 100%); }
  .hero-full-media { position: absolute; inset: 0; margin: 0; z-index: 0; }
  .hero-full-media .cd-img-slot, .hero-full-media .cd-img-frame { width: 100%; height: 100%; aspect-ratio: auto; min-height: 0; }
  .hero-full-media img.cd-img { width: 100%; height: 100%; object-fit: cover; }
  .hero-full-media .cd-img-frame { background: transparent; box-shadow: none; }
  .hero-full-media .cd-img-frame > svg, .hero-full-media .cd-img-label { display: none; }
  .hero-full-media .hero-review { display: none; }
  .hero-full::after { content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: linear-gradient(180deg, rgba(6, 20, 13, 0.70) 0%, rgba(6, 20, 13, 0.85) 48%, rgba(6, 20, 13, 0.92) 100%); }
  .hero-full > .band-inner { position: relative; z-index: 2; }
  .hero-content { max-width: none; padding-block: clamp(2rem, 6vw, 3rem); padding-inline: 0; text-align: center; color: #fff; text-shadow: 0 1px 3px rgba(0, 0, 0, 0.55), 0 2px 14px rgba(0, 0, 0, 0.45); }
  .hero-content .btn { text-shadow: none; }
  .hero-content h1, .hero-content .h1 { color: #fff; }
  .hero-accent { color: #6ee7a0; }
  .hero-content p, .hero-content .text-body-secondary { color: #fff !important; }
  .hero-content .eyebrow { color: #fff; background-color: rgba(255, 255, 255, 0.16); }
  .hero-content .hero-cta, .hero-content .trust-row, .hero-content .cd-breadcrumb { justify-content: center; }
  .hero-content .cd-breadcrumb { font-size: 0.72rem; gap: 0.4rem; color: rgba(255, 255, 255, 0.85); }
  .hero-content .cd-breadcrumb a { color: rgba(255, 255, 255, 0.85); }
  .hero-content .cd-breadcrumb a:hover { color: #fff; }
  .hero-content .cd-breadcrumb .bi-house-door { width: 0.9em; height: 0.9em; }
  .hero-content .cd-breadcrumb li[aria-current="page"] { font-weight: 500; color: #fff; }
  .hero-content .cd-breadcrumb li:not(:last-child)::after { color: rgba(255, 255, 255, 0.55); }
  .hero-content .trust-row { grid-template-columns: repeat(2, minmax(min-content, max-content)); column-gap: clamp(1rem, 5vw, 2.75rem); row-gap: 0.85rem; justify-content: center; justify-items: start; border-top-color: rgba(255, 255, 255, 0.28); }
  .hero-content .trust-item { justify-content: flex-start; align-items: center; min-height: 0; gap: 0.45rem; }
  .hero-content .trust-item > svg { width: 1.1rem; height: 1.1rem; color: #fff; }
  .hero-content .trust-item .bi-star-fill { color: var(--cd-star); }
  .hero-content .trust-item strong { font-size: 0.78rem; color: #fff; }
  .hero-content .trust-item small { color: rgba(255, 255, 255, 0.8); }
  .hero-content .hero-cta .btn-outline-primary { color: #fff; border-color: rgba(255, 255, 255, 0.65); }
  .hero-content .hero-cta .btn-outline-primary:hover, .hero-content .hero-cta .btn-outline-primary:focus-visible { background-color: rgba(255, 255, 255, 0.14); color: #fff; border-color: #fff; }
}

.trust-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 0.9rem 1.25rem; justify-items: start; align-items: center; }
.trust-item { display: flex; align-items: center; gap: 0.55rem; }
.trust-item > svg { width: 1.5rem; height: 1.5rem; color: var(--cd-primary-btn); flex: none; }
.trust-item strong { display: block; font-family: "Montserrat", sans-serif; font-size: 0.875rem; color: var(--cd-text-heading); line-height: 1.2; }
.trust-item small { display: block; font-size: 0.78rem; color: var(--bs-secondary-color); }
@media (max-width: 1099px) { .trust-row { grid-template-columns: repeat(2, 1fr); } }

.audience-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.25rem, 2.5vw, 2rem); }
.audience-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-lg); background-color: var(--bs-body-bg); box-shadow: var(--cd-shadow-sm); text-decoration: none; color: inherit; transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; }
.audience-card:hover { transform: translateY(-4px); box-shadow: var(--cd-shadow-md); border-color: rgba(var(--bs-primary-rgb), 0.4); }
.audience-card-head { display: flex; align-items: center; gap: 0.8rem; padding: 1.25rem 1.5rem 1rem; }
.audience-card-head .card-icon { width: 2.2rem; height: 2.2rem; margin: 0; color: var(--bs-primary); flex: none; }
.audience-card-head h3 { margin: 0; }
.audience-card .cd-img-slot { display: flex; margin: 0; }
.audience-card .cd-img-frame { border: 0; border-radius: 0; width: 100%; }
.audience-card-body { padding: 1.2rem 1.5rem 1.5rem; display: flex; flex-direction: column; gap: 0.7rem; flex: 1; }
@media (max-width: 700px) { .audience-grid { grid-template-columns: 1fr; } }

.svc-featured-grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(1.25rem, 2.5vw, 2rem); margin-bottom: clamp(1.25rem, 2.5vw, 2rem); }
.svc-standard-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 920px) { .svc-standard-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 700px) { .svc-featured-grid { grid-template-columns: 1fr; } }
@media (max-width: 460px) { .svc-standard-grid { grid-template-columns: 1fr; } }
.svc-card-featured .svc-card-body { padding: 1.3rem 1.5rem 1.5rem; gap: 0.5rem; }
.svc-card-featured .svc-card-body h3 { font-size: 1.3rem; }
.svc-card-sm .svc-card-body { padding: 1rem 1.15rem 1.2rem; gap: 0.3rem; }
.svc-card-sm .svc-card-body h3 { font-size: 1.05rem; }

.why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 920px) { .why-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 460px) { .why-grid { grid-template-columns: 1fr; } }
.why-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-lg); background-color: var(--bs-body-bg); box-shadow: var(--cd-shadow-sm); }
a.why-card { text-decoration: none; color: inherit; transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; }
a.why-card:hover, a.why-card:focus-visible { transform: translateY(-3px); box-shadow: var(--cd-shadow-md); border-color: rgba(var(--bs-primary-rgb), 0.4); }
.why-card .cd-img-slot { display: flex; margin: 0; }
.why-card .cd-img-frame { border: 0; border-radius: 0; width: 100%; }
.why-card-body { position: relative; padding: 1.1rem 1.25rem 1.3rem; }
.why-card-body .card-icon { width: 1.9rem; height: 1.9rem; margin: 0 0 0.5rem; color: var(--bs-primary); }
.why-card:has(.cd-img-slot) .why-card-body { padding-top: 1.6rem; }
.why-card:has(.cd-img-slot) .why-card-body .card-icon { position: absolute; top: -1.85rem; left: 1.1rem; width: 3.1rem; height: 3.1rem; padding: 0.72rem; margin: 0; background-color: var(--bs-body-bg); border-radius: 999px; box-shadow: var(--cd-shadow-sm); box-sizing: border-box; }
.why-card-body h3 { font-size: 1.05rem; margin: 0 0 0.35rem; }

.steps-grid { position: relative; display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
.steps-grid::before { content: ""; position: absolute; top: 1.7rem; left: 0; right: 0; height: 2px; background-color: rgba(var(--cd-primary-btn-rgb), 0.35); z-index: 0; }
@media (max-width: 920px) { .steps-grid { grid-template-columns: repeat(2, 1fr); } .steps-grid::before { display: none; } }
@media (max-width: 640px) {
  .steps-grid { grid-template-columns: 1fr; gap: 1.4rem; }
  .steps-grid::before { display: block; top: 0; bottom: 0; left: 1.7rem; right: auto; width: 2px; height: auto; }
  .step-card { z-index: 1; }
}
.step-card { position: relative; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-lg); background-color: var(--bs-body-bg); box-shadow: var(--cd-shadow-sm); }
.step-card .cd-img-slot { display: flex; margin: 0; }
.step-card .cd-img-frame { border: 0; border-radius: 0; width: 100%; }
.step-num { position: absolute; top: 0.7rem; left: 0.7rem; z-index: 2; width: 2.2rem; height: 2.2rem; border-radius: 999px; background-color: var(--bs-body-bg); color: var(--cd-primary-btn); border: 2px solid var(--cd-primary-btn); font-family: "Montserrat", sans-serif; font-weight: 700; display: flex; align-items: center; justify-content: center; box-shadow: var(--cd-shadow-sm); }
[data-bs-theme="dark"] .step-num { color: var(--bs-success); border-color: var(--bs-success); }
.step-card-body { padding: 1rem 1.2rem 1.25rem; }
.step-card-body h3 { font-size: 1.05rem; margin: 0 0 0.35rem; }

.areas-grid { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 1fr; gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 1024px) { .areas-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 760px) { .areas-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 641px) { .town-area-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr)); justify-content: center; justify-items: center; } .town-area-grid > .area-card { width: 100%; max-width: 27rem; } }
.area-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-lg); background-color: var(--bs-body-bg); box-shadow: var(--cd-shadow-sm); text-decoration: none; color: inherit; transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; }
.area-card:hover { transform: translateY(-3px); box-shadow: var(--cd-shadow-md); border-color: rgba(var(--bs-primary-rgb), 0.4); }
.area-card .cd-img-slot { display: flex; margin: 0; }
.area-card .cd-img-frame { border: 0; border-radius: 0; width: 100%; }
.area-card-body { padding: 1.1rem 1.25rem 1.3rem; }
.area-card-body h3 { font-size: 1.05rem; margin: 0 0 0.35rem; }
.area-card-body p { font-size: 1.0625rem; line-height: 1.6; }

.cd-carousel-nav { display: none; }
.cd-carousel-arrow { width: 2.5rem; height: 2.5rem; flex: none; padding: 0; display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; border: 1px solid var(--bs-border-color); background-color: var(--bs-body-bg); color: var(--bs-primary); box-shadow: var(--cd-shadow-sm); cursor: pointer; transition: opacity 0.15s ease; }
.cd-carousel-arrow svg { width: 1.15rem; height: 1.15rem; }
.cd-carousel-arrow:disabled { opacity: 0.35; cursor: default; }
.cd-carousel-dots { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 0.4rem; max-width: 58vw; }
.cd-carousel-dot { width: 0.5rem; height: 0.5rem; padding: 0; flex: none; border-radius: 999px; border: 0; cursor: pointer; background-color: var(--bs-border-color); transition: transform 0.15s ease, background-color 0.15s ease; }
.cd-carousel-dot.active { background-color: var(--bs-primary); transform: scale(1.35); }
@media (max-width: 640px) {
  .cd-carousel-nav { display: flex; align-items: center; justify-content: center; gap: 0.85rem; margin-top: 1.1rem; }
}

@media (max-width: 640px) {
  .svc-standard-grid, .why-grid, .areas-grid, .review-grid {
    display: flex;
    grid-template-columns: none;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    gap: 1rem;
    margin-inline: calc(-1 * var(--cd-page-gutter));
    padding-block: 0.5rem;
    padding-inline: var(--cd-page-gutter);
    scroll-padding-inline: var(--cd-page-gutter);
    scrollbar-width: none;
  }
  .svc-standard-grid::-webkit-scrollbar, .why-grid::-webkit-scrollbar, .areas-grid::-webkit-scrollbar, .review-grid::-webkit-scrollbar { display: none; }
  .svc-standard-grid > *, .why-grid > *, .areas-grid > *, .review-grid > * {
    flex: 0 0 80%;
    scroll-snap-align: start;
  }
}

#main-content, .site-footer { overflow-x: clip; }

.cd-drawer { display: flex; flex-direction: column; --bs-offcanvas-width: 100%; max-width: 100%; border-left: 0; }
.cd-drawer.show, .cd-drawer.showing { transform: translateX(0) !important; }
.cd-drawer.hiding { transform: translateX(100%) !important; }

.cd-drawer-top { flex: none; display: flex; align-items: center; gap: 0.75rem; min-height: var(--cd-header-h); padding: 0.6rem 0.7rem 0.6rem 1.1rem; border-bottom: 1px solid var(--bs-border-color); background-color: var(--bs-body-bg); }
.cd-drawer-brand { margin-right: auto; display: inline-flex; align-items: center; }
.cd-drawer-brand .brand-logo { height: 34px; width: auto; max-width: 190px; display: block; }
.cd-drawer-back { display: none; align-items: center; gap: 0.45rem; margin-right: auto; padding: 0.45rem 0.35rem; background-color: transparent; border: 0; cursor: pointer; font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 1.1rem; color: var(--cd-text-heading); -webkit-tap-highlight-color: transparent; }
.cd-drawer-back-icon { width: 1.25rem; height: 1.25rem; flex: none; color: var(--bs-primary); }
.cd-drawer-back:hover, .cd-drawer-back:focus-visible { color: var(--bs-primary); }
.cd-drawer.is-sub .cd-drawer-brand { display: none; }
.cd-drawer.is-sub .cd-drawer-back { display: inline-flex; }

.cd-drawer-viewport { position: relative; flex: 1 1 auto; overflow: hidden; }
.cd-drawer-panel { position: absolute; inset: 0; z-index: 1; background-color: var(--bs-body-bg); overflow-y: auto; overflow-x: hidden; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; padding: 0.65rem 1.1rem 1.25rem; transform: translateX(100%); visibility: hidden; transition: transform 0.28s ease, visibility 0.28s ease; }
.cd-drawer-panel.cd-drawer-root { transform: translateX(0); visibility: visible; }
.cd-drawer-panel.is-active { transform: translateX(0); visibility: visible; z-index: 2; }
.cd-drawer-panel.is-prev { transform: translateX(-22%); visibility: hidden; }

.cd-drawer-row { display: flex; align-items: center; gap: 0.75rem; width: 100%; padding: 1.05rem 0.4rem; text-align: left; background-color: transparent; border: 0; border-bottom: 1px solid var(--bs-border-color); font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 1.15rem; color: var(--cd-text-heading); text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: transparent; }
.cd-drawer-row-name { flex: 1 1 auto; }
.cd-drawer-row:hover, .cd-drawer-row:focus-visible { color: var(--bs-primary); }
.cd-drawer-row.is-current { color: var(--bs-primary); box-shadow: inset 3px 0 0 var(--bs-primary); padding-left: 0.7rem; }
.cd-drawer-row-caret { width: 1rem; height: 1rem; flex: none; color: var(--bs-tertiary-color); }
.cd-drawer-row-go { width: 1.05rem; height: 1.05rem; flex: none; color: var(--bs-tertiary-color); }
.cd-drawer-row:hover .cd-drawer-row-caret, .cd-drawer-row:focus-visible .cd-drawer-row-caret, .cd-drawer-row:hover .cd-drawer-row-go, .cd-drawer-row:focus-visible .cd-drawer-row-go { color: var(--bs-primary); }

.cd-drawer-viewall { display: flex; align-items: center; gap: 0.6rem; padding: 0.85rem 0.9rem; margin: 1rem 0 0.35rem; border-radius: var(--cd-radius-sm); background-color: var(--cd-surface); font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 1rem; color: var(--bs-primary); text-decoration: none; }
.cd-drawer-viewall:hover, .cd-drawer-viewall:focus-visible { background-color: var(--cd-surface-mid); }
.cd-drawer-viewall span { flex: 1 1 auto; }
.cd-drawer-viewall-icon { width: 1.2rem; height: 1.2rem; flex: none; }
.cd-drawer-viewall-go { width: 1.1rem; height: 1.1rem; flex: none; }
.cd-drawer-sublink { display: block; padding: 0.8rem 0.6rem; color: var(--bs-secondary-color); text-decoration: none; border-radius: var(--cd-radius-sm); font-size: 1.05rem; font-weight: 600; border-bottom: 1px solid var(--bs-border-color); }
.cd-drawer-sublink:last-of-type { border-bottom: 0; }
.cd-drawer-sublink:hover, .cd-drawer-sublink:focus-visible { background-color: var(--cd-surface); color: var(--bs-primary); }

.cd-drawer-cta { flex: none; display: grid; gap: 0.6rem; padding: 0.85rem 1.1rem calc(0.85rem + env(safe-area-inset-bottom, 0px)); border-top: 1px solid var(--bs-border-color); background-color: var(--bs-body-bg); }
.cd-drawer-cta .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; }

.cd-search-modal .modal-content { border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-lg); overflow: hidden; }
.cd-search-head { display: flex; align-items: center; gap: 0.5rem; padding: 0.7rem 0.8rem; border-bottom: 1px solid var(--bs-border-color); }
.cd-search-box { display: flex; align-items: center; gap: 0.6rem; flex: 1 1 auto; min-width: 0; margin: 0; padding: 0.55rem 0.95rem; background-color: var(--cd-surface); border: 1px solid var(--bs-border-color); border-radius: 999px; cursor: text; }
.cd-search-box:focus-within { border-color: var(--bs-primary); box-shadow: inset 0 0 0 1px var(--bs-primary); }
.cd-search-box-icon { width: 1.2rem; height: 1.2rem; flex: none; color: var(--bs-tertiary-color); }
.cd-search-input { flex: 1 1 auto; min-width: 0; border: 0; background-color: transparent; color: var(--bs-body-color); font-size: 1.05rem; padding: 0.1rem 0; outline: none; }
.cd-search-input::-webkit-search-cancel-button { -webkit-appearance: none; appearance: none; }
.cd-search-body { padding: 0.4rem 0.85rem 1.25rem; overscroll-behavior: contain; }
.cd-search-results { display: flex; flex-direction: column; }
.cd-search-group { margin-top: 1rem; }
.cd-search-group:first-child { margin-top: 0.5rem; }
.cd-search-group-label { font-family: "Montserrat", sans-serif; font-weight: 700; font-size: 0.72rem; text-transform: uppercase; letter-spacing: 0.06em; color: var(--bs-tertiary-color); padding: 0 0.4rem 0.4rem; }
.cd-search-hit { display: flex; align-items: center; gap: 0.7rem; padding: 0.7rem 0.55rem; border-radius: var(--cd-radius-sm); color: var(--cd-text-heading); text-decoration: none; }
.cd-search-hit:hover, .cd-search-hit:focus-visible, .cd-search-hit.is-active { background-color: var(--cd-surface); outline: none; }
.cd-search-hit.is-active { box-shadow: inset 0 0 0 1px var(--bs-primary); }
.cd-search-hit-icon { width: 1.25rem; height: 1.25rem; flex: none; color: var(--bs-primary); }
.cd-search-hit-cta .cd-search-hit-icon { color: var(--cd-primary-btn); }
[data-bs-theme="dark"] .cd-search-hit-cta .cd-search-hit-icon { color: var(--bs-success); }
.cd-search-hit-name { flex: 1 1 auto; font-weight: 600; min-width: 0; }
.cd-search-hit-tag { flex: none; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--bs-tertiary-color); background-color: var(--cd-surface-mid); padding: 0.15rem 0.5rem; border-radius: 999px; }
.cd-search-hit-go { width: 1.1rem; height: 1.1rem; flex: none; color: var(--bs-tertiary-color); opacity: 0; }
.cd-search-hit:hover .cd-search-hit-go, .cd-search-hit:focus-visible .cd-search-hit-go, .cd-search-hit.is-active .cd-search-hit-go { opacity: 1; }
.cd-search-empty { display: flex; flex-direction: column; align-items: center; text-align: center; gap: 0.4rem; padding: 2.25rem 1rem; }
.cd-search-empty-icon { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; border-radius: 999px; background-color: rgba(var(--cd-primary-btn-rgb), 0.12); color: var(--cd-primary-btn); margin-bottom: 0.4rem; }
.cd-search-empty-icon svg { width: 1.55rem; height: 1.55rem; }
.cd-search-empty-title { font-family: "Montserrat", sans-serif; font-weight: 700; color: var(--cd-text-heading); margin: 0; }
.cd-search-empty-sub { color: var(--bs-secondary-color); font-size: 0.95rem; margin: 0 auto 0.6rem; max-width: 24rem; }
.cd-search-empty-actions { display: flex; flex-wrap: wrap; gap: 0.6rem; justify-content: center; }
.cd-search-empty-actions .btn { display: inline-flex; align-items: center; gap: 0.5rem; }
@media (max-width: 480px) {
  .cd-search-input { font-size: 0.95rem; }
  .cd-search-input::placeholder { font-size: 0.92rem; }
  .cd-search-box { padding: 0.5rem 0.85rem; }
  .cd-search-empty-actions { flex-direction: column; align-self: stretch; }
  .cd-search-empty-actions .btn { justify-content: center; }
}
@media (min-width: 768px) {
  .cd-search-modal .modal-dialog { margin-top: 3.5rem; }
  .cd-search-modal .modal-content { max-height: calc(100vh - 7rem); }
}

.hero .cd-breadcrumb { justify-content: center; }
.hero > nav[aria-label="Breadcrumb"] { margin-bottom: 0.1rem; }
.hero > nav[aria-label="Breadcrumb"] + h1, .hero > nav[aria-label="Breadcrumb"] + .h1 { margin-top: var(--cd-hero-gap); }

.post-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(1rem, 2.5vw, 1.75rem); }
.post-card { display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-lg); background-color: var(--bs-body-bg); box-shadow: var(--cd-shadow-sm); text-decoration: none; color: inherit; transition: transform 0.15s ease, box-shadow 0.15s ease, border-color 0.15s ease; }
.post-card:hover, .post-card:focus-visible { transform: translateY(-4px); box-shadow: var(--cd-shadow-md); border-color: rgba(var(--bs-primary-rgb), 0.4); }
.post-card .cd-img-slot { display: flex; margin: 0; }
.post-card .cd-img-frame { border: 0; border-radius: 0; width: 100%; }
.post-card img.cd-img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; }
.post-card-body { padding: 1.15rem 1.3rem 1.35rem; display: flex; flex-direction: column; gap: 0.4rem; flex: 1 1 auto; }
.post-card-body h3 { font-size: 1.1rem; margin: 0; line-height: 1.3; }
.post-card-body p { font-size: 1rem; color: var(--bs-secondary-color); margin: 0; }
.post-card-cat { align-self: flex-start; font-size: 0.7rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; color: var(--bs-primary); background-color: rgba(var(--bs-primary-rgb), 0.09); padding: 0.22rem 0.62rem; border-radius: 999px; margin-bottom: 0.15rem; }
.post-card-meta { font-size: 0.82rem; color: var(--bs-tertiary-color); }
.post-card-meta-sep { opacity: 0.5; margin: 0 0.12rem; }
.post-card-arrow { margin-top: auto; padding-top: 0.55rem; color: var(--bs-primary); font-weight: 700; display: inline-flex; align-items: center; gap: 0.3rem; }
.post-card-arrow svg { width: 1.1em; height: 1.1em; }

.build-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
.build-scroll { display: contents; }
.build-feature[data-build="res"] { order: 1; }
.build-scroll > :nth-child(1) { order: 2; }
.build-scroll > :nth-child(2) { order: 3; }
.build-scroll > :nth-child(3) { order: 4; }
.build-feature[data-build="com"] { order: 5; }
.build-scroll > :nth-child(4) { order: 6; }
.build-scroll > :nth-child(5) { order: 7; }
.build-scroll > :nth-child(6) { order: 8; }
@media (max-width: 920px) {
  .build-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 640px) {
  .build-grid { display: flex; flex-direction: column; gap: 1rem; }
  .build-feature[data-build="res"] { order: 1; }
  .build-feature[data-build="com"] { order: 2; }
  .build-scroll {
    order: 3;
    display: flex;
    overflow-x: auto;
    overflow-y: hidden;
    scroll-snap-type: x mandatory;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    gap: 1rem;
    margin-inline: calc(-1 * var(--cd-page-gutter));
    padding-block: 0.5rem;
    padding-inline: var(--cd-page-gutter);
    scroll-padding-inline: var(--cd-page-gutter);
    scrollbar-width: none;
  }
  .build-scroll::-webkit-scrollbar { display: none; }
  .build-scroll > * { flex: 0 0 80%; scroll-snap-align: start; }
  .build-scroll .build-card-desc { display: none; }
  .build-grid > .cd-carousel-nav { order: 4; }
}

.town-groups { display: flex; flex-direction: column; gap: clamp(1.25rem, 2.6vw, 1.85rem); }
.town-group + .town-group { border-top: 1px solid var(--bs-border-color); padding-top: clamp(1.25rem, 2.6vw, 1.85rem); }
.town-group-name { font-size: 1.125rem; margin: 0 0 0.9rem; }
.town-group-name a { color: var(--cd-text-heading); text-decoration: none; }
.town-group-name a:hover, .town-group-name a:focus-visible { color: var(--bs-primary); }
.town-chips { display: flex; flex-wrap: wrap; gap: 0.55rem; }
.town-chip { display: inline-flex; align-items: center; padding: 0.45rem 0.9rem; border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-sm); background-color: var(--bs-body-bg); color: var(--bs-body-color); font-size: 0.92rem; font-weight: 600; text-decoration: none; line-height: 1.2; transition: transform 0.12s ease, border-color 0.12s ease, color 0.12s ease, background-color 0.12s ease; }
a.town-chip:hover, a.town-chip:focus-visible { border-color: var(--bs-primary); color: var(--bs-primary); background-color: rgba(var(--bs-primary-rgb), 0.06); transform: translateY(-2px); box-shadow: var(--cd-shadow-sm); }
.town-chip-static { color: var(--bs-tertiary-color); border-style: dashed; cursor: default; }

/* ============================================================
   SERVICE-PAGE UX REDESIGN (prototype on Home Renovations)
   Additive classes; other pages untouched until rollout.
   ============================================================ */

/* Contact section: full-width image-banner card + form that fills its height */
.cd-quote-split {
  display: grid;
  grid-template-columns: minmax(0, 0.85fr) minmax(0, 1fr);
  gap: clamp(1.25rem, 2.5vw, 2rem);
  align-items: stretch;
  margin-inline: auto;
}
.cd-quote-aside {
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: var(--cd-radius-lg);
  color: #fff;
  background: linear-gradient(135deg, #0c3a23 0%, #07271a 100%);
  box-shadow: var(--cd-shadow-sm);
}
.cd-quote-aside .cd-img-slot { display: block; position: relative; overflow: hidden; flex: 1 1 auto; min-height: 340px; }
.cd-quote-aside .cd-img-frame { height: 100%; aspect-ratio: auto; border: 0; border-radius: 0; box-shadow: none; min-height: 0; }
.cd-quote-aside img.cd-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cd-quote-aside-body { display: flex; flex-direction: column; flex: 0 0 auto; padding: clamp(1.4rem, 2vw, 1.9rem); }
.cd-quote-aside-eyebrow { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.05em; text-transform: uppercase; color: #6ee7a0; margin: 0 0 0.5rem; }
.cd-quote-aside h3 { color: #fff; font-size: clamp(1.2rem, 1.7vw, 1.5rem); line-height: 1.22; margin: 0 0 0.7rem; }
.cd-quote-trust { list-style: none; padding: 0; margin: 0 0 0.85rem; display: grid; grid-template-columns: 1fr 1fr; gap: 0.55rem 1.1rem; }
.cd-quote-trust li { display: flex; align-items: center; gap: 0.65rem; font-weight: 600; }
.cd-quote-trust svg { flex: none; width: 1.2rem; height: 1.2rem; color: #6ee7a0; }
.cd-quote-trust svg.bi-star-fill { color: var(--cd-star); }
.cd-quote-aside .btn-light { align-self: stretch; max-width: 17rem; display: flex; justify-content: center; margin-top: auto; background: #fff; border-color: #fff; color: var(--cd-primary-btn); font-weight: 700; }
.cd-quote-split .cd-quote-card { max-width: none; margin: 0; padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.cd-quote-split .cd-quote-form { max-width: none; margin: 0; display: flex; flex-direction: column; flex: 1; }
.cd-quote-split .cd-form-fineprint { max-width: none; margin: 0; }
.cd-form-foot { position: relative; margin-top: 0.9rem; }
.cd-form-foot .cd-form-status { position: absolute; inset: 0; margin: 0; display: flex; align-items: center; justify-content: center; text-align: center; font-weight: 600; background: var(--cd-surface); border-radius: var(--cd-radius-sm); }
.cd-form-foot .cd-form-status:empty { display: none; }

/* Card header: clear step context, visually separated from the fields below */
.cd-form-header { padding: clamp(1rem, 1.8vw, 1.35rem) clamp(1.2rem, 2vw, 1.6rem) clamp(0.85rem, 1.5vw, 1.05rem); background: rgba(var(--bs-primary-rgb), 0.05); border-bottom: 1px solid var(--bs-border-color); }
.cd-form-body { display: flex; flex-direction: column; flex: 1; padding: clamp(1.2rem, 2vw, 1.55rem); }

/* 2-segment stepper */
.cd-stepper { display: flex; gap: 0.55rem; margin: 0 0 0.65rem; }
.cd-stepper-seg { position: relative; flex: 1; height: 8px; border-radius: 999px; background: var(--bs-tertiary-color); overflow: hidden; }
.cd-stepper-seg::after { content: ""; position: absolute; inset: 0; width: 0; background: var(--cd-primary-btn); border-radius: 999px; transition: width 0.35s ease; }
.cd-stepper-seg.is-active::after, .cd-stepper-seg.is-done::after { width: 100%; }
.cd-form-progress { font-size: 0.82rem; font-weight: 600; color: var(--bs-tertiary-color); margin: 0; }
.cd-form-progress strong { color: var(--cd-text-heading); font-weight: 700; font-size: 0.96rem; }
.cd-field-optional { font-weight: 400; font-size: 0.85em; color: var(--bs-tertiary-color); }

/* Steps overlap in one grid cell (no layout shift) and each step fills the available height */
.cd-form-steps { display: grid; flex: 1; }
.cd-form-steps > .cd-form-step { grid-area: 1 / 1; display: flex; flex-direction: column; }
.cd-form-step { visibility: hidden; }
.cd-form-step.is-active { visibility: visible; }
.cd-form-step:not(.is-active) { pointer-events: none; }
.cd-field-grow { display: flex; flex-direction: column; flex: 1; margin-top: 0.1rem; }
.cd-field-grow textarea.form-control { height: auto; flex: 1; min-height: 8rem; resize: none; overflow-y: auto; }
.cd-turnstile { min-height: 65px; margin-top: 0.85rem; display: flex; align-items: center; justify-content: center; }
.cd-form-fields { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(0.7rem, 1.5vw, 1rem) clamp(0.9rem, 1.8vw, 1.3rem); align-content: center; flex: 1; min-height: 0; }
.cd-form-fields .cd-field { margin-bottom: 0; }
.cd-quote-split [data-error-for] { display: block; min-height: 1.4em; margin-top: 0.25rem; font-size: 0.8rem; line-height: 1.3; overflow: hidden; }
.cd-form-step [data-step-next], .cd-form-step button[type="submit"] { margin-top: 1rem; }
.cd-step-back { align-self: flex-start; display: inline-flex; align-items: center; gap: 0.3rem; background: none; border: 0; padding: 0; margin: 0 0 1rem; color: var(--bs-primary); font-weight: 600; font-size: 0.92rem; cursor: pointer; }
.cd-step-back:hover { text-decoration: underline; }
.cd-step-back svg { width: 0.95rem; height: 0.95rem; }
@media (max-width: 860px) {
  .cd-quote-split { grid-template-columns: 1fr; gap: clamp(1.25rem, 4vw, 1.75rem); }
  .cd-quote-aside .cd-img-slot { flex: none; min-height: 0; height: auto; aspect-ratio: 3 / 2; }
  .cd-quote-aside .cd-img-frame { height: auto; aspect-ratio: 3 / 2; }
  .cd-field-grow { flex: 1; }
  .cd-field-grow textarea.form-control { height: auto; flex: 1; min-height: 7rem; }
}
@media (max-width: 540px) {
  .cd-form-fields { grid-template-columns: 1fr; }
  .cd-quote-trust { grid-template-columns: 1fr; }
}

/* Visual answer cards: Quick Answers (icon-led) */
.cd-qa-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 820px) { .cd-qa-grid { grid-template-columns: 1fr; } }
.team-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 1.5rem); }
@media (max-width: 820px) { .team-grid { grid-template-columns: 1fr; } }
.cd-qa-card { background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius); padding: 1.4rem; box-shadow: var(--cd-shadow-sm); }
.cd-qa-card > svg { width: 1.9rem; height: 1.9rem; color: var(--bs-primary); margin-bottom: 0.6rem; }
.cd-qa-card h3 { font-size: 1.05rem; margin: 0 0 0.45rem; }
.cd-qa-card p { margin: 0; color: var(--bs-secondary-color); font-size: 0.93rem; line-height: 1.55; }

/* Neighborhood / coverage cards - image-free (so they do NOT repeat across area pages), geo-badge led (2026-06-27) */
.hood-grid { display: grid; grid-template-columns: 1fr; gap: clamp(0.85rem, 1.6vw, 1.25rem); }
@media (min-width: 461px) { .hood-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 921px) { .hood-grid { grid-template-columns: repeat(4, 1fr); } }
.hood-card { --hood-pad: clamp(1.1rem, 2vw, 1.45rem); display: flex; flex-direction: column; gap: var(--hood-pad); padding: var(--hood-pad); background-color: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius-lg); box-shadow: var(--cd-shadow-sm); }
.hood-head { display: flex; align-items: center; gap: 0.65rem; }
.hood-badge { display: inline-flex; align-items: center; justify-content: center; width: 2.4rem; height: 2.4rem; border-radius: 999px; background-color: rgba(var(--bs-primary-rgb), 0.1); color: var(--bs-primary); flex: none; }
.hood-badge svg { width: 1.2rem; height: 1.2rem; }
.hood-card h3 { font-size: 1.05rem; margin: 0; }
.hood-card p { margin: 0 calc(-1 * var(--hood-pad)); padding: var(--hood-pad) var(--hood-pad) 0; border-top: 1px solid var(--bs-border-color); color: var(--bs-secondary-color); font-size: 0.92rem; line-height: 1.55; }

/* Worry cards: image-top + icon + text (page-specific images) */
.cd-worry-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(1rem, 2vw, 1.5rem); margin-top: var(--cd-stack-gap); }
@media (max-width: 760px) { .cd-worry-grid { grid-template-columns: 1fr; } }
.cd-worry-card { display: flex; flex-direction: column; overflow: hidden; background: var(--bs-body-bg); border: 1px solid var(--bs-border-color); border-radius: var(--cd-radius); box-shadow: var(--cd-shadow-sm); }
.cd-worry-card .cd-img-frame { aspect-ratio: 16 / 9; border: 0; border-radius: 0; box-shadow: none; min-height: 0; }
.cd-worry-card img.cd-img { width: 100%; height: 100%; object-fit: cover; }
.cd-worry-card-body { padding: 1.2rem 1.3rem 1.4rem; }
.cd-worry-card-body svg { width: 1.7rem; height: 1.7rem; color: var(--bs-primary); margin-bottom: 0.5rem; }
.cd-worry-card-body h3 { font-size: 1.05rem; margin: 0 0 0.35rem; }
.cd-worry-card-body p { margin: 0; color: var(--bs-secondary-color); font-size: 0.93rem; line-height: 1.55; }

/* FAQ: accordion + compact, sticky image-top value card (short enough to leave scroll headroom -> no jitter) */
.faq-split { display: grid; grid-template-columns: 0.8fr 1.2fr; gap: clamp(1.25rem, 2.5vw, 2.25rem); align-items: start; }
@media (max-width: 860px) { .faq-split { grid-template-columns: 1fr; } }
.faq-aside { position: sticky; top: calc(var(--cd-header-h) + 1rem); align-self: start; display: flex; flex-direction: column; overflow: hidden; border-radius: var(--cd-radius-lg); background: linear-gradient(135deg, #0c3a23 0%, #07271a 100%); color: #fff; box-shadow: var(--cd-shadow-md); }
.faq-aside .cd-img-frame { aspect-ratio: 5 / 2; border: 0; border-radius: 0; box-shadow: none; min-height: 0; }
.faq-aside img.cd-img { width: 100%; height: 100%; object-fit: cover; }
.faq-aside-body { display: flex; flex-direction: column; gap: 0.65rem; padding: clamp(1.15rem, 1.9vw, 1.55rem); }
.faq-aside svg.faq-aside-icon { width: 1.9rem; height: 1.9rem; color: #6ee7a0; }
.faq-aside h3 { color: #fff; font-size: 1.12rem; margin: 0; }
.faq-aside p { color: rgba(255, 255, 255, 0.86); margin: 0; font-size: 0.92rem; line-height: 1.5; }
.faq-aside .btn { width: 100%; }
.faq-aside .btn-light { background: #fff; border-color: #fff; color: var(--cd-primary-btn); font-weight: 700; }
.faq-aside .btn-outline-light { border: 1px solid rgba(255, 255, 255, 0.85); color: #fff; font-weight: 700; }
.faq-aside .btn-light:hover, .faq-aside .btn-light:focus-visible { background: #eef1ee; border-color: #eef1ee; color: var(--cd-primary-btn-hover); }
.faq-aside .btn-outline-light:hover, .faq-aside .btn-outline-light:focus-visible { background-color: rgba(255, 255, 255, 0.16); border-color: #fff; color: #fff; }
@media (max-width: 860px) { .faq-aside { position: static; } .faq-aside .cd-img-frame { aspect-ratio: 2 / 1; } }
.faq-main { min-width: 0; }
.faq-main > .faq-item + .faq-item { margin-top: 0.75rem; }
