/* Consult Spaces V38 — verified layout/component repair.
   Header/topbar/navigation intentionally untouched. */

/* Keep all main-content text readable. */
main, main p, main li, main label, main small, main a,
main h1, main h2, main h3, main h4, main h5, main h6 {
  opacity: 1;
  visibility: visible;
}
main p, main li, main label, main small { color: #5f7688; }
main h1, main h2, main h3, main h4, main h5, main h6 { color: #073a57; }

/* Reduce oversized section bands sitewide without touching the header. */
main .section,
main .home3-section,
main .cs9-section { padding-top: 44px !important; padding-bottom: 44px !important; }
main .section-head,
main .home3-section-head,
main .home3-center-head,
main .cs9-section-head-row { margin-bottom: 22px !important; }

/* Homepage hero search: compact, stable, no accidental extra band. */
body.home-v4 main .home3-search { margin-top: 14px !important; }
body.home-v4 main .home3-search form { margin: 0 !important; }

/* Featured project cards: remove forced empty vertical space. */
body.home-v4 main .cs9-project-grid {
  align-items: start !important;
}
body.home-v4 main .cs9-project-grid .home-project-card {
  height: auto !important;
  min-height: 0 !important;
  align-self: start !important;
}
body.home-v4 main .cs9-project-grid .home-project-body {
  min-height: 0 !important;
  height: auto !important;
  padding: 18px 20px 20px !important;
  display: block !important;
}
body.home-v4 main .cs9-project-grid .home-project-body h3 {
  min-height: 0 !important;
  margin: 0 0 12px !important;
  line-height: 1.3 !important;
}
body.home-v4 main .cs9-project-grid .project-location {
  min-height: 0 !important;
  margin: 0 0 14px !important;
  line-height: 1.45 !important;
}
body.home-v4 main .cs9-project-grid .project-price {
  margin: 0 0 8px !important;
}
body.home-v4 main .cs9-project-grid .project-config {
  min-height: 0 !important;
  margin: 0 0 14px !important;
}
body.home-v4 main .cs9-project-grid .home-project-actions {
  margin-top: 12px !important;
}
body.home-v4 main .home3-featured,
body.home-v4 main .home3-projects { padding-bottom: 30px !important; }
body.home-v4 main .home3-categories { padding-top: 30px !important; }

/* Enquiry form: restore two-column layout and correct consent checkbox. */
body.home-v4 main .cs9-lead-grid {
  gap: 38px !important;
  align-items: start !important;
  padding: 32px !important;
}
body.home-v4 main .cs9-lead-form {
  padding: 28px !important;
  height: auto !important;
  min-height: 0 !important;
}
body.home-v4 main .cs9-form-grid {
  gap: 16px 18px !important;
}
body.home-v4 main .cs9-lead-form .cs9-consent {
  display: grid !important;
  grid-template-columns: 18px minmax(0, 1fr) !important;
  align-items: center !important;
  column-gap: 10px !important;
  margin: 16px 0 !important;
  padding: 0 !important;
  min-height: 22px !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  font-size: 13px !important;
  line-height: 1.45 !important;
  color: #5f7688 !important;
}
body.home-v4 main .cs9-lead-form .cs9-consent input[type="checkbox"] {
  appearance: auto !important;
  -webkit-appearance: checkbox !important;
  display: block !important;
  width: 18px !important;
  min-width: 18px !important;
  max-width: 18px !important;
  height: 18px !important;
  min-height: 18px !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 3px !important;
}
body.home-v4 main .cs9-lead-form > button {
  margin-top: 0 !important;
}

/* FAQ: functional accordion styles driven by aria-expanded and .open. */
body.home-v4 main .cs9-faq-grid {
  gap: 48px !important;
}
body.home-v4 main .cs9-faq-item {
  border-bottom: 1px solid #d7e4ea !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}
body.home-v4 main .cs9-faq-item button {
  min-height: 68px !important;
  padding: 18px 4px !important;
  color: #073a57 !important;
}
body.home-v4 main .cs9-faq-item > div {
  display: grid !important;
  grid-template-rows: 0fr !important;
  opacity: 0 !important;
  transition: grid-template-rows .28s ease, opacity .2s ease !important;
}
body.home-v4 main .cs9-faq-item > div > p {
  overflow: hidden !important;
  margin: 0 !important;
  padding: 0 42px 0 4px !important;
  color: #5f7688 !important;
}
body.home-v4 main .cs9-faq-item.open > div,
body.home-v4 main .cs9-faq-item:has(button[aria-expanded="true"]) > div {
  grid-template-rows: 1fr !important;
  opacity: 1 !important;
}
body.home-v4 main .cs9-faq-item.open > div > p,
body.home-v4 main .cs9-faq-item:has(button[aria-expanded="true"]) > div > p {
  padding-bottom: 20px !important;
}
body.home-v4 main .cs9-faq-item button span {
  flex: 0 0 30px !important;
  transition: transform .25s ease !important;
}
body.home-v4 main .cs9-faq-item.open button span,
body.home-v4 main .cs9-faq-item button[aria-expanded="true"] span {
  transform: rotate(45deg) !important;
}

@media (max-width: 900px) {
  body.home-v4 main .cs9-lead-grid,
  body.home-v4 main .cs9-faq-grid { grid-template-columns: 1fr !important; gap: 30px !important; }
}
@media (max-width: 680px) {
  main .section, main .home3-section, main .cs9-section { padding-top: 36px !important; padding-bottom: 36px !important; }
  body.home-v4 main .cs9-lead-grid { padding: 18px !important; }
  body.home-v4 main .cs9-lead-form { padding: 20px !important; }
  body.home-v4 main .cs9-form-grid { grid-template-columns: 1fr !important; }
  body.home-v4 main .cs9-faq-item button { font-size: 15px !important; }
}
