.home-page {
  padding-bottom: calc(var(--mobile-action-height) + env(safe-area-inset-bottom));
}

.home-page a:not(.button) {
  color: var(--color-espresso);
  font-weight: 700;
}

.home-hero__grid,
.home-poker__grid,
.home-architecture__grid,
.home-map__grid,
.home-audience__grid,
.home-process__grid,
.home-gallery__grid,
.home-planning__grid {
  display: grid;
  min-width: 0;
}

.home-hero__grid {
  grid-template-columns: minmax(0, 5fr) minmax(0, 1fr) minmax(0, 6fr);
  align-items: center;
  gap: var(--space-5);
}

.home-hero__copy { grid-column: 1 / span 1; min-width: 0; }
.home-hero__media { grid-column: 3 / span 1; min-width: 0; margin: 0; }
.home-hero__copy .display-title { max-width: 620px; }
.home-hero__copy .lead { max-width: 620px; }
.home-hero__rule { width: 56px; height: 2px; margin-bottom: var(--space-4); background: var(--color-brass); }
.home-hero__media::before { content: ""; position: absolute; z-index: -1; right: -16px; bottom: -16px; width: 78%; height: 78%; background: var(--color-travertine); }
.home-hero__media { position: relative; }
.home-hero__media img { width: 100%; min-width: 0; aspect-ratio: 16 / 9; border-radius: var(--radius-feature); object-fit: cover; object-position: right center; }
.home-hero__actions { display: flex; min-width: 0; flex-wrap: wrap; gap: var(--space-3); margin-bottom: var(--space-4); }
.home-hero__actions > * { min-width: 0; }
.home-policy-badge { display: flex; max-width: 480px; align-items: flex-start; gap: var(--space-2); margin-bottom: 0; padding: var(--space-3); border-radius: var(--radius-card); background: var(--color-sage-mist); color: var(--color-charcoal); font-size: var(--text-utility); font-weight: 700; line-height: var(--leading-utility); }
.home-policy-badge span { color: var(--color-sage); }

.home-map__intro { max-width: 640px; margin-bottom: var(--space-7); }
.home-map__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
.home-feature-card { display: flex; min-width: 0; min-height: 286px; flex-direction: column; align-items: flex-start; }
.home-feature-card > * { min-width: 0; }
.home-feature-card h3 { margin-bottom: var(--space-3); }
.home-feature-card p:not(.meta) { flex: 1 1 auto; }
.home-feature-card a { margin-top: auto; }
.home-feature-card__icon { display: grid; width: 30px; height: 30px; place-items: center; margin-bottom: var(--space-3); color: var(--color-sage); font-size: 24px; }
.home-feature-card__chip { width: 24px; height: 24px; margin-bottom: var(--space-3); border: 5px solid var(--color-ceramic); border-radius: 50%; background: var(--color-sage-mist); }

.home-poker__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; gap: var(--space-5); }
.home-poker__media { grid-column: 1 / span 6; min-width: 0; margin: 0; }
.home-poker__media img { width: 100%; min-width: 0; aspect-ratio: 4 / 5; border-radius: var(--radius-feature); object-fit: cover; object-position: center; }
.home-poker__copy { grid-column: 8 / span 5; min-width: 0; max-width: 560px; }
.home-poker__copy h2 { margin-top: var(--space-3); }
.home-poker__copy h3 { margin-top: var(--space-6); }
.home-poker__service { padding-top: var(--space-5); border-top: 1px solid var(--color-brass); }
.home-poker__booking { display: flex; min-width: 0; align-items: center; gap: var(--space-4); margin-top: var(--space-7); }
.home-poker__booking > * { min-width: 0; }
.home-poker__booking p { flex: 1 1 420px; max-width: 420px; margin: 0; font-weight: 700; }
.home-poker__booking .badge { margin-left: auto; }

.home-architecture__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); align-items: start; gap: var(--space-5); }
.home-architecture__copy { grid-column: 1 / span 5; min-width: 0; }
.home-architecture__copy > p:not(.eyebrow) { max-width: 600px; }
.home-architecture__media { grid-column: 7 / span 6; min-width: 0; margin: 0; }
.home-architecture__media img { width: 100%; min-width: 0; aspect-ratio: 3 / 2; border-radius: var(--radius-card); object-fit: cover; }
.home-architecture__details { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); margin-top: var(--space-6); }
.home-architecture__details > article { min-width: 0; }
.home-architecture__details h3 { margin-bottom: var(--space-3); }

.home-audience__intro { max-width: 620px; margin-bottom: var(--space-7); }
.home-audience__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-5); }
.home-audience-card { display: flex; min-width: 0; min-height: 275px; flex-direction: column; align-items: flex-start; }
.home-audience-card > * { min-width: 0; }
.home-audience-card p:not(.meta) { flex: 1 1 auto; }
.home-audience-card a { margin-top: auto; }
.home-audience-card--sage { background: var(--color-sage-mist); }
.home-audience-card--warm { background: var(--color-travertine); }

.home-process__intro { max-width: 660px; margin-bottom: var(--space-7); }
.home-process__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-6); }
.home-process__step { display: grid; grid-template-columns: 52px minmax(0, 1fr); gap: var(--space-4); min-width: 0; padding-top: var(--space-4); border-top: 1px solid var(--color-border); }
.home-process__step > * { min-width: 0; }
.home-process__step > span { color: var(--color-sage); font-size: var(--text-utility); font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: 0.12em; }
.home-process__policy { max-width: none; margin: var(--space-7) 0 0; padding: var(--space-5); border-radius: var(--radius-card); background: var(--color-sage); color: var(--color-white); }
.home-process__policy .meta { color: var(--color-white); }
.home-process__policy p:last-child { max-width: 600px; margin-bottom: 0; }
.home-process__policy a { color: var(--color-white); }

.home-gallery__intro { max-width: 560px; margin-bottom: var(--space-7); }
.home-gallery__grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: var(--space-5); align-items: start; }
.home-gallery__grid figure { min-width: 0; margin: 0; }
.home-gallery__food { grid-column: 1 / span 7; }
.home-gallery__poker { grid-column: 9 / span 4; }
.home-gallery__architecture { grid-column: 1 / span 5; }
.home-gallery__grid img { width: 100%; min-width: 0; border-radius: var(--radius-card); object-fit: cover; }
.home-gallery__food img { aspect-ratio: 3 / 2; }
.home-gallery__poker img { aspect-ratio: 4 / 5; object-position: center; }
.home-gallery__architecture img { aspect-ratio: 3 / 2; }
.home-gallery__grid figcaption { margin-top: var(--space-3); }
.home-gallery__grid figcaption .meta { display: block; margin-bottom: var(--space-1); color: var(--color-sage); }

.home-faq__inner { width: min(100%, var(--container-reading)); margin-inline: auto; }
.home-faq__intro { margin-bottom: var(--space-6); }
.home-faq__item { border-top: 1px solid var(--color-border); }
.home-faq__item:last-child { border-bottom: 1px solid var(--color-border); }
.home-faq__item h3 { margin: 0; font-family: var(--font-body); font-size: var(--text-body); letter-spacing: 0; }
.home-faq__item button { display: flex; width: 100%; min-width: 0; min-height: 52px; align-items: center; justify-content: space-between; gap: var(--space-4); padding: var(--space-3) 0; border: 0; background: transparent; font: inherit; font-weight: 700; line-height: 1.35; text-align: left; }
.home-faq__item button span { flex: 0 0 24px; color: var(--color-sage); font-size: 24px; font-weight: 400; text-align: center; }
.home-faq__answer { display: grid; grid-template-rows: 0fr; opacity: 0; transition: grid-template-rows var(--transition-base), opacity var(--transition-base); }
.home-faq__answer > p { min-height: 0; overflow: hidden; margin: 0; }
.home-faq__item.is-open .home-faq__answer { grid-template-rows: 1fr; opacity: 1; }
.home-faq__item.is-open .home-faq__answer > p { padding-bottom: var(--space-4); }
.home-faq__item.is-open button span { font-size: 0; }
.home-faq__item.is-open button span::after { content: "−"; font-size: 24px; }

.home-planning__intro { max-width: 620px; margin-bottom: var(--space-7); }
.home-planning__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 2fr) minmax(0, 5fr); gap: var(--space-5); }
.home-planning__panel { min-width: 0; }
.home-planning__panel:first-child { grid-column: 1; }
.home-planning__panel:last-child { grid-column: 3; }
.home-planning__panel--poker { background: var(--color-sage-mist); }
.home-planning__time { margin-bottom: var(--space-2); color: var(--color-sage); font-size: var(--text-body-large); font-weight: 700; }
.home-planning__panel a { display: inline-block; margin-right: var(--space-3); margin-top: var(--space-2); }

.home-closing__inner { max-width: 760px; margin-inline: auto; text-align: center; }
.home-closing h2 { max-width: 700px; margin-inline: auto; }
.home-closing__inner > p:not(.home-closing__policy) { max-width: 580px; margin-right: auto; margin-left: auto; color: var(--color-timber); font-size: var(--text-body-large); }
.home-closing .button { margin-top: var(--space-2); }
.home-closing__policy { max-width: 650px; margin: var(--space-5) auto 0; color: var(--color-white); font-size: var(--text-utility); font-weight: 700; line-height: var(--leading-utility); }

@media (min-width: 75rem) { .home-page { padding-bottom: 0; } }

@media (max-width: 70rem) {
  .home-map__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 60rem) {
  .home-audience__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 57.4375rem) {
  .home-hero__grid, .home-poker__grid, .home-architecture__grid { grid-template-columns: minmax(0, 1fr); }
  .home-hero__copy, .home-hero__media, .home-poker__media, .home-poker__copy, .home-architecture__copy, .home-architecture__media { grid-column: 1; }
  .home-hero__media { margin-top: var(--space-5); }
  .home-poker__media { order: 2; }
  .home-poker__copy { order: 1; max-width: none; }
  .home-poker__copy > p, .home-poker__copy h3 { max-width: 560px; }
  .home-architecture__media { margin-top: var(--space-5); }
}

@media (max-width: 52.5rem) {
  .home-map__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 48.75rem) {
  .home-process__grid { grid-template-columns: minmax(0, 1fr); }
  .home-planning__grid { grid-template-columns: minmax(0, 1fr); }
  .home-planning__panel:first-child, .home-planning__panel:last-child { grid-column: 1; }
}

@media (max-width: 47.9375rem) {
  .home-hero__actions { flex-direction: column; align-items: stretch; }
  .home-hero__actions .button { width: 100%; }
  .home-hero__media img { aspect-ratio: 4 / 3; }
  .home-hero__media::before { right: -8px; bottom: -8px; }
  .home-map__intro, .home-audience__intro, .home-process__intro, .home-gallery__intro, .home-planning__intro { margin-bottom: var(--space-6); }
  .home-map__grid, .home-audience__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-4); }
  .home-feature-card, .home-audience-card { min-height: 0; }
  .home-poker__media img { aspect-ratio: 4 / 3; }
  .home-poker__booking { flex-direction: column; align-items: stretch; padding: var(--space-4); margin-top: var(--space-6); }
  .home-poker__booking p { flex-basis: auto; max-width: none; }
  .home-poker__booking .badge { margin-left: 0; }
  .home-architecture__details { grid-template-columns: minmax(0, 1fr); gap: var(--space-5); }
  .home-architecture__details > article + article { padding-top: var(--space-5); border-top: 1px solid var(--color-border); }
  .home-gallery__grid { grid-template-columns: minmax(0, 1fr); gap: var(--space-6); }
  .home-gallery__food, .home-gallery__poker, .home-gallery__architecture { grid-column: 1; }
  .home-gallery__poker img { aspect-ratio: 4 / 3; }
  .home-process__policy { padding: var(--space-5); }
  .home-closing .button { width: min(100%, 360px); }
}
