/* Gemeinsamer Abstandsrhythmus für alle Seiten und Komponenten. */
:root {
  --page-gutter: 32px;
  --section-space: 64px;
  --content-gap: 24px;
  --card-space: 32px;
}
.container { width: min(var(--container), calc(100% - 2 * var(--page-gutter))); }
.page-hero, .page-hero.text-only,
.section, .tone-wine, .home-hero + .section, .social-section,
.site-footer { padding-block: var(--section-space); }
.home-hero { padding-block: var(--section-space); min-height: 0; }
.home-hero .container { padding-block: 0; }
.hero-grid, .home-hero-grid { gap: 48px; }
.hero-copy .hand-note, .hero-copy .eyebrow,
.hero-copy h1 { margin-bottom: var(--content-gap); }
.page-hero .hero-copy > .button, .hero-copy > a[href^="mailto:"],
.home-hero .button, .hero-team-link { margin-top: var(--content-gap); }

/* Ein Abstand pro Übergang statt addierter Ränder an Text und Buttons. */
.section > .container > div { display: flex; flex-direction: column; align-items: stretch; gap: var(--content-gap); }
.section > .container > div > :where(h2, p, .filter-controls, .content-form, .social-grid, .photo-timeline, .next-steps, .source-panel) { margin-block: 0; }
.section > .container > div > .button { align-self: flex-start; margin-block: 0; }
.grid { gap: 32px 24px; }
.card:not(.image-card):not(.person-card) { padding: var(--card-space); }
.card:not(.image-card):not(.person-card) > .card-body { padding: 0; }
.image-card .card-body, .featured .card-body { padding: var(--card-space); }
.card h3 { margin-bottom: 16px; }
.card p:not(.eyebrow) { margin-bottom: 16px; }
.card-body > :last-child { margin-bottom: 0; }
.filter-controls, .content-form, .contact-form, .social-card, .album-empty { padding: var(--card-space); }
.contact-fields { gap: var(--content-gap); }
.event-calendar .calendar-book { margin: 0; }
.source-panel > :last-child { margin-bottom: 0; }
.photo-timeline > li:last-child { padding-bottom: 0; }

@media (max-width: 650px) {
  :root { --page-gutter: 24px; --section-space: 48px; --card-space: 24px; }
  .hero-grid, .home-hero-grid { gap: 40px; }
  .grid { gap: var(--content-gap); }
  .person-card { margin-inline: 0; }
  .home-hero .photo-frame { margin-bottom: 0; }
}
@media print {
  .page-hero, .page-hero.text-only, .section, .home-hero + .section { padding-block: 1rem; }
}

.home-hero .hero-actions .button { margin-top: 0; }
