:root {
  --space-1: 0.25rem;
  --space-2: 0.5rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
  --space-7: 4rem;
  --space-8: 6rem;
  --space-9: 8rem;
  --grid-cols: 12;
  --grid-max: 1400px;
  --grid-gap-col: clamp(0.5rem, 1vw, 0.75rem);
  --grid-gap-row: clamp(2rem, 4vw, 3rem);
  --breakout-gutter: clamp(1rem, 6vw, 3rem);
  --breakout-popout: minmax(0, 2rem);
  --breakout-feature: minmax(0, 5rem);
}
.shell {
  max-inline-size: var(--grid-max);
  margin-inline: auto;
  padding-inline: var(--space-4);
}
.grid-layout {
  display: grid;
  grid-template-columns: repeat(var(--grid-cols), minmax(0, 1fr));
  column-gap: var(--grid-gap-col);
  row-gap: var(--grid-gap-row);
  max-inline-size: var(--grid-max);
  margin-inline: auto;
  padding-inline: var(--space-4);
}
@media (max-width: 900px) { .grid-layout { --grid-cols: 6; } }
@media (max-width: 560px) { .grid-layout { --grid-cols: 4; } }
.col-span-2 { grid-column: span 2; }
.col-span-3 { grid-column: span 3; }
.col-span-4 { grid-column: span 4; }
.col-span-6 { grid-column: span 6; }
.col-span-8 { grid-column: span 8; }
.col-span-full { grid-column: 1 / -1; }
@media (max-width: 560px) {
  .col-span-6, .col-span-8 { grid-column: 1 / -1; }
}
.section {
  padding-block-start: var(--section-pad, var(--space-8));
  padding-block-end: var(--section-pad, var(--space-8));
}
.section--hero { --section-pad: var(--space-9); }
.section--dense { --section-pad: var(--space-7); }
.section--flush { --section-pad: 0; }
.wrapper {
  --viewport-padding: var(--space-4);
  display: grid;
  grid-template-columns: 1fr min(65ch, 100%) 1fr;
  padding-inline: var(--viewport-padding);
}
.wrapper > * { grid-column: 2; }
.wrapper > .full-bleed {
  grid-column: 1 / -1;
  margin-inline: calc(var(--viewport-padding) * -1);
}
.content {
  --gap: var(--breakout-gutter);
  --full: minmax(var(--gap), 1fr);
  --content-width: min(65ch, 100% - var(--gap) * 2);
  display: grid;
  grid-template-columns:
    [full-start] var(--full)
    [feature-start] var(--breakout-feature)
    [popout-start] var(--breakout-popout)
    [content-start] var(--content-width) [content-end]
    var(--breakout-popout) [popout-end]
    var(--breakout-feature) [feature-end]
    var(--full) [full-end];
}
.content > * { grid-column: content; }
.content > .popout { grid-column: popout; }
.content > .feature { grid-column: feature; }
.content > .full { grid-column: full; }
.card-container {
  container-type: inline-size;
  container-name: card;
}
.card {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--space-3);
  padding: var(--space-4);
  border: 1px solid var(--border-subtle);
  border-radius: var(--space-2);
  background-color: var(--surface-1);
}
.card__media {
  aspect-ratio: 16 / 9;
  inline-size: 100%;
  border-radius: var(--space-1);
  background-color: var(--surface-2);
}
@container card (min-width: 380px) {
  .card {
    grid-template-columns: 140px 1fr;
    align-items: center;
  }
  .card__media { aspect-ratio: 1 / 1; }
}
.field:has(input:invalid) { border-color: var(--danger); }
.grid-layout > *:has(> .full-bleed) { grid-column: 1 / -1; }
.card-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  column-gap: var(--grid-gap-col);
  row-gap: var(--grid-gap-row);
}
.card-row > .card-aligned {
  display: grid;
  grid-row: span 4;
  grid-template-rows: subgrid;
  gap: var(--space-2);
}
@supports not (grid-template-rows: subgrid) {
  .card-row > .card-aligned { grid-row: auto; grid-template-rows: none; }
}
.layer-host { position: relative; }
.layer {
  position: absolute;
  z-index: 1;
  inset-block-start: var(--layer-y, auto);
  inset-inline-end: var(--layer-x, auto);
  pointer-events: none;
}
@media (max-width: 560px) {
  .layer { position: static; }
}
.masonry {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(260px, 100%), 1fr));
  grid-auto-flow: row dense;
  column-gap: var(--grid-gap-col);
  row-gap: var(--space-4);
}
@supports (display: grid-lanes) {
  .masonry {
    display: grid-lanes;
    grid-auto-flow: row;
  }
}
[dir="rtl"] .icon-arrow,
[dir="rtl"] .icon-chevron,
[dir="rtl"] .breadcrumb-separator { transform: scaleX(-1); }
[dir="rtl"] .hero-media { background-position: right center; }
[dir="rtl"] .panel-lift { box-shadow: -8px 8px 24px rgb(0 0 0 / .35); }
