/* ISFEL Corsi — Outlook-style calendar, course pages, forms.
   Brand: blue #154999, tint #dfe6f2, accent #bd2a4e, ink #252525, line #e8ecf3. */

.isfelCal{max-width:1040px;margin:2rem auto;background:#fff;border:1px solid #e8ecf3;border-radius:10px;box-shadow:0 6px 24px rgba(21,73,153,.08);overflow:hidden;font-family:inherit}

/* Top bar */
.isfelCal__bar{display:flex;align-items:center;gap:1rem;padding:.9rem 1.1rem;border-bottom:1px solid #e8ecf3;background:#fff}
.isfelCal__navgrp{display:flex;align-items:center;gap:.4rem}
.isfelCal__ico{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #dfe6f2;border-radius:7px;color:#154999;text-decoration:none;font-size:1.4rem;line-height:1}
.isfelCal__ico:hover,.isfelCal__ico:focus{background:#154999;color:#fff;border-color:#154999}
.isfelCal__oggi{display:inline-flex;align-items:center;height:34px;padding:0 .9rem;margin-left:.2rem;border:1px solid #154999;border-radius:7px;color:#154999;text-decoration:none;font-weight:600;font-size:.85rem;text-transform:uppercase;letter-spacing:.4px}
.isfelCal__oggi:hover,.isfelCal__oggi:focus{background:#154999;color:#fff}
.isfelCal__month{margin:0;color:#154999;font-size:1.35rem;font-weight:700;text-transform:capitalize;flex:1 1 auto;text-align:center}
.isfelCal__count{color:#757575;font-size:.85rem;white-space:nowrap}

/* Grid */
.isfelCal__grid{width:100%;border-collapse:collapse;table-layout:fixed}
.isfelCal__grid thead th{padding:.55rem .5rem;font-size:.72rem;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:#8a93a6;background:#f6f8fc;border:1px solid #e8ecf3;text-align:center}
.isfelCal__grid td{border:1px solid #e8ecf3;vertical-align:top;height:112px;padding:5px 6px;position:relative;background:#fff}
.isfelCal__day--we{background:#fbfcfe}
.isfelCal__day--out{background:#f7f8fb}
.isfelCal__day--out .isfelCal__num{color:#c3c9d4}
.isfelCal__num{display:inline-block;min-width:22px;height:22px;line-height:22px;text-align:center;font-size:.78rem;font-weight:600;color:#5a6472;border-radius:50%}
.isfelCal__day--today .isfelCal__num{background:#154999;color:#fff}
.isfelCal__day--today{box-shadow:inset 0 0 0 2px #154999}
.isfelCal__events{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:3px}
.isfelCal__events a{display:block;background:#154999;color:#fff;text-decoration:none;font-size:.72rem;line-height:1.25;padding:3px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .12s ease}
.isfelCal__events a:hover,.isfelCal__events a:focus{background:#bd2a4e}
.isfelCal__time{font-weight:700;opacity:.9}

/* Mobile: swap the grid for an agenda (the archive shows the upcoming list) */
@media(max-width:720px){
 .isfelCal__grid{display:none}
 .isfelCal__bar{flex-wrap:wrap}
 .isfelCal__month{flex-basis:100%;order:-1;text-align:left;font-size:1.15rem}
}

/* Upcoming / past course lists (archive) */
.isfelCorsiArchive{max-width:1040px;margin:2rem auto;padding:0 1rem}
.isfelCorsiArchive h1{color:#252525}
.isfelCorsiArchive__sec{margin:2.2rem 0 1rem}
.isfelCorsiArchive__sec h2{color:#154999;font-size:1.3rem;border-bottom:2px solid #dfe6f2;padding-bottom:.4rem}
.isfelCorsi__cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}
.isfelCorsi__card{border:1px solid #e8ecf3;border-radius:8px;padding:1rem 1.1rem;background:#fff;box-shadow:0 2px 8px rgba(0,0,0,.04);display:flex;flex-direction:column;gap:.4rem}
.isfelCorsi__card--past{opacity:.85}
.isfelCorsi__date{display:inline-flex;align-items:center;gap:.4rem;color:#bd2a4e;font-weight:700;font-size:.82rem;text-transform:uppercase;letter-spacing:.3px}
.isfelCorsi__card h3{margin:0;font-size:1.02rem;line-height:1.3}
.isfelCorsi__card h3 a{color:#154999;text-decoration:none}
.isfelCorsi__card h3 a:hover{text-decoration:underline}
.isfelCorsi__sede{color:#757575;font-size:.85rem}
.isfelCorsiArchive__empty{background:#f6f8fc;border:1px solid #e8ecf3;border-radius:8px;padding:1.4rem;color:#5a6472}
.isfelCorsiArchive__morepast{margin-top:1rem}
.isfelCorsiArchive__morepast summary{cursor:pointer;color:#154999;font-weight:600}
.isfelCorsiArchive__pager{margin:1.5rem 0;text-align:center}
.isfelCorsiArchive__pager .page-numbers{display:inline-block;padding:.4rem .7rem;margin:0 2px;border:1px solid #dfe6f2;border-radius:5px;color:#154999;text-decoration:none}
.isfelCorsiArchive__pager .current{background:#154999;color:#fff;border-color:#154999}

/* Course single */
.isfelCorso{max-width:900px;margin:2rem auto;padding:0 1rem}
.isfelCorso__meta{display:flex;flex-wrap:wrap;gap:.6rem 1.8rem;margin:1.2rem 0;padding:1.1rem 1.2rem;background:#f6f8fc;border:1px solid #e8ecf3;border-radius:8px}
.isfelCorso__meta div{font-size:.98rem;color:#252525}
.isfelCorso__meta strong{color:#154999;display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.4px;margin-bottom:1px}
.isfelCorso__section{margin:1.6rem 0}
.isfelCorso__section h2{color:#154999;font-size:1.2rem}
.isfelCorso__modulo a{display:inline-block;padding:.65rem 1.2rem;background:#154999;color:#fff;text-decoration:none;border-radius:5px;font-weight:600}
.isfelCorso__modulo a:hover{background:#bd2a4e}

/* Forms (replace CF7) */
.isfelForm{max-width:640px}
.isfelForm__row{margin:.85rem 0}
.isfelForm__row label{display:block;font-weight:600;margin-bottom:4px}
.isfelForm__row input,.isfelForm__row textarea{width:100%;padding:.6rem;border:1px solid #c3c9d4;border-radius:5px;font-size:1rem;font-family:inherit}
.isfelForm__row input:focus,.isfelForm__row textarea:focus{outline:2px solid #154999;border-color:#154999}
.isfelForm .req{color:#bd2a4e}
.isfelForm__privacy label{font-weight:400}
.isfelForm__submit{background:#154999;color:#fff;border:2px solid #154999;padding:.75rem 1.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:5px;cursor:pointer}
.isfelForm__submit:hover{background:#fff;color:#154999}
.isfelForm__ok{background:#e7f5e8;border:1px solid #3a9034;color:#2b6b26;padding:.9rem 1.1rem;border-radius:6px}
.isfelForm__err{background:#fbe9ec;border:1px solid #bd2a4e;color:#8c1f3a;padding:.9rem 1.1rem;border-radius:6px}
