/* Native three-day carousel. No rules apply above 820px or outside Programação. */
@media (max-width: 820px) {
  #programacao { --schedule-mobile-gutter: clamp(1.25rem, 4vw, 2rem); padding-inline: var(--schedule-mobile-gutter); }
  #programacao .schedule-heading { margin-bottom: 1rem; }
  #programacao .schedule-heading > p:last-child { display: none; }
  #programacao .schedule-tabs { width: max-content; max-width: 100%; gap: .4rem; margin-bottom: .15rem; }
  #programacao .schedule-tab { min-height: 44px; min-width: 4.1rem; padding: .5rem .8rem; border-radius: .8rem; font-size: .84rem; }
  #programacao .schedule-carousel {
    position: relative;
    display: flex;
    gap: clamp(.5rem, 2.4vw, .875rem);
    width: calc(100% + 2 * var(--schedule-mobile-gutter));
    margin-inline: calc(-1 * var(--schedule-mobile-gutter));
    padding: 1rem var(--schedule-rail-pad, 7vw) 2.75rem;
    overflow-x: auto;
    overflow-y: hidden;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--schedule-rail-pad, 7vw);
    scrollbar-width: none;
    touch-action: pan-x pan-y pinch-zoom;
    overflow-anchor: none;
  }
  #programacao .schedule-carousel::-webkit-scrollbar { display: none; }
  #programacao .schedule-carousel:focus-visible { outline: 3px solid rgba(82,197,80,.35); outline-offset: -4px; border-radius: 1rem; }
  #programacao .schedule-carousel > .schedule-panel {
    flex: 0 0 var(--schedule-card-width, 86vw);
    width: var(--schedule-card-width, 86vw);
    min-width: 0;
    height: clamp(30rem, 70svh, 36rem);
    margin: 0;
    padding: 1.2rem 1rem .8rem;
    border-radius: 1.7rem;
    scroll-snap-align: center;
    scroll-snap-stop: always;
    touch-action: pan-x pan-y pinch-zoom;
    box-shadow: 0 16px 38px rgba(19,50,120,.085), inset 0 1px 0 #fff;
  }
  #programacao .schedule-carousel .schedule-panel::before { transition: opacity .25s ease; }
  #programacao .schedule-carousel .schedule-panel:not(.is-carousel-day)::before { opacity: .6; }
  #programacao .schedule-carousel .schedule-day-header { grid-template-columns: 1fr; gap: .85rem; padding: 0 .1rem 1rem; transition: opacity .25s ease; }
  #programacao .schedule-carousel .schedule-panel:not(.is-carousel-day) .schedule-day-header { opacity: .8; }
  #programacao .schedule-carousel .schedule-date { gap: .75rem; }
  #programacao .schedule-carousel .schedule-day-number { font-size: clamp(2.6rem, 9vw, 3.2rem); }
  #programacao .schedule-carousel .schedule-day-divider { width: 100%; height: 1px; }
  #programacao .schedule-carousel .schedule-theme p { font-size: .86rem; }
  #programacao .schedule-carousel .schedule-timeline { touch-action: pan-x pan-y pinch-zoom; }
  #programacao .schedule-carousel .schedule-item { grid-template-columns: 3rem 1rem minmax(0, 1fr); }
  #programacao .schedule-carousel .schedule-item::before { left: 3.5rem; }
  #programacao .schedule-carousel .schedule-time { font-size: .8rem; }
  #programacao .schedule-carousel .schedule-marker { width: .65rem; height: .65rem; }
  #programacao .schedule-carousel .schedule-activity { padding-left: .45rem; overflow-wrap: anywhere; }
  #programacao .schedule-carousel .schedule-activity strong { font-size: .88rem; }
  #programacao .schedule-carousel .schedule-activity p { font-size: .8rem; }
  #programacao .schedule-carousel .schedule-soon { min-height: 12em; padding: 1.15em; font-size: clamp(.875rem, 3.65vw, 1rem); }
}
