.cal-public { margin:30px 0 60px; }

.cal-public .cal-nav { display:flex; align-items:center; justify-content:center; gap:20px; margin-bottom:24px; flex-wrap:wrap; }
.cal-public .cal-nav a { color:#1e3a8a; text-decoration:none; font-weight:600; padding:8px 14px; border-radius:8px; background:#f4f0e6; transition:background .15s; }
.cal-public .cal-nav a:hover { background:#e8dec1; }
.cal-public .cal-nav .cur { font-size:1.4rem; font-weight:700; color:#1e3a8a; padding:0 12px; }

.cal-public .cal-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:6px; }
.cal-public .cal-grid .head { background:#1e3a8a; color:#fff; text-align:center; padding:8px 0; font-weight:600; font-size:.85rem; letter-spacing:.5px; border-radius:4px; }
.cal-public .cal-grid .cell { background:#fafafa; border-radius:6px; padding:8px; min-height:130px; }
.cal-public .cal-grid .cell.outside { background:transparent; }
.cal-public .cal-grid .cell .num { font-weight:700; color:#aaa; font-size:.85rem; margin-bottom:6px; }
.cal-public .cal-grid .cell.has-turno { background:#fff; border:1px solid #e8dec1; }
.cal-public .cal-grid .cell.has-turno .num { color:#c79a4a; }

.cal-public .turno-card { background:#fbf6ec; border-left:3px solid #c79a4a; padding:6px 8px; margin-top:6px; border-radius:0 4px 4px 0; font-size:.8rem; line-height:1.4; }
.cal-public .turno-card .sede { font-weight:700; color:#1e3a8a; display:block; }
.cal-public .turno-card .ora { color:#555; }
.cal-public .turno-card .tel { display:block; color:#0e7c4a; text-decoration:none; font-size:.78rem; margin-top:2px; }
.cal-public .turno-card .tel:hover { text-decoration:underline; }
.cal-public .turno-card .badge-note { display:inline-block; background:#c79a4a; color:#fff; padding:1px 6px; border-radius:99px; font-size:.7rem; font-weight:600; margin-bottom:3px; }

.cal-public .cal-list { display:none; }
.cal-public .cal-list .day-row { background:#fff; border:1px solid #e8dec1; border-radius:8px; padding:14px 16px; margin-bottom:10px; }
.cal-public .cal-list .day-row h3 { margin:0 0 8px; color:#1e3a8a; font-size:1rem; }
.cal-public .cal-list .day-row .turno-card { margin-top:4px; }

.cal-public .empty { text-align:center; padding:50px 20px; background:#fbf6ec; border-radius:12px; color:#7a5a1a; }
.cal-public .empty p { margin:0; font-size:1.05rem; }

@media (max-width: 720px) {
    .cal-public .cal-grid { display:none; }
    .cal-public .cal-list { display:block; }
    .cal-public .cal-nav .cur { font-size:1.15rem; }
}
