.home-page {
  overflow: hidden;
}

.home-page .label--yellow {
  background: var(--color-yellow);
}

.home-hero {
  position: relative;
  display: grid;
  min-height: min(760px, calc(100svh - 64px));
  isolation: isolate;
  background: var(--color-ink);
}

.home-hero__image,
.home-hero__shade,
.home-hero__grid {
  grid-area: 1 / 1;
}

.home-hero__image {
  /*width: 100%;*/
  /*height: 100%;*/
  height: 100%;
  max-height: 1000px;
  min-width: 0;
  object-fit: cover;
  object-position: center;
}

.home-hero__shade {
  z-index: 1;
  align-self: end;
  min-height: 100%;
  background: rgba(0, 0, 0, 0.56);
}

.home-hero__grid {
  z-index: 2;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 20px;
  align-items: end;
  width: min(100%, var(--container-max));
  padding: var(--space-8) var(--container-padding) var(--space-7);
}

.home-hero__panel {
  grid-column: 7 / 13;
  display: flex;
  min-width: 0;
  max-width: 590px;
  justify-self: end;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-6);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-acid);
  box-shadow: 5px 8px 0 var(--color-ink);
  transform: translateY(8px);
}

.home-hero__panel h1,
.home-hero__panel p {
  margin: 0;
}

.home-hero__panel h1 {
  max-width: 16ch;
}

.home-hero__panel .lead {
  max-width: 39ch;
}

.home-hero__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-3);
}

.home-hero__actions > * {
  min-width: 0;
}

.home-routes__grid,
.home-formats__grid,
.home-place__grid,
.home-voices__grid,
.home-private__grid,
.home-tips__grid,
.home-inquiry__grid,
.home-faq__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 20px;
}

.home-routes__intro {
  grid-column: 1 / 7;
  min-width: 0;
  max-width: 620px;
}

.home-route {
  display: flex;
  min-width: 0;
  min-height: 290px;
  flex-direction: column;
  gap: var(--space-4);
  padding: var(--space-5);
  border: var(--border-width) solid var(--color-ink);
  box-shadow: var(--shadow-hard);
  color: var(--color-ink);
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast), background-color var(--transition-fast);
}

.home-route:hover {
  background: inherit;
  box-shadow: var(--shadow-hard-hover);
  transform: translate(-2px, -2px);
}

.home-route:active {
  box-shadow: var(--shadow-hard-active);
  transform: translate(4px, 4px);
}

.home-route h3,
.home-route p {
  margin: 0;
}

.home-route p {
  max-width: 38ch;
}

.home-route__link {
  margin-top: auto;
  font-weight: 800;
  text-decoration: underline 4px var(--color-acid);
  text-underline-offset: 0.16em;
}

.home-route--program {
  grid-column: 1 / 7;
  background: var(--color-electric);
}

.home-route--table {
  grid-column: 7 / 11;
  background: var(--color-paper-bright);
  transform: translateY(8px);
}

.home-route--group {
  grid-column: 11 / 13;
  min-height: 320px;
  background: var(--color-pink);
}

.home-route--group p {
  max-width: 30ch;
}

.home-formats__copy {
  grid-column: 1 / 8;
  min-width: 0;
}

.home-formats__copy .lead {
  max-width: 55ch;
}

.home-formats__figure {
  grid-column: 8 / 13;
  min-width: 0;
  margin: var(--space-8) 0 0;
  transform: translateY(8px);
}

.home-formats__figure figcaption {
  display: inline-block;
  max-width: 38ch;
  padding: var(--space-3);
  border: 2px solid var(--color-ink);
  background: var(--color-paper-bright);
}

.home-format-ideas {
  grid-column: 1 / 8;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-4);
  min-width: 0;
}

.home-format-idea {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  padding: var(--space-4);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-paper-bright);
}

.home-format-idea--wide {
  grid-column: 1 / 3;
  background: var(--color-yellow);
}

.home-format-idea > span,
.home-place__fact > span,
.home-tip > span,
.home-rhythm__step > span {
  font-family: var(--font-mono);
  font-size: var(--font-size-caption);
  font-weight: 800;
  letter-spacing: 0.08em;
}

.home-format-idea div {
  min-width: 0;
}

.home-format-idea h3,
.home-format-idea p {
  margin: 0;
}

.home-format-idea p {
  max-width: 39ch;
}

.home-rhythm {
  background: var(--color-ink);
  color: var(--color-paper-bright);
}

.home-rhythm h2,
.home-rhythm h3,
.home-rhythm a {
  color: var(--color-paper-bright);
}

.home-rhythm__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6) 20px;
}

.home-rhythm__intro {
  grid-column: 1 / 6;
  min-width: 0;
  max-width: 45ch;
}

.home-rhythm__intro p {
  max-width: 45ch;
}

.home-rhythm__steps {
  grid-column: 1 / 13;
  display: flex;
  min-width: 0;
  gap: 0;
}

.home-rhythm__step {
  display: flex;
  min-width: 0;
  flex: 2 1 0;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-5);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-paper-bright);
  color: var(--color-ink);
}

.home-rhythm__step--electric {
  flex-grow: 3;
  background: var(--color-electric);
}

.home-rhythm__step--yellow {
  background: var(--color-yellow);
}

.home-rhythm__step h3,
.home-rhythm__step p {
  margin: 0;
  color: var(--color-ink);
}

.home-rhythm__step p {
  max-width: 31ch;
}

.home-rhythm__step a {
  color: var(--color-ink);
}

.home-place__intro {
  grid-column: 1 / 7;
  min-width: 0;
  max-width: 620px;
}

.home-place__intro .lead {
  max-width: 60ch;
}

.home-place__facts {
  grid-column: 1 / 13;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 20px;
  min-width: 0;
}

.home-place__fact {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding: var(--space-5);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-paper-bright);
  box-shadow: var(--shadow-hard);
}

.home-place__fact:nth-child(1) { grid-column: 1 / 6; }
.home-place__fact:nth-child(2) { grid-column: 6 / 9; }
.home-place__fact:nth-child(3) { grid-column: 9 / 13; }
.home-place__fact:nth-child(4) { grid-column: 1 / 9; transform: translateY(8px); }
.home-place__fact--acid { background: var(--color-acid); }
.home-place__fact--electric { background: var(--color-electric); }
.home-place__fact--yellow { background: var(--color-yellow); }

.home-place__fact h3,
.home-place__fact p {
  margin: 0;
}

.home-place__fact p {
  max-width: 38ch;
}

.home-voices__intro {
  grid-column: 1 / 6;
  min-width: 0;
  max-width: 540px;
}

.home-voices__intro p {
  max-width: 52ch;
}

.home-voices__quotes {
  grid-column: 1 / 13;
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 20px;
  min-width: 0;
}

.home-quote {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  margin: 0;
  padding: var(--space-5);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-paper-bright);
  box-shadow: var(--shadow-hard);
  font-size: var(--font-size-body);
}

.home-quote:nth-child(1) { grid-column: 1 / 7; }
.home-quote:nth-child(2) { grid-column: 6 / 10; transform: translateY(10px); }
.home-quote:nth-child(3) { grid-column: 10 / 13; transform: translateY(-5px); }
.home-quote--pink { background: var(--color-pink); }
.home-quote--yellow { background: var(--color-yellow); }

.home-quote p,
.home-quote cite,
.home-quote span {
  margin: 0;
}

.home-quote p {
  max-width: 28ch;
  font-family: var(--font-display);
  font-size: var(--font-size-h4);
  font-style: normal;
  font-weight: 900;
  line-height: 1.05;
}

.home-quote cite {
  font-family: var(--font-mono);
  font-size: var(--font-size-micro);
  font-style: normal;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.home-quote span {
  max-width: 34ch;
  font-size: var(--font-size-small);
}

.home-private__panel {
  grid-column: 1 / 8;
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-5);
  padding: var(--space-6);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-pink);
  box-shadow: var(--shadow-hard);
}

.home-private__panel h2,
.home-private__panel p,
.home-private__panel ol {
  margin: 0;
}

.home-private__panel .lead {
  max-width: 55ch;
}

.home-private__steps {
  display: flex;
  max-width: 42ch;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-3);
  padding-left: 1.35em;
}

.home-private__links {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  gap: var(--space-4);
}

.home-private__media {
  grid-column: 8 / 13;
  position: relative;
  min-width: 0;
  margin-top: var(--space-7);
  transform: translateY(8px);
}

.home-private__sticker {
  position: absolute;
  bottom: -24px;
  left: -32px;
  width: min(220px, 70%);
  padding: var(--space-3);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-yellow);
  box-shadow: var(--shadow-hard);
  font-family: var(--font-mono);
  font-size: var(--font-size-caption);
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.home-tips__intro {
  grid-column: 1 / 6;
  min-width: 0;
  max-width: 540px;
}

.home-tips__intro .lead {
  max-width: 50ch;
}

.home-tips__cards {
  grid-column: 1 / 13;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
  min-width: 0;
}

.home-tip {
  display: grid;
  grid-template-columns: 3rem minmax(0, 1fr);
  gap: var(--space-3);
  min-width: 0;
  padding: var(--space-5);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-paper-bright);
}

.home-tip div {
  min-width: 0;
}

.home-tip h3,
.home-tip p {
  margin: 0;
}

.home-tip p {
  max-width: 40ch;
}

.home-inquiry {
  background: var(--color-ink);
  color: var(--color-paper-bright);
}

.home-inquiry h2 {
  color: var(--color-paper-bright);
}

.home-inquiry__intro {
  grid-column: 1 / 6;
  min-width: 0;
  max-width: 48ch;
}

.home-inquiry__intro p {
  max-width: 48ch;
}

.home-inquiry__form {
  grid-column: 6 / 13;
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  min-width: 0;
  padding: var(--space-6);
  border: var(--border-width-strong) solid var(--color-ink);
  background: var(--color-paper-bright);
  color: var(--color-ink);
  box-shadow: var(--shadow-hard);
}

.home-inquiry__field,
.home-inquiry__submit {
  min-width: 0;
}

.home-inquiry__field--full,
.home-inquiry__submit {
  grid-column: 1 / 3;
}

.home-inquiry__field small {
  font-weight: 600;
}

.home-inquiry__status {
  min-height: 1.5em;
  margin: var(--space-3) 0 0;
  font-weight: 800;
}

.home-faq__intro {
  grid-column: 1 / 6;
  min-width: 0;
  max-width: 540px;
}

.home-faq__intro p {
  max-width: 50ch;
}

.home-faq__list {
  grid-column: 3 / 11;
  display: flex;
  min-width: 0;
  max-width: 820px;
  flex-direction: column;
  gap: var(--space-3);
}

.home-faq__item {
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-paper-bright);
}

.home-faq__item h3 {
  margin: 0;
}

.home-faq__item button {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2rem;
  width: 100%;
  min-height: 3rem;
  padding: var(--space-4);
  border: 0;
  background: var(--color-paper-bright);
  box-shadow: none;
  color: var(--color-ink);
  font-family: var(--font-display);
  font-size: var(--font-size-h4);
  line-height: 1.05;
  text-align: left;
}

.home-faq__item button:hover {
  background: var(--color-acid);
  box-shadow: none;
  transform: none;
}

.home-faq__item button:active {
  box-shadow: none;
  transform: none;
}

.home-faq__item button span {
  justify-self: end;
  font-family: var(--font-body);
  font-size: 2rem;
  line-height: 0.8;
}

.home-faq__item button[aria-expanded="true"] span {
  transform: rotate(45deg);
}

.home-faq__item [role="region"] {
  padding: 0 var(--space-4) var(--space-4);
}

.home-faq__item [role="region"] p {
  max-width: 58ch;
  margin: 0;
}

.home-closing__panel {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 3fr);
  gap: var(--space-6);
  width: min(100%, 820px);
  min-width: 0;
  margin-inline: auto;
  padding: var(--space-6);
  border: var(--border-width) solid var(--color-ink);
  background: var(--color-acid);
  box-shadow: var(--shadow-hard);
}

.home-closing__panel > div {
  min-width: 0;
}

.home-closing__panel h2 {
  max-width: 19ch;
  margin-bottom: 0;
}

.home-closing__actions {
  display: flex;
  min-width: 0;
  align-items: flex-start;
  flex-direction: column;
  justify-content: center;
  gap: var(--space-4);
}

@media (max-width: 64rem) {
  .home-routes__grid,
  .home-formats__grid,
  .home-place__grid,
  .home-voices__grid,
  .home-private__grid,
  .home-tips__grid,
  .home-inquiry__grid,
  .home-faq__grid,
  .home-rhythm__grid {
    grid-template-columns: repeat(8, minmax(0, 1fr));
    gap: 16px;
  }

  .home-hero__grid { grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 16px; }
  .home-hero__panel { grid-column: 4 / 9; }
  .home-routes__intro { grid-column: 1 / 7; }
  .home-route--program { grid-column: 1 / 6; }
  .home-route--table { grid-column: 6 / 9; }
  .home-route--group { grid-column: 1 / 9; min-height: 220px; transform: translateY(4px); }
  .home-formats__copy { grid-column: 1 / 9; }
  .home-formats__figure { grid-column: 1 / 9; max-width: 620px; margin-top: 0; transform: translateY(4px); }
  .home-format-ideas { grid-column: 1 / 9; }
  .home-rhythm__intro { grid-column: 1 / 9; }
  .home-rhythm__steps { grid-column: 1 / 9; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .home-rhythm__step { min-height: 220px; }
  .home-place__intro { grid-column: 1 / 7; }
  .home-place__facts { grid-column: 1 / 9; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .home-place__fact:nth-child(n) { grid-column: auto; transform: none; }
  .home-voices__intro { grid-column: 1 / 7; }
  .home-voices__quotes { grid-column: 1 / 9; grid-template-columns: repeat(8, minmax(0, 1fr)); gap: 16px; }
  .home-quote:nth-child(1) { grid-column: 1 / 6; }
  .home-quote:nth-child(2) { grid-column: 6 / 9; transform: translateY(5px); }
  .home-quote:nth-child(3) { grid-column: 1 / 9; transform: none; }
  .home-private__panel { grid-column: 1 / 9; }
  .home-private__media { grid-column: 1 / 9; max-width: 620px; margin-top: 0; transform: translateY(4px); }
  .home-tips__intro { grid-column: 1 / 7; }
  .home-tips__cards { grid-column: 1 / 9; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
  .home-tips__cards > :last-child { grid-column: 1 / 3; }
  .home-inquiry__intro { grid-column: 1 / 9; }
  .home-inquiry__form { grid-column: 1 / 9; }
  .home-faq__intro { grid-column: 1 / 7; }
  .home-faq__list { grid-column: 1 / 9; }
}

@media (max-width: 43.75rem) {
  .home-hero { min-height: 760px; }
  .home-hero__shade { min-height: 68%; }
  .home-hero__grid {
    grid-template-columns: minmax(0, 1fr);
    padding: var(--space-6) var(--container-padding) var(--space-4);
  }
  .home-hero__panel { grid-column: 1; width: 100%; max-width: none; padding: var(--space-5); transform: translateY(3px); }
  .home-hero__panel h1 { max-width: 17ch; }
  .home-hero__panel .lead { max-width: 40ch; }
  .home-hero__actions { flex-direction: column; }
  .home-hero__actions .button { width: 100%; }

  .home-routes__grid,
  .home-formats__grid,
  .home-place__grid,
  .home-voices__grid,
  .home-private__grid,
  .home-tips__grid,
  .home-inquiry__grid,
  .home-faq__grid,
  .home-rhythm__grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-4);
  }

  .home-routes__intro,
  .home-route--program,
  .home-route--table,
  .home-route--group,
  .home-formats__copy,
  .home-formats__figure,
  .home-format-ideas,
  .home-rhythm__intro,
  .home-rhythm__steps,
  .home-place__intro,
  .home-place__facts,
  .home-voices__intro,
  .home-voices__quotes,
  .home-private__panel,
  .home-private__media,
  .home-tips__intro,
  .home-tips__cards,
  .home-inquiry__intro,
  .home-inquiry__form,
  .home-faq__intro,
  .home-faq__list {
    grid-column: 1;
    width: 100%;
    max-width: none;
  }

  .home-route--table,
  .home-route--group,
  .home-formats__figure,
  .home-private__media { transform: translateY(3px); }
  .home-route { min-height: 0; }
  .home-format-ideas,
  .home-place__facts,
  .home-voices__quotes,
  .home-tips__cards,
  .home-rhythm__steps,
  .home-inquiry__form { grid-template-columns: minmax(0, 1fr); }
  .home-format-idea--wide { grid-column: 1; }
  .home-rhythm__step { min-height: 0; }
  .home-place__fact:nth-child(n),
  .home-quote:nth-child(n),
  .home-tips__cards > :last-child { grid-column: 1; transform: translateY(0); }
  .home-quote { padding: var(--space-5); }
  .home-private__sticker { position: static; width: 100%; margin-top: var(--space-4); }
  .home-inquiry__form { padding: var(--space-5); }
  .home-inquiry__field--full,
  .home-inquiry__submit { grid-column: 1; }
  .home-faq__item button { padding: var(--space-3); font-size: clamp(1.25rem, 6vw, 1.75rem); }
  .home-closing__panel { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); padding: var(--space-5); }
  .home-closing__actions .button { width: 100%; }
}
