/* =========================================================
   CALENDARIO DE EVENTOS - solo en la página de Eventos
========================================================= */

.aa-cal-wrap,
.aa-cal-wrap * {
    box-sizing: border-box;
}

.aa-cal-wrap {
    margin-top: 10px;
    font-family: "Avenir Next", "Poppins", Helvetica, Arial, sans-serif;
}

.aa-cal-section-title {
    text-align: center;
    font-size: 28px;
    font-weight: 800;
    color: #1c1c1c;
    margin-bottom: 24px;
}

.aa-cal {
    background: transparent;
    border-radius: 0;
    box-shadow: none;
    padding: 24px;
    max-width: 1100px;
    margin: 0 auto 60px;
}

.aa-cal-header {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 20px;
    flex-wrap: wrap;
}

.aa-cal-nav {
    width: 38px;
    height: 38px;
    border-radius: 8px;
    border: 1px solid #e2e2e2;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #555;
    text-decoration: none;
    transition: .2s;
    flex-shrink: 0;
}

.aa-cal-nav:hover {
    background: #f4f4f4;
}

.aa-cal-title {
    font-size: 24px;
    font-weight: 800;
    color: var(--aa-primary, #801214);
    text-transform: capitalize;
    margin: 0;
    flex: 1;
}

.aa-cal-today {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 8px;
    border: 1px solid #e2e2e2;
    border-radius: 8px;
    padding: 8px 16px;
    font-size: 13.5px;
    font-weight: 700;
    color: #555;
    text-decoration: none;
    transition: .2s;
}

.aa-cal-today:hover {
    background: #f4f4f4;
}

.aa-cal-grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    gap: 6px;
}

.aa-cal-daynames {
    margin-bottom: 6px;
}

.aa-cal-daynames div {
    text-align: center;
    font-size: 12.5px;
    font-weight: 700;
    color: #999;
    text-transform: uppercase;
    letter-spacing: .5px;
    padding-bottom: 6px;
}

.aa-cal-day {
    height: 100px;
    overflow: hidden;
    border-radius: 10px;
    background: #fafafa;
    padding: 8px;
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.aa-cal-daynum {
    font-size: 13px;
    font-weight: 700;
    color: #444;
    flex-shrink: 0;
}

.aa-cal-more {
    font-size: 9.5px;
    color: #888;
    font-weight: 700;
    padding-left: 2px;
    flex-shrink: 0;
}

.aa-cal-day-muted {
    opacity: .4;
}

.aa-cal-day-today {
    background: #fdeceb;
    border: 1.5px solid var(--aa-primary, #801214);
}

.aa-cal-day-today .aa-cal-daynum {
    color: var(--aa-primary, #801214);
}

.aa-cal-chip {
    display: block;
    width: 100%;
    min-width: 0;
    flex-shrink: 0;
    font-size: 10.5px;
    font-weight: 700;
    padding: 3px 6px;
    border-radius: 5px;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    cursor: default;
}

.aa-cal-color-0 { background: #fff3cd; color: #7a5b00; }
.aa-cal-color-1 { background: #dceefb; color: #0a5d8a; }
.aa-cal-color-2 { background: #e9e3fb; color: #5b3aa0; }
.aa-cal-color-3 { background: #e1f5e6; color: #1f7a3d; }
.aa-cal-color-4 { background: #fbe1e6; color: #a3194a; }

/* =========================
   MOBILE
========================= */
@media (max-width: 700px) {
    .aa-cal {
        padding: 14px;
        border-radius: 0;
    }
    .aa-cal-day {
        height: 66px;
        padding: 4px;
        border-radius: 7px;
    }
    .aa-cal-daynum {
        font-size: 10.5px;
    }
    .aa-cal-chip {
        font-size: 8.5px;
        padding: 2px 3px;
        border-radius: 4px;
    }
    .aa-cal-daynames div {
        font-size: 9px;
    }
    .aa-cal-title {
        font-size: 18px;
    }
    .aa-cal-today span {
        display: none;
    }
}
/* Agenda de la congregación */
.aa-cal-intro { padding: 8px 0 24px; text-align: center; }
.aa-cal-intro > span { color: #801214; font-size: .7rem; font-weight: 800; letter-spacing: .18em; }
.aa-cal-intro h2 { margin: 10px 0; font-size: clamp(1.4rem, 3vw, 2rem); font-weight: 800; color: #292323; }
.aa-cal-intro p { color: #756969; margin: 0; }
.aa-cal-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 20px; }
.aa-cal-legend span, .aa-agenda-label { padding: 5px 10px; border-radius: 20px; font-size: .72rem; font-weight: 700; }
.aa-agenda-culto { --agenda-accent: #801214; --agenda-bg: #faeeee; }
.aa-agenda-oracion { --agenda-accent: #246756; --agenda-bg: #eaf5ef; }
.aa-agenda-santa_cena { --agenda-accent: #835f16; --agenda-bg: #fcf3db; }
.aa-agenda-especial, .aa-agenda-estudio, .aa-agenda-jovenes, .aa-agenda-infantil, .aa-agenda-bautismo, .aa-agenda-reunion, .aa-agenda-otro { --agenda-accent: #554680; --agenda-bg: #f0edf8; }
.aa-cal-legend span, .aa-cal-chip { background: var(--agenda-bg); color: var(--agenda-accent); }
.aa-cal a.aa-cal-chip { cursor: pointer; text-decoration: none; border-left: 3px solid var(--agenda-accent); }
.aa-cal a.aa-cal-chip:hover { text-decoration: underline; }
.aa-cal a:focus-visible, .aa-agenda-day summary:focus-visible { outline: 2px solid #801214; outline-offset: 3px; }
.aa-agenda-list { margin-top: 32px; }
.aa-agenda-list > h3 { font-size: 1.35rem; font-weight: 800; }
.aa-agenda-days { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: 20px; margin-top: 22px; }
.aa-agenda-day { min-width: 0; border: 1px solid #e8dfd9; border-radius: 14px; margin: 0; background: #fff; overflow: hidden; scroll-margin-top: 110px; }
.aa-agenda-day:target { border-color: #801214; box-shadow: 0 0 0 2px #80121418; }
.aa-agenda-day summary { display: flex; align-items: center; gap: 12px; padding: 14px 18px; cursor: pointer; background: #faf7f4; font-weight: 700; text-transform: capitalize; }
.aa-agenda-day summary::after { content: '+'; margin-left: auto; color: #801214; font-size: 1.2rem; width: 28px; text-align: center; flex-shrink: 0; }
.aa-agenda-day[open] summary::after { content: '−'; }
.aa-agenda-day summary::-webkit-details-marker { display: none; }
.aa-agenda-day summary > span:nth-child(2) { min-width: 0; font-size: 1rem; }
.aa-agenda-day summary small { display: block; color: #756969; font-weight: 400; font-size: .75rem; margin-top: 3px; }
.aa-agenda-date { flex: 0 0 52px; text-align: center; border-radius: 10px; padding: 7px; background: #801214; color: #fff; line-height: 1.1; }
.aa-agenda-date b { font-size: 1.5rem; }
.aa-agenda-day .aa-agenda-date small { color: #fff; text-transform: uppercase; font-size: .65rem; }
.aa-agenda-entry { margin: 18px; border-left: 3px solid var(--agenda-accent); padding: 4px 0 4px 18px; overflow-wrap: anywhere; }
.aa-agenda-label { display: inline-block; color: var(--agenda-accent); background: var(--agenda-bg); }
.aa-agenda-entry + .aa-agenda-entry { border-top: 1px solid #eee6e1; padding-top: 18px; }
.aa-agenda-entry h4 { font-size: 1.05rem; font-weight: 750; line-height: 1.5; color: #292323; }
.aa-agenda-entry p { color: #625959; font-size: .88rem; }
@media (max-width: 700px) {
    .aa-cal .aa-cal-day { height: auto; min-height: 92px; }
    .aa-agenda-days { grid-template-columns: minmax(0, 1fr); gap: 14px; }
    .aa-agenda-day summary { padding: 14px 12px; gap: 10px; font-size: .85rem; }
    .aa-agenda-entry { margin: 16px 12px; padding-left: 12px; }
    .aa-cal-legend { gap: 5px; }
    .aa-cal-legend span { font-size: .65rem; }
}
/* Agenda: lectura y navegación */
.aa-agenda-month { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:10px; margin:18px 0; }
.aa-agenda-month label { font-size:.85rem; color:#625959; }
.aa-agenda-month input, .aa-agenda-month button { border:1px solid #d8cfca; border-radius:8px; padding:9px 12px; background:#fff; color:#342a2a; }
.aa-agenda-month button { background:#801214; color:#fff; border-color:#801214; }
.aa-agenda-filters { display:flex; flex-wrap:wrap; gap:8px; justify-content:center; margin:22px 0; }
.aa-agenda-filters button { border:1px solid #ded6d0; border-radius:24px; padding:10px 18px; background:#fff; color:#514747; font:inherit; font-size:.85rem; min-height:44px; }
.aa-agenda-filters button[aria-pressed="true"] { background:#801214; border-color:#801214; color:#fff; }
.aa-agenda-grid-toggle { border:1px solid #e8dfd9; border-radius:12px; padding:16px; margin-bottom:24px; }
.aa-agenda-grid-toggle > summary { cursor:pointer; color:#801214; font-size:.9rem; font-weight:600; }
.aa-agenda-grid-toggle[open] > summary { margin-bottom:20px; }
.aa-agenda-entry .aa-agenda-time { font-weight:700; color:#342a2a; font-size:1rem; }
.aa-cal [hidden] { display:none !important; }
.aa-agenda-filters button:focus-visible, .aa-agenda-month :focus-visible { outline:3px solid #b98438; outline-offset:3px; }
@media (max-width:700px) {
 .aa-agenda-filters { display:grid; grid-template-columns:1fr 1fr; }
 .aa-agenda-filters button { padding:10px; }
 .aa-agenda-entry h4 { font-size:1.05rem; }
 .aa-agenda-entry p { font-size:.92rem; line-height:1.6; }
}

/* Tarjetas de agenda con contenido visible. */
.aa-agenda-days { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; align-items:start; }
.aa-agenda-card-header { display:flex; align-items:center; gap:12px; padding:18px; background:#faf7f4; border-bottom:1px solid #e8dfd9; }
.aa-agenda-card-header > span:last-child { font-size:.92rem; font-weight:700; text-transform:capitalize; }
.aa-agenda-card-header small { display:block; font-size:.75rem; font-weight:400; color:#756969; margin-top:4px; }
.aa-agenda-card-header .aa-agenda-date small { color:white; }
.aa-agenda-day { box-shadow:0 4px 18px #342a2a06; }
@media(max-width:1100px) { .aa-agenda-days { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:700px) { .aa-agenda-days { grid-template-columns:minmax(0,1fr); } }

/* Fecha seleccionada desde el calendario. */
.aa-cal a.aa-cal-selected { background:#801214; color:white; border-color:#801214; }

/* Cada columna crece sin desplazar las tarjetas de las otras columnas. */
.aa-agenda-days[data-columnas] { display:flex; align-items:flex-start; gap:20px; }
.aa-agenda-column { flex:1; min-width:0; display:flex; flex-direction:column; gap:20px; }
.aa-agenda-column > .aa-agenda-day { width:100%; }

/* Actividades legibles, con títulos completos y horario a la vista. */
.aa-cal { max-width:1280px; padding:16px 0; }
.aa-cal-grid { grid-template-columns:repeat(7,minmax(0,1fr)); gap:8px; margin-bottom:8px; }
.aa-cal .aa-cal-day { height:auto; min-height:150px; padding:10px; gap:8px; overflow:visible; border:1px solid #e8dfd9; }
.aa-cal .aa-cal-day-today { border:2px solid #801214; }
.aa-cal-daynum { font-size:20px; }
.aa-cal .aa-cal-chip { font-size:13px; line-height:1.5; padding:8px; white-space:normal; overflow:visible; text-overflow:clip; overflow-wrap:anywhere; }
.aa-cal-chip-time { display:block; font-size:12px; font-weight:500; margin-bottom:3px; }
.aa-cal-weekday { display:none; }
.aa-cal-daynames div { font-size:13px; color:#625959; }
@media(max-width:700px) {
    .aa-agenda-grid-toggle { padding:12px; }
    .aa-cal-grid { grid-template-columns:minmax(0,1fr); gap:10px; margin-bottom:10px; }
    .aa-cal-daynames { display:none; }
    .aa-cal .aa-cal-day { min-height:0; padding:14px; gap:10px; }
    .aa-cal-day-muted { display:none; }
    .aa-cal-daynum { display:flex; align-items:baseline; gap:10px; font-size:24px; }
    .aa-cal-weekday { display:inline; font-size:14px; font-weight:600; text-transform:capitalize; }
    .aa-cal .aa-cal-chip { font-size:16px; padding:12px; }
    .aa-cal-chip-time { font-size:14px; }
}

/* Los días abiertos se distinguen también al desplegarlos manualmente. */
.aa-agenda-day[open] { background:#fff4ed; border-color:#b86736; box-shadow:0 4px 18px #80121412; }
.aa-agenda-day[open] > summary { background:#fbe2d2; color:#651d16; border-bottom-color:#ecc3aa; }
.aa-agenda-list { margin-top:16px; }
.aa-agenda-days.aa-agenda-independent { display:grid; grid-auto-rows:1px; row-gap:0; column-gap:20px; align-items:start; }
.aa-agenda-independent > .aa-agenda-day { align-self:start; }

/* Los eventos vinculados tienen un bloque propio dentro del día. */
.aa-agenda-publicacion { margin-top:16px; padding:14px; background:#fff; border:1px solid #ded8d2; border-left:3px solid #801214; border-radius:6px; }
.aa-agenda-publicacion-label { color:#801214; font-size:.7rem; font-weight:700; letter-spacing:.3px; }
.aa-agenda-publicacion h5 { margin:6px 0 10px; font-size:.95rem; font-weight:700; line-height:1.4; color:#292323; overflow-wrap:anywhere; }
.aa-agenda-publicacion-meta { display:flex; flex-wrap:wrap; gap:6px 14px; margin-bottom:10px; }
.aa-agenda-publicacion-meta i { color:#801214; margin-right:4px; }
.aa-agenda-publicacion-descripcion { white-space:pre-line; margin-bottom:12px; }
.aa-agenda-publicacion-link { display:inline-block; font-size:.8rem; font-weight:600; color:#801214; text-decoration:none; }
.aa-agenda-publicacion-link:hover { text-decoration:underline; }
.aa-agenda-publicacion-link:focus-visible { outline:2px solid #801214; outline-offset:3px; }
.aa-agenda-complemento { margin-top:8px; }
.aa-agenda-complemento .aa-agenda-publicacion-meta { margin-bottom:6px; }
