.home-page {
  background-color: var(--color-marble);
  background-image: radial-gradient(circle at 12% 16%, rgba(174, 182, 178, 0.055) 0 1px, transparent 1.5px), radial-gradient(circle at 82% 58%, rgba(185, 98, 73, 0.035) 0 1px, transparent 1.5px);
  background-size: 58px 58px, 74px 74px;
}

.home-page .eyebrow,
.home-page .metadata {
  margin: 0;
}

.home-hero {
  position: relative;
  display: grid;
  overflow: hidden;
  color: var(--color-ivory);
  isolation: isolate;
  height: 100vh;
}

.home-hero__image,
.home-hero__overlay,
.home-hero__container {
  grid-area: 1 / 1;
}

.home-hero__image {
  width: 100%;
  min-width: 0;
  height: 100vh;
  object-fit: cover;
  object-position: center center;
}

.home-hero__overlay {
  z-index: 1;
  width: 100%;
  min-width: 0;
  background: linear-gradient(90deg, rgba(36, 49, 46, 0.75) 0%, rgba(36, 49, 46, 0.52) 40%, rgba(36, 49, 46, 0.08) 78%);
}

.home-hero__container {
  z-index: 2;
  display: flex;
  width: 100%;
  min-width: 0;
  align-items: center;
  padding-block: var(--space-10);
  height: 100vh;
  justify-content: center;
}

.home-hero__content {
  display: flex;
  width: min(100%, 35rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-hero__content .metadata,
.home-hero__content h1,
.home-hero__content .intro {
  margin: 0;
  color: var(--color-ivory);
}

.home-hero__content h1 {
  font-size: clamp(2.5rem, 4.8vw, 3.5rem);
}

.home-hero__content .intro {
  max-width: 33rem;
}

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

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

.home-hero__secondary {
  border-color: var(--color-aluminium);
  background: rgba(248, 247, 242, 0.08);
  color: var(--color-ivory);
}

.home-hero__secondary:hover {
  border-color: var(--color-ivory);
  background: rgba(248, 247, 242, 0.16);
  color: var(--color-ivory);
}

.home-directions {
  width: 100%;
  border-block: 1px solid rgba(255, 248, 233, 0.42);
  background: var(--color-sage);
}

.home-directions__container {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  padding-block: clamp(3rem, 7vw, 5.5rem);
}

.home-directions p {
  width: min(100%, 56.25rem);
  margin: 0;
  color: var(--color-ivory);
  font-family: var(--font-heading);
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1.1;
  text-align: center;
}

.home-kitchen__grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(2rem, 1fr) minmax(0, 5fr);
  grid-template-areas: "figure . copy" "figure . link";
  align-items: start;
  gap: var(--space-6) var(--space-5);
}

.home-kitchen__copy,
.home-kitchen__figure,
.home-kitchen__link-wrap {
  min-width: 0;
}

.home-kitchen__copy {
  grid-area: copy;
  display: flex;
  width: min(100%, 32.5rem);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding-block-start: var(--space-5);
}

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

.home-kitchen__figure {
  grid-area: figure;
  width: 100%;
  margin: 0;
}

.home-kitchen__image {
  width: 100%;
  aspect-ratio: 4 / 5;
}

.home-kitchen__figure figcaption {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-2);
  width: min(100%, 26.25rem);
  margin: var(--space-3) 0 0;
}

.home-kitchen__figure figcaption span {
  color: var(--color-muted);
  font-size: var(--text-body);
  font-weight: 400;
  letter-spacing: 0;
  line-height: var(--leading-body);
  text-transform: none;
}

.home-kitchen__link-wrap {
  grid-area: link;
  width: min(100%, 32.5rem);
  padding-top: var(--space-4);
  border-top: var(--border-subtle);
}

.home-text-link,
.home-rhythm__link {
  display: inline-flex;
  min-width: 0;
  min-height: 2.75rem;
  align-items: center;
  gap: var(--space-2);
  color: var(--color-sage-deep);
  font-weight: 700;
  text-decoration: none;
}

.home-text-link:hover,
.home-rhythm__link:hover {
  color: var(--color-terracotta-deep);
  text-decoration: underline;
  text-decoration-thickness: 2px;
  text-underline-offset: 0.28em;
}

.home-paths__header {
  display: flex;
  width: min(100%, 36.875rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  margin-block-end: var(--space-7);
}

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

.home-paths__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--space-5);
}

.home-path {
  display: flex;
  min-width: 0;
  min-height: 21.25rem;
  padding: var(--space-6);
  border: var(--border-subtle);
  border-radius: var(--radius-card);
  color: var(--color-stone);
  text-decoration: none;
  transition: transform var(--transition-fast), box-shadow var(--transition-fast);
}

.home-path:nth-child(2) {
  margin-block-start: var(--space-6);
}

.home-path:hover {
  box-shadow: var(--shadow-lift);
  color: var(--color-stone);
  transform: translateY(-2px);
}

.home-path--oak { background: var(--color-oak); }
.home-path--powder { background: var(--color-powder-blue); }
.home-path--sage { background: var(--color-sage); color: var(--color-ivory); }
.home-path--sage:hover { color: var(--color-ivory); }

.home-path__content {
  display: flex;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.home-path__title {
  color: var(--color-sage-deep);
  font-family: var(--font-heading);
  font-size: var(--text-h3);
  font-weight: 600;
  line-height: 1.12;
}

.home-path--sage .home-path__title,
.home-path--sage .home-path__link { color: var(--color-ivory); }

.home-path__body {
  width: 100%;
  min-width: 0;
  line-height: var(--leading-body);
}

.home-path__link {
  margin-top: auto;
  color: var(--color-sage-deep);
  font-weight: 700;
}

.home-path:hover .home-path__link { text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 0.28em; }

.home-rhythm {
  background: var(--color-sage);
  color: var(--color-ivory);
}

.home-rhythm__container {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-7);
}

.home-rhythm__header {
  display: flex;
  width: min(100%, 35.625rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.home-rhythm__header h2,
.home-rhythm__header p { margin: 0; color: var(--color-ivory); }
.home-rhythm__header .eyebrow { color: var(--color-ivory); }

.home-rhythm__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--space-5);
}

.home-rhythm__step {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding-top: var(--space-4);
  border-top: 1px solid rgba(255, 248, 233, 0.48);
  outline: none;
  transition: border-color var(--transition-fast);
}

.home-rhythm__step.is-emphasized,
.home-rhythm__step:hover {
  border-top-color: var(--color-terracotta);
}

.home-rhythm__number {
  color: var(--color-ivory);
  font-family: var(--font-heading);
  font-size: clamp(2.5rem, 4vw, 3.75rem);
  line-height: 0.9;
  transition: color var(--transition-fast);
}

.home-rhythm__step.is-emphasized .home-rhythm__number,
.home-rhythm__step:hover .home-rhythm__number { color: var(--color-terracotta); }

.home-rhythm__step h3,
.home-rhythm__step p { margin: 0; color: var(--color-ivory); }
.home-rhythm__step p { width: min(100%, 21.25rem); }
.home-rhythm__link { margin-top: auto; color: var(--color-ivory); }
.home-rhythm__link:hover { color: var(--color-ivory); }

.home-poker__grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(2rem, 1fr) minmax(0, 6fr);
  grid-template-areas: "copy . figure" "actions . figure";
  align-items: start;
  gap: var(--space-6) var(--space-5);
}

.home-poker__copy,
.home-poker__figure,
.home-poker__actions { min-width: 0; }

.home-poker__copy {
  grid-area: copy;
  display: flex;
  width: min(100%, 32.5rem);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.home-poker__copy h2,
.home-poker__copy p { margin: 0; }
.home-poker__figure { grid-area: figure; width: 100%; margin: 0; }
.home-poker__image { width: 100%; aspect-ratio: 3 / 2; }

.home-poker__actions {
  grid-area: actions;
  display: flex;
  width: min(100%, 32.5rem);
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-5);
}

.home-poker__note {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  padding: var(--space-5);
  border: var(--border-subtle);
  border-radius: var(--radius-control);
  background: var(--color-oak);
}

.home-poker__note h3,
.home-poker__note p { margin: 0; }
.home-poker__note p { width: min(100%, 26.875rem); }

.home-poker__links {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--space-4);
}

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

.home-gatherings__panel {
  display: flex;
  width: calc((100% / 12) * 10 + (var(--space-5) * 9 / 12));
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-7);
  padding: var(--space-7);
  border-radius: var(--radius-feature);
  background: var(--color-powder-blue);
}

.home-gatherings__header {
  display: flex;
  width: min(100%, 33.75rem);
  min-width: 0;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

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

.home-gatherings__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch;
  gap: var(--space-4);
}

.home-gathering {
  display: flex;
  min-width: 0;
  min-height: 15rem;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
  padding: var(--space-5);
  border: var(--border-subtle);
  border-radius: var(--radius-card);
}

.home-gathering h3,
.home-gathering p { margin: 0; }
.home-gathering p { width: 100%; min-width: 0; }
.home-gathering .home-text-link { margin-top: auto; }
.home-gathering--oak { background: var(--color-oak); }
.home-gathering--cream { background: var(--color-cream); }
.home-gathering--marble { background: var(--color-marble); }

.home-atmosphere__container {
  display: flex;
  min-width: 0;
  flex-direction: column;
  align-items: stretch;
  gap: var(--space-7);
}

.home-atmosphere__header {
  display: flex;
  width: min(100%, 43.125rem);
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  margin-inline: auto;
  text-align: center;
}

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

.home-atmosphere__statements {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  align-items: start;
  gap: var(--space-5);
}

.home-atmosphere__statement {
  display: grid;
  min-width: 0;
  grid-template-columns: minmax(2.5rem, auto) minmax(0, 1fr);
  align-items: start;
  gap: var(--space-4);
  padding-top: var(--space-4);
}

.home-atmosphere__statement--a {
  grid-column: 1 / span 5;
  border-top: var(--border-subtle);
}

.home-atmosphere__statement--b {
  grid-column: 8 / span 5;
  border-top: 1px solid var(--color-terracotta);
}

.home-atmosphere__letter {
  color: var(--color-sage-deep);
  font-family: var(--font-heading);
  font-size: 2.5rem;
  line-height: 0.9;
}

.home-atmosphere__statement div { min-width: 0; width: min(100%, 29.375rem); }
.home-atmosphere__statement h3,
.home-atmosphere__statement p { margin: 0; }
.home-atmosphere__statement div { display: flex; flex-direction: column; gap: var(--space-3); }
.home-atmosphere__link-wrap { display: flex; justify-content: center; min-width: 0; }

.home-arrival {
  background: var(--color-cream);
}

.home-arrival__grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(2rem, 1fr) minmax(0, 4fr) minmax(0, 1fr);
  grid-template-areas: "copy . hours ." "details . hours .";
  align-items: start;
  gap: var(--space-6) var(--space-5);
}

.home-arrival__copy,
.home-arrival__details,
.home-hours { min-width: 0; }

.home-arrival__copy {
  grid-area: copy;
  display: flex;
  width: min(100%, 33.75rem);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.home-arrival__copy h2,
.home-arrival__copy p { margin: 0; }
.home-arrival__address { color: var(--color-sage-deep); font-weight: 700; }

.home-hours {
  grid-area: hours;
  width: 100%;
  padding: var(--space-6);
  border: var(--border-subtle);
  border-radius: var(--radius-card);
  background: var(--color-oak);
}

.home-hours h3 { margin: 0 0 var(--space-4); }
.home-hours dl { margin: 0; }
.home-hours dl div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  min-width: 0;
  gap: var(--space-3);
  padding-block: var(--space-3);
  border-top: var(--border-subtle);
}
.home-hours dt,
.home-hours dd { min-width: 0; margin: 0; }
.home-hours dd { text-align: right; font-weight: 700; white-space: nowrap; }

.home-arrival__details {
  grid-area: details;
  display: flex;
  width: min(100%, 38.75rem);
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}
.home-arrival__details > div { display: flex; width: 100%; min-width: 0; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.home-arrival__details h3,
.home-arrival__details p { margin: 0; }
.home-arrival__list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  width: 100%;
  margin: 0;
  padding: 0;
  border-top: var(--border-subtle);
  list-style: none;
}
.home-arrival__list li {
  min-width: 0;
  padding: var(--space-3) 0;
  border-bottom: var(--border-subtle);
  color: var(--color-sage-deep);
  font-weight: 700;
}
.home-arrival__list li:nth-child(odd) { padding-inline-end: var(--space-4); }
.home-arrival__list li:nth-child(even) { padding-inline-start: var(--space-4); border-left: var(--border-subtle); }

.home-closing {
  background: var(--color-terracotta);
  color: var(--color-ivory);
}

.home-closing__container {
  display: flex;
  min-width: 0;
  align-items: center;
  justify-content: center;
  padding-block: var(--space-10);
}

.home-closing__content {
  display: flex;
  width: min(100%, 47.5rem);
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: var(--space-5);
  margin-inline: auto;
  text-align: center;
}

.home-closing__content h2,
.home-closing__content p { margin: 0; color: var(--color-ivory); }
.home-closing__content .intro { width: min(100%, 38.75rem); }

.home-closing__actions {
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: var(--space-5);
}

.home-closing__button {
  display: inline-flex;
  min-width: 0;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  padding: 0.875rem 1.25rem;
  border: 1px solid var(--color-ivory);
  border-radius: var(--radius-feature);
  color: var(--color-ivory);
  font-size: var(--text-button);
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1;
  text-align: center;
  text-decoration: none;
  transition: background-color var(--transition-fast), color var(--transition-fast);
}
.home-closing__button:hover { background: var(--color-ivory); color: var(--color-terracotta-deep); }
.home-closing__link { color: var(--color-ivory); font-weight: 700; }
.home-closing__link:hover { color: var(--color-ivory); text-decoration-thickness: 2px; }

@media (max-width: 940px) {
  .home-paths__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-path:nth-child(2) { margin-block-start: 0; }
  .home-path:nth-child(3) { grid-column: 1 / -1; }
  .home-gatherings__panel { width: 100%; }
}

@media (max-width: 899px) {
  .home-hero { min-height: 42.5rem; }
  .home-hero__container { padding-block: var(--space-9); }
  .home-kitchen__grid,
  .home-poker__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "copy figure" "link figure";
  }
  .home-poker__grid { grid-template-areas: "copy figure" "actions figure"; }
  .home-rhythm__steps { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }
  .home-gatherings__panel { padding: var(--space-6); }
  .home-arrival__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "copy hours" "details hours";
  }
}

@media (max-width: 800px) {
  .home-kitchen__grid {
    grid-template-columns: 1fr;
    grid-template-areas: "copy" "figure" "link";
  }
  .home-kitchen__copy,
  .home-kitchen__link-wrap { width: min(100%, 40rem); padding-block-start: 0; }
  .home-kitchen__figure { width: min(100%, 40rem); }
  .home-poker__grid {
    grid-template-columns: 1fr;
    grid-template-areas: "copy" "figure" "actions";
  }
  .home-poker__copy,
  .home-poker__actions,
  .home-poker__figure { width: min(100%, 40rem); }
}

@media (max-width: 760px) {
  .home-rhythm__steps { grid-template-columns: 1fr; gap: var(--space-5); }
  .home-rhythm__step { width: min(100%, 35rem); }
  .home-atmosphere__statements { grid-template-columns: 1fr; gap: var(--space-6); }
  .home-atmosphere__statement--a,
  .home-atmosphere__statement--b { grid-column: 1; width: min(100%, 32.5rem); }
  .home-arrival__grid { grid-template-columns: 1fr; grid-template-areas: "copy" "hours" "details"; }
  .home-arrival__copy,
  .home-arrival__details,
  .home-hours { width: 100%; }
}

@media (max-width: 680px) {
  .home-gatherings__panel { padding: var(--space-5); }
  .home-gatherings__grid { grid-template-columns: 1fr; }
  .home-gathering { min-height: 0; }
}

@media (max-width: 640px) {
  .home-hero { min-height: 42.5rem; }
  .home-hero__image { object-position: 58% center; }
  .home-hero__overlay { background: linear-gradient(0deg, rgba(36, 49, 46, 0.8) 0%, rgba(36, 49, 46, 0.48) 58%, rgba(36, 49, 46, 0.12) 100%); }
  .home-hero__container { padding-block: var(--space-8); }
  .home-hero__content { width: 100%; gap: var(--space-4); }
  .home-hero__content h1 { font-size: 2.5rem; line-height: 1.05; }
  .home-hero__actions { flex-direction: column; align-items: stretch; }
  .home-hero__actions .button { width: 100%; }
  .home-paths__grid { grid-template-columns: 1fr; }
  .home-path:nth-child(3) { grid-column: auto; }
  .home-path { min-height: 13.75rem; padding: var(--space-5); }
  .home-rhythm__container,
  .home-atmosphere__container { gap: var(--space-6); }
  .home-poker__links { flex-direction: column; align-items: stretch; }
  .home-poker__links .button { width: 100%; }
  .home-poker__links .home-text-link { align-self: flex-start; }
  .home-arrival__list { grid-template-columns: 1fr; }
  .home-arrival__list li:nth-child(odd),
  .home-arrival__list li:nth-child(even) { padding-inline: 0; border-left: 0; }
  .home-closing__container { padding-block: var(--space-7); }
  .home-closing__content { align-items: stretch; }
  .home-closing__content h2,
  .home-closing__content .intro { text-align: center; }
  .home-closing__actions { flex-direction: column; align-items: stretch; gap: var(--space-4); }
  .home-closing__button { width: 100%; }
  .home-closing__link { align-self: center; }
}

@media (prefers-reduced-motion: reduce) {
  .home-page .home-path:hover { transform: none; box-shadow: none; }
}
