.etu-wrap{width:min(100% - 2.5rem,76rem);margin-inline:auto}
.etu-prose{max-width:46rem}
.etu-prose h2,.etu-wrap h2{margin-top:2.2rem}
.etu-lead{font-size:1.1rem;font-weight:600;color:var(--nmm-ink);max-width:46rem;margin:.6rem 0 0}
.etu-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:.8rem;margin:1.4rem 0}
.etu-kpi{background:var(--nmm-accent-soft);border-radius:.8rem;padding:.9rem 1.1rem}
.etu-kpi strong{display:block;font-size:1.7rem;line-height:1.1;color:var(--nmm-accent-d)}
.etu-kpi span{font-size:.9rem;color:var(--nmm-ink-2)}
.etu-scroll{overflow-x:auto;margin:1rem 0;border:1px solid var(--nmm-line);border-radius:.7rem}
.etu-table{border-collapse:collapse;width:100%;min-width:34rem;font-size:.95rem}
.etu-table caption{caption-side:top;text-align:left;font-weight:700;padding:.7rem .9rem;color:var(--nmm-ink)}
.etu-table th,.etu-table td{padding:.55rem .8rem;text-align:left;vertical-align:top;border-bottom:1px solid var(--nmm-line)}
.etu-table thead th{background:var(--nmm-s1);color:var(--nmm-ink);font-weight:700;white-space:nowrap}
.etu-table tbody tr:nth-child(even){background:var(--nmm-s0)}
.etu-table tbody tr:last-child td{border-bottom:0}
.etu-table th[data-sort]{cursor:pointer}
.etu-table th[data-sort]::after{content:" \2195";color:var(--nmm-ink-2);font-size:.8em}
.etu-table th[aria-sort="ascending"]::after{content:" \2191"}
.etu-table th[aria-sort="descending"]::after{content:" \2193"}
.etu-map{height:26rem;border-radius:.8rem;border:1px solid var(--nmm-line);margin:1rem 0;background:var(--nmm-s1)}
.etu-frame{border:1px solid var(--nmm-line);border-radius:.8rem;width:100%;height:22.5rem;margin:.6rem 0}
.etu-filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}
.etu-chip{font:inherit;font-weight:600;font-size:.9rem;padding:.4rem .9rem;border-radius:2rem;border:1px solid var(--nmm-field-line);background:var(--nmm-s0);color:var(--nmm-ink);cursor:pointer}
.etu-chip[aria-pressed="true"]{background:var(--nmm-accent);border-color:var(--nmm-accent);color:var(--nmm-on-accent)}
.etu-sources{font-size:.85rem;color:var(--nmm-ink-2);margin-top:1.6rem}
.etu-sources a{color:inherit}
.etu-list{columns:2;column-gap:2rem;padding-left:1.2rem;margin:.8rem 0}
.etu-list li{break-inside:avoid;margin-bottom:.3rem}
.etu-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:.9rem;margin:1rem 0;padding:0;list-style:none}
.etu-cards li{background:var(--nmm-s0);border:1px solid var(--nmm-line);border-radius:.8rem;padding:.9rem 1rem}
.etu-cards a{font-weight:700;text-decoration:none;color:var(--nmm-accent-d)}
.etu-cards p{margin:.3rem 0 0;font-size:.9rem;color:var(--nmm-ink-2)}
.etu-dl{background:var(--nmm-s1);border-radius:.8rem;padding:1rem 1.2rem;margin:1.2rem 0}
.etu-btn{display:inline-block;background:var(--nmm-accent);color:var(--nmm-on-accent);font:inherit;font-weight:700;padding:.55rem 1.1rem;border-radius:.55rem;text-decoration:none;border:0;cursor:pointer}
.etu-btn:hover{background:var(--nmm-accent-d);color:var(--nmm-on-accent)}
.etu-btn--ghost{background:var(--nmm-accent-soft);color:var(--nmm-accent-d)}
.etu-btn--ghost:hover{background:var(--nmm-s2);color:var(--nmm-accent-d)}
.etu-pin{width:1.1rem;height:1.1rem;border-radius:50%;border:2px solid var(--nmm-s0);box-shadow:0 0 0 1px var(--nmm-ink-2)}
.etu-pin--crous{background:var(--nmm-accent)}
.etu-pin--marque{background:var(--snm-vegetal)}
.etu-badge{display:inline-block;font-size:.78rem;font-weight:700;padding:.1rem .5rem;border-radius:1rem;background:var(--nmm-accent-soft);color:var(--nmm-accent-d)}
.etu-badge--marque{background:var(--snm-vegetal-soft);color:var(--snm-vegetal)}
.etu-acces{margin:2.4rem 0}
.cal-controls{display:flex;flex-wrap:wrap;gap:.6rem;margin:1rem 0}
.cal-etab{border:1px solid var(--nmm-line);border-radius:.8rem;padding:1rem 1.2rem;margin:1rem 0;background:var(--nmm-s0)}
.cal-etab h3{margin:.1rem 0 .4rem}
.cal-legende{display:flex;flex-wrap:wrap;gap:1rem;font-size:.85rem;margin:.4rem 0}
.cal-legende b{display:inline-block;width:.9rem;height:.9rem;border-radius:.2rem;vertical-align:-.1rem;margin-right:.35rem}
.meteo-box{border:1px solid var(--nmm-line);border-radius:.8rem;padding:1rem 1.2rem;background:var(--nmm-s0);margin:1rem 0}
.meteo-jours{display:grid;grid-template-columns:repeat(auto-fit,minmax(9rem,1fr));gap:.6rem;margin-top:.8rem}
.meteo-jour{border:1px solid var(--nmm-line);border-radius:.6rem;padding:.5rem .7rem;font-size:.9rem}
.meteo-jour strong{display:block}
.meteo-jour.is-best{border-color:var(--nmm-accent);background:var(--nmm-accent-soft)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:48rem){.etu-list{columns:1}.etu-map{height:20rem}}
.cal-frise{position:relative;height:5.2rem;margin:.8rem 0 .3rem;background:var(--nmm-s1);border-radius:.5rem;overflow:hidden}
.cal-frise i{position:absolute;height:1.4rem;border-radius:.25rem;opacity:.92}
.cal-frise i.l1{top:.3rem}
.cal-frise i.l2{top:1.9rem}
.cal-frise i.l3{top:3.5rem}
.cal-frise i.cal-vac{background:var(--nmm-accent)}
.cal-frise i.cal-exam{background:var(--snm-vegetal)}
.cal-frise i.cal-cours{background:var(--nmm-s2);border:1px solid var(--nmm-field-line)}
.cal-frise i.cal-rentree{background:var(--nmm-ink-2)}
.cal-frise i.cal-fin{background:var(--nmm-ink)}
.cal-frise i.cal-libere{background:oklch(.72 .15 60);opacity:1}
.cal-mois{display:flex;font-size:.7rem;color:var(--nmm-ink-2);margin-bottom:.8rem}
.cal-mois span{display:block;overflow:hidden;white-space:nowrap}
.etu-sub{margin:.1rem 0 .4rem;color:var(--nmm-ink-2);font-size:.92rem}
.cal-etab[hidden]{display:none}
