/* Targetes de campionats; les modals mantenen els seus estils propis. */
.campionats-section { background: #fff; }
.campionats-section .campionats-section__intro { max-width: 620px; margin: 14px auto 0; color: #627368; font-size: 16px; line-height: 1.6; text-align: center; }
.campionats-section .campionats-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 36px; }
.campionats-section .campionat-card { display: flex; flex-direction: column; gap: 22px; width: 100%; min-width: 0; padding: 26px; border: 1px solid #dfe8e2; border-radius: 16px; background: #fff; color: #2d4937; text-align: left; font: inherit; cursor: pointer; box-shadow: 0 5px 20px rgba(33, 66, 43, .05); transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
.campionats-section .campionat-card:hover { border-color: #a7c6b0; box-shadow: 0 10px 26px rgba(33, 66, 43, .1); transform: translateY(-3px); }
.campionats-section .campionat-card:focus-visible { outline: 3px solid #39764c; outline-offset: 4px; }
.campionats-section .campionat-card__top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.campionats-section .campionat-card__icon { display: inline-flex; align-items: center; justify-content: center; width: 52px; height: 52px; flex: 0 0 52px; background: #e8f1eb; color: #3f7450; border-radius: 14px; font-size: 24px; }
.campionats-section .campionat-card__status { display: inline-block; padding: 5px 11px; border-radius: 20px; font-size: 12px; line-height: 1.5; font-weight: 600; background: #f0f3f1; color: #68786d; }
.campionats-section .campionat-card__status--current { background: #e1efe5; color: #2d653e; }
.campionats-section .campionat-card__status--upcoming { background: #f5ecd5; color: #796132; }
.campionats-section .campionat-card__title { display: block; font-size: 23px; line-height: 1.35; font-weight: 600; overflow-wrap: anywhere; }
.campionats-section .campionat-card__dates { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 17px 0; border-top: 1px solid #edf1ee; border-bottom: 1px solid #edf1ee; margin-top: auto; }
.campionats-section .campionat-card__date { display: flex; flex-direction: column; gap: 5px; font-size: 16px; font-variant-numeric: tabular-nums; }
.campionats-section .campionat-card__label { color: #78877d; font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .05em; }
.campionats-section .campionat-card__link { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: #326a43; font-size: 15px; font-weight: 600; }
.campionats-section .campionat-card__link i { font-size: 13px; }
.campionats-section .campionats-section__empty { margin: 36px auto 0; max-width: 620px; padding: 30px; border: 1px dashed #cadbce; border-radius: 16px; background: #f7faf8; text-align: center; }
.campionats-section .campionats-section__empty i { font-size: 32px; color: #789982; margin-bottom: 14px; }
.campionats-section .campionats-section__empty p { font-size: 16px; color: #627368; line-height: 1.6; }
@media (max-width: 900px) { .campionats-section .campionats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .campionats-section .campionats-grid { grid-template-columns: minmax(0, 1fr); gap: 16px; margin-top: 26px; } .campionats-section .campionat-card { padding: 22px; } }
@media (prefers-reduced-motion: reduce) { .campionats-section .campionat-card { transition: none; } .campionats-section .campionat-card:hover { transform: none; } }
