:root{--bg:#eef2f7;--bg-card:#fffffff0;--bg-card-solid:#fff;--text:#13243a;--text-soft:#4a5a6e;--accent:#1d4f91;--accent-soft:#3a6fb0;--accent-dark:#133862;--gold:#d9a521;--gold-soft:#f1c33b;--line:#d3dce8;--error:#b54b3a;--success:#2f7d4f;--warn:#b88a2e}*{box-sizing:border-box;margin:0;padding:0}body,html{min-height:100vh}body{-webkit-font-smoothing:antialiased;background:radial-gradient(1200px 600px at 80% -10%,#3a6fb029,#0000 60%),radial-gradient(900px 500px at -10% 10%,#1d4f911a,#0000 55%),linear-gradient(160deg,#f2f6fb,#e7eef6 45%,#dde7f1);background-attachment:fixed;background-color:#eef2f7;background-color:var(--bg);font-family:Inter,system-ui,-apple-system,sans-serif;line-height:1.55}body,h1,h2,h3,h4{color:#13243a;color:var(--text)}h1,h2,h3,h4{font-family:Cormorant Garamond,Georgia,serif;font-weight:500;letter-spacing:.01em}h1{font-size:2.6rem}h2{font-size:1.9rem;margin-bottom:.6rem}h3{font-size:1.35rem}h4{font-size:1.1rem}p{color:#13243a;color:var(--text)}a{color:#1d4f91;color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}button{background:#1d4f91;background:var(--accent);border:none;border-radius:4px;color:#fff;cursor:pointer;font-family:inherit;font-size:.95rem;padding:.7rem 1.4rem;transition:background .15s}button:hover:not(:disabled){background:#133862;background:var(--accent-dark)}button:disabled{cursor:not-allowed;opacity:.5}button.secondary{background:#fff9;border:1px solid #1d4f91;border:1px solid var(--accent);color:#1d4f91;color:var(--accent)}button.secondary:hover:not(:disabled){background:#1d4f91;background:var(--accent);color:#fff}button.danger{background:#b54b3a;background:var(--error)}button.danger:hover:not(:disabled){background:#8a3a2c}button.hero{font-size:1rem;font-weight:500;letter-spacing:.04em;padding:.9rem 2rem}button.small{font-size:.85rem;padding:.4rem .8rem}input,select,textarea{background:#fff;border:1px solid #d3dce8;border:1px solid var(--line);border-radius:4px;color:#13243a;color:var(--text);font-family:inherit;font-size:.95rem;padding:.65rem .85rem;width:100%}input:focus,select:focus,textarea:focus{border-color:#1d4f91;border-color:var(--accent);outline:2px solid #3a6fb0;outline:2px solid var(--accent-soft)}label{color:#4a5a6e;color:var(--text-soft);display:block;font-size:.88rem;font-weight:500;margin-bottom:.3rem}.field{margin-bottom:1rem}.container{margin:0 auto;max-width:1100px;padding:2rem 1.5rem 4rem}.card{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#fffffff0;background:var(--bg-card);border:1px solid #ffffff80;border-radius:6px;box-shadow:0 4px 20px #14284614;padding:1.8rem}.error{background:#fdecea;color:#b54b3a;color:var(--error)}.error,.success{border-radius:4px;font-size:.9rem;margin-bottom:1rem;padding:.7rem 1rem}.success{background:#e8f3e9;color:#2f7d4f;color:var(--success)}.muted{color:#4a5a6e;color:var(--text-soft);font-size:.88rem}.center{text-align:center}.row{display:flex;flex-wrap:wrap;gap:1rem}.row>*{flex:1 1;min-width:200px}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}.mb-2{margin-bottom:1rem}.mb-3{margin-bottom:1.5rem}.nav{background:#1d4f91;background:var(--accent);border-bottom:3px solid #d9a521;border-bottom:3px solid var(--gold);overflow:hidden;position:relative;position:-webkit-sticky;position:sticky;top:0;z-index:50}.nav-silhouette{background-position:bottom;background-repeat:no-repeat;background-size:contain;bottom:0;height:58px;left:0;margin:0 auto;opacity:.3;pointer-events:none;position:absolute;right:0;width:230px;z-index:0}@media (max-width:860px){.nav-silhouette{height:42px;opacity:.22;width:150px}}.nav-inner{flex-wrap:wrap;gap:1rem;justify-content:space-between;margin:0 auto;max-width:1180px;padding:.7rem 1.5rem;position:relative;z-index:1}.nav-brand,.nav-inner{align-items:center;display:flex}.nav-brand{color:#fff;font-family:Cormorant Garamond,serif;gap:.8rem;line-height:1.05}.nav-brand:hover{text-decoration:none}.nav-brand .crest{align-items:center;display:flex;flex-shrink:0;justify-content:center}.nav-brand .crest img{display:block;height:48px;width:auto}.nav-brand .brand-text strong{color:#fff;display:block;font-size:1.5rem;font-weight:600;letter-spacing:.01em}.nav-links{align-items:center;display:flex;flex-wrap:wrap;gap:1.3rem}.nav-links a{border-bottom:2px solid #0000;color:#ffffffd9;font-size:.92rem;font-weight:500;padding-bottom:3px}.nav-links a:hover{color:#fff;text-decoration:none}.nav-links a.active{border-bottom-color:#f1c33b;border-bottom-color:var(--gold-soft);color:#f1c33b;color:var(--gold-soft)}.nav-toggle{background:#ffffff1f;border:1px solid #ffffff4d;color:#fff;display:none;padding:.4rem .7rem}@media (max-width:860px){.nav-toggle{display:block}.nav-links{align-items:flex-start;display:none;flex-direction:column;gap:.4rem;padding-top:.6rem;width:100%}.nav-links.open{display:flex}.nav-links a{padding:.4rem 0;width:100%}}.hero{background:linear-gradient(135deg,#1d4f91f2,#133862f2);border-radius:10px;box-shadow:0 8px 30px #1428462e;color:#fdfcf6;margin-bottom:2.5rem;padding:3.5rem 2rem;text-align:center}.hero h1{color:#fdfcf6;margin-bottom:.6rem}.hero p{color:#fdfcf6d9;font-size:1.05rem;margin:0 auto;max-width:640px}.hero .hero-eyebrow{color:#fdfcf6b3;font-family:Inter,sans-serif;font-size:.72rem;letter-spacing:.18em;margin-bottom:.8rem;text-transform:uppercase}.section-head{align-items:baseline;border-bottom:1px solid #d3dce8;border-bottom:1px solid var(--line);display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;margin:2.5rem 0 1.3rem;padding-bottom:.5rem}.section-head h2{margin:0}.section-head a{font-size:.9rem}.tile-grid{grid-gap:1.2rem;display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}.tile{background:#fffffff0;background:var(--bg-card);border:1px solid #ffffff80;border-radius:8px;box-shadow:0 4px 18px #14284612;color:#13243a;color:var(--text);display:block;padding:1.4rem;transition:transform .15s,box-shadow .15s}.tile:hover{box-shadow:0 10px 26px #14284621;text-decoration:none;transform:translateY(-3px)}.tile h3{margin-bottom:.3rem}.tile p{color:#4a5a6e;color:var(--text-soft);font-size:.9rem}.actu-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(290px,1fr))}.actu-card{background:#fffffff0;background:var(--bg-card);border:1px solid #ffffff80;border-radius:8px;box-shadow:0 4px 20px #14284614;display:flex;flex-direction:column;overflow:hidden;transition:transform .15s,box-shadow .15s}.actu-card:hover{box-shadow:0 10px 28px #14284624;transform:translateY(-3px)}.actu-card-img{background:#e4e3d2;height:180px;object-fit:cover;width:100%}.actu-card-noimg{align-items:center;background:linear-gradient(135deg,#1d4f91e6,#3a6fb0e6);color:#fdfcf6;display:flex;font-family:Cormorant Garamond,serif;font-size:1.4rem;height:180px;justify-content:center;width:100%}.actu-card-body{display:flex;flex:1 1;flex-direction:column;padding:1.2rem}.actu-card-body h3{line-height:1.25;margin-bottom:.4rem}.actu-card-body h3 a{color:#13243a;color:var(--text)}.actu-card-date{font-size:.8rem;margin-bottom:.6rem}.actu-card-chapeau,.actu-card-date{color:#4a5a6e;color:var(--text-soft)}.actu-card-chapeau{flex:1 1;font-size:.92rem;margin-bottom:.9rem}.badge{border-radius:999px;display:inline-block;font-size:.72rem;font-weight:600;letter-spacing:.02em;margin-bottom:.6rem;padding:.18rem .6rem;text-transform:uppercase}.badge-actualite{background:#e8efe0;color:#4a6020}.badge-conseil_municipal{background:#e1ebfa;color:#2a5897}.badge-arrete{background:#fde8d8;color:#9a5a14}.badge-manifestation{background:#f6e4f0;color:#8a3a72}.badge-vie_scolaire{background:#fdf3d8;color:#8a6a14}.badge-information{background:#e1f2ef;color:#1f6e63}.badge-epingle{background:#1d4f91;background:var(--accent);color:#fff;margin-left:.4rem}.badge-publie{background:#e1f2dd;color:#2f7d4f;color:var(--success)}.badge-brouillon{background:#f0eee4;color:#4a5a6e;color:var(--text-soft)}.article-content{color:#13243a;color:var(--text);font-size:1.05rem;line-height:1.75;max-width:760px}.article-content h2,.article-content h3,.article-content h4{color:#1d4f91;color:var(--accent);font-family:Cormorant Garamond,serif;margin-bottom:.5rem;margin-top:1.6rem}.article-content p{margin-bottom:1rem}.article-content ol,.article-content ul{margin:.8rem 0 1.2rem 1.5rem}.article-content li{margin-bottom:.4rem}.article-content a{color:#1d4f91;color:var(--accent);text-decoration:underline}.article-content blockquote{border-left:3px solid #3a6fb0;border-left:3px solid var(--accent-soft);color:#4a5a6e;color:var(--text-soft);font-style:italic;margin:1rem 0;padding-left:1rem}.article-photos{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-top:1.5rem}.article-photos img{border-radius:6px;box-shadow:0 3px 14px #1428461f;width:100%}.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}.align-justify{text-align:justify}.info-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.horaires-table{border-collapse:collapse;width:100%}.horaires-table td{border-bottom:1px solid #d3dce8;border-bottom:1px solid var(--line);font-size:.95rem;padding:.5rem .2rem}.horaires-table td:first-child{color:#4a5a6e;color:var(--text-soft);font-weight:500;width:40%}.map-wrap{border-radius:8px;box-shadow:0 4px 20px #1428461f;overflow:hidden;width:100%}.map-wrap iframe{border:0;display:block;height:340px;width:100%}.tabs{border-bottom:1px solid #d8dac4cc;display:flex;flex-wrap:wrap;gap:0;margin-bottom:1.5rem}.tab{background:#0000;border-bottom:2px solid #0000;border-radius:0;color:#4a5a6e;color:var(--text-soft);padding:.7rem 1.2rem}.tab.active{border-bottom-color:#1d4f91;border-bottom-color:var(--accent);color:#1d4f91;color:var(--accent)}.table-wrap{background:#fffffff0;background:var(--bg-card);border:1px solid #ffffff80;border-radius:6px;box-shadow:0 4px 20px #14284614;overflow-x:auto}table{border-collapse:collapse;width:100%}td,th{border-bottom:1px solid #d3dce8;border-bottom:1px solid var(--line);color:#13243a;color:var(--text);font-size:.92rem;padding:.7rem 1rem;text-align:left}th{background:#faf5ed99;color:#4a5a6e;color:var(--text-soft);font-weight:600}tr:last-child td{border-bottom:none}.modal-backdrop{align-items:center;background:#1428468c;display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:100}.modal{background:#fff;background:var(--bg-card-solid);border-radius:6px;box-shadow:0 10px 40px #0000004d;max-height:92vh;max-width:640px;overflow-y:auto;padding:1.8rem;width:100%}.modal h2{margin-bottom:1rem}.modal-actions{display:flex;gap:.7rem;justify-content:flex-end;margin-top:1.5rem}.footer{background:#133862;background:var(--accent-dark);color:#fdfcf6d9;margin-top:3rem;padding:2.5rem 1.5rem 1.5rem}.footer-inner{grid-gap:2rem;display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));margin:0 auto;max-width:1100px}.footer h4{color:#fdfcf6;font-size:1.15rem;margin-bottom:.7rem}.footer a{color:#fdfcf6d9}.footer a:hover{color:#fff}.footer-bottom{border-top:1px solid #ffffff26;color:#fdfcf699;display:flex;flex-wrap:wrap;font-size:.82rem;gap:.5rem;justify-content:space-between;margin:1.8rem auto 0;max-width:1100px;padding-top:1rem}.rich-toolbar{background:#1d4f9114;border:1px solid #d3dce8;border:1px solid var(--line);border-bottom:none;border-radius:6px 6px 0 0;display:flex;flex-wrap:wrap;gap:.3rem;padding:.5rem}.rich-toolbar button{background:#fff;border:1px solid #d3dce8;border:1px solid var(--line);border-radius:4px;color:#13243a;color:var(--text);font-size:.88rem;min-width:36px;padding:.4rem .7rem}.rich-toolbar button:hover{background:#1d4f91;background:var(--accent);color:#fff}.rich-editor{background:#fff;border:1px solid #d3dce8;border:1px solid var(--line);border-radius:0 0 6px 6px;color:#13243a;color:var(--text);font-size:1rem;line-height:1.6;max-height:480px;min-height:220px;outline:none;overflow-y:auto;padding:1rem 1.2rem}.rich-editor:focus{border-color:#1d4f91;border-color:var(--accent);outline:2px solid #3a6fb0;outline:2px solid var(--accent-soft)}.rich-editor p{margin-bottom:.7rem}.rich-editor h2,.rich-editor h3{font-family:Cormorant Garamond,serif;margin:.8rem 0 .4rem}.rich-editor ol,.rich-editor ul{margin:.5rem 0 .8rem 1.5rem}.back-link{display:inline-block;font-size:.9rem;margin-bottom:1rem}