.celebrations-page {
  overflow: hidden;
}

.celebrations-page .section {
  padding-block: var(--space-10);
}

.celebrations-page h2 {
  font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.08;
}

.celebrations-hero {
  padding-block: var(--space-9) var(--space-10);
}

.celebrations-hero__grid,
.celebrations-taste__grid,
.celebrations-atmosphere__grid,
.celebrations-inquiry__grid {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-6);
}

.celebrations-hero__copy {
  grid-column: 1 / span 5;
  min-width: 0;
  max-width: 35rem;
  align-self: center;
}

.celebrations-hero__copy h1 {
  margin-block-end: var(--space-5);
  font-size: clamp(3rem, 5.8vw, 4.25rem);
}

.celebrations-hero__lead {
  max-width: 31.25rem;
  font-size: var(--text-md);
}

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

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

.celebrations-hero__media {
  position: relative;
  grid-column: 7 / span 6;
  min-width: 0;
  width: 100%;
}

.celebrations-hero__media img {
  width: 100%;
  height: 35rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  object-fit: cover;
  object-position: 64% center;
  transition: transform var(--transition-standard);
}

.celebrations-hero__media:hover img {
  transform: scale(1.02);
}

.celebrations-hero__route {
  position: absolute;
  right: var(--space-4);
  bottom: var(--space-4);
  display: flex;
  min-width: 0;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: var(--space-3);
}

.celebrations-hero__route span {
  display: inline-flex;
  min-width: 0;
  align-items: center;
  gap: var(--space-2);
  border-radius: var(--radius-pill);
  background: rgb(251 247 239 / 92%);
  color: var(--color-ink);
  padding: var(--space-2) var(--space-3);
  font-size: var(--text-2xs);
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.celebrations-hero__route span::before {
  width: .625rem;
  height: .625rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--color-terracotta);
  content: "";
}

.celebrations-occasions__intro,
.celebrations-taste__intro,
.celebrations-compass__intro,
.celebrations-rhythm__intro,
.celebrations-process__intro,
.celebrations-inquiry__intro {
  min-width: 0;
  max-width: 40.625rem;
}

.celebrations-occasions__cards,
.celebrations-process__steps,
.celebrations-rhythm__steps {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-5);
  margin-block-start: var(--space-7);
}

.celebrations-occasions__cards > *,
.celebrations-process__steps > *,
.celebrations-rhythm__steps > * {
  min-width: 0;
  width: 100%;
}

.celebrations-occasion-card {
  position: relative;
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-cream);
  padding: var(--space-5);
  transition: border-color var(--transition-fast), transform var(--transition-fast);
}

.celebrations-occasion-card:hover {
  border-color: var(--color-route-blue);
  transform: translateY(-2px);
}

.celebrations-occasion-card > * {
  min-width: 0;
  margin: 0;
}

.celebrations-occasion-card__marker {
  width: .75rem;
  height: .75rem;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--color-route-blue);
}

.celebrations-occasion-card--terracotta .celebrations-occasion-card__marker { background: var(--color-terracotta); }
.celebrations-occasion-card--sage { border-top: .5rem solid var(--color-sage); }
.celebrations-occasion-card--sage .celebrations-occasion-card__marker { background: var(--color-sage); }

.celebrations-taste__grid {
  margin-block-start: var(--space-7);
}

.celebrations-taste__figure {
  grid-column: 1 / span 5;
  min-width: 0;
  width: 100%;
  margin: 0;
}

.celebrations-taste__figure img {
  width: 100%;
  height: 34rem;
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  object-fit: cover;
}

.celebrations-taste__panel {
  grid-column: 7 / span 6;
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-5);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  background: var(--color-cream);
  padding: var(--space-6);
}

.celebrations-taste-stop {
  position: relative;
  min-width: 0;
  padding-inline-start: var(--space-5);
}

.celebrations-taste-stop::before {
  position: absolute;
  top: .55rem;
  left: 0;
  width: .75rem;
  height: .75rem;
  border-radius: 50%;
  background: var(--color-ochre);
  content: "";
}

.celebrations-taste-stop:not(:last-child)::after {
  position: absolute;
  top: 1.35rem;
  bottom: calc(var(--space-5) * -1);
  left: .3125rem;
  width: 2px;
  background: rgb(54 93 112 / 28%);
  content: "";
}

.celebrations-taste-stop--sage::before { background: var(--color-sage); }
.celebrations-taste-stop--terracotta::before { background: var(--color-terracotta); }
.celebrations-taste-stop--blue::before { background: var(--color-route-blue); }
.celebrations-taste-stop h3,
.celebrations-taste-stop p {
  max-width: 26.25rem;
}

.celebrations-compass__notes {
  display: grid;
  min-width: 0;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: var(--space-7) var(--space-6);
  margin-block-start: var(--space-7);
}

.celebrations-compass-note {
  min-width: 0;
  width: 100%;
}

.celebrations-compass-note--first { grid-column: 1 / span 4; max-width: 28.75rem; }
.celebrations-compass-note--second { grid-column: 7 / span 4; max-width: 28.75rem; }
.celebrations-compass-note--contact {
  grid-column: 1 / span 6;
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-cream);
  padding: var(--space-6);
}

.celebrations-compass-note--contact > * { min-width: 0; margin: 0; }
.celebrations-compass-note--contact ul { padding-inline-start: 1.35em; }

.celebrations-rhythm__intro { color: var(--color-cream); }
.celebrations-rhythm__intro .eyebrow { color: var(--color-ochre); }
.celebrations-rhythm__steps {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: var(--space-5);
}

.celebrations-rhythm-step {
  position: relative;
  min-width: 0;
  width: 100%;
  padding-block-start: var(--space-5);
}

.celebrations-rhythm-step::before {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 2px;
  background: rgb(251 247 239 / 35%);
  content: "";
}

.celebrations-rhythm-step::after {
  position: absolute;
  top: -.3rem;
  left: 0;
  width: .75rem;
  height: .75rem;
  border-radius: 50%;
  background: var(--color-ochre);
  content: "";
}

.celebrations-rhythm-step:nth-child(3)::after { background: var(--color-sage); }
.celebrations-rhythm-step:nth-child(4)::after { background: var(--color-terracotta); }
.celebrations-rhythm-step__number { display: block; margin-block-end: var(--space-3); color: var(--color-ochre); font-size: var(--text-2xs); font-weight: 800; letter-spacing: .08em; }
.celebrations-rhythm-step h3 { color: var(--color-cream); }
.celebrations-rhythm-step p { max-width: 16.25rem; color: rgb(251 247 239 / 90%); }
.celebrations-rhythm-step a { color: var(--color-cream); }

.celebrations-activity__panel {
  display: flex;
  min-width: 0;
  max-width: 43.75rem;
  flex-direction: column;
  gap: var(--space-4);
  margin-inline: auto;
  border: 1px solid var(--color-route-blue);
  border-radius: var(--radius-md);
  background: var(--color-cream);
  padding: var(--space-6);
}

.celebrations-activity__panel > * { min-width: 0; margin: 0; }
.celebrations-activity__panel h2 { font-size: clamp(1.75rem, 3vw, 2rem); }
.celebrations-activity__note { border-top: 1px solid var(--color-border); padding-top: var(--space-4); }

.celebrations-atmosphere__grid { margin-block-start: var(--space-7); }
.celebrations-atmosphere__primary-image { grid-column: 1 / span 7; min-width: 0; width: 100%; margin: 0; }
.celebrations-atmosphere__primary-image img,
.celebrations-atmosphere__secondary-image img { width: 100%; border: 1px solid var(--color-border); border-radius: var(--radius-md); object-fit: cover; }
.celebrations-atmosphere__primary-image img { height: 34rem; }
.celebrations-atmosphere__side { grid-column: 9 / span 4; display: flex; min-width: 0; flex-direction: column; gap: var(--space-5); }
.celebrations-atmosphere__side > * { min-width: 0; width: 100%; }
.celebrations-atmosphere__copy { max-width: 21.875rem; }
.celebrations-atmosphere__secondary-image { margin: 0; }
.celebrations-atmosphere__secondary-image img { height: 14rem; }
.celebrations-atmosphere__destination { max-width: 26.875rem; }

.celebrations-process {
  background: rgb(251 247 239 / 45%);
}

.celebrations-process__steps {
  border-radius: var(--radius-lg);
}

.celebrations-process-step {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: var(--space-4);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-md);
  background: var(--color-cream);
  padding: var(--space-5);
}

.celebrations-process-step > * { min-width: 0; margin: 0; }
.celebrations-process-step > span { color: var(--color-route-blue); font-size: var(--text-lg); font-weight: 800; }

.celebrations-faq__inner {
  min-width: 0;
  max-width: 48.75rem;
  margin-inline: auto;
}

.celebrations-faq__intro { min-width: 0; }
.celebrations-faq__list { min-width: 0; margin-block-start: var(--space-6); border: 1px solid var(--color-border); border-radius: var(--radius-md); background: var(--color-cream); overflow: hidden; }
.celebrations-faq-item { min-width: 0; border-bottom: 1px solid var(--color-border); }
.celebrations-faq-item:last-child { border-bottom: 0; }
.celebrations-faq-item h3 { margin: 0; font-family: var(--font-body); font-size: var(--text-sm); }
.celebrations-faq-item button { display: flex; width: 100%; min-width: 0; min-height: 3.5rem; align-items: center; justify-content: space-between; gap: var(--space-4); border: 0; background: transparent; padding: var(--space-4); color: var(--color-ink); font-weight: 800; text-align: left; }
.celebrations-faq-item button > span { flex: 0 0 auto; color: var(--color-route-blue); font-size: 1.5rem; line-height: 1; }
.celebrations-faq-item button[aria-expanded="true"] { background: rgb(197 160 82 / 14%); }
.celebrations-faq-item button[aria-expanded="true"] > span { transform: rotate(45deg); }
.celebrations-faq-item__answer { min-width: 0; max-width: 41.25rem; padding: 0 var(--space-4) var(--space-4); }
.celebrations-faq-item__answer p { margin: 0; }

.celebrations-inquiry { padding-bottom: var(--space-10); }
.celebrations-inquiry__grid { margin-block-start: var(--space-7); }
.celebrations-inquiry__form { grid-column: 1 / span 8; display: flex; min-width: 0; flex-direction: column; gap: var(--space-5); border: 1px solid var(--color-border); border-top: .5rem solid var(--color-terracotta); border-radius: var(--radius-lg); background: var(--color-cream); padding: var(--space-6); }
.celebrations-inquiry__form > * { min-width: 0; margin: 0; }
.celebrations-inquiry__fields { display: grid; min-width: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-4); }
.celebrations-inquiry__fields > * { min-width: 0; width: 100%; }
.celebrations-field { display: flex; min-width: 0; flex-direction: column; gap: var(--space-2); }
.celebrations-field label { margin: 0; }
.celebrations-field--message { grid-column: 1 / -1; }
.celebrations-field textarea { min-height: 8rem; }
.celebrations-field__help,
.celebrations-field__error,
.celebrations-inquiry__required,
.celebrations-inquiry__status { margin: 0; font-size: var(--text-xs); line-height: var(--leading-small); }
.celebrations-field__help { color: rgb(38 62 67 / 78%); }
.celebrations-field__error { min-height: 1.25rem; color: var(--color-error); font-weight: 700; }
.celebrations-inquiry__form .button { align-self: flex-start; }
.celebrations-inquiry__contact { grid-column: 10 / span 3; display: flex; min-width: 0; flex-direction: column; gap: var(--space-4); align-self: start; border-radius: var(--radius-lg); padding: var(--space-5); }
.celebrations-inquiry__contact > * { min-width: 0; margin: 0; }
.celebrations-inquiry__contact .route-label { color: var(--color-cream); }
.celebrations-inquiry__contact .route-label::before { background: var(--color-ochre); }
.celebrations-inquiry__contact a { color: var(--color-cream); }

@media (max-width: 59.99rem) {
  .celebrations-page .section { padding-block: var(--space-9); }
  .celebrations-hero__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .celebrations-hero__copy { grid-column: 1 / span 3; }
  .celebrations-hero__media { grid-column: 4 / span 3; }
  .celebrations-hero__media img { height: 30rem; }
  .celebrations-rhythm__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: var(--space-7); }
  .celebrations-compass__notes { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .celebrations-compass-note--first { grid-column: 1 / span 3; }
  .celebrations-compass-note--second { grid-column: 4 / span 3; }
  .celebrations-compass-note--contact { grid-column: 1 / span 4; }
  .celebrations-atmosphere__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .celebrations-atmosphere__primary-image { grid-column: 1 / span 3; }
  .celebrations-atmosphere__side { grid-column: 4 / span 3; }
  .celebrations-inquiry__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .celebrations-inquiry__form { grid-column: 1 / -1; }
  .celebrations-inquiry__contact { grid-column: 1 / -1; }
}

@media (max-width: 56.24rem) {
  .celebrations-hero__grid { grid-template-columns: 1fr; gap: var(--space-6); }
  .celebrations-hero__copy,
  .celebrations-hero__media { grid-column: 1; max-width: none; }
  .celebrations-hero__copy h1 { max-width: 35rem; font-size: clamp(2.5rem, 10vw, 2.75rem); }
  .celebrations-hero__media img { height: auto; aspect-ratio: 4 / 5; object-position: center; }
  .celebrations-occasions__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .celebrations-occasions__cards > :last-child { grid-column: 1 / -1; }
  .celebrations-taste__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .celebrations-taste__figure { grid-column: 1 / span 3; }
  .celebrations-taste__panel { grid-column: 4 / span 3; padding: var(--space-5); }
  .celebrations-taste__figure img { height: 27rem; }
  .celebrations-process__steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .celebrations-process__steps > :last-child { grid-column: 1 / -1; }
}

@media (max-width: 47.49rem) {
  .celebrations-page .section { padding-block: var(--space-8); }
  .celebrations-hero { padding-block: var(--space-8); }
  .celebrations-hero__actions { flex-direction: column; align-items: stretch; }
  .celebrations-hero__actions > * { width: 100%; }
  .celebrations-occasions__cards,
  .celebrations-process__steps,
  .celebrations-rhythm__steps { grid-template-columns: 1fr; }
  .celebrations-occasions__cards > :last-child,
  .celebrations-process__steps > :last-child { grid-column: 1; }
  .celebrations-taste__grid { grid-template-columns: 1fr; }
  .celebrations-taste__figure,
  .celebrations-taste__panel { grid-column: 1; }
  .celebrations-taste__figure img { height: auto; aspect-ratio: 4 / 3; }
  .celebrations-taste__panel { padding: var(--space-5); }
  .celebrations-compass__notes { grid-template-columns: 1fr; gap: var(--space-6); }
  .celebrations-compass-note--first,
  .celebrations-compass-note--second,
  .celebrations-compass-note--contact { grid-column: 1; max-width: none; }
  .celebrations-rhythm__steps { gap: var(--space-6); }
  .celebrations-rhythm-step { padding-block: 0 0; padding-inline-start: 2.25rem; }
  .celebrations-rhythm-step::before { top: 0; bottom: calc(var(--space-6) * -1); left: .3rem; width: 2px; height: auto; }
  .celebrations-rhythm-step:last-child::before { bottom: 0; }
  .celebrations-rhythm-step::after { top: .15rem; left: 0; }
  .celebrations-rhythm-step p { max-width: none; }
  .celebrations-activity__panel { padding: var(--space-5); }
  .celebrations-atmosphere__grid { grid-template-columns: 1fr; gap: var(--space-5); }
  .celebrations-atmosphere__primary-image,
  .celebrations-atmosphere__side { grid-column: 1; }
  .celebrations-atmosphere__primary-image img { height: auto; aspect-ratio: 3 / 2; }
  .celebrations-atmosphere__secondary-image img { height: auto; aspect-ratio: 4 / 3; }
  .celebrations-atmosphere__copy,
  .celebrations-atmosphere__destination { max-width: none; }
  .celebrations-inquiry__fields { grid-template-columns: 1fr; }
  .celebrations-inquiry__form { padding: var(--space-5); }
  .celebrations-inquiry__form .button { width: 100%; }
}

@media (prefers-reduced-motion: reduce) {
  .celebrations-hero__media:hover img,
  .celebrations-occasion-card:hover { transform: none; }
}
