.home-page {
  overflow: hidden;
}

.home-page ul {
  list-style: none !important;
}

.home-page .section {
  padding-block: clamp(4rem, 8vw, 7rem);
}

.home-hero-section {
  padding-block-start: clamp(2rem, 4vw, 4rem) !important;
}

.home-hero-grid,
.home-menu-grid,
.home-poker-grid,
.home-venue-grid {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
  gap: var(--space-6);
  align-items: center;
}

.home-hero-grid > *,
.home-menu-grid > *,
.home-poker-grid > *,
.home-venue-grid > * {
  min-width: 0;
  width: 100%;
}

.home-hero-copy {
  display: flex;
  flex-direction: column;
  gap: var(--space-4);
  align-items: flex-start;
  padding: clamp(2rem, 4vw, 3rem);
}

.home-hero-copy > * {
  margin: 0;
}

.home-hero-copy h1 {
  max-width: 14ch;
}

.home-hero-copy > p:not(.home-hero-helper) {
  max-width: 47ch;
}

.home-hero-helper {
  max-width: 40ch;
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.home-hero-actions {
  width: 100%;
}

.home-hero-image {
  aspect-ratio: 16 / 11;
}

.home-hero-image img,
.home-menu-image img,
.home-poker-image img,
.home-poker-image-mobile img,
.home-venue-image img {
  display: block;
  width: 100%;
  height: 100%;
  max-width: none;
  min-width: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center;
}

.home-rhythm-section {
  padding-block: clamp(3.5rem, 6vw, 5rem);
}

.home-rhythm-intro {
  max-width: 48ch;
  margin-block-end: var(--space-6);
}

.home-rhythm-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
}

.home-rhythm-grid > * {
  min-width: 0;
  width: 100%;
}

.home-rhythm-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  color: var(--color-charcoal);
  text-decoration: none;
}

.home-rhythm-card > * {
  margin: 0;
}

.home-rhythm-card::before {
  width: 3rem;
  height: 1px;
  background: var(--color-bronze);
  content: "";
}

.home-rhythm-card--wine {
  background: var(--color-ivory);
}

.home-rhythm-card--wine .home-pairing-note {
  width: 100%;
  padding: var(--space-3);
  background: var(--color-sand);
  font-size: var(--text-sm);
}

.home-rhythm-card--poker {
  border-inline-start: 4px solid var(--color-felt);
}

.home-menu-grid {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: stretch;
}

.home-menu-panel {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
  min-width: 0;
  padding: clamp(2rem, 4vw, 3rem);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-xl);
  background: var(--color-sand);
}

.home-menu-panel > * {
  margin: 0;
}

.home-menu-panel h2 {
  max-width: 14ch;
}

.home-menu-lead {
  max-width: 62ch;
}

.home-menu-notes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
  width: 100%;
}

.home-menu-notes > * {
  min-width: 0;
  width: 100%;
}

.home-menu-note {
  position: relative;
  padding-block-start: var(--space-5);
  border-block-start: 1px solid var(--border-subtle);
}

.home-menu-note > *:last-child {
  margin-block-end: 0;
}

.home-folio {
  display: block;
  margin-block-end: var(--space-2);
  color: var(--color-bronze);
  font-size: var(--text-xs);
  font-weight: 750;
  letter-spacing: 0.08em;
}

.home-menu-image {
  min-height: 100%;
}

.home-menu-image img {
  aspect-ratio: 4 / 5;
}

.home-wine-section {
  padding-block: clamp(4rem, 7vw, 6rem);
}

.home-wine-intro {
  max-width: 54ch;
  margin-inline: auto;
  text-align: center;
}

.home-wine-intro .eyebrow {
  justify-content: center;
}

.home-wine-intro > :last-child {
  margin-block-end: 0;
}

.home-wine-rule {
  margin: var(--space-6) auto;
}

.home-wine-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
}

.home-wine-grid > * {
  min-width: 0;
  width: 100%;
}

.home-wine-point {
  position: relative;
  padding-block-start: var(--space-5);
}

.home-wine-point::before {
  position: absolute;
  inset-block-start: 0;
  inset-inline-start: 0;
  width: 0.55rem;
  height: 0.55rem;
  background: var(--color-amber);
  content: "";
}

.home-wine-point > span {
  display: block;
  margin-block-end: var(--space-2);
  color: var(--color-muted);
  font-size: var(--text-xs);
  font-weight: 750;
  letter-spacing: 0.08em;
}

.home-wine-point > :last-child {
  margin-block-end: 0;
}

.home-poker-grid {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: stretch;
}

.home-poker-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-5);
}

.home-poker-copy > * {
  margin: 0;
}

.home-poker-copy h2 {
  max-width: 14ch;
}

.home-poker-lead {
  max-width: 54ch;
}

.home-poker-facts {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  width: 100%;
  border-block-start: 1px solid rgb(177 138 99 / 75%);
}

.home-poker-facts > * {
  min-width: 0;
  width: 100%;
  padding: var(--space-4);
  border-inline-end: 1px solid rgb(177 138 99 / 75%);
}

.home-poker-facts > *:first-child {
  padding-inline-start: 0;
}

.home-poker-facts > *:last-child {
  padding-inline-end: 0;
  border-inline-end: 0;
}

.home-poker-facts h3 {
  color: var(--color-ivory);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
}

.home-poker-facts p {
  margin-block-end: 0;
  font-size: var(--text-sm);
}

.home-poker-link,
.home-gallery-link,
.home-booking-info,
.home-final-link {
  color: var(--color-ivory);
  font-weight: 750;
  text-decoration-color: var(--color-bronze);
}

.home-poker-link:hover,
.home-gallery-link:hover,
.home-booking-info:hover,
.home-final-link:hover {
  color: var(--color-focus);
}

.home-poker-image {
  min-height: 100%;
}

.home-poker-image img {
  aspect-ratio: 4 / 5;
}

.home-poker-image-mobile {
  display: none;
}

.home-venue-grid {
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  align-items: start;
}

.home-venue-image img {
  aspect-ratio: 7 / 5;
}

.home-venue-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-4);
}

.home-venue-copy > * {
  margin: 0;
}

.home-venue-copy h2 {
  max-width: 13ch;
}

.home-venue-lead {
  max-width: 60ch;
}

.home-venue-cues {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: var(--space-4);
  width: 100%;
  margin-block-start: var(--space-2);
}

.home-venue-cues > * {
  min-width: 0;
  width: 100%;
  padding-block-start: var(--space-4);
  border-block-start: 1px solid var(--border-subtle);
}

.home-venue-cues h3 {
  margin-block-end: var(--space-2);
  font-size: clamp(1.25rem, 2vw, 1.5rem);
}

.home-venue-cues p {
  max-width: 32ch;
  margin-block-end: 0;
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.home-gallery-intro {
  max-width: 58ch;
  margin-block-end: var(--space-6);
}

.home-gallery-intro > :last-child {
  margin-block-end: 0;
}

.home-gallery-link {
  color: var(--color-felt);
}

.home-gallery-link:hover {
  color: var(--color-felt-deep);
}

.home-gallery-grid {
  display: grid;
  grid-template-columns: minmax(0, 6fr) minmax(0, 4fr) minmax(0, 2fr);
  gap: var(--space-5);
  align-items: start;
}

.home-gallery-grid > * {
  min-width: 0;
  width: 100%;
}

.home-gallery-item {
  display: flex;
  flex-direction: column;
  gap: var(--space-3);
  color: var(--color-charcoal);
  text-decoration: none;
}

.home-gallery-item--dining img,
.home-gallery-item--poker img {
  width: 100%;
  aspect-ratio: 4 / 5;
  object-fit: cover;
}

.home-gallery-item--detail img {
  width: 100%;
  aspect-ratio: 3 / 2;
  object-fit: cover;
}

.home-gallery-caption {
  display: flex;
  flex-direction: column;
  gap: var(--space-2);
  min-width: 0;
}

.home-gallery-caption strong {
  font-family: var(--font-heading);
  font-size: var(--text-xl);
  font-weight: 600;
  line-height: 1.15;
}

.home-gallery-caption > span:last-child {
  color: var(--color-muted);
  font-size: var(--text-sm);
  line-height: 1.55;
}

.home-paths-intro {
  max-width: 48ch;
  margin-inline: auto;
  margin-block-end: var(--space-6);
  text-align: center;
}

.home-paths-intro .eyebrow {
  justify-content: center;
}

.home-paths-intro > :last-child {
  margin-block-end: 0;
}

.home-paths-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--space-5);
}

.home-paths-grid > * {
  min-width: 0;
  width: 100%;
}

.home-path-card {
  display: flex;
  min-height: 100%;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
  color: var(--color-charcoal);
  text-decoration: none;
}

.home-path-card > * {
  margin: 0;
}

.home-path-card::before {
  width: 3rem;
  height: 1px;
  background: var(--color-bronze);
  content: "";
}

.home-path-card > span {
  margin-block-start: auto;
  color: var(--color-felt);
  font-size: var(--text-sm);
  font-weight: 750;
  text-decoration: underline;
  text-decoration-color: var(--color-bronze);
  text-underline-offset: 0.2em;
}

.home-path-card--menu::before {
  height: 0.5rem;
  background: var(--color-sand);
}

.home-path-card--menu > span {
  color: var(--color-amber-deep);
}

.home-path-card--poker {
  border-inline-start: 4px solid var(--color-felt);
}

.home-visit-section {
  padding-block: clamp(3.5rem, 6vw, 5rem);
}

.home-visit-panel {
  display: grid;
  grid-template-columns: minmax(0, 5fr) minmax(0, 3fr) minmax(0, 4fr);
  gap: var(--space-6);
  padding: clamp(1.5rem, 4vw, 3rem);
}

.home-visit-panel > * {
  min-width: 0;
  width: 100%;
}

.home-address-block,
.home-contact-block,
.home-booking-block {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: var(--space-3);
}

.home-address-block > *,
.home-contact-block > *,
.home-booking-block > * {
  margin: 0;
}

.home-address-block address {
  color: var(--color-charcoal);
  font-family: var(--font-heading);
  font-size: clamp(1.5rem, 2.5vw, 2rem);
  font-style: normal;
  font-weight: 600;
  line-height: 1.15;
}

.home-address-block p {
  max-width: 38ch;
  color: var(--color-muted);
}

.home-contact-block,
.home-booking-block {
  padding-inline-start: var(--space-5);
  border-inline-start: 1px solid var(--border-subtle);
}

.home-contact-block h3,
.home-booking-block h3 {
  font-size: var(--text-xl);
}

.home-contact-block p,
.home-booking-block p {
  color: var(--color-muted);
  font-size: var(--text-sm);
}

.home-contact-block a {
  display: flex;
  width: 100%;
  min-height: 2.75rem;
  flex-direction: column;
  justify-content: center;
  color: var(--color-charcoal);
  text-decoration: none;
}

.home-contact-block a span {
  color: var(--color-muted);
  font-size: var(--text-xs);
  font-weight: 750;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.home-contact-block a strong {
  overflow-wrap: anywhere;
  font-size: var(--text-sm);
}

.home-booking-block .button {
  width: 100%;
}

.home-booking-info {
  color: var(--color-felt);
}

.home-booking-info:hover {
  color: var(--color-felt-deep);
}

.home-final-section {
  padding-block: clamp(3rem, 6vw, 5rem) clamp(4rem, 8vw, 7rem) !important;
}

.home-final-panel {
  position: relative;
  display: flex;
  width: min(100%, 62.5rem);
  flex-direction: column;
  align-items: center;
  gap: var(--space-4);
  margin-inline: auto;
  overflow: hidden;
  text-align: center;
}

.home-final-panel > * {
  margin: 0;
}

.home-final-panel .eyebrow {
  justify-content: center;
}

.home-final-panel h2 {
  max-width: 18ch;
}

.home-final-panel > p:not(.eyebrow) {
  max-width: 50ch;
}

.home-final-actions {
  justify-content: center;
}

.home-final-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  color: var(--color-felt);
}

.home-final-link:hover {
  color: var(--color-felt-deep);
}

.home-dealer-accent {
  width: 1rem;
  height: 1rem;
  margin-block-end: var(--space-1);
  border: 1px solid var(--color-bronze);
  background: var(--color-sand);
  transform: rotate(45deg);
}

.home-page a:focus-visible,
.home-page button:focus-visible {
  outline: 2px solid var(--color-charcoal);
  outline-offset: 2px;
  box-shadow: 0 0 0 5px var(--color-focus);
}

@media (max-width: 64rem) {
  .home-hero-grid,
  .home-menu-grid,
  .home-poker-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-hero-copy h1,
  .home-menu-panel h2,
  .home-poker-copy h2 {
    font-size: clamp(2.5rem, 5vw, 3.5rem);
  }

  .home-rhythm-intro {
    max-width: 100%;
  }

  .home-rhythm-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-rhythm-card--poker {
    grid-column: span 2;
  }

  .home-wine-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-wine-point:last-child {
    grid-column: span 2;
  }

  .home-poker-facts {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-poker-facts > * {
    padding: var(--space-4) 0;
    border-inline-end: 0;
    border-block-end: 1px solid rgb(177 138 99 / 75%);
  }

  .home-poker-facts > *:last-child {
    border-block-end: 0;
  }

  .home-venue-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-venue-image img {
    aspect-ratio: 4 / 5;
  }

  .home-gallery-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-gallery-item--dining {
    grid-column: span 2;
  }

  .home-gallery-item--dining img {
    aspect-ratio: 16 / 9;
  }

  .home-gallery-item--detail img {
    aspect-ratio: 4 / 5;
  }

  .home-visit-panel {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-address-block {
    grid-row: span 2;
  }

  .home-contact-block,
  .home-booking-block {
    padding-inline-start: var(--space-5);
  }
}

@media (max-width: 51.25rem) {
  .home-menu-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-menu-image {
    order: 2;
    grid-column: 1 / -1;
    width: 100%;
  }

  .home-menu-panel {
    order: 1;
  }

  .home-menu-image img {
    aspect-ratio: 4 / 5;
  }

  .home-venue-grid {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-venue-image {
    order: 1;
    grid-column: 1 / -1;
    width: 100%;
  }

  .home-venue-copy {
    order: 2;
  }

  .home-venue-image img {
    aspect-ratio: 4 / 5;
  }
}

@media (max-width: 47.5rem) {
  .home-page .section {
    padding-block: clamp(4rem, 14vw, 5rem);
  }

  .home-hero-section {
    padding-block-start: var(--space-5) !important;
  }

  .home-hero-grid,
  .home-poker-grid {
    grid-template-columns: minmax(0, 1fr);
    gap: var(--space-5);
  }

  .home-hero-copy {
    order: 1;
    padding: var(--space-5);
  }

  .home-hero-copy h1,
  .home-menu-panel h2,
  .home-poker-copy h2 {
    font-size: clamp(2.5rem, 11vw, 3rem);
  }

  .home-hero-image {
    order: 2;
    grid-column: 1 / -1;
    width: 100%;
    aspect-ratio: 4 / 5;
  }

  .home-hero-actions {
    flex-direction: column;
  }

  .home-hero-actions .button {
    width: 100%;
  }

  .home-rhythm-grid,
  .home-menu-notes,
  .home-wine-grid,
  .home-gallery-grid,
  .home-paths-grid,
  .home-visit-panel {
    grid-template-columns: minmax(0, 1fr);
  }

  .home-rhythm-grid,
  .home-paths-grid {
    gap: var(--space-4);
  }

  .home-rhythm-card--poker,
  .home-wine-point:last-child,
  .home-gallery-item--dining {
    grid-column: auto;
  }

  .home-menu-panel {
    padding: var(--space-5);
  }

  .home-menu-notes {
    gap: var(--space-4);
  }

  .home-menu-note + .home-menu-note {
    padding-block-start: var(--space-5);
    border-block-start: 1px solid var(--border-subtle);
  }

  .home-wine-intro {
    max-width: 90%;
  }

  .home-wine-grid {
    gap: var(--space-5);
  }

  .home-wine-point + .home-wine-point {
    border-block-start: 1px solid var(--border-subtle);
  }

  .home-poker-copy {
    padding: var(--space-5);
  }

  .home-poker-image {
    display: none;
  }

  .home-poker-image-mobile {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 5;
  }

  .home-venue-cues {
    gap: var(--space-4);
  }

  .home-gallery-item--dining img,
  .home-gallery-item--poker img {
    aspect-ratio: 4 / 5;
  }

  .home-gallery-item--detail img {
    aspect-ratio: 3 / 2;
  }

  .home-path-card {
    padding: var(--space-5);
  }

  .home-visit-panel {
    gap: var(--space-5);
    padding: var(--space-5);
  }

  .home-address-block,
  .home-contact-block,
  .home-booking-block {
    padding: 0;
    border: 0;
  }

  .home-contact-block,
  .home-booking-block {
    padding-block-start: var(--space-5);
    border-block-start: 1px solid var(--border-subtle);
  }

  .home-booking-block .button {
    min-height: 2.75rem;
  }

  .home-final-panel {
    padding: var(--space-8) var(--space-5);
  }

  .home-final-panel h2 {
    font-size: clamp(2.25rem, 10vw, 2.5rem);
  }

  .home-final-panel > p:not(.eyebrow) {
    max-width: 32ch;
  }

  .home-final-actions {
    width: 100%;
    flex-direction: column;
  }

  .home-final-actions .button,
  .home-final-link {
    width: 100%;
  }
}

/* mobile-photo-center */
@media (max-width: 56.25rem) {
  img,
  video {
    object-position: center !important;
  }

  .image-frame,
  .media-frame,
  .card__media,
  [class*='__media'] {
    width: 100%;
    max-width: 100%;
    margin-inline: 0;
    justify-self: stretch;
    overflow: hidden;
  }

  .image-frame img,
  .media-frame img,
  .media-frame video,
  .card__media img,
  [class*='__media'] img,
  [class*='hero'] img,
  [class*='hero__image'] {
    width: 100%;
    height: 100%;
    max-width: none;
    min-width: 100%;
    min-height: 100%;
    object-fit: cover;
    object-position: center !important;
  }
}
