/* =========================================================
   FINX public modules — layout
   One container / gutter / section rhythm for all pages.
   ========================================================= */
:root {
  --container: 1180px;
  --gutter: 40px;
  --max: 1180px;
  --section-y: 96px;
  --hero-y: 48px;
  --section-head-gap: 40px;
}

@media (max-width: 768px) {
  :root {
    --gutter: 20px;
    --section-y: 72px;
    --hero-y: 40px;
  }
}

.container,
.fh-container {
  width: min(calc(100% - (var(--gutter) * 2)), var(--container));
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
}

#header.fx-header .container,
.fx-site-footer__inner {
  width: min(calc(100% - (var(--gutter) * 2)), var(--container));
  max-width: var(--container);
  margin-left: auto;
  margin-right: auto;
}

.section,
.services,
.how {
  padding: var(--section-y) 0;
}

.hero {
  padding: var(--hero-y) 0;
  position: relative;
  overflow: hidden;
}

.hero-grid {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  align-items: center;
  gap: clamp(28px, 4vw, 56px);
}

@media (max-width: 900px) {
  .hero-grid { grid-template-columns: 1fr; }
}

/* One shared hero height baseline (reference: therabot.php).
   min-height only raises the floor — it never clips taller content. */
@media (min-width: 901px) {
  .hero-grid {
    min-height: var(--hero-content-min-h, 650px);
  }
}

.section-head {
  margin-bottom: var(--section-head-gap);
}

.section-head.center {
  max-width: 760px;
  text-align: center;
  margin-left: auto;
  margin-right: auto;
}
