.cp-agenda { width: 100%; }
.cp-agenda-filters { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)) auto; align-items: end; gap: .8rem; margin-bottom: 1.5rem; padding: 1rem; border: 1px solid #dde2e9; border-radius: .5rem; background: #fff; }
.cp-agenda-filters label span { display: block; margin-bottom: .25rem; color: #031427; font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.cp-agenda-filters select, .cp-agenda-filters button { width: 100%; min-height: 44px; border: 1px solid #cfd6df; border-radius: .3rem; background: #fff; padding: .55rem .7rem; }
.cp-agenda-filters button { border-color: #e31b23; background: #e31b23; color: #fff; font-weight: 800; cursor: pointer; }
.cp-agenda-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.cp-agenda-home-carousel { position: relative; padding-inline: 2.35rem; }
.cp-agenda-home-track { display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 3rem) / 4); gap: 1rem; overflow-x: auto; padding: .15rem; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.cp-agenda-home-track::-webkit-scrollbar { display: none; }
.cp-agenda-home-card { min-width: 0; overflow: hidden; border: 1px solid #dde2e9; border-radius: .35rem; background: #fff; scroll-snap-align: start; }
.cp-agenda-home-card__link { display: grid; grid-template-columns: 4rem minmax(0,1fr); gap: .75rem; min-height: 112px; padding: .75rem; color: #1d2430; }
.cp-agenda-home-date { position: relative; display: grid; align-content: center; min-height: 76px; border: 1px solid #e1e5ea; border-radius: .25rem; color: #031427; text-align: center; text-transform: uppercase; line-height: 1; }
.cp-agenda-home-date::before { position: absolute; top: -1px; left: -1px; right: -1px; height: .55rem; border-radius: .25rem .25rem 0 0; background: #e31b23; content: ""; }
.cp-agenda-home-date::after { position: absolute; top: .16rem; left: 50%; width: .42rem; height: .42rem; border-radius: 50%; background: #031427; content: ""; transform: translateX(-50%); }
.cp-agenda-home-date b { margin-top: .5rem; font-size: 1.75rem; }
.cp-agenda-home-date span { margin-top: .2rem; font-size: .72rem; font-weight: 800; }
.cp-agenda-home-card__content { min-width: 0; }
.cp-agenda-home-card__content h3 { display: -webkit-box; overflow: hidden; margin: 0 0 .15rem; color: #031427; font-size: 1rem; line-height: 1.15; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.cp-agenda-home-card__content strong { display: block; overflow: hidden; margin-bottom: .35rem; font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.cp-agenda-home-card__content > span { display: block; overflow: hidden; color: #697386; font-size: .7rem; line-height: 1.45; text-overflow: ellipsis; white-space: nowrap; }
.cp-agenda-home-card__content i { margin-right: .25rem; color: #697386; font-style: normal; }
.cp-agenda-carousel-button { position: absolute; top: 50%; z-index: 2; display: grid; width: 2rem; height: 2.65rem; place-items: center; border: 1px solid #d8dee6; border-radius: .3rem; background: #fff; color: #25405e; font-size: 1.6rem; cursor: pointer; transform: translateY(-50%); }
.cp-agenda-carousel-button--previous { left: 0; }
.cp-agenda-carousel-button--next { right: 0; }
.cp-agenda-carousel-button:disabled { opacity: .35; cursor: default; }
.cp-agenda-card { overflow: hidden; border: 1px solid #dde2e9; border-radius: .45rem; background: #fff; box-shadow: 0 .35rem 1rem rgba(16,31,61,.06); }
.cp-agenda-card__image { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; background: #e8edf3; }
.cp-agenda-card__image img { width: 100%; height: 100%; object-fit: cover; }
.cp-agenda-card__placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg,#e9edf2,#d6dee8); }
.cp-agenda-card__image time { position: absolute; top: .55rem; left: .55rem; display: grid; min-width: 3.2rem; padding: .32rem; border-top: 3px solid #e31b23; background: #fff; color: #031427; text-align: center; text-transform: uppercase; line-height: 1.05; box-shadow: 0 .25rem .8rem rgba(0,0,0,.18); }
.cp-agenda-card__image time b { font-size: 1.35rem; }
.cp-agenda-card__body { padding: .85rem; }
.cp-agenda-card__city { color: #e31b23; font-size: .7rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.cp-agenda-card h3 { margin: .3rem 0; color: #031427; font-size: 1.15rem; line-height: 1.2; }
.cp-agenda-card h3 a { color: inherit; }
.cp-agenda-card__meta { margin: 0; color: #697386; font-size: .78rem; }
.cp-agenda-card__body > p:last-child { margin: .55rem 0 0; font-size: .84rem; line-height: 1.45; }
.cp-agenda-more { display: table; margin: 1rem 0 0 auto; color: #031427; font-size: .78rem; font-weight: 800; text-transform: uppercase; }
.cp-agenda-empty { padding: 1.5rem; border: 1px dashed #cfd6df; background: #fff; color: #697386; text-align: center; }
.cp-agenda-pagination { margin-top: 1.5rem; text-align: center; }
.cp-agenda-pagination .page-numbers { display: inline-block; margin: .15rem; padding: .4rem .7rem; border: 1px solid #d9dfe7; background: #fff; }
.cp-agenda-pagination .current { border-color: #e31b23; background: #e31b23; color: #fff; }
.cp-event-page { padding-block: 1.5rem 4rem; }
.cp-event { overflow: hidden; border: 1px solid #dde2e9; border-radius: .45rem; background: #fff; }
.cp-event__header, .cp-event__content { padding: 1.5rem; }
.cp-event__header h1 { margin: .35rem 0; color: #031427; font-size: clamp(2rem,5vw,3.5rem); line-height: 1.05; }
.cp-event__kicker { color: #e31b23; font-weight: 800; text-transform: uppercase; }
.cp-event__details { display: flex; flex-wrap: wrap; gap: .5rem 1.2rem; color: #697386; }
.cp-event__image img { width: 100%; max-height: 620px; object-fit: cover; }
@media (max-width: 900px) { .cp-agenda-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } .cp-agenda-home-track { grid-auto-columns: calc((100% - 1rem) / 2); } }
@media (max-width: 600px) { .cp-agenda-filters, .cp-agenda-grid { grid-template-columns: 1fr; } .cp-agenda-home-track { grid-auto-columns: 100%; } .cp-agenda-home-carousel { padding-inline: 2.1rem; } }
