/* Trip-guide composition only; preserve the existing homepage and legal surfaces. */
.trip-page .hero { grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); }
.trip-page h1 { font-size: clamp(3rem, 5.5vw, 6rem); max-width: 12ch; }
.trip-page .hero-media { margin: 0; }
.trip-page .hero-media > img { object-position: 50% 40%; }
.trip-page .section-heading { grid-template-columns: minmax(0, .45fr) minmax(0, 1.55fr); }
.trip-page .section-heading h2 { max-width: 20ch; }
.trip-page .trip-timeline {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--ink);
}
.trip-page .trip-timeline li { min-width: 0; padding: 2rem 2.5rem 0 0; }
.trip-page .trip-timeline li + li { padding-left: 2.5rem; border-left: 1px solid var(--line); }
.trip-page .trip-timeline h3 {
  margin: 2.25rem 0 1rem;
  font-family: var(--serif);
  font-size: clamp(1.75rem, 2.7vw, 2.5rem);
  font-weight: 400;
}
.trip-page .trip-timeline p { margin: 0; font-size: 1rem; line-height: 1.75; color: var(--muted); }
.trip-page .trip-invitation { background: var(--soft); }
.trip-page .trip-invite-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6vw; }
.trip-page .trip-invite-grid > * { min-width: 0; }
.trip-page .invite-steps { margin: 0; padding-left: 1.5rem; }
.trip-page .invite-steps li { padding: 0 0 1.5rem .75rem; font-size: 1.125rem; line-height: 1.65; }
.trip-page .invite-steps li::marker { color: var(--red); font-weight: 650; }
.trip-page .trip-message { padding: 2rem; background: var(--paper); border-top: 2px solid var(--red); align-self: start; }
.trip-page .trip-message h3 { margin: 0 0 1.5rem; font-size: .875rem; line-height: 1.6; font-weight: 600; color: var(--red); }
.trip-page .trip-message blockquote { margin: 0; font-family: var(--serif); font-size: clamp(1.375rem, 2vw, 1.75rem); line-height: 1.55; }
.trip-page .trip-message blockquote::before { content: "“"; }
.trip-page .trip-message blockquote::after { content: "”"; }
.trip-page .roll-mode { padding-bottom: 1rem; }
.trip-page .trip-invitation .invitation-note { margin-top: .5rem; }
.trip-page .faq-list, .trip-page .faq-support { max-width: 65rem; }

@media (max-width: 900px) {
  .trip-page .hero { grid-template-columns: minmax(0, 1fr); }
  .trip-page h1 { max-width: 17ch; font-size: clamp(3rem, 8vw, 4.75rem); }
  .trip-page .hero-media { height: clamp(24rem, 75vw, 38rem); }
  .trip-page .hero-media > img { object-position: 50% 40%; }
  .trip-page .section-heading, .trip-page .trip-invite-grid { grid-template-columns: minmax(0, 1fr); }
  .trip-page .trip-invite-grid { gap: 2.5rem; }
  .trip-page .trip-timeline li { padding-right: 1.25rem; }
  .trip-page .trip-timeline li + li { padding-left: 1.25rem; }
}

@media (max-width: 600px) {
  .trip-page h1 { font-size: clamp(2.75rem, 10vw, 3.75rem); }
  .trip-page .trip-timeline { grid-template-columns: minmax(0, 1fr); }
  .trip-page .trip-timeline li, .trip-page .trip-timeline li + li { padding: 1.5rem 0; border-left: 0; }
  .trip-page .trip-timeline li + li { border-top: 1px solid var(--line); }
  .trip-page .trip-timeline h3 { margin-top: 1rem; }
  .trip-page .trip-message { padding: 1.5rem; }
}
