/* site-flow.css — cross-page alignment, section rhythm, CTA consistency */

/* Centered intro blocks (all interior pages) */
.inner-section.section-center,
.pricing-intro,
.spaces-intro,
.gallery-header {
  text-align: center;
}

.inner-section.section-center .section-title,
.pricing-intro .section-title,
.spaces-intro .section-title,
.gallery-header .section-title {
  margin-inline: auto;
}

.inner-section.section-center .divider-gold,
.pricing-intro .divider-gold,
.spaces-intro .divider-gold,
.gallery-header .divider-gold {
  margin-inline: auto;
}

.inner-section.section-center .section-intro,
.pricing-intro .section-intro {
  margin-inline: auto;
}

/* Constrained copy width */
.section-constrained,
.section-intro.text-center,
.pricing-intro .section-intro {
  max-width: min(42rem, calc(100vw - 2 * var(--side-pad)));
  margin-inline: auto;
}

/* Button rows — consistent gap and wrap */
.btn-stack {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
  width: 100%;
  max-width: 28rem;
  margin-inline: auto;
}

.btn-stack--row {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
  max-width: none;
}

.btn-stack .btn-primary,
.btn-stack .btn-outline {
  text-align: center;
  min-width: min(100%, 220px);
}

/* CTA band — unified title classes */
.cta-band .cta-title,
.cta-band .cta-band-title {
  font-family: var(--font-serif);
  font-size: clamp(2rem, 5vw, 3rem);
  font-weight: 300;
  line-height: 1.1;
  margin: 0 0 0.5rem;
}

.cta-band .cta-script,
.cta-band .cta-band-script {
  display: block;
  font-family: var(--font-script, "Great Vibes", cursive);
  font-size: clamp(1.5rem, 3.5vw, 2rem);
  color: var(--gold);
  margin-bottom: 0.75rem;
}

.cta-band .cta-sub,
.cta-band .cta-band-sub {
  font-size: 0.88rem;
  letter-spacing: 0.06em;
  color: rgba(250, 247, 242, 0.85);
  margin: 0 0 1.25rem;
  max-width: 36ch;
  margin-inline: auto;
}

.cta-band-inner,
.cta-band-content {
  text-align: center;
  max-width: min(40rem, calc(100vw - 2 * var(--side-pad)));
  margin-inline: auto;
}

.cta-band-actions,
.cta-band-btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
  align-items: center;
}

/* Area / vendor sections */
.area-section-inner,
.inclusions-inner {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: var(--side-pad);
}

.area-section-header.section-center {
  text-align: center;
  margin-bottom: var(--space-md, 1.5rem);
}

/* Gallery controls centered */
.gallery-controls,
.filter-bar {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: var(--side-pad);
}

.gallery-story-intro {
  max-width: min(42rem, calc(100vw - 2 * var(--side-pad)));
  margin: var(--space-sm) auto var(--space-md);
  padding-inline: var(--side-pad);
  text-align: center;
  line-height: 1.75;
}

/* Policy page */
.policy-body {
  max-width: min(42rem, calc(100vw - 2 * var(--side-pad)));
  margin-inline: auto;
  padding: var(--section-pad) var(--side-pad);
}

.policy-hero {
  text-align: center;
  padding: clamp(100px, 14vw, 140px) var(--side-pad) clamp(32px, 5vw, 48px);
}

/* Budget planner shell alignment */
.budget-planner-shell {
  max-width: 1140px;
  margin-inline: auto;
  padding-inline: var(--side-pad);
}

/* Footer conversion rail alignment */
.footer-conversion-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  justify-content: center;
}
