/**
 * @file
 * Structural layout — page shell, containers and the content/sidebar grid.
 */

.layout-container {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

/* Centered content container, reused everywhere. */
.container {
  width: 100%;
  margin-inline: auto;
  padding-inline: var(--container-pad);
  max-width: var(--container-max);
}

/* Full-bleed wrapper variant (edge to edge band with centered inner). */
.container--wide {
  max-width: none;
}

/*
 * Cap content width on internal pages. Homepage + search stay full-bleed
 * (hero / filters+map need the viewport); cards still size themselves.
 */
body:not(.path-frontpage):not(.path-search) main > .container {
  max-width: var(--container-max);
}

main {
  flex: 1 0 auto;
  padding-block: var(--space-4) var(--space-16);
}

/* Breadcrumb spacing owned by elements.css (.page-breadcrumbs). */

.page-highlighted,
.page-help {
  margin-block: var(--space-4);
}

/* ==========================================================================
   Content + sidebar grid
   Always three named areas. Empty asides (no element children) are hidden;
   unused max-content tracks collapse so one or both sidebars can be absent.
   ========================================================================== */
.layout-content-wrapper {
  display: grid;
  grid-template-areas:
    "sidebar-first"
    "content"
    "sidebar-second";
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-8);
  align-items: start;
}

.layout-sidebar-first { grid-area: sidebar-first; }
.layout-content { grid-area: content; min-width: 0; }
.layout-sidebar-second { grid-area: sidebar-second; }

.layout-sidebar-first:not(:has(*)),
.layout-sidebar-second:not(:has(*)) {
  display: none;
}

@media (min-width: 64rem) {
  .layout-content-wrapper {
    grid-template-areas: "sidebar-first content sidebar-second";
    grid-template-columns: minmax(0, max-content) minmax(0, 1fr) minmax(0, max-content);
    column-gap: 0;
  }

  .layout-sidebar-first:has(*) {
    width: 300px;
    margin-inline-end: var(--space-8);
  }

  .layout-sidebar-second:has(*) {
    width: 340px;
    margin-inline-start: var(--space-8);
  }
}



.region-content .block {
  margin-bottom: var(--space-8);
}