/* Homepage finish. Loaded last, on Home only. Layout, type scale, imagery and CMS remain unchanged. */
.page-home {
  --home-polish-edge: rgba(255, 91, 108, 0.34);
  --home-polish-accent: #ff7681;
  --home-polish-shadow: 0 12px 28px rgba(0, 0, 0, 0.38), inset 0 1px rgba(255, 255, 255, 0.06);
}

/* Let the photograph and headline carry the hero; keep button glow close to its edge. */
.page-home .hero__eyebrow {
  color: #d6cbd0;
  text-shadow: 0 2px 12px rgba(0, 0, 0, 0.65);
}

.page-home .hero__description {
  color: #ece7e9;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.7);
}

.page-home .hero__title-line--crimson {
  filter: drop-shadow(0 2px 12px rgba(226, 24, 40, 0.2));
}

.page-home .hero-cta,
.page-home .dest-card__cta,
.page-home .inquiry-form__submit {
  box-shadow: 0 5px 16px rgba(174, 8, 31, 0.22), inset 0 1px rgba(255, 255, 255, 0.2);
}

.page-home .hero-cta--secondary {
  background: linear-gradient(180deg, rgba(30, 19, 24, 0.95), rgba(13, 8, 11, 0.96));
  border-color: rgba(255, 255, 255, 0.46);
  box-shadow: 0 5px 16px rgba(0, 0, 0, 0.35), inset 0 1px rgba(255, 255, 255, 0.09);
}

/* The four destination cards retain their crops and outer dimensions. */
.page-home .dest-card__hit,
.page-home .event-card__hit {
  border-color: var(--home-polish-edge);
  box-shadow: var(--home-polish-shadow);
}

.page-home .dest-card__shade {
  background: linear-gradient(180deg, transparent 18%, rgba(6, 3, 5, 0.22) 42%, rgba(6, 3, 5, 0.8) 73%, rgba(6, 3, 5, 0.97) 100%);
}

.page-home .dest-card__copy {
  margin-top: 0.5rem;
  color: #eee8eb;
}

.page-home .dest-card__accent {
  text-shadow: 0 2px 10px rgba(226, 24, 40, 0.2);
}

.page-home .dest-card__orb {
  border-color: rgba(255, 255, 255, 0.34);
  background: rgba(12, 7, 10, 0.88);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.07);
}

/* Consistent dark surfaces, with quieter borders around the existing content. */
.page-home .events-panel,
.page-home .inquiry-panel {
  border-color: var(--home-polish-edge);
  background: linear-gradient(145deg, rgba(19, 12, 16, 0.98), rgba(7, 5, 7, 0.98));
  box-shadow: var(--home-polish-shadow);
}

.page-home .events-panel__icon-wrap,
.page-home .home-band-head__icon,
.page-home .home-reviews__quote-icon {
  border-color: rgba(255, 91, 108, 0.46);
  background: rgba(226, 24, 40, 0.1);
  box-shadow: inset 0 1px rgba(255, 255, 255, 0.07);
}

.page-home .events-panel__icon,
.page-home .home-band-head__icon svg,
.page-home .home-reviews__quote-icon svg {
  filter: drop-shadow(0 0 3px rgba(255, 49, 64, 0.22));
}

.page-home .event-card__subtitle,
.page-home .inquiry-panel__copy {
  color: #ddd4d9;
}

.page-home .inquiry-form__field:not(.is-invalid) .inquiry-form__control {
  border-color: rgba(255, 255, 255, 0.22);
  background: #0d090c;
}

.page-home .inquiry-form__control::placeholder {
  color: #b8adb3;
}

.page-home .inquiry-form__control:focus-visible {
  outline: 2px solid var(--home-polish-accent);
  outline-offset: 2px;
  box-shadow: 0 0 0 4px rgba(255, 91, 108, 0.1);
}

.page-home .events-panel__all,
.page-home .home-band-head__cta {
  color: var(--home-polish-accent);
  text-shadow: none;
  text-underline-offset: 4px;
}

.page-home .home-review__panel {
  border-color: var(--home-polish-edge);
  background: linear-gradient(155deg, #160d12, #0b070a);
  box-shadow: var(--home-polish-shadow);
}

.page-home .home-review.is-active .home-review__panel {
  border-color: rgba(255, 91, 108, 0.6);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.42), 0 0 14px rgba(226, 24, 40, 0.1), inset 0 1px rgba(255, 255, 255, 0.08);
}

.page-home .home-review__age,
.page-home .home-reviews__cta-note {
  color: #bfb2ba;
}

/* Inset focus rings stay visible inside cards and cropped gallery strips. */
.page-home :is(.hero-cta, .dest-card__hit, .event-card__hit, .home-gallery__thumb, .home-reviews__leave, .home-reviews__nav, .inquiry-form__submit, .review-modal__close, .review-modal__star, .review-modal__submit):focus-visible {
  outline: 2px solid #ffe1e5;
  outline-offset: -4px;
}

.page-home :is(.events-panel__all, .home-band-head__cta):focus-visible {
  outline: 2px solid var(--home-polish-accent);
  outline-offset: 4px;
  border-radius: 3px;
}

@media (hover: hover) {
  .page-home :is(.dest-card__hit, .event-card__hit):hover {
    border-color: rgba(255, 118, 129, 0.86);
    box-shadow: 0 12px 28px rgba(0, 0, 0, 0.46), 0 0 16px rgba(226, 24, 40, 0.17), inset 0 1px rgba(255, 255, 255, 0.1);
  }

  .page-home :is(.hero-cta, .inquiry-form__submit):hover {
    box-shadow: 0 6px 20px rgba(174, 8, 31, 0.32), inset 0 1px rgba(255, 255, 255, 0.24);
  }

  .page-home .hero-cta--secondary:hover {
    border-color: #ffe1e5;
    background: linear-gradient(180deg, #2c1921, #160d12);
  }

  .page-home .dest-card__hit:hover .dest-card__orb {
    border-color: var(--home-polish-accent);
    background: rgba(89, 15, 31, 0.85);
    box-shadow: 0 0 12px rgba(226, 24, 40, 0.2);
  }

  .page-home :is(.events-panel__all, .home-band-head__cta):hover {
    color: #ffe1e5;
    text-decoration: underline;
  }
}

@media (prefers-reduced-motion: reduce) {
  .page-home :is(.hero-cta, .dest-card__hit, .event-card__hit, .destination-card__image) {
    transition: none;
    transform: none;
  }
}

/* Desktop: Events and Inquiry keep their accepted compact size. Both are content-sized; the grid only lets the shorter one match the taller
   one's natural height (a few px), so the bottom edges line up without any fixed or minimum height. Event cards never stretch. */
@media (min-width: 1101px) {
  .page-home .home-events__shell { align-items: stretch; }
  .page-home .events-panel { height: auto; min-height: 0; }
  .page-home .events-panel .event-card-row { flex: 0 0 auto; }
}
