/*
 * Styles for the flexible_page template's section types
 * (templates/pages/_partials/sections/*.html.twig) that have no equivalent
 * in the ported Astro design system (tokens/base/layout/components.css).
 * Everything here is token-driven, matching the rest of that system.
 */

/* Image section: swipeable slider layout */
.section-gallery--slider {
  display: flex;
  gap: var(--space-4);
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: var(--space-2);
}

.section-gallery--slider img {
  flex: 0 0 auto;
  width: min(80vw, 28rem);
  aspect-ratio: 4 / 3;
  object-fit: cover;
  scroll-snap-align: start;
}

.section-gallery__caption {
  margin-top: var(--space-2);
  color: var(--ink-soft);
  font-size: var(--text-sm);
}

/* CTA section panel */
.cta-panel {
  background: var(--ger-ultramarine);
  color: var(--on-dark);
  padding: var(--space-6);
  text-align: center;
}

.cta-panel h2 {
  color: var(--on-dark);
}

.cta-panel .button-row {
  justify-content: center;
}

/* FAQ accordion section */
.faq-accordion__item {
  border-bottom: 1px solid var(--rule);
  padding: var(--space-3) 0;
}

.faq-accordion__item summary {
  cursor: pointer;
  font-weight: 600;
}

/* Team grid section */
.team-member__name {
  font-weight: 600;
  margin-top: var(--space-2);
}

.team-member__role {
  color: var(--ink-soft);
}

/* Stats row section */
.stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-6);
  justify-content: center;
  text-align: center;
}

.stats-row__value {
  font-size: var(--text-h3);
  font-weight: 700;
}

.stats-row__label {
  color: var(--ink-soft);
}

/* Document downloads section */
.document-download-list {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-3);
  list-style: none;
  padding: 0;
}

/* Quote/testimonial section */
.quote-testimonial {
  border-left: 4px solid var(--ger-ultramarine);
  padding-left: var(--space-4);
  font-size: var(--text-lg);
}

.quote-testimonial cite {
  display: block;
  margin-top: var(--space-2);
  color: var(--ink-soft);
  font-style: normal;
}

/* Map section */
.map-embed {
  aspect-ratio: 16 / 9;
}

.map-embed iframe {
  width: 100%;
  height: 100%;
  border: 0;
}

.map-embed__caption {
  margin-top: var(--space-2);
  color: var(--ink-soft);
  font-size: var(--text-sm);
}

/* Columns/feature grid section */
.feature-column__icon {
  width: 3rem;
  height: 3rem;
  object-fit: contain;
}

/* Image + text split section */
.media-text {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-6);
}

.media-text--right {
  flex-direction: row-reverse;
}

.media-text__media,
.media-text__body {
  flex: 1 1 20rem;
}

.media-text__media img {
  width: 100%;
  height: auto;
}

/* Spacer/divider section */
.spacer-divider--sm {
  height: var(--space-4);
}

.spacer-divider--md {
  height: var(--space-6);
}

.spacer-divider--lg {
  height: var(--space-8);
}

.spacer-divider hr {
  margin: 0;
  height: 100%;
  border: 0;
  border-top: 1px solid var(--rule);
}

/* Logo strip section */
.logo-grid {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-6);
}

.logo-grid__item img {
  max-height: 3rem;
  width: auto;
}
