/* Mobile editorial pass: keep desktop composition untouched. */
@media (max-width: 760px) {
  :root { scroll-padding-top: 68px; }
  body { -webkit-text-size-adjust: 100%; }
  .container { width: min(100% - 2rem, var(--max-width)); }
  .section { padding-block: clamp(2.5rem, 9vw, 3.5rem); }
  .section__header { margin-bottom: 1.25rem; }
  .section__header h2 { line-height: 1.04; text-wrap: balance; }
  .section__header > p:not(.eyebrow),
  .favorite-places__heading > p,
  .ibiza-cartoon-heading > p { font-size: 1rem; line-height: 1.6; }
  .btn, button, summary { touch-action: manipulation; }
  :where(button, a, summary):focus-visible { outline: 2px solid #2c6268; outline-offset: 3px; }

  /* The wedding day selector is a compact, readable horizontal rail. */
  .wedding-days-section { display: block; min-height: 0; padding-block: 1.3rem 1rem; }
  .wedding-days-section .section__header { width: 100%; max-width: none; margin: 0 0 .85rem; text-align: left; }
  .wedding-days-section .section__header h2 { font-size: clamp(1.4rem, 6vw, 1.7rem); line-height: 1.1; }
  .day-pills--editorial { margin-inline: -.25rem; padding: 0 .25rem .35rem; overflow-x: auto; justify-content: flex-start; overscroll-behavior-inline: contain; scrollbar-width: thin; }
  .day-pills--editorial .day-pill { min-width: 112px; min-height: 70px; flex: 0 0 112px; padding: .55rem .7rem; }
  .day-pills--editorial .day-pill--soft { opacity: .68; filter: none; transform: none; }
  .day-pills--editorial .day-pill span { color: inherit; }
  .day-panel__chapter--story { width: 100%; gap: 1.3rem; padding-block: 2.2rem 2.7rem; }
  .day-panel__chapter--story .day-panel__intro h2 { font-size: clamp(2.25rem, 10vw, 3.1rem); line-height: .98; }
  .day-panel__chapter--story .day-panel__intro > p:not(.eyebrow,.day-location) { font-size: 1rem; line-height: 1.6; }
  .day-panel__chapter--story .main-day-party,
  .welcome-day-gathering,
  .afterparty-day-scene { width: 100%; aspect-ratio: 4 / 3; }
  .day-panel__chapter--story .main-day-party img,
  .welcome-day-gathering img,
  .afterparty-day-scene img { width: 100%; height: 100%; max-height: none; object-fit: cover; }

  /* Ibiza: title, filters and photographs form one clear visual rhythm. */
  .ibiza-editorial-hero { min-height: min(620px, calc(100svh - 60px)); }
  .ibiza-editorial-hero__art img { object-position: 61% center; }
  .ibiza-editorial-hero__copy > p:not(.eyebrow) { font-size: 1rem; line-height: 1.55; }
  .guide-section { padding-block: 2.5rem 3rem; }
  .guide-section .section__header--wide-title h2 { max-width: none; font-size: clamp(1.75rem, 7.35vw, 2.12rem); line-height: 1.04; letter-spacing: -.018em; text-wrap: normal; }
  .guide-place-filters,
  .favorite-place-filters,
  .ibiza-cartoon-filters { margin-bottom: 1.15rem; padding-block: .15rem .5rem; scroll-padding-inline: 0; scrollbar-width: thin; overscroll-behavior-inline: contain; }
  .guide-place-filters button,
  .favorite-place-filters button,
  .ibiza-cartoon-filters button { min-height: 44px; font-size: .76rem; letter-spacing: .015em; }
  .guide-grid--editorial { gap: 1rem; }
  .guide-grid--editorial .guide-card { min-height: 0; height: auto; padding-bottom: 1.35rem; }
  .guide-grid--editorial .guide-card__photo,
  .guide-grid--editorial .guide-card__wash { width: calc(100% + 3rem); height: auto; aspect-ratio: 4 / 3; margin-bottom: 1rem; }
  .guide-grid--editorial .guide-card__photo img { display: block; width: 100%; height: 100%; object-fit: cover; filter: saturate(.96) contrast(1.02); }
  .guide-grid--editorial .guide-card__number { top: calc((100vw - 2rem) * .75 - 22px); }
  .guide-grid--editorial .guide-card h3 { font-size: clamp(1.55rem, 6vw, 1.85rem); line-height: 1.05; }
  .guide-grid--editorial .guide-card > p { font-size: .96rem; line-height: 1.55; -webkit-line-clamp: 4; line-clamp: 4; }
  .guide-grid--editorial .guide-tags { margin-top: .95rem; }

  .favorite-places__heading { display: grid; grid-template-columns: minmax(0, 1fr); gap: .7rem; margin-bottom: 1.2rem; }
  .favorite-places__heading h2 { max-width: 12ch; font-size: clamp(2.05rem, 9vw, 2.8rem); line-height: .98; }
  .favorite-places__heading > p { width: 100%; max-width: 42ch; margin: 0; justify-self: start; text-align: left; }
  .favorite-place__art { aspect-ratio: 4 / 3; }
  .favorite-place__art img { filter: saturate(.95) contrast(1.02); }
  .favorite-place__copy { padding: 1.2rem 1.3rem 1.4rem; }
  .favorite-place__copy strong { margin: .35rem 0 .55rem; font-size: 1.7rem; }
  .favorite-place__copy > span { font-size: .95rem; line-height: 1.5; }
  .ibiza-cartoon-heading { gap: .65rem; margin-bottom: 1rem; }
  .ibiza-cartoon-heading h2 { font-size: clamp(2.1rem, 9vw, 3rem); }
  .ibiza-cartoon-map > img { min-height: 0; aspect-ratio: 4 / 3; object-fit: cover; }
  .cartoon-place-card small,
  .cartoon-place-card p { font-size: .85rem; line-height: 1.5; }
  .nightlife-editorial { min-height: min(600px, 78svh); }
  .nightlife-editorial figcaption > p:last-child { font-size: .96rem; line-height: 1.55; }

  /* Accommodation: let both the photo and the practical text breathe. */
  .stay-hero { min-height: min(570px, 74svh); background-image: linear-gradient(180deg, rgba(250,248,242,.96) 0%, rgba(250,248,242,.82) 42%, rgba(250,248,242,.12) 75%), url("../img/stay-casa-payesa-background-v1.de06aaad9bc0.webp"); }
  .stay-hero h1 { font-size: clamp(2.5rem, 10.8vw, 3.25rem); line-height: .96; }
  .stay-intro { max-width: 37ch; color: #35413e; font-size: 1rem; line-height: 1.55; }
  .stay-suggestion { gap: .6rem; margin-bottom: 1.4rem; padding: 1rem; font-size: .95rem; line-height: 1.55; }
  .stay-card__photo, .stay-card__wash { min-height: 0; aspect-ratio: 4 / 3; }
  .stay-card__photo img { width: 100%; height: 100%; object-fit: cover; }
  .stay-card__body, .stay-card:nth-child(even) .stay-card__body { padding: 1.35rem 1.25rem 1.5rem; }
  .stay-card__address { overflow-wrap: anywhere; white-space: normal; font-size: .88rem; line-height: 1.4; }
  .stay-card__body > p:not(.stay-card__address) { font-size: .96rem; line-height: 1.6; }
  .stay-card__badge { font-size: .77rem; line-height: 1.35; }
  .stay-card__actions .btn { min-height: 46px; }

  /* Travel panels remain normal vertical documents; the tab rail is swipeable. */
  .page-getting-there .arrival-guide__header { min-height: min(660px, calc(100svh - 60px)); }
  .page-getting-there .arrival-tabs { width: calc(100% - 1.5rem); }
  .page-getting-there .arrival-tab { flex-basis: 83%; min-height: 82px; }
  .arrival-tab strong, .journey-origin strong { font-size: 1.03rem; }
  .arrival-tab small, .journey-origin small { font-size: .72rem; line-height: 1.35; }
  .arrival-panel, .journey-origin-panel { min-width: 0; }
  .arrival-route-list article > div,
  .arrival-route-list .arrival-route-list__facts,
  .arrival-route-list small,
  .journey-package > header > p:last-child,
  .journey-package__warning { font-size: .83rem; line-height: 1.5; }
  .arrival-route-list h3, .journey-package h3 { line-height: 1.12; }
  .journey-origin { flex-basis: 83%; }
  .journey-origin-panel__heading h2 { font-size: clamp(1.7rem, 7vw, 2.2rem); line-height: 1.05; }
  .journey-line__stop strong { font-size: .97rem; }
  .journey-line__stop small, .journey-costs dt, .journey-schedule > div { font-size: .81rem; }

  /* Persistent controls must not obscure the content they help navigate. */
  .wedding-music-toggle, .back-to-top, .page-scroll-down { bottom: max(.65rem, env(safe-area-inset-bottom)); }
  .back-to-top { right: .65rem; }
  .page-scroll-down { bottom: max(.65rem, env(safe-area-inset-bottom)); }
}

@media (max-width: 390px) {
  .guide-section .section__header--wide-title h2 { font-size: 1.68rem; }
  .guide-grid--editorial .guide-card__number { top: calc((100vw - 2rem) * .75 - 22px); }
  .stay-card__code-copy { gap: .5rem; }
  .stay-card__code strong { font-size: .9rem; overflow-wrap: anywhere; }
}

@media (prefers-reduced-motion: reduce) {
  .day-pills--editorial, .arrival-tabs, .journey-origins { scroll-behavior: auto; }
}
