/* =========================================================
   RESET
========================================================= */
*,
*::before,
*::after {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* =========================================================
   GLOBAL
========================================================= */
html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Poppins', sans-serif;
    background: #f4f6f9;
    color: #333;
    line-height: 1.6;
    overflow-x: hidden;
}

img {
    max-width: 100%;
    display: block;
}

a {
    text-decoration: none;
}

.container {
    width: 90%;
    max-width: 1100px;
    margin: auto;
}

/* =========================================================
   HEADER
========================================================= */
.main-header {

    position: fixed;

    top: 0;
    left: 0;

    width: 100%;

    z-index: 9999;

    overflow: hidden;

    background: rgba(255,255,255,0.94);

    backdrop-filter: blur(12px);

    -webkit-backdrop-filter: blur(12px);

    border-bottom:
        1px solid rgba(0,0,0,0.05);
}

.header-container {
    max-width: 1300px;
    margin: auto;
    padding: 14px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 30px;
}

.logo-area {
    display: flex;
    align-items: center;
    gap: 18px;
    flex-shrink: 0;
}

.logo a {
    color: #111;
    font-size: 1.3rem;
    font-weight: 700;
    white-space: nowrap;
}

.logo strong {
    color: #003366;
}

.header-weather {
    display: flex;
    align-items: center;
}

.header-weather a {
    color: #222;
    font-size: 0.95rem;
    font-weight: 600;
    background: #f5f7fa;
    padding: 8px 14px;
    border-radius: 12px;
    transition: 0.2s ease;
}

.header-weather a:hover {
    background: #e9eef5;
}

.nav {
    display: flex;
    align-items: center;
    gap: 22px;
    margin-left: auto;
}

.nav a {
    color: #222;
    font-weight: 500;
    transition: 0.2s ease;
}

.nav a:hover,
.nav a.active {
    color: #0077cc;
}

.nav .btn.small {
    padding: 10px 18px;
}

/* =========================================================
   BURGER
========================================================= */
.burger {
    display: none;
    flex-direction: column;
    gap: 5px;
    cursor: pointer;
}

.burger span {
    width: 26px;
    height: 3px;
    background: #222;
    border-radius: 5px;
    transition: 0.25s ease;
}

.burger.active span:nth-child(1) {
    transform: rotate(45deg) translateY(6px);
}

.burger.active span:nth-child(2) {
    opacity: 0;
}

.burger.active span:nth-child(3) {
    transform: rotate(-45deg) translateY(-6px);
}

/* =========================================================
   HERO
========================================================= */
.hero {
    padding: 45px 0;
    color: white;
    text-align: center;
    background:
        linear-gradient(rgba(0,51,102,0.7), rgba(0,51,102,0.7)),
        url("images/mairie.jpg") center/cover;
}

.hero h1,
.hero h2 {
    font-size: 36px;
    margin-bottom: 10px;
    line-height: 1.2;
}

.hero p {
    font-size: 18px;
    opacity: 0.95;
}

.hero-buttons {
    margin-top: 20px;
    display: flex;
    justify-content: center;
    gap: 15px;
    flex-wrap: wrap;
}

.small-hero {
    padding: 60px 0;
}

.hero-ecole {
    background:
        linear-gradient(rgba(0,51,102,0.7), rgba(0,51,102,0.7)),
        url("images/ecole.jpg") center/cover;
}

.hero-sdf {
    background:
        linear-gradient(rgba(0,51,102,0.7), rgba(0,51,102,0.7)),
        url("images/salle/8.jpg") center/cover;
}

/* =========================================================
   SECTIONS
========================================================= */
.section {
    padding: 25px 0;
}

.section-title {
    font-size: 24px;
    color: #003366;
    margin-bottom: 15px;
}

.section-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* =========================================================
   BUTTONS
========================================================= */
.btn {
    display: inline-block;
    padding: 10px 14px;
    background: #003366;
    color: white !important;
    border: none;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 500;
    text-align: center;
    cursor: pointer;
    transition: all 0.25s ease;
    box-shadow: 0 3px 8px rgba(0,0,0,0.15);
}

.btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 6px 14px rgba(0,0,0,0.2);
    opacity: 0.92;
}

.btn.secondary {
    background: #6c757d;
}

.btn.messenger {
    background: linear-gradient(135deg, #0084ff, #00c6ff);
}

.btn.full {
    display: block;
    width: 100%;
    margin-top: 15px;
}

/* =========================================================
   CARDS
========================================================= */
.cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 15px;
}

.card {
    background: white;
    padding: 15px;
    border-radius: 12px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    transition: 0.25s ease;
}

.card:hover {
    transform: translateY(-5px);
}

.card h3 {
    color: #003366;
    font-size: 18px;
    margin-bottom: 10px;
}

.card p {
    margin: 0;
}

.card .btn {
    margin-top: auto;
}

.card-img {
    width: 100%;
    height: 220px;
    object-fit: cover;
    margin-top: 10px;
    border-radius: 10px;
}

.card-content {
    padding: 20px;
}

/* =========================================================
   INFO BOX
========================================================= */
.info-box {
    background: white;
    padding: 25px;
    border-left: 5px solid #003366;
    border-radius: 10px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.info-box p {
    margin-bottom: 10px;
}

.info-alert {
    border-left-color: #cc0000;
    background: #fff5f5;
}

/* =========================================================
   QUICK LINKS
========================================================= */
.quick-links {
    background: #fff;
}

.quick-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
    gap: 12px;
    margin-top: 20px;
}

.quick-card {
    background: #f8f9fb;
    padding: 18px 10px;
    border-radius: 10px;
    text-align: center;
    color: #003366;
    transition: 0.25s ease;
    box-shadow: 0 3px 8px rgba(0,0,0,0.05);
}

.quick-card:hover {
    transform: translateY(-5px);
    background: #eef3f8;
}

.quick-card .icon {
    display: block;
    font-size: 22px;
    margin-bottom: 6px;
}

.quick-card p {
    font-size: 13px;
    font-weight: 500;
    line-height: 1.3;
}

/* =========================================================
   AGENDA
========================================================= */
.agenda {
    background: #f8f9fb;
}

#agendaContainer {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.agenda-card {
    display: flex;
    align-items: center;
    gap: 20px;
    background: white;
    padding: 18px;
    border-radius: 16px;
    box-shadow: 0 4px 15px rgba(0,0,0,0.08);
    transition: 0.25s ease;
}

.agenda-card:hover {
    transform: translateY(-3px);
}

.agenda-date-box {
    width: 90px;
    min-width: 90px;
    height: 90px;
    background: #003366;
    color: white;
    border-radius: 14px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
}

.agenda-day {
    font-size: 2rem;
    font-weight: bold;
    line-height: 1;
}

.agenda-month {
    text-transform: uppercase;
    font-size: 0.85rem;
    margin-top: 6px;
}

.agenda-main {
    flex: 1;
    position: relative;
    z-index: 5;
}

.agenda-main h3 {
    color: #003366;
    margin-bottom: 8px;
}

.agenda-excerpt {
    color: #555;
    line-height: 1.5;
}

.agenda-excerpt a {
    color: #003366;
    text-decoration: underline;
    pointer-events: auto !important;
}

/* =========================================================
   ACTUALITÉS
========================================================= */
.actus-slider {
    display: flex;
    gap: 24px;
    overflow-x: auto;
    scroll-behavior: smooth;
    padding-bottom: 10px;
}

.actus-slider::-webkit-scrollbar {
    display: none;
}

.slider-controls button {
    background: #003366;
    color: white;
    border: none;
    padding: 8px 12px;
    margin-left: 5px;
    border-radius: 6px;
    cursor: pointer;
}

.actu-card {
    min-width: 320px;
    max-width: 320px;
    background: white;
    border-radius: 18px;
    overflow: hidden;
    box-shadow: 0 5px 20px rgba(0,0,0,0.08);
    transition: transform 0.3s ease;
    flex-shrink: 0;
}

.actu-card:hover {
    transform: translateY(-5px);
}

.actu-card h3,
.actu-card p,
.actu-excerpt,
.card-content {
    text-transform: none !important;
}

.actu-date {
    font-size: 0.85rem;
    color: #777;
    margin-bottom: 10px;
}

.actu-card h3 {
    font-size: 1.2rem;
    line-height: 1.4;
    margin-bottom: 12px;
}

.actu-excerpt {
    font-size: 0.95rem;
    line-height: 1.6;
    white-space: normal;
    margin-bottom: 20px;
}

.actu-card .btn {
    margin-top: 15px;
}

/* =========================================================
   MODALE ACTUALITÉS
========================================================= */
.actu-modal {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 9999;
    background: rgba(0,0,0,0.75);
    backdrop-filter: blur(5px);
    padding: 40px 20px;
    overflow-y: auto;
}

.actu-modal-content {
    background: white;
    max-width: 900px;
    margin: auto;
    border-radius: 24px;
    overflow: hidden;
    position: relative;
    animation: modalFade 0.3s ease;
}

@keyframes modalFade {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.actu-close {
    position: absolute;
    top: 20px;
    right: 25px;
    width: 42px;
    height: 42px;
    background: white;
    border-radius: 50%;
    font-size: 2rem;
    cursor: pointer;
    z-index: 10;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 5px 20px rgba(0,0,0,0.15);
}

.modal-hero-img {
    width: 100%;
    max-height: 420px;
    object-fit: cover;
}

.modal-body {
    padding: 40px;
}

.modal-date {
    color: #777;
    margin-bottom: 10px;
}

.modal-title {
    font-size: 2rem;
    margin-bottom: 25px;
}

.modal-content-text {
    font-size: 1rem;
    line-height: 1.9;
    color: #333;
}

.modal-content-text * {
    text-transform: none !important;
}

.modal-content-text p {
    margin-bottom: 18px;
}

.modal-content-text h1,
.modal-content-text h2,
.modal-content-text h3,
.modal-content-text h4 {
    margin-top: 30px;
    margin-bottom: 15px;
    color: #003366;
}

.modal-content-text ul,
.modal-content-text ol {
    padding-left: 22px;
    margin-bottom: 20px;
}

.modal-content-text li {
    margin-bottom: 8px;
}

.modal-content-text img {
    margin: 25px 0;
    border-radius: 14px;
}

body.modal-open {
    overflow: hidden;
}

/* =========================================================
   PAGE ARTICLE
========================================================= */
.article-page {
    background: white;
    border-radius: 24px;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

.article-hero-img {
    width: 100%;
    max-height: 500px;
    object-fit: cover;
}

.article-content {
    padding: 50px;
}

.article-date {
    color: #777;
    margin-bottom: 15px;
}

.article-title {
    font-size: 2.5rem;
    margin-bottom: 30px;
}

.article-text {
    font-size: 1rem;
    line-height: 1.9;
    color: #333;
}

.article-text * {
    text-transform: none !important;
}

.article-text p {
    margin-bottom: 20px;
}

.article-text h1,
.article-text h2,
.article-text h3,
.article-text h4 {
    margin-top: 32px;
    margin-bottom: 18px;
    line-height: 1.4;
    color: #003366;
}

.article-text ul,
.article-text ol {
    padding-left: 24px;
    margin-bottom: 20px;
}

.article-text li {
    margin-bottom: 8px;
}

.article-text img {
    border-radius: 14px;
    margin: 25px 0;
}

.article-text a {
    color: #003366;
    text-decoration: underline;
}

.article-actions {
    margin-top: 40px;
    display: flex;
    gap: 20px;
    flex-wrap: wrap;
}

/* =========================================================
   DOCUMENTS
========================================================= */
.doc-category {
    margin-bottom: 20px;
    border-radius: 10px;
    overflow: hidden;
    border: 1px solid #eee;
}

.doc-header {
    background: #003366;
    color: white;
    padding: 12px;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    font-weight: 500;
}

.doc-content {
    display: none;
    padding: 15px;
    background: #fafafa;
}

.doc-content.empty {
    display: block;
    text-align: center;
    color: #777;
}

.doc-item {
    margin-bottom: 15px;
}

.doc-item h4 {
    margin-bottom: 10px;
}

.doc-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-bottom: 10px;
}

.pdf-viewer {
    width: 100%;
    height: 400px;
    border: none;
    border-radius: 8px;
}

.pdf-full {
    background: white;
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.pdf-actions {
    display: none;
    margin-top: 15px;
    text-align: center;
}

/* =========================================================
   CONTACT
========================================================= */
.contact-grid {
    align-items: stretch;
}

.contact-buttons {
    margin-top: 15px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.contact-form {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.contact-form input,
.contact-form select,
.contact-form textarea,
form input,
form select,
form textarea {
    width: 100%;
    padding: 10px;
    border-radius: 8px;
    border: 1px solid #ddd;
    font-family: inherit;
}

.contact-form input:focus,
.contact-form select:focus,
.contact-form textarea:focus {
    outline: none;
    border-color: #003366;
}

.form-wrapper {
    display: flex;
    justify-content: center;
    margin-top: 40px;
}

.form-card {
    width: 100%;
    max-width: 600px;
}

.conditional {
    display: none;
}

/* =========================================================
   HORAIRES
========================================================= */
.horaires-list {
    margin-top: 10px;
}

.horaires-list div {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #eee;
}

.horaires-list span {
    font-weight: 500;
}

.horaires-list strong {
    color: #003366;
}

.permanence {
    margin-top: 15px;
    background: #f8f9fb;
    padding: 10px;
    border-radius: 8px;
}

/* =========================================================
   ÉQUIPE MUNICIPALE
========================================================= */
.center {
    text-align: center;
}

.maire-card {
    display: flex;
    gap: 20px;
    align-items: center;
    background: #f8f9fb;
    padding: 20px;
    border-radius: 12px;
    max-width: 800px;
    margin: auto;
}

.maire-card img {
    width: 120px;
    border-radius: 10px;
}

.role {
    color: #003366;
    font-weight: bold;
    margin-bottom: 10px;
}

.team-center {
    display: flex;
    justify-content: center;
}

.team-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 20px;
}

.team-grid.small {
    max-width: 400px;
    margin: auto;
}

.team-card {
    background: white;
    max-width: 220px;
    margin: auto;
    padding: 15px;
    border-radius: 10px;
    text-align: center;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    transition: 0.25s ease;
}

.team-card:hover {
    transform: translateY(-5px);
}

.team-card img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    border-radius: 10px;
    margin-bottom: 10px;
}

.team-card h3 {
    margin-top: 10px;
    font-size: 16px;
    color: #003366;
}

.team-card p {
    font-size: 12px;
    color: #666;
}

.team-card.main {
    padding: 25px;
}

/* =========================================================
   ÉCOLE
========================================================= */
.ecole-list {
    margin: 10px 0;
    padding-left: 15px;
}

.ecole-list li {
    margin-bottom: 5px;
}

.badge {
    display: inline-block;
    background: #003366;
    color: white;
    padding: 5px 10px;
    border-radius: 20px;
    font-size: 13px;
    margin: 10px 0 5px;
}

.price {
    font-weight: bold;
    color: #003366;
    margin-bottom: 10px;
}

.ecole-card {
    transition: 0.2s;
}

.ecole-card:hover {
    transform: translateY(-5px);
}

.ecole-card p {
    margin-top: 10px;
}

/* =========================================================
   SALLE DES FÊTES
========================================================= */
.sdf-list {
    padding-left: 15px;
}

.sdf-list li {
    margin-bottom: 6px;
}

.note {
    margin-top: 10px;
    font-size: 14px;
    color: #555;
}

.sdf-tarifs .tarif-item {
    display: flex;
    justify-content: space-between;
    padding: 8px 0;
    border-bottom: 1px solid #eee;
}

.sdf-tarifs strong {
    color: #003366;
}

/* =========================================================
   GALERIE
========================================================= */
.gallery {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 10px;
}

.gallery img {
    width: 100%;
    border-radius: 8px;
    cursor: pointer;
    transition: 0.2s;
}

.gallery img:hover {
    transform: scale(1.05);
}

#lightbox {
    display: none;
    position: fixed;
    inset: 0;
    z-index: 999;
    background: rgba(0,0,0,0.8);
    justify-content: center;
    align-items: center;
}

#lightbox img {
    max-width: 90%;
    max-height: 80%;
}

/* =========================================================
   CIMETIÈRE
========================================================= */
.cemetery-card {
    max-width: 700px;
    margin: 20px auto 0;
    padding: 20px;
}

.cemetery-card h3 {
    text-align: center;
    margin-bottom: 15px;
    color: #003366;
}

.cemetery-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    margin-top: 15px;
}

.cem-item {
    background: #f8f9fb;
    padding: 12px;
    border-radius: 8px;
    border-left: 4px solid #003366;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: 0.2s ease;
    font-size: 14px;
}

.cem-item:hover {
    transform: translateX(3px);
    background: #eef3f8;
}

.cem-item span {
    color: #333;
}

.cem-item strong {
    color: #003366;
    font-size: 15px;
}

/* =========================================================
   LIENS
========================================================= */
.link-list {
    list-style: none;
    padding: 0;
    margin-top: 10px;
}

.link-list li {
    margin-bottom: 8px;
}

.link-list a {
    display: block;
    background: #f1f5f9;
    padding: 10px 12px;
    border-radius: 8px;
    color: #003366;
    font-weight: 500;
    transition: 0.2s ease;
}

.link-list a:hover {
    background: #003366;
    color: white;
    transform: translateX(5px);
}

/* =========================================================
   URGENT
========================================================= */
#urgentContainer {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

#urgentContainer .card {
    height: 100%;
}

#urgentContainer .card:only-child {
    max-width: 520px;
}

.urgent-readmore {
    display: inline-block;
    margin-left: 8px;
    padding: 4px 8px;
    background: #fff200;
    color: #d40000;
    font-weight: 700;
    border-radius: 6px;
    text-transform: uppercase;
    animation: blinkUrgent 1s infinite;
}

@keyframes blinkUrgent {
    0% { opacity: 1; }
    50% { opacity: 0.2; }
    100% { opacity: 1; }
}

/* =========================================================
   FOOTER
========================================================= */
footer {
    background: #003366;
    color: white;
    padding: 20px;
    margin-top: 40px;
}

.footer-content {
    max-width: 1100px;
    margin: auto;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.footer-text {
    flex: 1;
    text-align: center;
    font-size: 14px;
    line-height: 1.6;
}

.footer-logo {
    height: 100px;
    width: auto;
}

.footer-blason {
    height: 150px;
}

/* =========================================================
   MOBILE
========================================================= */
@media (max-width: 900px) {

    .header-container {
        flex-wrap: wrap;
    }

    .burger {
        display: flex;
        margin-left: auto;
    }

    .nav {
        width: 100%;
        display: none;
        flex-direction: column;
        align-items: flex-start;
        padding-top: 20px;
        gap: 14px;
    }

    .nav.active {
        display: flex;
    }

    .logo-area {
        gap: 10px;
    }

    .logo a {
        font-size: 1.1rem;
    }

    .header-weather a {
        font-size: 0.9rem;
        padding: 6px 10px;
    }
}

@media (max-width: 768px) {

    .hero h1,
    .hero h2 {
        font-size: 28px;
    }

    .cards,
    #urgentContainer,
    .gallery,
    .cemetery-grid {
        grid-template-columns: 1fr;
    }

    .quick-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 8px;
    }

    .quick-card {
        padding: 8px 4px;
        min-height: 78px;
    }

    .quick-card .icon {
        font-size: 18px;
        margin-bottom: 4px;
    }

    .quick-card p {
        font-size: 11px;
        line-height: 1.15;
    }

    .agenda-card {
        flex-direction: column;
        align-items: flex-start;
    }

    .agenda-date-box {
        width: 100%;
    }

    .pdf-viewer,
    .doc-item iframe {
        display: none !important;
    }

    .pdf-actions,
    .doc-item .pdf-actions {
        display: flex !important;
        flex-direction: column;
        gap: 14px;
    }

    .doc-item .pdf-actions .btn {
        width: 100%;
    }

    .footer-content {
        flex-direction: column;
        gap: 15px;
    }

    .footer-logo {
        height: 60px;
    }

    .maire-card {
        flex-direction: column;
        text-align: center;
    }

    .modal-body,
    .article-content {
        padding: 25px;
    }

    .article-title {
        font-size: 2rem;
    }
}

@media (max-width: 600px) {

    .cemetery-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================
   VIGILANCE HEADER DYNAMIQUE
========================================= */

.main-header {

    position: sticky;
    top: 0;

    z-index: 999;

    overflow: hidden;

    background: rgba(255,255,255,0.92);

    backdrop-filter: blur(10px);
}

/* contenu du header */
.header-container {

    position: relative;
    z-index: 2;
}

/* overlay dynamique */
.header-vigilance-overlay {

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    z-index: 1;

    pointer-events: none;

    opacity: 0;

    transition:
        opacity 0.45s ease,
        background 0.45s ease;
}

/* =========================
   VERT
========================= */

.header-vigilance-overlay.vigilance-green {

    opacity: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(46,204,113,0.20) 0%,
            rgba(46,204,113,0.10) 45%,
            rgba(46,204,113,0.00) 100%
        );
}

/* =========================
   JAUNE
========================= */

.header-vigilance-overlay.vigilance-yellow {

    opacity: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(255,193,7,0.22) 0%,
            rgba(255,193,7,0.12) 45%,
            rgba(255,193,7,0.00) 100%
        );
}

/* =========================
   ORANGE
========================= */

.header-vigilance-overlay.vigilance-orange {

    opacity: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(255,140,0,0.24) 0%,
            rgba(255,140,0,0.14) 45%,
            rgba(255,140,0,0.00) 100%
        );
}

/* =========================
   ROUGE
========================= */

.header-vigilance-overlay.vigilance-red {

    opacity: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(220,53,69,0.26) 0%,
            rgba(220,53,69,0.16) 45%,
            rgba(220,53,69,0.00) 100%
        );
}
/* =========================================
   VIGILANCE HEADER DYNAMIQUE
========================================= */

.main-header {

    position: sticky;
    top: 0;

    z-index: 999;

    overflow: hidden;

    background: rgba(255,255,255,0.92);

    backdrop-filter: blur(10px);
}

/* contenu du header */

.header-container {

    position: relative;
    z-index: 2;
}

/* overlay dynamique */

.header-vigilance-overlay {

    position: absolute;

    top: 0;
    left: 0;

    width: 100%;
    height: 100%;

    z-index: 1;

    pointer-events: none;

    opacity: 0;

    transition:
        opacity 0.45s ease,
        background 0.45s ease;
}

/* =========================
   VERT
========================= */

.header-vigilance-overlay.vigilance-green {

    opacity: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(52,152,219,0.18) 0%,
            rgba(52,152,219,0.10) 45%,
            rgba(52,152,219,0.00) 100%
        );
}

/* =========================
   JAUNE
========================= */

.header-vigilance-overlay.vigilance-yellow {

    opacity: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(255,193,7,0.22) 0%,
            rgba(255,193,7,0.12) 45%,
            rgba(255,193,7,0.00) 100%
        );
}

/* =========================
   ORANGE
========================= */

.header-vigilance-overlay.vigilance-orange {

    opacity: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(255,140,0,0.24) 0%,
            rgba(255,140,0,0.14) 45%,
            rgba(255,140,0,0.00) 100%
        );
}

/* =========================
   ROUGE
========================= */

.header-vigilance-overlay.vigilance-red {

    opacity: 1;

    background:
        linear-gradient(
            to bottom,
            rgba(220,53,69,0.26) 0%,
            rgba(220,53,69,0.16) 45%,
            rgba(220,53,69,0.00) 100%
        );
}

/* =========================================
   HEADER WEATHER
========================================= */

.header-weather {

    display: flex;

    align-items: center;

    gap: 8px;

    flex-wrap: wrap;
}

.header-temp-link {

    position: relative;
    z-index: 3;
}

/* =========================================
   HEADER ALERT TEXT
========================================= */

.header-vigilance-text {

    position: relative;
    z-index: 3;

    font-size: 0.78rem;

    font-weight: 700;

    padding: 5px 12px;

    border-radius: 999px;

    text-decoration: none;

    opacity: 0;

    transform: translateY(-4px);

    transition:
        opacity 0.35s ease,
        transform 0.35s ease,
        background 0.35s ease;

    white-space: nowrap;
}

/* visible */

.header-vigilance-text.show {

    opacity: 1;

    transform: translateY(0);
}

/* VERT */

.header-vigilance-text.green {

    background: rgba(52,152,219,0.14);

    color: #1b5f8c;
}

/* JAUNE */

.header-vigilance-text.yellow {

    background: rgba(255,193,7,0.18);

    color: #8a6300;
}

/* ORANGE */

.header-vigilance-text.orange {

    background: rgba(255,140,0,0.18);

    color: #a34f00;
}

/* ROUGE */

.header-vigilance-text.red {

    background: rgba(220,53,69,0.18);

    color: #a30018;

    animation: pulseAlert 2s infinite;
}

/* animation rouge */

@keyframes pulseAlert {

    0% {
        transform: scale(1);
    }

    50% {
        transform: scale(1.04);
    }

    100% {
        transform: scale(1);
    }
}
/* =========================================
   MOBILE HEADER VIGILANCE
========================================= */

@media (max-width: 768px) {

    .header-container {

        align-items: flex-start;
    }

    .logo-area {

        display: flex;

        flex-direction: column;

        align-items: flex-start;

        gap: 8px;

        max-width: calc(100% - 90px);
    }

    .header-weather {

        width: 100%;

        gap: 6px;
    }

    .header-vigilance-text {

        font-size: 0.68rem;

        padding: 4px 8px;

        max-width: 100%;

        overflow: hidden;

        text-overflow: ellipsis;

        white-space: nowrap;
    }

    .header-temp-link {

        flex-shrink: 0;
    }
}
/* =========================================
   ARTICLE PAGE MODERNE
========================================= */

.article-body {

    background:
        #f5f7fb;
}

/* =========================================
   HERO
========================================= */

.article-hero {

    position: relative;

    min-height: 420px;

    display: flex;

    align-items: flex-end;

    padding: 80px 8%;

    background-size: cover;

    background-position: center;

    overflow: hidden;
}

.article-hero-overlay {

    position: absolute;

    inset: 0;

    background:
        linear-gradient(
            to top,
            rgba(0,0,0,0.75),
            rgba(0,0,0,0.35),
            rgba(0,0,0,0.15)
        );
}

.article-hero-content {

    position: relative;

    z-index: 2;

    max-width: 850px;

    color: white;
}

.article-category {

    display: inline-block;

    margin-bottom: 18px;

    padding: 6px 14px;

    border-radius: 999px;

    background:
        rgba(255,255,255,0.15);

    backdrop-filter: blur(10px);

    font-size: 0.85rem;

    font-weight: 600;
}

#articleHeroTitle {

    font-size: clamp(
        2rem,
        5vw,
        4rem
    );

    line-height: 1.1;

    margin-bottom: 20px;

    font-weight: 700;
}

.article-meta {

    font-size: 1rem;

    opacity: 0.92;
}

/* =========================================
   LAYOUT
========================================= */

.article-layout {

    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        360px;

    gap: 40px;

    padding:
        60px 8% 80px;
}

/* =========================================
   MAIN ARTICLE
========================================= */

.article-main {

    min-width: 0;
}

.article-card {

    background: white;

    border-radius: 24px;

    padding:
        50px;

    box-shadow:
        0 10px 35px
        rgba(0,0,0,0.06);
}

.article-text {

    line-height: 1.9;

    font-size: 1.06rem;

    color: #2b2b2b;
}

.article-text img {

    max-width: 100%;

    border-radius: 18px;

    margin:
        30px 0;
}

.article-text h2,
.article-text h3 {

    margin-top: 45px;

    margin-bottom: 20px;

    line-height: 1.3;
}

.article-text p {

    margin-bottom: 22px;
}

.article-actions {

    margin-top: 50px;

    display: flex;

    gap: 14px;

    flex-wrap: wrap;
}

/* =========================================
   SIDEBAR
========================================= */

.article-sidebar {

    display: flex;

    flex-direction: column;

    gap: 28px;
}

.sidebar-block {

    background: white;

    border-radius: 22px;

    padding: 26px;

    box-shadow:
        0 10px 30px
        rgba(0,0,0,0.05);
}

.sidebar-block h2 {

    font-size: 1.1rem;

    margin-bottom: 20px;

    color: #1e3a5f;
}

/* =========================================
   SIDEBAR LIST
========================================= */

.sidebar-list {

    display: flex;

    flex-direction: column;

    gap: 16px;
}

/* =========================================
   SIDEBAR CARD
========================================= */

.sidebar-card {

    display: flex;

    gap: 14px;

    text-decoration: none;

    color: inherit;

    background:
        #f7f9fc;

    border-radius: 18px;

    overflow: hidden;

    transition:
        transform 0.25s ease,
        box-shadow 0.25s ease,
        background 0.25s ease;
}

.sidebar-card:hover {

    transform:
        translateY(-3px);

    box-shadow:
        0 10px 20px
        rgba(0,0,0,0.08);

    background:
        #ffffff;
}

.sidebar-card img {

    width: 100px;

    height: 100px;

    object-fit: cover;

    flex-shrink: 0;
}

.sidebar-card div {

    padding:
        14px 14px 14px 0;
}

.sidebar-card h3 {

    font-size: 0.95rem;

    line-height: 1.35;

    margin-bottom: 8px;

    color: #1e3a5f;
}

.sidebar-card p {

    font-size: 0.86rem;

    line-height: 1.5;

    color: #555;
}

/* =========================================
   URGENT
========================================= */

.sidebar-card.urgent {

    border-left:
        4px solid #d7263d;
}

.sidebar-card.urgent.static {

    cursor: default;
}

/* =========================================
   AGENDA
========================================= */

.sidebar-card.agenda {

    border-left:
        4px solid #1e88e5;
}

/* =========================================
   LOADING
========================================= */

.article-loading {

    background: white;

    border-radius: 22px;

    padding: 60px;

    text-align: center;

    box-shadow:
        0 10px 30px
        rgba(0,0,0,0.05);
}

/* =========================================
   MOBILE
========================================= */

@media (max-width: 1100px) {

    .article-layout {

        grid-template-columns: 1fr;
    }

    .article-sidebar {

        order: 2;
    }
}

@media (max-width: 768px) {

    .article-hero {

        min-height: 320px;

        padding:
            60px 22px;
    }

    .article-layout {

        padding:
            35px 18px 60px;

        gap: 25px;
    }

    .article-card {

        padding: 28px;
    }

    .sidebar-block {

        padding: 22px;
    }

    .sidebar-card {

        flex-direction: column;
    }

    .sidebar-card img {

        width: 100%;

        height: 190px;
    }

    .sidebar-card div {

        padding: 16px;
    }
}

/* =========================================================
   METEO V4 FIX GLOBAL
========================================================= */

/* HERO PLUS PETIT */
.hero,
.small-hero {

    min-height:auto !important;

    padding:88px 0 38px !important;
}
.hero h1,
.hero h2 {
    font-size: clamp(1.8rem, 3vw, 2.8rem) !important;
    line-height: 1.15 !important;
    margin-bottom: 12px !important;
}

.hero p {
    font-size: 1rem !important;
    max-width: 760px;
    margin: 0 auto;
}

.section {
    padding: 18px 0 !important;
}

.container {
    width: min(94%, 1180px) !important;
}

/* =========================================================
   METEO CARDS
========================================================= */

.weather-grid,
.netatmo-grid,
.forecast-grid,
.history-grid {
    gap: 14px !important;
}

.weather-card,
.netatmo-card,
.forecast-card,
.history-card,
.daily-detail-card,
.period-card {
    border-radius: 18px !important;
    padding: 14px !important;
}

.weather-card h3,
.netatmo-card h3,
.daily-detail-title {
    font-size: 1rem !important;
}

.weather-value,
.big-temp,
.netatmo-value {
    font-size: 1.7rem !important;
    line-height: 1.1 !important;
}

.weather-sub,
.netatmo-sub,
.card-sub {
    font-size: 0.82rem !important;
}

/* =========================================================
   DETAIL PREVISIONS
========================================================= */

.daily-detail-grid {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 10px !important;
    margin-top: 12px !important;
}

.period-card {
    min-width: 0 !important;
    text-align: center;
}

.period-name {
    font-size: 0.78rem !important;
}

.period-icon {
    font-size: 1.3rem !important;
    margin: 6px 0 !important;
}

.period-temp {
    font-size: 0.95rem !important;
    font-weight: 700;
}

/* =========================================================
   HEURES HORIZONTALES
========================================================= */

.hourly-scroll,
.detailed-hours {
    display: flex !important;
    gap: 10px !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 10px 2px 4px !important;
    margin-top: 12px !important;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
}

.hourly-scroll::-webkit-scrollbar,
.detailed-hours::-webkit-scrollbar {
    height: 6px;
}

.hour-card {
    flex: 0 0 88px !important;
    min-width: 88px !important;
    border-radius: 14px !important;
    padding: 10px 8px !important;
    scroll-snap-align: start;
}

.hour-time {
    font-size: 0.75rem !important;
}

.hour-icon {
    font-size: 1.2rem !important;
    margin: 6px 0 !important;
}

.hour-temp {
    font-size: 1rem !important;
}

.hour-rain {
    font-size: 0.72rem !important;
}

/* =========================================================
   SUNRISE / SUNSET
========================================================= */

.sun-cycle {
    display: flex !important;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin-top: 14px !important;
    font-size: 0.85rem !important;
}

.sun-separator {
    opacity: 0.4;
}

/* =========================================================
   HISTORIQUE / FOOTER
========================================================= */

#history {
    margin-bottom: 10px !important;
    padding-bottom: 10px !important;
}

#history-grid,
.history-grid {
    margin-bottom: 0 !important;
}

footer {
    margin-top: 18px !important;
}

/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 768px) {

    .hero,
    .small-hero {
        padding: 78px 0 38px !important;
    }

    .hero h1,
    .hero h2 {
        font-size: 1.7rem !important;
    }

    .hero p {
        font-size: 0.92rem !important;
        padding: 0 10px;
    }

    .section {
        padding: 14px 0 !important;
    }

    .weather-grid,
    .netatmo-grid,
    .forecast-grid,
    .history-grid {
        gap: 10px !important;
    }

    .weather-card,
    .netatmo-card,
    .forecast-card,
    .history-card,
    .daily-detail-card {
        padding: 12px !important;
        border-radius: 16px !important;
    }

    .weather-value,
    .big-temp,
    .netatmo-value {
        font-size: 1.45rem !important;
    }

    .daily-detail-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    .period-card {
        padding: 10px !important;
    }

    .hour-card {
        flex: 0 0 78px !important;
        min-width: 78px !important;
        padding: 8px 6px !important;
    }

    .hour-icon {
        font-size: 1rem !important;
    }

    .hour-temp {
        font-size: 0.92rem !important;
    }

    .forecast-card {
        display: flex !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    .fc-left,
    .fc-right,
    .fc-temp {
        width: 100% !important;
    }

    .fc-right {
        font-size: 0.82rem !important;
        line-height: 1.45 !important;
    }

    .history-card {
        padding: 12px !important;
    }

    .history-values {
        font-size: 0.82rem !important;
        gap: 6px !important;
    }

    footer {
        margin-top: 12px !important;
        padding-top: 18px !important;
    }
}
/* =========================================================
   METEO V4 FINAL TUNING
   À AJOUTER TOUT EN BAS DE style.css
========================================================= */

/* =========================================
   HERO METEO UNIQUEMENT
========================================= */

body.meteo-page .hero,
body.meteo-page .small-hero,
.meteo-hero {

    padding: 88px 0 34px !important;

    min-height: auto !important;
}

body.meteo-page .hero h1,
body.meteo-page .hero h2,
.meteo-hero h1 {

    font-size: clamp(1.8rem, 3vw, 2.5rem) !important;

    margin-bottom: 8px !important;

    line-height: 1.1 !important;
}

body.meteo-page .hero p,
.meteo-hero p {

    font-size: 0.95rem !important;

    max-width: 700px;

    margin: auto;
}

/* =========================================
   GLOBAL METEO
========================================= */

.weather-grid,
.netatmo-grid,
.forecast-grid,
.history-grid {

    gap: 12px !important;
}

.weather-card,
.netatmo-card,
.forecast-card,
.history-card,
.daily-detail-card {

    padding: 14px !important;

    border-radius: 18px !important;
}

/* =========================================
   BLOC HAUT
========================================= */

.netatmo-grid {

    display: grid !important;

    grid-template-columns:
        repeat(4, minmax(0,1fr)) !important;
}

.netatmo-card {

    min-height: 110px !important;
}

.netatmo-value,
.weather-value,
.big-temp {

    font-size: 1.6rem !important;

    line-height: 1.1 !important;
}

.netatmo-sub,
.weather-sub {

    font-size: 0.8rem !important;
}

/* =========================================
   PREVISIONS DETAILLEES
========================================= */

.daily-detail-card {

    margin-bottom: 14px !important;
}

.daily-detail-title {

    font-size: 1rem !important;

    margin-bottom: 10px !important;
}

/* 4 CARDS SUR UNE LIGNE */

.daily-detail-grid {

    display: grid !important;

    grid-template-columns:
        repeat(4, 1fr) !important;

    gap: 8px !important;

    margin-bottom: 10px !important;
}

.period-card {

    padding: 10px !important;

    text-align: center !important;

    border-radius: 14px !important;
}

.period-name {

    font-size: 0.72rem !important;
}

.period-icon {

    font-size: 1.15rem !important;

    margin: 5px 0 !important;
}

.period-temp {

    font-size: 0.9rem !important;

    font-weight: 700 !important;
}

/* =========================================
   LEVER / COUCHER
========================================= */

.sun-cycle {

    display: flex !important;

    align-items: center !important;

    flex-wrap: wrap !important;

    gap: 8px !important;

    margin-top: 8px !important;

    font-size: 0.8rem !important;
}

/* =========================================
   PREVISIONS HORAIRES
========================================= */

.hourly-scroll,
.detailed-hours {

    display: flex !important;

    overflow-x: auto !important;

    gap: 8px !important;

    padding: 10px 0 4px !important;

    margin-top: 10px !important;

    scroll-snap-type: x mandatory;

    -webkit-overflow-scrolling: touch;
}

.hour-card {

    flex: 0 0 78px !important;

    min-width: 78px !important;

    padding: 9px 6px !important;

    border-radius: 14px !important;

    scroll-snap-align: start;
}

.hour-time {

    font-size: 0.72rem !important;
}

.hour-icon {

    font-size: 1rem !important;

    margin: 5px 0 !important;
}

.hour-temp {

    font-size: 0.92rem !important;
}

.hour-rain {

    font-size: 0.68rem !important;
}

/* =========================================
   PREVISIONS 12 JOURS
========================================= */

.forecast-card {

    display: grid !important;

    grid-template-columns:
        90px
        90px
        90px
        1fr !important;

    align-items: center !important;

    gap: 10px !important;

    padding: 12px 14px !important;
}

.fc-left {

    display: flex !important;

    flex-direction: column !important;

    gap: 4px !important;
}

.fc-day {

    font-size: 0.9rem !important;

    font-weight: 700 !important;
}

.fc-icon {

    font-size: 1.3rem !important;
}

.fc-temp {

    font-size: 1rem !important;

    font-weight: 700 !important;
}

.fc-right {

    font-size: 0.8rem !important;

    line-height: 1.5 !important;

    text-align: left !important;
}

/* =========================================
   HISTORY
========================================= */

.history-card {

    padding: 12px !important;
}

.history-values {

    font-size: 0.8rem !important;
}

/* =========================================
   FOOTER FIX
========================================= */

#history {

    margin-bottom: 0 !important;

    padding-bottom: 0 !important;
}

footer {

    margin-top: 14px !important;
}

/* =========================================
   MOBILE
========================================= */

@media (max-width: 768px) {

    /* HERO */

    body.meteo-page .hero,
    body.meteo-page .small-hero,
    .meteo-hero {

        padding: 78px 0 24px !important;
    }

    body.meteo-page .hero h1,
    .meteo-hero h1 {

        font-size: 1.55rem !important;
    }

    body.meteo-page .hero p {

        font-size: 0.88rem !important;
    }

    /* BLOC HAUT */

    .netatmo-grid {

        grid-template-columns:
            repeat(2, 1fr) !important;
    }

    .netatmo-card {

        min-height: 95px !important;

        padding: 12px !important;
    }

    .netatmo-value,
    .weather-value,
    .big-temp {

        font-size: 1.35rem !important;
    }

    /* DETAIL */

    .daily-detail-grid {

        grid-template-columns:
            repeat(4, 1fr) !important;

        gap: 6px !important;
    }

    .period-card {

        padding: 8px 4px !important;
    }

    .period-name {

        font-size: 0.64rem !important;
    }

    .period-temp {

        font-size: 0.78rem !important;
    }

    /* HOURS */

    .hour-card {

        flex: 0 0 72px !important;

        min-width: 72px !important;

        padding: 8px 5px !important;
    }

    /* 12 JOURS */

    .forecast-card {

        grid-template-columns:
            1fr !important;

        gap: 8px !important;
    }

    .fc-left {

        flex-direction: row !important;

        align-items: center !important;

        justify-content: space-between !important;
    }

    .fc-temp {

        font-size: 1rem !important;
    }

    .fc-right {

        font-size: 0.76rem !important;

        line-height: 1.45 !important;
    }

    /* GLOBAL */

    .weather-card,
    .netatmo-card,
    .forecast-card,
    .history-card,
    .daily-detail-card {

        border-radius: 16px !important;
    }

    .section {

        padding: 14px 0 !important;
    }
}
/* =========================================================
   PATCH HEADER BLASON
========================================================= */

.logo-link{
    display:flex;
    align-items:center;
    gap:12px;
}

.header-blason{
    width:44px;
    height:44px;
    object-fit:contain;
    flex-shrink:0;
}

.logo strong{
    font-size:1.08rem;
    font-weight:700;
    letter-spacing:-0.01em;
    white-space:nowrap;
}

/* desktop large */
@media(min-width:1200px){

    .logo strong{
        font-size:1rem;
    }

    .header-container{
        gap:18px;
    }

    .nav{
        gap:18px;
    }
}

/* tablette */
@media(max-width:900px){

    .header-blason{
        width:38px;
        height:38px;
    }

    .logo strong{
        font-size:.98rem;
    }
}

/* mobile */
@media(max-width:768px){

    .logo-link{
        gap:10px;
    }

    .header-blason{
        width:34px;
        height:34px;
    }

    .logo strong{
        font-size:.92rem;
        line-height:1.1;
    }
}
/* =========================================================
   FIX MOBILE LOGO HEADER
========================================================= */

@media(max-width:768px){

    .logo{
        width:100%;
        min-width:0;
    }

    .logo-link{
        display:flex;
        align-items:center;
        gap:8px;

        min-width:0;
        max-width:100%;
    }

    .header-blason{
        width:28px !important;
        height:28px !important;
        flex-shrink:0;
    }

    .logo strong{
        font-size:.78rem !important;
        line-height:1.05;
        letter-spacing:-0.02em;

        white-space:nowrap;
        overflow:hidden;
        text-overflow:ellipsis;

        max-width:140px;
        display:block;
    }

    .logo-area{
        gap:6px !important;
        max-width:calc(100% - 70px);
    }

    .header-container{
        padding:10px 14px !important;
    }
}
/* =========================================================
   FIX MOBILE HEADER COMPACT
========================================================= */

@media(max-width:768px){

    .header-container{
        padding:8px 14px !important;
        align-items:center !important;
        gap:8px !important;
    }

    .logo-area{
        display:grid !important;
        grid-template-columns:1fr;
        gap:6px !important;
        max-width:calc(100% - 58px) !important;
    }

    .logo-link{
        display:flex !important;
        align-items:center !important;
        gap:8px !important;
    }

    .header-blason{
        width:26px !important;
        height:26px !important;
    }

    .logo strong{
        font-size:.82rem !important;
        line-height:1 !important;
        max-width:190px !important;
        white-space:nowrap !important;
        overflow:hidden !important;
        text-overflow:ellipsis !important;
    }

    .header-weather{
        display:flex !important;
        flex-wrap:nowrap !important;
        gap:6px !important;
        width:auto !important;
    }

    .header-weather a{
        font-size:.72rem !important;
        padding:5px 8px !important;
        border-radius:10px !important;
        white-space:nowrap !important;
    }

    .header-vigilance-text{
        font-size:.72rem !important;
        padding:5px 8px !important;
        max-width:140px !important;
    }

    .burger{
        transform:scale(.82);
        transform-origin:center;
        margin-left:auto !important;
    }
}
/* =========================================================
   HEADER FIXE FINAL
========================================================= */

.main-header{
    position:fixed !important;
    top:0;
    left:0;
    width:100%;
    z-index:99999;
}

/* compensation propre */
body{
    padding-top:72px;
}

/* mobile */
@media(max-width:768px){

    body{
        padding-top:78px;
    }
}

/* IMPORTANT :
   on annule les anciens hacks */
.hero,
.small-hero,
.meteo-hero,
main,
section{
    margin-top:0 !important;
}
.urgent-card.static{
    cursor: default !important;
    pointer-events: auto;
}

.urgent-card.card-clickable{
    cursor: pointer !important;
}
/* =========================================================
   ECOLE — CENTRAGE CARTES
========================================================= */

.hero-ecole + .section .card,
.ecole-card,
.section .card{

    text-align:center;
}

.hero-ecole + .section .card .badge,
.ecole-card .badge,
.section .card .badge{

    margin:
        12px auto 10px;
}

.hero-ecole + .section .card .price,
.ecole-card .price,
.section .card .price{

    text-align:center;

    margin-bottom:12px;
}

.hero-ecole + .section .card .btn,
.ecole-card .btn,
.section .card .btn{

    margin:
        18px auto 0;
}
/* =========================================================
   DOCUMENTS MODERNES
========================================================= */

.documents-modern{
    padding-top:20px;
}

.documents-intro{
    text-align:center;
    margin-bottom:32px;
}

.documents-intro p{
    max-width:700px;
    margin:auto;
    color:#5f6b7a;
}

.documents-grid{
    display:grid;
    grid-template-columns:
        repeat(auto-fit,minmax(260px,1fr));
    gap:22px;
}

.document-card{

    background:white;

    border-radius:22px;

    padding:28px 24px;

    box-shadow:
        0 10px 28px rgba(0,0,0,0.06);

    transition:
        transform .25s ease,
        box-shadow .25s ease;

    display:flex;
    flex-direction:column;
    align-items:center;
    text-align:center;

    overflow:hidden;

    position:relative;
}

.document-card:hover{

    transform:translateY(-6px);

    box-shadow:
        0 18px 36px rgba(0,0,0,0.10);
}

.document-icon{

    width:72px;
    height:72px;

    border-radius:20px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:
        linear-gradient(
            135deg,
            #003366,
            #0055aa
        );

    color:white;

    font-size:2rem;

    margin-bottom:18px;

    box-shadow:
        0 10px 22px rgba(0,51,102,0.20);
}

.document-card h3{

    color:#003366;

    font-size:1.2rem;

    margin-bottom:10px;
}

.document-card p{

    color:#5f6b7a;

    line-height:1.6;

    margin-bottom:18px;
}

.document-card .btn{

    margin-bottom:18px;
}

/* CONTENU DOCUMENTS */

.document-card .doc-content{

    display:none;

    width:100%;

    margin-top:8px;

    text-align:left;

    background:#f8fafd;

    border-radius:16px;

    padding:18px;
}

.document-card .doc-content.active{
    display:block;
}

/* ITEMS */

.doc-item{

    background:white;

    border-radius:14px;

    padding:16px;

    margin-bottom:14px;

    box-shadow:
        0 4px 12px rgba(0,0,0,0.05);
}

.doc-item:last-child{
    margin-bottom:0;
}

.doc-item h4{

    color:#003366;

    margin-bottom:12px;

    font-size:1rem;
}

.doc-actions{

    display:flex;

    flex-wrap:wrap;

    gap:10px;
}

/* MOBILE */

@media(max-width:768px){

    .documents-grid{
        grid-template-columns:1fr;
    }

    .document-card{
        padding:24px 18px;
    }

    .document-icon{
        width:64px;
        height:64px;
        font-size:1.7rem;
    }

    .document-card h3{
        font-size:1.08rem;
    }

    .document-card p{
        font-size:.92rem;
    }

    .doc-content{
        padding:14px;
    }
}
/* =========================================================
   CONTACT MODERNE
========================================================= */

.contact-modern{
    padding-top:24px;
}

.contact-modern-grid{
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:24px;
    align-items:stretch;
}

.contact-modern-card{
    background:#fff;
    border-radius:26px;
    padding:32px 28px;
    box-shadow:0 12px 32px rgba(0,0,0,.07);
    text-align:center;
}

.contact-icon{
    width:72px;
    height:72px;
    margin:0 auto 18px;
    border-radius:22px;
    background:linear-gradient(135deg,#003366,#0066cc);
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:2rem;
    box-shadow:0 12px 24px rgba(0,51,102,.22);
}

.contact-modern-card h2{
    color:#003366;
    font-size:1.35rem;
    margin-bottom:12px;
}

.contact-description{
    color:#5f6b7a;
    max-width:520px;
    margin:0 auto 24px;
}

.contact-info-list{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin:22px 0;
}

.contact-info-item,
.modern-hour-row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    background:#f7f9fc;
    border-radius:16px;
    padding:14px 16px;
    text-align:left;
}

.contact-info-item span,
.modern-hour-row span{
    color:#5f6b7a;
    font-weight:500;
}

.contact-info-item strong,
.modern-hour-row strong{
    color:#003366;
    text-align:right;
}

.contact-actions{
    display:flex;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
    margin-top:22px;
}

.modern-hours{
    display:flex;
    flex-direction:column;
    gap:10px;
    margin-top:22px;
}

.modern-hour-row.closed{
    background:#fff4f4;
}

.modern-hour-row.closed strong{
    color:#c62828;
}

.permanence-box{
    margin-top:22px;
    padding:20px;
    border-radius:20px;
    background:linear-gradient(135deg,#eef5ff,#f8fbff);
    border-left:5px solid #003366;
    text-align:left;
}

.permanence-box h3{
    color:#003366;
    font-size:1rem;
    margin-bottom:8px;
}

.permanence-box p{
    color:#5f6b7a;
    line-height:1.6;
}

/* MOBILE */
@media(max-width:850px){

    .contact-modern-grid{
        grid-template-columns:1fr;
    }

    .contact-modern-card{
        padding:26px 20px;
    }

    .contact-info-item,
    .modern-hour-row{
        flex-direction:column;
        align-items:center;
        text-align:center;
        gap:4px;
    }

    .contact-info-item strong,
    .modern-hour-row strong{
        text-align:center;
    }

    .contact-actions .btn{
        width:100%;
    }
}
/* =========================================================
   QUICK LINKS ULTRA COMPACT
========================================================= */

.quick-grid{

    grid-template-columns:
        repeat(auto-fit,minmax(145px,1fr));

    gap:12px;
}

.quick-card{

    min-height:82px;

    padding:10px 8px;

    display:flex;
    align-items:center;
    justify-content:center;

    text-align:center;

    font-size:.98rem;
    font-weight:600;

    line-height:1.25;

    border-radius:16px;

    transition:
        transform .25s ease,
        box-shadow .25s ease;
}

.quick-card:hover{

    transform:translateY(-3px);

    box-shadow:
        0 8px 18px rgba(0,0,0,.08);
}

/* MOBILE */

@media(max-width:768px){

    .quick-grid{

        grid-template-columns:
            repeat(3,1fr);

        gap:8px;
    }

    .quick-card{

        min-height:72px;

        padding:8px 4px;

        font-size:.82rem;

        line-height:1.15;

        border-radius:14px;
    }
}
/* =========================================================
   FIX FINAL HEADER METEO — badge vigilance qui contient son texte
========================================================= */

/* Base commune desktop + mobile */
.header-weather {
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    min-width: 0 !important;
}

.header-temp-link {
    flex: 0 0 auto !important;
    white-space: nowrap !important;
}

.header-vigilance-text {
    box-sizing: border-box !important;

    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;

    width: auto !important;
    min-width: 0 !important;

    /* Le badge s'étend avec le texte */
    max-width: none !important;

    white-space: nowrap !important;
    overflow: visible !important;
    text-overflow: clip !important;

    line-height: 1.15 !important;
    padding: 7px 14px !important;
    border-radius: 999px !important;
}

/* Desktop : le header garde son menu */
@media (min-width: 901px) {

    .logo-area {
        flex: 0 1 auto !important;
        min-width: 0 !important;
    }

    .header-weather {
        flex: 0 1 auto !important;
        flex-wrap: nowrap !important;
    }

    .nav {
        flex: 0 0 auto !important;
        white-space: nowrap !important;
    }
}

/* Mobile : la météo reste dans la zone gauche, le burger reste à droite */
@media (max-width: 900px) {

    .header-container {
        display: grid !important;
        grid-template-columns: minmax(0, 1fr) auto !important;
        align-items: center !important;
        gap: 10px 14px !important;
        padding: 12px 22px 14px !important;
    }

    .logo-area {
        grid-column: 1 / 2 !important;
        grid-row: 1 / 2 !important;

        display: flex !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;

        max-width: none !important;
        min-width: 0 !important;
        width: 100% !important;
    }

    .burger {
        grid-column: 2 / 3 !important;
        grid-row: 1 / 2 !important;

        display: flex !important;
        margin: 0 !important;
        justify-self: end !important;
        align-self: center !important;
    }

    .header-weather {
        width: 100% !important;
        max-width: 100% !important;

        display: flex !important;
        align-items: center !important;
        gap: 8px !important;
        flex-wrap: nowrap !important;
    }

    .header-vigilance-text {
        flex: 0 1 auto !important;

        max-width: calc(100vw - 210px) !important;

        white-space: nowrap !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;

        font-size: 0.78rem !important;
        padding: 7px 12px !important;
    }

    .nav {
        grid-column: 1 / -1 !important;
        width: 100% !important;
    }
}

/* Très petit mobile : on laisse la vigilance passer dessous si nécessaire */
@media (max-width: 430px) {

    .header-weather {
        flex-wrap: wrap !important;
    }

    .header-vigilance-text {
        max-width: 100% !important;
    }
}
/* =========================================================
   DESKTOP — vigilance contenue dans son badge
========================================================= */

@media (min-width: 901px) {

    .header-container {
        gap: 14px !important;
    }

    .logo-area {
        flex: 0 0 auto !important;
        min-width: max-content !important;

        display: flex !important;
        align-items: center !important;
        gap: 10px !important;
    }

    .header-weather {
        flex: 0 0 auto !important;

        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        flex-wrap: nowrap !important;

        min-width: max-content !important;
        width: auto !important;
        max-width: none !important;
    }

    .header-weather a {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;

        width: auto !important;
        max-width: none !important;

        white-space: nowrap !important;
        overflow: visible !important;
        text-overflow: clip !important;
    }

    .header-vigilance-text {
        flex: 0 0 auto !important;

        width: auto !important;
        min-width: max-content !important;
        max-width: none !important;

        padding: 7px 12px !important;
        border-radius: 999px !important;

        white-space: nowrap !important;
        overflow: visible !important;
        text-overflow: clip !important;
    }

    .nav {
        flex: 0 0 auto !important;
        gap: 16px !important;
        white-space: nowrap !important;
    }
}``
/* =========================================================
   FIX LIENS CARTES — supprimer le violet visited
========================================================= */

.actu-card,
.actu-card:link,
.actu-card:visited,
.actu-card:hover,
.actu-card:active,
.quick-card,
.quick-card:link,
.quick-card:visited,
.quick-card:hover,
.quick-card:active,
.sidebar-card,
.sidebar-card:link,
.sidebar-card:visited,
.sidebar-card:hover,
.sidebar-card:active {
    color: inherit;
    text-decoration: none;
}

/* Titres des actualités */
.actu-card h3,
.actu-card:visited h3 {
    color: #003366;
}

/* Textes / extraits des actualités */
.actu-card p,
.actu-card:visited p,
.actu-excerpt,
.actu-card:visited .actu-excerpt {
    color: #333;
}

/* Date */
.actu-date,
.actu-card:visited .actu-date {
    color: #777;
}

/* Accès rapide */
.quick-card,
.quick-card:visited,
.quick-card p,
.quick-card:visited p {
    color: #003366;
}
a:visited {
    color: inherit;
}
/* Contenu riche articles CMS */
.rich-content img {
  max-width: 100%;
  height: auto;
  border-radius: 14px;
  margin: 16px 0;
  display: block;
}
.rich-content p {
  line-height: 1.75;
}
.rich-content ul,
.rich-content ol {
  margin-left: 1.4rem;
  line-height: 1.7;
}
.article-event {
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  border-radius: 14px;
  padding: 14px 16px;
  margin-bottom: 18px;
}

/* Images dans les articles CMS */
.rich-content img {
  max-width: 100%;
  height: auto;
  border-radius: 14px;
  margin: 16px auto;
  display: block;
}

.article-text img {
  max-width: 100%;
  height: auto;
}


/* === PATCH CMS IMAGE COUVERTURE === */
/*
   Les images de couverture ne sont pas des images de contenu.
   Elles servent de visuel de carte / bannière : on force donc un cadre propre.
*/
.actu-card.card,
.card.actu-card {
    overflow: hidden;
    padding: 0 !important;
}

.actu-card .card-img,
.card-img {
    display: block;
    width: 100%;
    height: 220px;
    aspect-ratio: 16 / 9;
    object-fit: cover;
    object-position: center center;
    margin: 0 !important;
    border-radius: 0 !important;
    background: #e5e7eb;
}

.actu-card .card-content,
.card.actu-card .card-content {
    padding: 20px;
}

/* Image de couverture de l'article détaillé */
.article-hero {
    background-size: cover !important;
    background-position: center center !important;
    background-repeat: no-repeat !important;
}

/* Images dans les cartes latérales */
.sidebar-card img {
    width: 100px !important;
    height: 100px !important;
    object-fit: cover !important;
    object-position: center center !important;
}

/* Sur mobile, la couverture reste lisible sans écraser la carte */
@media (max-width: 700px) {
    .actu-card .card-img,
    .card-img {
        height: 190px;
    }

    .article-hero {
        min-height: 320px !important;
        padding-top: 120px !important;
    }
}



/* PATCH CMS DESKTOP COVER + PROGRAMMATION */
@media (min-width: 900px) {
  .actu-card .card-img,
  .card-img {
    width: 100% !important;
    aspect-ratio: 16 / 9 !important;
    height: auto !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
  }
}

.pill.programme,
.pill.scheduled {
  background: #dbeafe !important;
  color: #1e3a8a !important;
}


/* PATCH SAFE COVER DATE CMS */
.actu-card {
  padding: 0 !important;
  overflow: hidden !important;
}

.actu-card .card-img,
.card-img {
  width: 100% !important;
  height: 220px !important;
  object-fit: cover !important;
  object-position: center center;
  display: block !important;
  margin: 0 !important;
  border-radius: 12px 12px 0 0 !important;
  background: #eef2f7;
}

.actu-card .card-content {
  padding: 20px !important;
}

.article-hero {
  min-height: clamp(260px, 38vw, 460px) !important;
  background-size: cover !important;
  background-position: center center;
  background-repeat: no-repeat !important;
}

.sidebar-card img {
  width: 100px !important;
  height: 76px !important;
  object-fit: cover !important;
  object-position: center center;
  border-radius: 12px !important;
  flex: 0 0 auto;
}

.article-text img {
  max-width: 100%;
  height: auto;
}

/* PATCH AGENDA PUBLIC DEDIE */
.page-hero.agenda-page-hero {
  background: linear-gradient(135deg, rgba(15, 23, 42, .88), rgba(30, 64, 175, .72)), url("images/mairie.jpg");
  background-size: cover;
  background-position: center;
  color: #fff;
  padding: 82px 0 70px;
}

.page-hero .eyebrow {
  margin: 0 0 8px;
  text-transform: uppercase;
  letter-spacing: .08em;
  opacity: .82;
  font-weight: 700;
}

.page-hero h1 {
  margin: 0;
  font-size: clamp(2.2rem, 5vw, 4rem);
}

.page-hero p:last-child {
  max-width: 720px;
  margin-top: 12px;
  font-size: 1.08rem;
  opacity: .92;
}

.agenda-page-layout {
  display: grid;
  grid-template-columns: 360px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}

.agenda-calendar-card,
.agenda-list-card {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .08);
  border-radius: 22px;
  box-shadow: 0 14px 36px rgba(15, 23, 42, .08);
}

.agenda-calendar-card {
  padding: 18px;
  position: sticky;
  top: 92px;
}

.agenda-calendar-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 16px;
}

.agenda-calendar-header button,
.agenda-today-btn,
.agenda-filter {
  border: 0;
  background: #0f172a;
  color: #fff;
  border-radius: 12px;
  padding: 9px 12px;
  font-weight: 800;
  cursor: pointer;
}

.agenda-calendar-header button {
  width: 38px;
  height: 38px;
  font-size: 1.4rem;
  line-height: 1;
}

.agenda-calendar-header strong {
  display: block;
  text-transform: capitalize;
  font-size: 1.05rem;
}

.agenda-calendar-header span {
  color: #64748b;
  font-size: .88rem;
}

.agenda-calendar-weekdays,
.agenda-calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 7px;
}

.agenda-calendar-weekdays {
  color: #64748b;
  font-size: .78rem;
  text-align: center;
  margin-bottom: 8px;
  font-weight: 700;
}

.agenda-calendar-grid .empty {
  min-height: 42px;
}

.agenda-calendar-day {
  min-height: 42px;
  border: 1px solid #e2e8f0;
  background: #f8fafc;
  border-radius: 12px;
  color: #0f172a;
  cursor: pointer;
  position: relative;
}

.agenda-calendar-day.has-event {
  background: #e0f2fe;
  border-color: #38bdf8;
  font-weight: 800;
}

.agenda-calendar-day.today {
  outline: 2px solid #0f172a;
}

.agenda-calendar-day em {
  position: absolute;
  right: 5px;
  bottom: 4px;
  background: #0f172a;
  color: #fff;
  border-radius: 999px;
  font-size: 10px;
  min-width: 16px;
  height: 16px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-style: normal;
}

.agenda-today-btn {
  width: 100%;
  margin-top: 14px;
  background: #e2e8f0;
  color: #0f172a;
}

.agenda-list-card {
  padding: 22px;
}

.agenda-list-top {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  margin-bottom: 18px;
}

.agenda-list-top h2 {
  margin: 0;
}

.agenda-list-top p {
  margin: 4px 0 0;
  color: #64748b;
}

.agenda-filter-buttons {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.agenda-filter {
  background: #e2e8f0;
  color: #0f172a;
}

.agenda-filter.active {
  background: #0f172a;
  color: #fff;
}

.agenda-page-list {
  display: grid;
  gap: 14px;
}

.agenda-page-event {
  display: grid;
  grid-template-columns: 78px minmax(0, 1fr);
  gap: 16px;
  padding: 16px;
  border: 1px solid #e2e8f0;
  border-radius: 18px;
  background: #fff;
}

.agenda-page-event.is-past {
  opacity: .72;
}

.agenda-page-date {
  background: #0f172a;
  color: #fff;
  border-radius: 16px;
  text-align: center;
  padding: 10px 6px;
  height: max-content;
}

.agenda-page-date strong {
  display: block;
  font-size: 1.8rem;
  line-height: 1;
}

.agenda-page-date span {
  display: block;
  text-transform: uppercase;
  font-size: .78rem;
  margin-top: 4px;
}

.agenda-page-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 8px;
}

.agenda-page-meta span {
  background: #f1f5f9;
  border-radius: 999px;
  padding: 4px 9px;
  font-size: .82rem;
  color: #475569;
  font-weight: 700;
}

.agenda-page-event h3 {
  margin: 0 0 6px;
  font-size: 1.25rem;
}

.agenda-page-event p {
  margin: 0 0 12px;
  color: #475569;
}

.agenda-read-more {
  display: inline-flex;
  width: fit-content;
  text-decoration: none;
  background: #0f172a;
  color: #fff;
  border-radius: 12px;
  padding: 8px 12px;
  font-weight: 800;
}

.agenda-empty {
  background: #f8fafc;
  border: 1px dashed #cbd5e1;
  border-radius: 16px;
  padding: 18px;
  color: #64748b;
}

.index-agenda-more {
  text-align: center;
  margin-top: 18px;
}

.index-agenda-more a {
  display: inline-flex;
  text-decoration: none;
  background: #0f172a;
  color: #fff;
  border-radius: 14px;
  padding: 10px 15px;
  font-weight: 800;
}

@media (max-width: 900px) {
  .agenda-page-layout {
    grid-template-columns: 1fr;
  }

  .agenda-calendar-card {
    position: static;
  }

  .agenda-list-top {
    display: block;
  }

  .agenda-filter-buttons {
    justify-content: flex-start;
    margin-top: 12px;
  }
}

@media (max-width: 560px) {
  .agenda-page-event {
    grid-template-columns: 1fr;
  }

  .agenda-page-date {
    width: 74px;
  }
}

/* =========================================================
   PATCH INDEX : cards plus compactes sur desktop + lien agenda
   ========================================================= */
@media (min-width: 900px) {
  body.home .section .container,
  .section .container {
    max-width: 1180px;
  }

  /* Actualités : cartes plus petites, plus lisibles sur PC */
  .actus-slider {
    gap: 16px !important;
    padding: 4px 2px 14px !important;
  }

  .actus-slider .actu-card,
  .actus-slider .card.actu-card {
    flex: 0 0 255px !important;
    width: 255px !important;
    min-width: 255px !important;
    max-width: 255px !important;
    border-radius: 14px !important;
  }

  .actus-slider .actu-card .card-img,
  .actus-slider .card-img {
    height: 138px !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    object-position: center center !important;
  }

  .actus-slider .actu-card .card-content {
    padding: 13px 14px 15px !important;
  }

  .actus-slider .actu-card h3 {
    font-size: 16px !important;
    line-height: 1.25 !important;
    margin-bottom: 7px !important;
  }

  .actus-slider .actu-date {
    font-size: 12px !important;
    margin-bottom: 6px !important;
  }

  .actus-slider .actu-excerpt {
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  /* Informations importantes : moins mastoc sur PC */
  #urgentContainer.cards {
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)) !important;
    gap: 12px !important;
  }

  #urgentContainer .urgent-card {
    padding: 14px !important;
    border-radius: 14px !important;
  }

  #urgentContainer .urgent-card h3 {
    font-size: 16px !important;
    margin-bottom: 7px !important;
  }

  #urgentContainer .urgent-text {
    font-size: 13px !important;
    line-height: 1.35 !important;
  }

  /* Agenda d'accueil : cartes compactes + lien vers page complète */
  #agendaContainer {
    gap: 12px !important;
  }

  #agendaContainer .agenda-card {
    padding: 12px 14px !important;
    gap: 14px !important;
    border-radius: 14px !important;
  }

  #agendaContainer .agenda-date-box {
    width: 64px !important;
    min-width: 64px !important;
    height: 64px !important;
    border-radius: 12px !important;
  }

  #agendaContainer .agenda-day {
    font-size: 1.45rem !important;
  }

  #agendaContainer .agenda-month {
    font-size: 0.72rem !important;
    margin-top: 3px !important;
  }

  #agendaContainer .agenda-main h3 {
    font-size: 16px !important;
    margin-bottom: 4px !important;
  }

  #agendaContainer .agenda-excerpt {
    font-size: 13px !important;
    line-height: 1.35 !important;
  }
}

.home-section-footer,
.agenda-home-link-wrap {
  display: flex;
  justify-content: center;
  margin-top: 18px;
}

.home-more-link,
.agenda-home-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 16px;
  border-radius: 999px;
  background: #003366;
  color: #fff !important;
  text-decoration: none !important;
  font-weight: 700;
  font-size: 14px;
  box-shadow: 0 8px 18px rgba(0, 51, 102, 0.18);
  transition: transform .2s ease, box-shadow .2s ease, opacity .2s ease;
}

.home-more-link:hover,
.agenda-home-link:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 24px rgba(0, 51, 102, 0.24);
  opacity: .95;
}

/* PATCH AGENDA CARDS COMPACT ONLY
   Objectif : garder les cards Actualités à leur taille d'origine,
   et rendre uniquement les cards Agenda de l'accueil plus compactes. */

/* Zone agenda sur l'accueil : cartes côte à côte sur ordinateur */
.home-agenda,
.agenda-home,
.agenda-list,
#agendaList,
#agenda-list,
.agenda-grid,
.events-grid,
#homeAgenda,
#home-agenda {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
  align-items: stretch;
}

/* Cards agenda compactes uniquement */
.home-agenda .agenda-card,
.agenda-home .agenda-card,
.agenda-list .agenda-card,
#agendaList .agenda-card,
#agenda-list .agenda-card,
.agenda-grid .agenda-card,
.events-grid .agenda-card,
#homeAgenda .agenda-card,
#home-agenda .agenda-card,
.home-agenda article,
.agenda-home article,
.agenda-list article,
#agendaList article,
#agenda-list article,
.agenda-grid article,
.events-grid article,
#homeAgenda article,
#home-agenda article {
  min-height: auto !important;
  padding: 14px 16px !important;
  border-radius: 16px !important;
}

/* Typo plus compacte dans les cards agenda */
.home-agenda .agenda-card h3,
.agenda-home .agenda-card h3,
.agenda-list .agenda-card h3,
#agendaList .agenda-card h3,
#agenda-list .agenda-card h3,
.agenda-grid .agenda-card h3,
.events-grid .agenda-card h3,
#homeAgenda .agenda-card h3,
#home-agenda .agenda-card h3,
.home-agenda article h3,
.agenda-home article h3,
.agenda-list article h3,
#agendaList article h3,
#agenda-list article h3,
.agenda-grid article h3,
.events-grid article h3,
#homeAgenda article h3,
#home-agenda article h3 {
  font-size: 1rem !important;
  line-height: 1.25 !important;
  margin: 0 0 6px !important;
}

.home-agenda .agenda-card p,
.agenda-home .agenda-card p,
.agenda-list .agenda-card p,
#agendaList .agenda-card p,
#agenda-list .agenda-card p,
.agenda-grid .agenda-card p,
.events-grid .agenda-card p,
#homeAgenda .agenda-card p,
#home-agenda .agenda-card p,
.home-agenda article p,
.agenda-home article p,
.agenda-list article p,
#agendaList article p,
#agenda-list article p,
.agenda-grid article p,
.events-grid article p,
#homeAgenda article p,
#home-agenda article p {
  font-size: .92rem !important;
  line-height: 1.35 !important;
  margin: 4px 0 !important;
}

/* Si les cards agenda contiennent une image, on la masque sur l'accueil : inutile pour une mini-carte date/lieu. */
.home-agenda .agenda-card img,
.agenda-home .agenda-card img,
.agenda-list .agenda-card img,
#agendaList .agenda-card img,
#agenda-list .agenda-card img,
.agenda-grid .agenda-card img,
.events-grid .agenda-card img,
#homeAgenda .agenda-card img,
#home-agenda .agenda-card img {
  display: none !important;
}

/* Bouton vers l'agenda complet */
.home-agenda-more,
.agenda-more,
#agendaMore,
#agenda-more {
  margin-top: 14px;
  text-align: right;
}

.home-agenda-more a,
.agenda-more a,
#agendaMore a,
#agenda-more a,
a[href="agenda.html"].agenda-link,
a[href="/agenda.html"].agenda-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  border-radius: 999px;
  background: #0f172a;
  color: #fff !important;
  text-decoration: none;
  font-weight: 700;
  font-size: .92rem;
}

@media (max-width: 720px) {
  .home-agenda,
  .agenda-home,
  .agenda-list,
  #agendaList,
  #agenda-list,
  .agenda-grid,
  .events-grid,
  #homeAgenda,
  #home-agenda {
    grid-template-columns: 1fr;
  }

  .home-agenda-more,
  .agenda-more,
  #agendaMore,
  #agenda-more {
    text-align: left;
  }
}

/* PATCH INDEX ACTUS + AGENDA QUARTER CARDS */
/* Accueil uniquement : agrandir un peu les actualités, réduire l'agenda en 4 colonnes. */
@media (min-width: 1000px) {
  body.home-page .actus-slider .actu-card {
    min-width: 380px !important;
    max-width: 380px !important;
  }

  body.home-page .actus-slider .actu-card .card-img,
  body.home-page .actus-slider .card-img {
    height: 240px !important;
  }

  body.home-page .section.agenda #agendaContainer {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
    align-items: stretch !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-card {
    width: auto !important;
    max-width: none !important;
    min-width: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 10px !important;
    padding: 14px !important;
    border-radius: 16px !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-date-box {
    width: 100% !important;
    min-width: 0 !important;
    height: 68px !important;
    border-radius: 14px !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-day {
    font-size: 1.55rem !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-month {
    font-size: .72rem !important;
    margin-top: 3px !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-main h3 {
    font-size: 1rem !important;
    line-height: 1.25 !important;
    margin: 0 0 6px !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-excerpt {
    font-size: .88rem !important;
    line-height: 1.35 !important;
  }
}

@media (min-width: 700px) and (max-width: 999px) {
  body.home-page .section.agenda #agendaContainer {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-card {
    width: auto !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-date-box {
    width: 100% !important;
    min-width: 0 !important;
  }
}

/* PATCH INDEX AGENDA CLEANUP 2026-05-15
   - garde un seul bouton Voir tout l'agenda
   - centre le contenu des cards agenda
   - force les cards agenda accueil à 1/4 de largeur sur desktop
*/
body.home-page .agenda-grid,
body.home-page #agenda-list,
body.home-page .agenda-list,
body.home-page .agenda-cards,
body.home-page .home-agenda-list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: stretch !important;
}

body.home-page .agenda-card,
body.home-page .event-card,
body.home-page .home-agenda-card,
body.home-page [data-zone="agenda"] article,
body.home-page .agenda-item {
  width: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 16px 14px !important;
}

body.home-page .agenda-card *,
body.home-page .event-card *,
body.home-page .home-agenda-card *,
body.home-page [data-zone="agenda"] article *,
body.home-page .agenda-item * {
  text-align: center !important;
}

body.home-page .agenda-card h3,
body.home-page .event-card h3,
body.home-page .home-agenda-card h3,
body.home-page .agenda-item h3 {
  font-size: 1rem !important;
  line-height: 1.25 !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.home-page .agenda-card p,
body.home-page .event-card p,
body.home-page .home-agenda-card p,
body.home-page .agenda-item p {
  margin-left: auto !important;
  margin-right: auto !important;
}

body.home-page .agenda-more,
body.home-page .agenda-more-link,
body.home-page .agenda-all-link,
body.home-page .agenda-full-link,
body.home-page .see-all-agenda {
  display: flex !important;
  justify-content: center !important;
  margin-top: 18px !important;
}

@media (max-width: 1100px) {
  body.home-page .agenda-grid,
  body.home-page #agenda-list,
  body.home-page .agenda-list,
  body.home-page .agenda-cards,
  body.home-page .home-agenda-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  body.home-page .agenda-grid,
  body.home-page #agenda-list,
  body.home-page .agenda-list,
  body.home-page .agenda-cards,
  body.home-page .home-agenda-list {
    grid-template-columns: 1fr !important;
  }
}

/* PATCH AGENDA CARDS COMPACT ONLY
   Objectif : garder les cards Actualités à leur taille d'origine,
   et rendre uniquement les cards Agenda de l'accueil plus compactes. */

/* Zone agenda sur l'accueil : cartes côte à côte sur ordinateur */
.home-agenda,
.agenda-home,
.agenda-list,
#agendaList,
#agenda-list,
.agenda-grid,
.events-grid,
#homeAgenda,
#home-agenda {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(210px, 1fr));
  gap: 12px;
  align-items: stretch;
}

/* Cards agenda compactes uniquement */
.home-agenda .agenda-card,
.agenda-home .agenda-card,
.agenda-list .agenda-card,
#agendaList .agenda-card,
#agenda-list .agenda-card,
.agenda-grid .agenda-card,
.events-grid .agenda-card,
#homeAgenda .agenda-card,
#home-agenda .agenda-card,
.home-agenda article,
.agenda-home article,
.agenda-list article,
#agendaList article,
#agenda-list article,
.agenda-grid article,
.events-grid article,
#homeAgenda article,
#home-agenda article {
  min-height: auto !important;
  padding: 14px 16px !important;
  border-radius: 16px !important;
}

/* Typo plus compacte dans les cards agenda */
.home-agenda .agenda-card h3,
.agenda-home .agenda-card h3,
.agenda-list .agenda-card h3,
#agendaList .agenda-card h3,
#agenda-list .agenda-card h3,
.agenda-grid .agenda-card h3,
.events-grid .agenda-card h3,
#homeAgenda .agenda-card h3,
#home-agenda .agenda-card h3,
.home-agenda article h3,
.agenda-home article h3,
.agenda-list article h3,
#agendaList article h3,
#agenda-list article h3,
.agenda-grid article h3,
.events-grid article h3,
#homeAgenda article h3,
#home-agenda article h3 {
  font-size: 1rem !important;
  line-height: 1.25 !important;
  margin: 0 0 6px !important;
}

.home-agenda .agenda-card p,
.agenda-home .agenda-card p,
.agenda-list .agenda-card p,
#agendaList .agenda-card p,
#agenda-list .agenda-card p,
.agenda-grid .agenda-card p,
.events-grid .agenda-card p,
#homeAgenda .agenda-card p,
#home-agenda .agenda-card p,
.home-agenda article p,
.agenda-home article p,
.agenda-list article p,
#agendaList article p,
#agenda-list article p,
.agenda-grid article p,
.events-grid article p,
#homeAgenda article p,
#home-agenda article p {
  font-size: .92rem !important;
  line-height: 1.35 !important;
  margin: 4px 0 !important;
}

/* Si les cards agenda contiennent une image, on la masque sur l'accueil : inutile pour une mini-carte date/lieu. */
.home-agenda .agenda-card img,
.agenda-home .agenda-card img,
.agenda-list .agenda-card img,
#agendaList .agenda-card img,
#agenda-list .agenda-card img,
.agenda-grid .agenda-card img,
.events-grid .agenda-card img,
#homeAgenda .agenda-card img,
#home-agenda .agenda-card img {
  display: none !important;
}

/* Bouton vers l'agenda complet */
.home-agenda-more,
.agenda-more,
#agendaMore,
#agenda-more {
  margin-top: 14px;
  text-align: right;
}

.home-agenda-more a,
.agenda-more a,
#agendaMore a,
#agenda-more a,
a[href="agenda.html"].agenda-link,
a[href="/agenda.html"].agenda-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 14px;
  border-radius: 999px;
  background: #0f172a;
  color: #fff !important;
  text-decoration: none;
  font-weight: 700;
  font-size: .92rem;
}

@media (max-width: 720px) {
  .home-agenda,
  .agenda-home,
  .agenda-list,
  #agendaList,
  #agenda-list,
  .agenda-grid,
  .events-grid,
  #homeAgenda,
  #home-agenda {
    grid-template-columns: 1fr;
  }

  .home-agenda-more,
  .agenda-more,
  #agendaMore,
  #agenda-more {
    text-align: left;
  }
}

/* PATCH INDEX AGENDA CLEANUP 2026-05-15
   - garde un seul bouton Voir tout l'agenda
   - centre le contenu des cards agenda
   - force les cards agenda accueil à 1/4 de largeur sur desktop
*/
body.home-page .agenda-grid,
body.home-page #agenda-list,
body.home-page .agenda-list,
body.home-page .agenda-cards,
body.home-page .home-agenda-list {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: stretch !important;
}

body.home-page .agenda-card,
body.home-page .event-card,
body.home-page .home-agenda-card,
body.home-page [data-zone="agenda"] article,
body.home-page .agenda-item {
  width: auto !important;
  max-width: none !important;
  min-height: 0 !important;
  text-align: center !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  align-items: center !important;
  padding: 16px 14px !important;
}

body.home-page .agenda-card *,
body.home-page .event-card *,
body.home-page .home-agenda-card *,
body.home-page [data-zone="agenda"] article *,
body.home-page .agenda-item * {
  text-align: center !important;
}

body.home-page .agenda-card h3,
body.home-page .event-card h3,
body.home-page .home-agenda-card h3,
body.home-page .agenda-item h3 {
  font-size: 1rem !important;
  line-height: 1.25 !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

body.home-page .agenda-card p,
body.home-page .event-card p,
body.home-page .home-agenda-card p,
body.home-page .agenda-item p {
  margin-left: auto !important;
  margin-right: auto !important;
}

body.home-page .agenda-more,
body.home-page .agenda-more-link,
body.home-page .agenda-all-link,
body.home-page .agenda-full-link,
body.home-page .see-all-agenda {
  display: flex !important;
  justify-content: center !important;
  margin-top: 18px !important;
}

@media (max-width: 1100px) {
  body.home-page .agenda-grid,
  body.home-page #agenda-list,
  body.home-page .agenda-list,
  body.home-page .agenda-cards,
  body.home-page .home-agenda-list {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 640px) {
  body.home-page .agenda-grid,
  body.home-page #agenda-list,
  body.home-page .agenda-list,
  body.home-page .agenda-cards,
  body.home-page .home-agenda-list {
    grid-template-columns: 1fr !important;
  }
}

/* PATCH FIX AGENDA INDEX + HERO 2026-05-15
   - un seul bouton "Voir tout l'agenda"
   - cards agenda centrées et compactes sur l'accueil
   - hero agenda public moins haut
*/

/* Sécurité : si un ancien JS recrée le bouton bleu, on le masque. */
body.home-page .agenda-home-link-wrap {
  display: none !important;
}

/* On garde le bouton statique, style sombre, centré. */
body.home-page .index-agenda-more {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  margin-top: 18px !important;
}

body.home-page .index-agenda-more a {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #0f172a !important;
  color: #ffffff !important;
  text-decoration: none !important;
  border-radius: 999px !important;
  padding: 11px 18px !important;
  font-weight: 800 !important;
  box-shadow: 0 10px 22px rgba(15, 23, 42, .16) !important;
}

/* Agenda d'accueil : 4 cartes par ligne sur grand écran, contenu centré. */
@media (min-width: 1000px) {
  body.home-page .section.agenda #agendaContainer {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 14px !important;
    align-items: stretch !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-card {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 150px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 10px !important;
    padding: 15px 13px !important;
    border-radius: 16px !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-card * {
    text-align: center !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-date-box {
    width: 78px !important;
    min-width: 78px !important;
    height: 64px !important;
    border-radius: 14px !important;
    margin: 0 auto !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-main {
    width: 100% !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-main h3 {
    font-size: 1rem !important;
    line-height: 1.25 !important;
    margin: 0 0 6px !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-excerpt {
    font-size: .88rem !important;
    line-height: 1.35 !important;
  }
}

@media (min-width: 700px) and (max-width: 999px) {
  body.home-page .section.agenda #agendaContainer {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 14px !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-card {
    text-align: center !important;
    align-items: center !important;
  }
}

@media (max-width: 699px) {
  body.home-page .section.agenda #agendaContainer {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }
}

/* Page agenda dédiée : hero moins massif, aligné avec les autres pages. */
.page-hero.agenda-page-hero {
  padding: 44px 0 38px !important;
  min-height: 0 !important;
}

.page-hero.agenda-page-hero h1 {
  font-size: clamp(2rem, 4vw, 3rem) !important;
}

.page-hero.agenda-page-hero p:last-child {
  font-size: 1rem !important;
  max-width: 680px !important;
}

@media (max-width: 720px) {
  .page-hero.agenda-page-hero {
    padding: 34px 0 30px !important;
  }

  .page-hero.agenda-page-hero h1 {
    font-size: 2rem !important;
  }
}


/* PATCH LIENS + DOCUMENTS CMS */
/* Les liens visités gardent la même couleur : plus de violet navigateur. */
a:visited {
  color: inherit;
}

.rich-content a,
.article-text a,
.preview-content a,
.editor-box a,
.article-card a:not(.btn),
.agenda-page-event a:not(.agenda-read-more) {
  color: #1d4ed8;
}

.rich-content a:visited,
.article-text a:visited,
.preview-content a:visited,
.editor-box a:visited,
.article-card a:not(.btn):visited,
.agenda-page-event a:not(.agenda-read-more):visited {
  color: #1d4ed8;
}

.cms-document-link,
.cms-document-link:visited {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  width: fit-content;
  max-width: 100%;
  padding: 10px 12px;
  border-radius: 12px;
  background: #f1f5f9;
  border: 1px solid #cbd5e1;
  color: #0f172a !important;
  font-weight: 800;
  text-decoration: none;
  word-break: break-word;
}

.cms-document-link:hover {
  background: #e2e8f0;
  text-decoration: none;
}


/* PATCH DOCUMENTS MUNICIPAUX BIBLIOTHEQUE */
.documents-page .documents-hero { padding: 68px 0 46px; }
.documents-page .documents-hero .eyebrow { display:inline-block;margin-bottom:10px;color:rgba(255,255,255,.82);text-transform:uppercase;letter-spacing:.08em;font-size:.78rem;font-weight:800; }
.documents-library { padding-top:44px; }
.documents-toolbar-card { display:flex;justify-content:space-between;gap:18px;align-items:flex-start;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:24px;padding:22px;box-shadow:0 18px 42px rgba(15,23,42,.08);margin-bottom:18px; }
.documents-toolbar-card h2 { margin:0 0 6px;color:#0f172a; }
.documents-toolbar-card p { margin:0;color:#64748b; }
.documents-stats { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px; }
.documents-stats span { display:inline-flex;gap:5px;align-items:center;padding:8px 10px;border-radius:999px;background:#f1f5f9;color:#334155;font-size:.85rem; }
.documents-controls { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:12px;margin:18px 0 26px; }
.documents-controls label { display:flex;flex-direction:column;gap:6px;color:#334155;font-size:.82rem;font-weight:800; }
.documents-controls input,.documents-controls select { width:100%;border:1px solid #dbe3ef;border-radius:14px;padding:12px 14px;background:#fff;color:#0f172a;font:inherit; }
.documents-featured { margin:26px 0; }
.documents-featured h2,.documents-results-head h2 { margin:0;color:#0f172a; }
.documents-featured-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px; }
.documents-results-head { display:flex;justify-content:space-between;align-items:center;gap:12px;margin:30px 0 14px; }
.documents-year-group { margin:22px 0; }
.documents-year-group > h3 { display:inline-flex;align-items:center;gap:8px;margin:0 0 12px;padding:7px 12px;border-radius:999px;background:#e2e8f0;color:#0f172a;font-size:.95rem; }
.documents-year-list { display:grid;gap:12px; }
.municipal-document-card { display:grid;grid-template-columns:58px 1fr auto;gap:14px;align-items:center;background:#fff;border:1px solid rgba(15,23,42,.08);border-radius:20px;padding:16px;box-shadow:0 12px 30px rgba(15,23,42,.06);transition:transform .18s ease,box-shadow .18s ease; }
.municipal-document-card:hover { transform:translateY(-2px);box-shadow:0 18px 40px rgba(15,23,42,.10); }
.municipal-document-card.is-featured { border-color:rgba(0,91,170,.24);background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%); }
.municipal-document-icon { width:58px;height:58px;display:grid;place-items:center;border-radius:18px;background:#eff6ff;font-size:28px; }
.municipal-document-body h3 { margin:6px 0 4px;color:#0f172a;font-size:1.05rem;line-height:1.25; }
.municipal-document-meta { display:flex;flex-wrap:wrap;gap:6px; }
.municipal-document-meta span { display:inline-flex;padding:3px 8px;border-radius:999px;background:#f1f5f9;color:#475569;font-size:.74rem;font-weight:800; }
.document-description { margin:6px 0;color:#475569;font-size:.92rem;line-height:1.45; }
.municipal-document-file { color:#64748b;font-size:.78rem;word-break:break-all; }
.municipal-document-actions { display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end; }
.documents-empty { text-align:center;padding:38px 20px;border:1px dashed #cbd5e1;border-radius:22px;background:#fff;color:#64748b; }
.document-empty-icon { font-size:42px;margin-bottom:10px; }

@media (max-width:900px) {
  .documents-toolbar-card { display:block; }
  .documents-stats { justify-content:flex-start;margin-top:14px; }
  .documents-controls,.documents-featured-grid { grid-template-columns:1fr; }
  .municipal-document-card { grid-template-columns:1fr;text-align:left; }
  .municipal-document-actions { justify-content:flex-start; }
}

@media (max-width:560px) {
  .documents-page .documents-hero { padding:46px 0 34px; }
  .documents-results-head { align-items:flex-start;flex-direction:column; }
  .municipal-document-card { padding:14px; }
}

/* PATCH DOCUMENTS DISPLAY FIX */
.docs-fix-hidden {
  display: none !important;
}

.documents-count-badge {
  display: inline-flex;
  align-items: center;
  margin-left: 10px;
  padding: 4px 10px;
  border-radius: 999px;
  background: #e8f0ff;
  color: #21426f;
  font-size: 0.82rem;
  font-weight: 700;
  vertical-align: middle;
}

.documents-fallback-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 16px;
  margin-top: 18px;
}

.documents-fallback-card {
  background: #fff;
  border: 1px solid rgba(15, 23, 42, .10);
  border-radius: 18px;
  padding: 18px;
  box-shadow: 0 10px 28px rgba(15, 23, 42, .08);
}

.documents-fallback-card h3 {
  margin: 10px 0 8px;
  font-size: 1.05rem;
}

.documents-fallback-card p {
  color: #5b6778;
  line-height: 1.5;
}

.documents-fallback-card a {
  display: inline-flex;
  margin-top: 10px;
  padding: 9px 13px;
  border-radius: 999px;
  background: #111827;
  color: #fff !important;
  text-decoration: none;
  font-weight: 700;
}

.documents-fallback-meta {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  color: #64748b;
  font-size: .82rem;
}

.documents-fallback-meta span {
  background: #f1f5f9;
  border-radius: 999px;
  padding: 3px 8px;
}

/* PATCH DOCUMENTS POLISH SAFE */
.hidden {
  display: none !important;
}

.documents-page .documents-hero {
  padding: 38px 0 30px !important;
}

.documents-page .documents-hero h1 {
  font-size: clamp(2rem, 4vw, 2.8rem) !important;
  margin-bottom: 8px !important;
}

.documents-page .documents-hero p {
  max-width: 760px;
  margin: 0 auto;
  font-size: 1rem !important;
  line-height: 1.55;
}

.documents-page .documents-library {
  padding-top: 28px !important;
}

.documents-page .documents-featured.hidden {
  display: none !important;
}

/* === PATCH SAFE COUVERTURE ARTICLE INTELLIGENTE ===
   Objectif :
   - ne pas réécrire la page article
   - garder header/footer existants
   - améliorer le cadrage selon portrait / paysage / carré
*/
.article-hero {
  min-height: clamp(300px, 38vw, 450px) !important;
  background-size: cover !important;
  background-repeat: no-repeat !important;
  background-color: #16365d !important;
  position: relative !important;
}

.article-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background-image:
    linear-gradient(rgba(15,23,42,.68), rgba(15,23,42,.68)),
    var(--article-cover-url);
  background-size: cover;
  background-position: inherit;
  filter: blur(18px);
  transform: scale(1.08);
  opacity: 0;
  transition: opacity .25s ease;
  z-index: 0;
}

.article-hero.article-cover-portrait::before,
.article-hero.article-cover-square::before {
  opacity: .62;
}

.article-hero.article-cover-portrait {
  background-size: auto 112% !important;
  background-position: center 28% !important;
}

.article-hero.article-cover-landscape {
  min-height: clamp(340px, 42vw, 500px) !important;
  background-size: cover !important;
  background-position: center center !important;
}

.article-hero.article-cover-square {
  background-size: cover !important;
  background-position: center 35% !important;
}

.article-hero.article-cover-empty {
  background:
    linear-gradient(135deg, rgba(0, 51, 102, .92), rgba(30, 64, 175, .74)),
    url("/images/mairie.jpg") center/cover !important;
}

.article-hero-overlay,
.article-hero-content {
  position: relative;
  z-index: 2;
}

.article-hero-overlay {
  position: absolute !important;
  inset: 0 !important;
  z-index: 1 !important;
  background:
    linear-gradient(
      to top,
      rgba(0, 0, 0, .78),
      rgba(0, 0, 0, .32),
      rgba(0, 0, 0, .12)
    ) !important;
}

/* Sur mobile on garde une bannière plus compacte */
@media (max-width: 768px) {
  .article-hero {
    min-height: 320px !important;
    padding: 110px 24px 36px !important;
  }

  .article-hero.article-cover-portrait {
    background-size: cover !important;
    background-position: center 24% !important;
  }
}



/* === PATCH PORTRAIT COVER FOCUS === */
.article-hero.has-cover.cover-portrait .article-hero-image {
  object-fit: cover !important;
  transform: scale(1.18) !important;
}

.article-hero.has-cover.cover-landscape .article-hero-image {
  object-fit: cover !important;
  transform: scale(1.02) !important;
}

.article-hero.has-cover.cover-square .article-hero-image {
  object-fit: cover !important;
  transform: scale(1.08) !important;
}

.cover-preview {
  object-fit: cover !important;
}


/* === PATCH COUVERTURE MANUELLE ARTICLE === */
.article-hero.article-cover-manual {
  background-position: var(--article-manual-position, center center) !important;
  background-size: var(--article-manual-size, cover) !important;
}

.article-hero.article-cover-manual::before {
  background-position: var(--article-manual-position, center center) !important;
  background-size: var(--article-manual-size, cover) !important;
}


/* === PATCH COVER PUBLIC MANUAL CSS === */
.article-hero.article-cover-manual-public {
  background-repeat: no-repeat !important;
}

.article-hero.article-cover-manual-public img {
  will-change: transform, object-position;
}


/* === PATCH FIX LAYOUT ADMIN ET HERO VISUEL === */

/* Backoffice : empêche le contenu long de passer sous le menu gauche */
.shell {
  display: grid !important;
  grid-template-columns: 270px minmax(0, 1fr) !important;
  align-items: start !important;
}

.side {
  position: sticky !important;
  top: 0 !important;
  height: 100dvh !important;
  max-height: 100dvh !important;
  overflow-y: auto !important;
  z-index: 60 !important;
}

.main {
  min-width: 0 !important;
  width: 100% !important;
  max-width: none !important;
  overflow-x: clip !important;
  box-sizing: border-box !important;
}

/* Backoffice : boutons de rédaction toujours accessibles */
.cms-post-top-actions {
  position: sticky !important;
  top: 0 !important;
  z-index: 90 !important;
  background: linear-gradient(180deg, rgba(248,250,252,.98), rgba(248,250,252,.94)) !important;
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(148,163,184,.24);
  box-shadow: 0 8px 18px rgba(15,23,42,.08);
}

/* Article public : vraie image visuelle dans le hero, plus de portrait en contain sur fond bleu */
.article-hero.article-cover-has-visual {
  background: #16365d !important;
  background-image: none !important;
  position: relative !important;
  overflow: hidden !important;
}

.article-hero.article-cover-has-visual::before {
  display: none !important;
}

.article-hero-bg-blur {
  position: absolute;
  inset: -28px;
  background-size: cover;
  background-repeat: no-repeat;
  filter: blur(22px);
  transform: scale(1.08);
  opacity: .72;
  z-index: 0;
}

.article-hero-main-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover !important;
  object-position: center center;
  transform-origin: center center;
  z-index: 1;
  will-change: transform, object-position;
}

.article-hero-main-image.is-hidden {
  display: none !important;
}

.article-hero.article-cover-has-visual .article-hero-overlay {
  z-index: 2 !important;
}

.article-hero.article-cover-has-visual .article-hero-content {
  z-index: 3 !important;
}

.article-hero.article-cover-manual .article-hero-main-image {
  object-fit: cover !important;
}

/* Mobile backoffice : le menu redevient un bloc normal */
@media (max-width: 900px) {
  .shell {
    display: block !important;
  }

  .side {
    position: relative !important;
    height: auto !important;
    max-height: none !important;
  }

  .cms-post-top-actions {
    top: 0 !important;
  }
}


/* === PATCH FINITIONS INDEX AGENDA LOCATION === */
a:visited {
  color: inherit;
}

.agenda-location {
  margin: 5px 0 4px;
  font-weight: 700;
  color: #334155;
}

.agenda-location.muted {
  font-weight: 600;
  color: #94a3b8;
}


/* === PATCH INDEX LIEUX LIRE SUITE === */
.read-more-inline {
  font-weight: 800;
  white-space: nowrap;
}

.card-clickable .read-more-inline,
.agenda-card-clickable .read-more-inline {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.agenda-card-clickable {
  color: inherit;
  text-decoration: none;
}

.agenda-card-clickable:visited,
.agenda-card-clickable:hover,
.agenda-card-clickable:active {
  color: inherit;
  text-decoration: none;
}

.agenda-location {
  display: block;
  margin-top: 4px;
  font-weight: 700;
}

.agenda-excerpt p {
  margin-top: 7px;
}

/* === PATCH AGENDA INDEX SANS TEXTE + LIEN CONDITIONNEL === */
.agenda-card-static {
  cursor: default;
}

.agenda-card-static,
.agenda-card-static:visited,
.agenda-card-static:hover,
.agenda-card-static:active {
  color: inherit;
  text-decoration: none;
}

.agenda-card-static:hover {
  transform: none !important;
}

.agenda-card .agenda-excerpt p {
  display: none !important;
}


/* === PATCH REFONTE ACCUEIL VITRINE === */
.home-page main section {
  scroll-margin-top: 90px;
}

.home-page .home-section-head {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 20px;
}

.home-page .home-section-head h2 {
  margin: 0;
}

.home-page .section-kicker {
  display: inline-block;
  margin-bottom: 5px;
  font-size: .78rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: #2f6f9f;
}

.home-page .home-link-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 38px;
  padding: 9px 15px;
  border-radius: 999px;
  background: #13233a;
  color: #fff !important;
  text-decoration: none;
  font-weight: 800;
  box-shadow: 0 10px 24px rgba(15, 23, 42, .16);
}

.home-page .home-empty {
  grid-column: 1 / -1;
  width: 100%;
  padding: 22px;
  border: 1px dashed rgba(47, 111, 159, .35);
  border-radius: 20px;
  background: rgba(255,255,255,.72);
  color: #405064;
}

.home-page .home-empty strong,
.home-page .home-empty span {
  display: block;
}

.home-page .home-empty span {
  margin-top: 5px;
  color: #667085;
}

.home-page #urgentContainer,
.home-page #actusContainer,
.home-page #agendaContainer {
  align-items: stretch;
}

.home-page .urgent-card {
  display: flex;
  gap: 14px;
  align-items: flex-start;
  padding: 18px !important;
  border-left: 5px solid #f59e0b;
  background: linear-gradient(135deg, #fff9e8, #ffffff);
  color: inherit;
  text-decoration: none;
}

.home-page .urgent-card:visited,
.home-page .urgent-card:hover,
.home-page .urgent-card:active {
  color: inherit;
  text-decoration: none;
}

.home-page .urgent-card-static {
  cursor: default;
}

.home-page .urgent-icon {
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #f59e0b;
  color: #fff;
  font-weight: 900;
}

.home-page .urgent-content h3 {
  margin: 0 0 8px;
}

.home-page .urgent-text {
  line-height: 1.5;
  color: #374151;
}

.home-page #actusContainer {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 22px;
}

.home-page .actu-card {
  overflow: hidden;
  min-height: 100%;
  display: flex;
  flex-direction: column;
  color: inherit;
  text-decoration: none;
}

.home-page .actu-card:visited,
.home-page .actu-card:hover,
.home-page .actu-card:active {
  color: inherit;
  text-decoration: none;
}

.home-page .actu-card-featured {
  grid-column: span 2;
}

.home-page .actu-card .card-img {
  height: 235px !important;
  width: 100% !important;
  object-fit: cover !important;
  display: block;
}

.home-page .actu-card-featured .card-img {
  height: 300px !important;
}

.home-page .card-img-placeholder {
  background: linear-gradient(135deg, #dbeafe, #f8fafc);
}

.home-page .actu-card .card-content {
  flex: 1;
  padding: 20px !important;
}

.home-page .actu-date {
  font-weight: 800;
  color: #2f6f9f;
}

.home-page .read-more-inline {
  font-weight: 900;
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.home-page #agendaContainer {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}

.home-page .agenda-card {
  min-width: 0;
  padding: 16px !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  gap: 11px;
  color: inherit;
  text-decoration: none;
}

.home-page .agenda-card:visited,
.home-page .agenda-card:hover,
.home-page .agenda-card:active {
  color: inherit;
  text-decoration: none;
}

.home-page .agenda-card-static {
  cursor: default;
}

.home-page .agenda-card-static:hover {
  transform: none !important;
}

.home-page .agenda-date-box {
  width: 58px;
  height: 58px;
  border-radius: 18px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #13233a;
  color: #fff;
  box-shadow: 0 10px 22px rgba(15,23,42,.18);
}

.home-page .agenda-day {
  font-size: 1.35rem;
  font-weight: 900;
  line-height: 1;
}

.home-page .agenda-month {
  font-size: .78rem;
  font-weight: 800;
  text-transform: uppercase;
}

.home-page .agenda-main h3 {
  margin: 0 0 6px;
  font-size: 1rem;
  line-height: 1.25;
}

.home-page .agenda-time,
.home-page .agenda-location {
  display: block;
  font-size: .9rem;
  color: #475569;
}

.home-page .agenda-location {
  margin-top: 4px;
  font-weight: 800;
}

@media (max-width: 1050px) {
  .home-page #actusContainer {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .home-page .actu-card-featured {
    grid-column: span 2;
  }

  .home-page #agendaContainer {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  .home-page .home-section-head {
    align-items: flex-start;
    flex-direction: column;
  }

  .home-page #actusContainer,
  .home-page #agendaContainer {
    grid-template-columns: 1fr !important;
  }

  .home-page .actu-card-featured {
    grid-column: auto;
  }

  .home-page .actu-card .card-img,
  .home-page .actu-card-featured .card-img {
    height: 210px !important;
  }
}

/* === PATCH RESTAURATION SLIDER ACTUALITÉS === */
.home-page #actusContainer {
  display: flex !important;
  gap: 22px !important;
  overflow-x: auto !important;
  overflow-y: hidden !important;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  padding: 4px 4px 18px;
  -webkit-overflow-scrolling: touch;
}

.home-page #actusContainer::-webkit-scrollbar {
  height: 9px;
}

.home-page #actusContainer::-webkit-scrollbar-thumb {
  background: rgba(47, 111, 159, .35);
  border-radius: 999px;
}

.home-page #actusContainer::-webkit-scrollbar-track {
  background: rgba(47, 111, 159, .08);
  border-radius: 999px;
}

.home-page #actusContainer .actu-card {
  flex: 0 0 min(360px, 82vw) !important;
  scroll-snap-align: start;
}

.home-page #actusContainer .actu-card-featured {
  flex-basis: min(520px, 88vw) !important;
  grid-column: auto !important;
}

.home-page #actusContainer .actu-card .card-img {
  height: 230px !important;
}

.home-page #actusContainer .actu-card-featured .card-img {
  height: 270px !important;
}

@media (max-width: 700px) {
  .home-page #actusContainer {
    gap: 16px !important;
    padding-bottom: 14px;
  }

  .home-page #actusContainer .actu-card,
  .home-page #actusContainer .actu-card-featured {
    flex-basis: 84vw !important;
  }

  .home-page #actusContainer .actu-card .card-img,
  .home-page #actusContainer .actu-card-featured .card-img {
    height: 205px !important;
  }
}


/* === PATCH INDICE DEFILEMENT ACTUALITES === */
.actus-scroll-hint {
  margin-top: -6px;
  margin-bottom: 18px;
  text-align: right;
  font-size: .9rem;
  font-weight: 800;
  color: #2f6f9f;
  opacity: .82;
}

.actus-scroll-hint span {
  display: inline-block;
  margin-left: 5px;
  animation: actusHintArrow 1.25s ease-in-out infinite;
}

@keyframes actusHintArrow {
  0%, 100% {
    transform: translateX(0);
  }
  50% {
    transform: translateX(5px);
  }
}

@media (max-width: 700px) {
  .actus-scroll-hint {
    text-align: center;
    font-size: .85rem;
  }
}

/* === PATCH CONTROLES CARROUSEL ACTUALITES === */
.home-page #actusContainer {
  cursor: grab;
  user-select: none;
}

.home-page #actusContainer.is-dragging {
  cursor: grabbing;
  scroll-behavior: auto !important;
}


.actus-carousel-controls {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 10px;
  margin: -4px 0 20px;
}

.actus-carousel-help {
  font-size: .9rem;
  font-weight: 800;
  color: #2f6f9f;
  opacity: .85;
}

.actus-carousel-btn {
  width: 38px;
  height: 38px;
  border: none;
  border-radius: 999px;
  background: #13233a;
  color: white;
  font-size: 1.2rem;
  font-weight: 900;
  cursor: pointer;
  box-shadow: 0 10px 22px rgba(15, 23, 42, .18);
  transition:
    transform .18s ease,
    opacity .18s ease,
    background .18s ease;
}

.actus-carousel-btn:hover {
  transform: translateY(-1px);
  background: #1f3554;
}

.actus-carousel-btn:disabled {
  opacity: .35;
  cursor: not-allowed;
  transform: none;
}

@media (max-width: 700px) {
  .actus-carousel-controls {
    justify-content: center;
    margin-top: 0;
  }

  .actus-carousel-help {
    font-size: .82rem;
  }

  .actus-carousel-btn {
    width: 36px;
    height: 36px;
  }
}


/* === PATCH HIDE OLD ACTUS SCROLL HINT === */
#actusScrollHint,
.actus-scroll-hint:not(.actus-carousel-help) {
  display: none !important;
}


/* === PATCH CARDS ACCUEIL CLIC STYLE === */

/* Les cards actualités restent cliquables */
.home-page #actusContainer .actu-card,
.home-page #actusContainer .actu-card *,
.home-page .card-clickable,
.home-page .card-clickable * {
  pointer-events: auto;
}

.home-page #actusContainer .actu-card {
  cursor: pointer;
}

/* Pendant le clic-glissé, on garde le curseur de déplacement sans tuer les liens */
.home-page #actusContainer.is-dragging {
  cursor: grabbing;
}

/* Informations importantes : texte plus lisible et centré */
.home-page .urgent-card {
  min-height: 150px;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  gap: 12px !important;
  padding: 22px 20px !important;
}

.home-page .urgent-icon {
  margin: 0 auto;
}

.home-page .urgent-content {
  width: 100%;
}

.home-page .urgent-content h3 {
  font-size: clamp(1.08rem, 1.4vw, 1.28rem) !important;
  line-height: 1.25 !important;
  text-align: center !important;
}

.home-page .urgent-text {
  font-size: clamp(.98rem, 1.1vw, 1.08rem) !important;
  line-height: 1.6 !important;
  text-align: center !important;
}

/* Actualités : texte plus grand, centré horizontalement et verticalement dans la zone texte */
.home-page .actu-card .card-content {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  min-height: 210px;
}

.home-page .actu-card h3 {
  font-size: clamp(1.12rem, 1.45vw, 1.35rem) !important;
  line-height: 1.25 !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.home-page .actu-card .actu-excerpt {
  font-size: clamp(.98rem, 1.08vw, 1.08rem) !important;
  line-height: 1.62 !important;
  text-align: center !important;
  margin-left: auto !important;
  margin-right: auto !important;
  max-width: 92%;
}

.home-page .actu-card .actu-date {
  text-align: center !important;
  font-size: .92rem !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.home-page .read-more-inline {
  display: inline-block;
  margin-left: 4px;
  font-weight: 900 !important;
}

@media (max-width: 700px) {
  .home-page .urgent-card {
    min-height: 130px;
  }

  .home-page .actu-card .card-content {
    min-height: 185px;
  }
}


/* === PATCH FINITIONS ARTICLE PUBLIC === */
.article-layout {
  max-width: 1280px;
  margin: 0 auto;
}

.article-card {
  border: 1px solid rgba(15, 23, 42, .08);
  box-shadow: 0 18px 50px rgba(15, 23, 42, .08) !important;
}

.article-text {
  font-size: clamp(1.03rem, 1.05vw, 1.16rem) !important;
  line-height: 1.9 !important;
}

.article-text > p:first-child {
  font-size: clamp(1.08rem, 1.18vw, 1.24rem);
  line-height: 1.85;
}

.article-text h2,
.article-text h3 {
  color: #13233a !important;
  letter-spacing: -0.02em;
}

.article-text blockquote {
  margin: 28px 0;
  padding: 18px 22px;
  border-left: 5px solid #2f6f9f;
  border-radius: 14px;
  background: #f8fafc;
  color: #334155;
  font-weight: 600;
}

.article-text img {
  display: block;
  max-width: min(100%, 920px) !important;
  height: auto !important;
  margin: 32px auto !important;
  border-radius: 22px !important;
  box-shadow: 0 18px 42px rgba(15, 23, 42, .12);
}

.article-text .cms-document-link,
.article-card .cms-document-link {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 46px;
  padding: 12px 16px !important;
  margin: 8px 0;
  border-radius: 999px !important;
  background: linear-gradient(135deg, #13233a, #2f6f9f) !important;
  border: none !important;
  color: #fff !important;
  box-shadow: 0 12px 26px rgba(15, 23, 42, .18);
}

.article-text .cms-document-link:hover,
.article-card .cms-document-link:hover {
  transform: translateY(-1px);
  text-decoration: none !important;
}

.article-event {
  margin-bottom: 28px;
  padding: 16px 18px;
  border-radius: 18px;
  background: #eef6ff;
  border: 1px solid rgba(47,111,159,.22);
  color: #183b5b;
  font-weight: 700;
}

.article-actions {
  justify-content: center;
}

.article-actions .btn,
.article-actions .btn:visited {
  min-height: 44px;
  padding: 12px 18px;
  border-radius: 999px;
  font-weight: 900;
  text-decoration: none;
}

.article-back-primary,
.article-back-primary:visited {
  background: #13233a !important;
  color: #fff !important;
}

.article-back-secondary,
.article-back-secondary:visited {
  background: #eef2f7 !important;
  color: #13233a !important;
}

.sidebar-block {
  border: 1px solid rgba(15,23,42,.08);
  box-shadow: 0 14px 34px rgba(15,23,42,.06);
}

.sidebar-card {
  align-items: center;
  border-radius: 18px !important;
  color: inherit !important;
  text-decoration: none !important;
}

.sidebar-card p strong {
  display: inline-block;
  margin-left: 4px;
  color: #2f6f9f;
  text-decoration: underline;
  text-underline-offset: 3px;
}

@media (max-width: 900px) {
  .article-layout {
    padding: 34px 18px 60px !important;
  }

  .article-card {
    padding: 28px 22px !important;
    border-radius: 22px !important;
  }

  .article-sidebar {
    margin-top: 0;
  }
}


/* === PATCH LOGIN CLEAN CSS === */
body.admin-logged-out #login {
  display: grid !important;
}

body.admin-logged-out #app {
  display: none !important;
}

body.admin-logged-out #adminLoginButton {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}


/* === PATCH MOBILE MENU LABEL AND AGENDA STATIC V2 === */
.burger {
  align-items: center;
}

.burger-label {
  display: none;
  font-size: 9px;
  line-height: 1;
  letter-spacing: .12em;
  font-weight: 900;
  color: #334155;
  margin-bottom: 2px;
}

@media (max-width: 900px) {
  .burger {
    display: flex !important;
    align-items: center;
    justify-content: center;
    gap: 4px;
    min-width: 42px;
    padding: 4px 2px;
  }

  .burger-label {
    display: block;
  }

  .nav.active {
    display: flex !important;
  }

  .nav a {
    width: 100%;
  }
}

.agenda-page-event {
  cursor: default;
}

.agenda-page-event .agenda-read-more {
  display: inline-block;
  margin-top: 8px;
  font-weight: 900;
  text-decoration: underline;
  text-underline-offset: 3px;
}


/* === PATCH AGENDA COLLECTES 2026 === */
.collections-toggle {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  margin-top: 10px;
  font-size: .88rem;
  font-weight: 800;
  color: #334155;
  cursor: pointer;
  user-select: none;
}

.collections-toggle input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.collections-toggle-ui {
  width: 42px;
  height: 24px;
  border-radius: 999px;
  background: #94a3b8;
  position: relative;
  flex: 0 0 auto;
  transition: background .2s ease;
}

.collections-toggle-ui::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  left: 3px;
  top: 3px;
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 2px 8px rgba(15,23,42,.25);
  transition: transform .2s ease;
}

.collections-toggle input:checked + .collections-toggle-ui {
  background: #16a34a;
}

.collections-toggle input:checked + .collections-toggle-ui::after {
  transform: translateX(18px);
}

.agenda-calendar-day.collection-tri {
  background: #f8e71c !important;
  color: #1f2937 !important;
  border-color: rgba(161, 98, 7, .55) !important;
}

.agenda-calendar-day.collection-dm {
  background: #7c7c7c !important;
  color: #fff !important;
  border-color: rgba(75,85,99,.55) !important;
}

.agenda-calendar-day.collection-dm-green {
  background: linear-gradient(90deg, #7c7c7c 0 50%, #10b15a 50% 100%) !important;
  color: #fff !important;
  border-color: rgba(22,101,52,.55) !important;
}

.agenda-calendar-day.collection-tri.today,
.agenda-calendar-day.collection-dm.today,
.agenda-calendar-day.collection-dm-green.today {
  outline: 3px solid rgba(15, 23, 42, .38);
  outline-offset: 2px;
}

.agenda-calendar-day .collection-dot {
  position: absolute;
  right: 3px;
  bottom: 3px;
  min-width: 15px;
  height: 15px;
  padding: 0 4px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: rgba(255,255,255,.92);
  color: #0f172a;
  font-size: 10px;
  font-weight: 900;
}

.agenda-collection-event {
  cursor: default;
  border-left: 6px solid #94a3b8;
}

.agenda-collection-event:hover {
  transform: none !important;
}

.agenda-collection-event.collection-card-selective {
  border-left-color: #f8e71c;
  background: linear-gradient(135deg, rgba(248,231,28,.22), #fff);
}

.agenda-collection-event.collection-card-household {
  border-left-color: #7c7c7c;
  background: linear-gradient(135deg, rgba(124,124,124,.18), #fff);
}

.agenda-collection-event.collection-card-household-green {
  border-left-color: #10b15a;
  background: linear-gradient(135deg, rgba(124,124,124,.16), rgba(16,177,90,.14), #fff);
}

.agenda-collection-event .agenda-page-date {
  box-shadow: none;
}

@media (max-width: 760px) {
  .collections-toggle {
    width: 100%;
    justify-content: flex-start;
  }
}


/* === PATCH COLLECTES TOGGLE DESKTOP VISIBLE === */
.agenda-list-top {
  align-items: flex-start;
}

.collections-toggle-wrap {
  width: 100%;
  display: flex !important;
  justify-content: flex-end;
  margin-top: 10px;
  grid-column: 1 / -1;
}

.collections-toggle {
  display: inline-flex !important;
  visibility: visible !important;
  opacity: 1 !important;
  align-items: center;
  gap: 9px;
  padding: 8px 12px;
  border: 1px solid rgba(148, 163, 184, .45);
  border-radius: 999px;
  background: #fff;
  box-shadow: 0 8px 20px rgba(15, 23, 42, .06);
}

.collections-toggle span:last-child {
  white-space: nowrap;
}

@media (max-width: 760px) {
  .collections-toggle-wrap {
    justify-content: flex-start;
  }

  .collections-toggle {
    width: 100%;
    justify-content: flex-start;
    border-radius: 16px;
  }

  .collections-toggle span:last-child {
    white-space: normal;
  }
}

/* === PATCH ALIGNEMENT TOGGLE COLLECTES === */
.agenda-list-top {
  display: grid !important;
  grid-template-columns: minmax(220px, 1fr) auto !important;
  align-items: start !important;
  gap: 16px 22px !important;
}

.agenda-filter-buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: flex-end !important;
  align-items: center !important;
  gap: 10px !important;
}

.collections-toggle-wrap {
  grid-column: 2 !important;
  width: auto !important;
  display: flex !important;
  justify-content: flex-end !important;
  margin-top: 0 !important;
}

.collections-toggle {
  margin: 0 !important;
  min-height: 42px;
}

@media (max-width: 1050px) {
  .agenda-list-top {
    grid-template-columns: 1fr !important;
  }

  .agenda-filter-buttons {
    justify-content: flex-start !important;
  }

  .collections-toggle-wrap {
    grid-column: 1 !important;
    justify-content: flex-start !important;
  }
}

@media (max-width: 640px) {
  .agenda-filter-buttons {
    width: 100%;
  }

  .agenda-filter-buttons .agenda-filter {
    flex: 1 1 auto;
  }

  .collections-toggle {
    width: 100%;
    justify-content: flex-start;
  }
}


/* === PATCH COLLECTES TOGGLE SAME ROW === */
.agenda-list-top {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 22px !important;
}

.agenda-filter-buttons {
  display: flex !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 10px !important;
  max-width: 520px;
}

.collections-toggle-wrap {
  display: none !important;
}

.collections-toggle-inline {
  display: flex !important;
  align-items: center !important;
}

.collections-toggle-inline .collections-toggle {
  margin: 0 !important;
  min-height: 38px !important;
  padding: 7px 12px !important;
  white-space: nowrap !important;
}

@media (max-width: 1150px) {
  .agenda-list-top {
    flex-direction: column !important;
    align-items: stretch !important;
  }

  .agenda-filter-buttons {
    justify-content: flex-start !important;
    max-width: none !important;
  }
}

@media (max-width: 680px) {
  .agenda-filter-buttons {
    width: 100%;
  }

  .agenda-filter-buttons .agenda-filter {
    flex: 1 1 auto;
  }

  .collections-toggle-inline {
    width: 100%;
  }

  .collections-toggle-inline .collections-toggle {
    width: 100%;
    justify-content: flex-start;
    white-space: normal !important;
  }
}



/* === PATCH HEADER MENU ET ABONNEMENTS V1 === */
.nav-more {
  position: relative;
  display: inline-flex;
  align-items: center;
}

.nav-more-toggle {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  border: 0;
  background: transparent;
  color: #222;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
  padding: 8px 2px;
}

.nav-more-toggle span {
  font-size: 1.1em;
  line-height: 1;
  transition: transform .18s ease;
}

.nav-more.open .nav-more-toggle span,
.nav-more:hover .nav-more-toggle span,
.nav-more:focus-within .nav-more-toggle span {
  transform: rotate(90deg);
}

.nav-more-menu {
  position: absolute;
  top: calc(100% + 14px);
  right: 0;
  min-width: 240px;
  display: none;
  grid-template-columns: 1fr;
  gap: 4px;
  padding: 10px;
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 45px rgba(15,23,42,.16);
  z-index: 100000;
}

.nav-more.open .nav-more-menu,
.nav-more:hover .nav-more-menu,
.nav-more:focus-within .nav-more-menu {
  display: grid;
}

.nav-more-menu a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border-radius: 12px;
  color: #172033;
  font-weight: 700;
}

.nav-more-menu a:hover {
  background: #f1f5f9;
  color: #006eb8;
}

.nav-more-menu .nav-disabled {
  color: #94a3b8 !important;
  cursor: not-allowed;
}

.nav-more-menu .nav-disabled small {
  font-size: .72rem;
  font-weight: 800;
  color: #94a3b8;
}

.alert-subscription-page {
  background:
    radial-gradient(circle at top left, rgba(0,119,204,.12), transparent 34rem),
    #f4f6f9;
}

.subscription-hero {
  padding: 38px 0 18px;
}

.subscription-panel {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(300px, .95fr);
  gap: 24px;
  align-items: start;
}

.subscription-card,
.subscription-info-card {
  background: #fff;
  border: 1px solid rgba(15,23,42,.08);
  border-radius: 24px;
  padding: 24px;
  box-shadow: 0 18px 42px rgba(15,23,42,.08);
}

.subscription-card h1,
.subscription-info-card h2 {
  color: #003366;
  line-height: 1.15;
  margin-bottom: 10px;
}

.subscription-lead {
  color: #536273;
  margin-bottom: 20px;
}

.subscription-form {
  display: grid;
  gap: 16px;
}

.subscription-field label,
.subscription-options-title {
  display: block;
  margin-bottom: 7px;
  font-weight: 800;
  color: #172033;
}

.subscription-field input[type="text"],
.subscription-field input[type="email"] {
  width: 100%;
  border: 1px solid #cbd5e1;
  border-radius: 14px;
  padding: 12px 14px;
  font: inherit;
  background: #fff;
}

.subscription-option {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 14px;
  border: 1px solid #e2e8f0;
  border-radius: 16px;
  background: #f8fafc;
  cursor: pointer;
}

.subscription-option strong {
  display: block;
  color: #0f172a;
}

.subscription-option span {
  display: block;
  margin-top: 2px;
  color: #64748b;
  font-size: .92rem;
}

.subscription-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.subscription-status {
  min-height: 1.4em;
  font-weight: 800;
}

.subscription-status.ok {
  color: #15803d;
}

.subscription-status.error {
  color: #b91c1c;
}

.subscription-info-list {
  display: grid;
  gap: 12px;
  margin-top: 16px;
}

.subscription-info-list div {
  padding: 14px;
  background: #f8fafc;
  border-radius: 16px;
  border: 1px solid #e2e8f0;
}

.subscription-info-list strong {
  display: block;
  color: #003366;
}

.hp-field {
  display: none !important;
}

@media (max-width: 900px) {
  .nav-more {
    width: 100%;
    display: block;
  }

  .nav-more-toggle {
    display: none !important;
  }

  .nav-more-menu {
    position: static;
    display: grid !important;
    min-width: 0;
    width: 100%;
    padding: 0;
    border: 0;
    box-shadow: none;
    background: transparent;
  }

  .nav-more-menu a {
    padding: 0;
    border-radius: 0;
  }

  .nav-more-menu a:hover {
    background: transparent;
  }

  .nav-more-menu .nav-disabled small {
    margin-left: 6px;
  }

  .subscription-panel {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 520px) {
  .subscription-card,
  .subscription-info-card {
    padding: 19px;
    border-radius: 20px;
  }

  .subscription-actions .btn {
    width: 100%;
  }
}


/* === FIX MENU HEADER DROPDOWN VISIBLE 20260516 === */
/*
   Le header avait overflow:hidden. Le menu déroulant était bien présent,
   mais coupé par la hauteur du header : résultat visible côté utilisateur,
   le bouton "Menu" semblait ne rien faire.
*/
.main-header {
  overflow: visible !important;
  z-index: 100000 !important;
}

.header-container,
.logo-area,
.nav,
.nav-more {
  overflow: visible !important;
}

.nav-more {
  position: relative !important;
}

.nav-more-toggle {
  appearance: none;
  -webkit-appearance: none;
}

.nav-more-menu {
  position: absolute !important;
  top: calc(100% + 14px) !important;
  right: 0 !important;
  min-width: 260px !important;
  z-index: 100001 !important;
  pointer-events: auto;
}

.nav-more.open .nav-more-menu,
.nav-more:hover .nav-more-menu,
.nav-more:focus-within .nav-more-menu {
  display: grid !important;
}

/* Petit pont invisible entre le bouton et le panneau : évite que le menu
   se referme quand la souris descend du bouton vers la liste. */
.nav-more::after {
  content: '';
  position: absolute;
  left: -10px;
  right: -10px;
  top: 100%;
  height: 18px;
}

@media (max-width: 900px) {
  .main-header {
    overflow: visible !important;
  }

  .nav-more::after {
    display: none;
  }

  .nav-more-menu {
    position: static !important;
    min-width: 0 !important;
    z-index: auto !important;
  }
}


/* === PATCH MENU PC TOUT DANS MENU 20260516 === */
/*
   Version PC : aucun lien de navigation ne sort du bouton Menu.
   Ordre demandé : Accueil, Documents, Démarches, Mairie, Salle des fêtes,
   École, Comité des fêtes, Associations, Abonnements, Agenda, Contact.
*/
.nav.nav-desktop-menu-only {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
  overflow: visible !important;
}

.nav-desktop-menu-only .nav-all-menu {
  position: relative !important;
  display: inline-flex;
  align-items: center;
  overflow: visible !important;
}

.nav-desktop-menu-only .nav-more-toggle {
  display: inline-flex !important;
  align-items: center;
  gap: 5px;
  border: 0;
  background: transparent;
  color: #222;
  font: inherit;
  font-weight: 800;
  cursor: pointer;
  padding: 8px 2px;
}

.nav-desktop-menu-only .nav-more-toggle span {
  font-size: 1.1em;
  line-height: 1;
  transition: transform .18s ease;
}

.nav-desktop-menu-only .nav-more.open .nav-more-toggle span,
.nav-desktop-menu-only .nav-more:hover .nav-more-toggle span,
.nav-desktop-menu-only .nav-more:focus-within .nav-more-toggle span {
  transform: rotate(90deg);
}

.nav-desktop-menu-only .nav-more-menu {
  position: absolute !important;
  top: calc(100% + 14px) !important;
  right: 0 !important;
  left: auto !important;
  min-width: 285px !important;
  display: none;
  grid-template-columns: 1fr;
  gap: 4px;
  padding: 10px;
  border: 1px solid rgba(15,23,42,.10);
  border-radius: 18px;
  background: rgba(255,255,255,.98);
  box-shadow: 0 18px 38px rgba(15,23,42,.16);
  z-index: 100001 !important;
}

.nav-desktop-menu-only .nav-more.open .nav-more-menu,
.nav-desktop-menu-only .nav-more:hover .nav-more-menu,
.nav-desktop-menu-only .nav-more:focus-within .nav-more-menu {
  display: grid !important;
}

.nav-desktop-menu-only .nav-more-menu a {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  padding: 10px 12px;
  border-radius: 12px;
  color: #082f63;
  text-decoration: none;
  font-weight: 700;
  white-space: nowrap;
}

.nav-desktop-menu-only .nav-more-menu a:hover {
  background: #eff6ff;
  color: #003b7a;
}

.nav-desktop-menu-only .nav-more-menu .nav-disabled {
  opacity: .58;
  cursor: not-allowed;
}

.nav-desktop-menu-only .nav-more-menu .nav-disabled small {
  font-size: .75rem;
  font-weight: 800;
  color: #64748b;
}

.nav-desktop-menu-only .nav-menu-contact {
  margin-top: 4px;
  background: #003b7a;
  color: #fff !important;
  justify-content: center !important;
  box-shadow: 0 8px 20px rgba(0,59,122,.18);
}

.nav-desktop-menu-only .nav-menu-contact:hover {
  background: #002f61 !important;
  color: #fff !important;
}

/* Pont invisible entre le bouton et le panneau : évite la fermeture en descendant la souris. */
.nav-desktop-menu-only .nav-all-menu::after {
  content: '';
  position: absolute;
  left: -10px;
  right: -10px;
  top: 100%;
  height: 18px;
}

@media (max-width: 900px) {
  /* Mobile : le burger principal reste le vrai bouton MENU.
     Une fois ouvert, on affiche directement la liste complète, sans second bouton Menu. */
  .nav.nav-desktop-menu-only {
    justify-content: stretch;
  }

  .nav-desktop-menu-only .nav-all-menu {
    display: block !important;
    width: 100%;
  }

  .nav-desktop-menu-only .nav-more-toggle {
    display: none !important;
  }

  .nav-desktop-menu-only .nav-all-menu::after {
    display: none !important;
  }

  .nav-desktop-menu-only .nav-more-menu {
    position: static !important;
    display: grid !important;
    min-width: 0 !important;
    width: 100% !important;
    padding: 8px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    z-index: auto !important;
  }

  .nav-desktop-menu-only .nav-more-menu a {
    padding: 12px 16px !important;
    border-radius: 12px !important;
    background: rgba(255,255,255,.92);
  }

  .nav-desktop-menu-only .nav-more-menu .nav-disabled {
    background: rgba(255,255,255,.64) !important;
  }

  .nav-desktop-menu-only .nav-menu-contact {
    background: #003b7a !important;
  }
}



/* Patch abonnements + notifications push 20260516 */
.subscription-page-hero{min-height:280px;display:flex;align-items:center;background:linear-gradient(135deg,rgba(6,54,98,.92),rgba(14,116,144,.78)),url('projet.png') center/cover no-repeat;color:#fff;margin-bottom:0}.subscription-page-hero .page-hero-content{max-width:820px;padding:58px 0}.subscription-page-hero .eyebrow{display:inline-flex;padding:7px 12px;border-radius:999px;background:rgba(255,255,255,.16);font-size:13px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px}.subscription-page-hero h1{margin:0 0 12px;font-size:clamp(34px,5vw,58px);line-height:1.05}.subscription-page-hero p{max-width:760px;font-size:clamp(16px,2vw,20px);line-height:1.65;opacity:.95}.subscription-hero-after-banner{padding-top:38px}.subscription-card h2,.subscription-info-card h2{color:var(--primary-color,#063662);margin-top:0}.subscription-management-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);gap:22px;margin-top:22px}.push-card{position:relative;overflow:hidden}.push-device-box{display:grid;gap:5px;padding:14px 16px;border:1px solid #dbeafe;background:#eff6ff;color:#0f172a;border-radius:18px;margin:16px 0}.push-device-box strong{color:#075985}.push-actions{align-items:stretch}.btn.secondary{background:#e2e8f0;color:#0f172a}.btn.secondary:hover{background:#cbd5e1}.mini-note{margin-top:10px;color:#64748b;font-size:13px;line-height:1.5}.hp-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}@media(max-width:900px){.subscription-management-grid{grid-template-columns:1fr}.subscription-page-hero .page-hero-content{padding:42px 0}}

/* === FIX MENU MOBILE HEADER FERMETURE 20260516 === */
/*
   Après le passage en "tout dans Menu", la règle desktop
   .nav.nav-desktop-menu-only { display:flex; } restait plus forte que
   l'ancienne règle mobile .nav { display:none; }.
   Résultat : sur téléphone, la liste du menu restait ouverte en pleine page.

   Ce bloc force le comportement attendu :
   - fermé par défaut sur mobile ;
   - ouvert uniquement quand le burger ajoute .active ;
   - fermeture propre au clic sur un lien ou hors menu via weather-header.js.
*/
@media (max-width: 900px) {
  .nav.nav-desktop-menu-only {
    display: none !important;
    width: 100% !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 0 !important;
    margin-left: 0 !important;
    padding-top: 12px !important;
  }

  .nav.nav-desktop-menu-only.active {
    display: flex !important;
  }

  .nav.nav-desktop-menu-only .nav-all-menu {
    display: block !important;
    width: 100% !important;
  }

  .nav.nav-desktop-menu-only .nav-more-menu {
    display: grid !important;
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    padding: 8px 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }

  .nav.nav-desktop-menu-only .nav-more-menu a {
    width: 100% !important;
  }

  body.mobile-menu-open {
    overflow: hidden;
  }
}

/* === PATCH MENU MOBILE ADAPTATIF 20260516 ===
   Menu mobile fermé par défaut, scrollable quand il est ouvert,
   compatible petits écrans, polices agrandies, iPhone safe-area et orientation paysage.
*/
@media (max-width: 900px) {
  html.nav-open,
  body.nav-open {
    overflow: hidden !important;
    touch-action: none;
  }

  .main-header,
  .site-header,
  .header,
  .header-container,
  .logo-area {
    overflow: visible !important;
  }

  .nav.nav-desktop-menu-only,
  .nav {
    display: none !important;
  }

  .nav.nav-desktop-menu-only.active,
  .nav.active {
    display: block !important;
    position: fixed !important;
    left: max(10px, env(safe-area-inset-left)) !important;
    right: max(10px, env(safe-area-inset-right)) !important;
    top: calc(var(--mobile-header-offset, 84px) + env(safe-area-inset-top)) !important;
    width: auto !important;
    max-width: 520px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    max-height: calc(100dvh - var(--mobile-header-offset, 84px) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 16px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain !important;
    -webkit-overflow-scrolling: touch;
    padding: clamp(8px, 2.4vw, 14px) !important;
    padding-bottom: calc(clamp(12px, 3vw, 18px) + env(safe-area-inset-bottom)) !important;
    border: 1px solid rgba(15, 23, 42, .10) !important;
    border-radius: clamp(16px, 4vw, 24px) !important;
    background: rgba(255, 255, 255, .98) !important;
    box-shadow: 0 22px 60px rgba(15, 23, 42, .24) !important;
    z-index: 100000 !important;
  }

  .nav-desktop-menu-only .nav-all-menu,
  .nav.active .nav-all-menu {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    overflow: visible !important;
  }

  .nav-desktop-menu-only .nav-more-toggle,
  .nav.active .nav-more-toggle {
    display: none !important;
  }

  .nav-desktop-menu-only .nav-all-menu::after,
  .nav.active .nav-all-menu::after {
    display: none !important;
  }

  .nav-desktop-menu-only .nav-more-menu,
  .nav.active .nav-more-menu,
  .nav-more-menu.nav-all-menu-list {
    position: static !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: clamp(5px, 1.3vw, 8px) !important;
    width: 100% !important;
    min-width: 0 !important;
    max-height: none !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
  }

  .nav-desktop-menu-only .nav-more-menu a,
  .nav.active .nav-more-menu a {
    min-height: 42px !important;
    padding: clamp(9px, 2.2vw, 12px) clamp(12px, 3.4vw, 16px) !important;
    border-radius: 14px !important;
    background: #f8fafc !important;
    color: #082f63 !important;
    font-size: clamp(14px, 3.7vw, 16px) !important;
    line-height: 1.2 !important;
    white-space: normal !important;
    word-break: normal !important;
  }

  .nav-desktop-menu-only .nav-more-menu a:hover,
  .nav.active .nav-more-menu a:hover,
  .nav-desktop-menu-only .nav-more-menu a:focus-visible,
  .nav.active .nav-more-menu a:focus-visible {
    background: #eff6ff !important;
  }

  .nav-desktop-menu-only .nav-more-menu .nav-disabled,
  .nav.active .nav-more-menu .nav-disabled {
    background: #f1f5f9 !important;
    opacity: .70 !important;
  }

  .nav-desktop-menu-only .nav-more-menu .nav-disabled small,
  .nav.active .nav-more-menu .nav-disabled small {
    flex: 0 0 auto;
    font-size: .74em !important;
  }

  .nav-desktop-menu-only .nav-menu-contact,
  .nav.active .nav-menu-contact {
    margin-top: 4px !important;
    background: #003b7a !important;
    color: #fff !important;
    justify-content: center !important;
  }
}

@media (max-width: 390px) {
  .nav.nav-desktop-menu-only.active,
  .nav.active {
    top: calc(var(--mobile-header-offset, 76px) + env(safe-area-inset-top)) !important;
    max-height: calc(100dvh - var(--mobile-header-offset, 76px) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 10px) !important;
    padding: 8px !important;
  }

  .nav-desktop-menu-only .nav-more-menu,
  .nav.active .nav-more-menu {
    gap: 5px !important;
  }

  .nav-desktop-menu-only .nav-more-menu a,
  .nav.active .nav-more-menu a {
    min-height: 38px !important;
    padding: 8px 11px !important;
    font-size: 14px !important;
  }
}

@media (max-height: 700px) and (max-width: 900px) {
  .nav.nav-desktop-menu-only.active,
  .nav.active {
    top: calc(var(--mobile-header-offset, 70px) + env(safe-area-inset-top)) !important;
    max-height: calc(100dvh - var(--mobile-header-offset, 70px) - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 8px) !important;
  }

  .nav-desktop-menu-only .nav-more-menu a,
  .nav.active .nav-more-menu a {
    min-height: 36px !important;
    padding-top: 7px !important;
    padding-bottom: 7px !important;
  }
}



/* === PATCH ASSOCIATIONS LOT 1 : pages vitrines publiques === */
.org-directory-hero,.org-hero{max-width:1180px;margin:28px auto 18px;padding:38px 26px;border-radius:28px;color:#fff;background:linear-gradient(135deg,var(--org-color,#0f4c81),#123b63);box-shadow:0 18px 45px rgba(15,23,42,.18);overflow:hidden}.org-directory-hero span,.org-hero span{display:inline-block;text-transform:uppercase;letter-spacing:.08em;font-size:13px;font-weight:800;opacity:.82;margin-bottom:8px}.org-directory-hero h1,.org-hero h1{margin:0 0 10px;font-size:clamp(32px,5vw,54px);line-height:1.05}.org-directory-hero p,.org-hero p{max-width:780px;margin:0;font-size:18px;line-height:1.65;opacity:.94}.org-hero{display:grid;grid-template-columns:minmax(0,340px) 1fr;gap:24px;align-items:center}.org-hero img{width:100%;height:240px;object-fit:cover;border-radius:22px;box-shadow:0 16px 32px rgba(0,0,0,.22)}.org-public-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:18px}.org-public-card{background:#fff;border:1px solid rgba(15,23,42,.09);border-radius:22px;padding:20px;box-shadow:0 12px 28px rgba(15,23,42,.08)}.org-public-card h2{margin:0 0 8px;color:#0f172a}.org-public-card p{color:#475569;line-height:1.55}.org-public-card .btn{display:inline-block;margin-top:8px;background:#0f172a;color:#fff;text-decoration:none;padding:11px 14px;border-radius:13px;font-weight:800}.org-content{max-width:980px;margin:0 auto 32px;background:#fff;border-radius:24px;padding:24px;box-shadow:0 12px 28px rgba(15,23,42,.08)}@media(max-width:760px){.org-directory-hero,.org-hero{margin:14px 12px;padding:26px 18px;border-radius:22px}.org-hero{grid-template-columns:1fr}.org-hero img{height:190px}.org-directory-hero p,.org-hero p{font-size:16px}.org-content{margin:0 12px 24px;padding:18px}}



/* === PATCH ASSOCIATIONS LOT 2 VITRINES === */
.org-directory-hero{background:linear-gradient(135deg,#0f4c81,#123c69);color:#fff;min-height:260px;display:flex;align-items:center;border-radius:0 0 34px 34px;padding:56px 7vw}.org-directory-hero span,.org-hero span{display:inline-block;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:800;opacity:.88}.org-directory-hero h1,.org-hero h1{font-size:clamp(2rem,5vw,4.4rem);margin:.25em 0}.org-directory-hero p,.org-hero p{max-width:760px;font-size:clamp(1rem,2vw,1.25rem);line-height:1.55}.org-directory-section{padding:36px 7vw}.section-heading-row{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:18px}.org-public-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.org-public-card{background:#fff;border:1px solid #dbe3ef;border-radius:24px;box-shadow:0 16px 38px rgba(15,23,42,.08);overflow:hidden;display:flex;flex-direction:column;min-height:250px}.org-card-image{width:100%;height:170px;object-fit:cover;background:#dbeafe}.org-card-body{padding:20px;display:flex;flex-direction:column;gap:10px;flex:1}.org-card-kicker{color:#0f4c81;font-weight:900;text-transform:uppercase;letter-spacing:.09em;font-size:.76rem}.org-public-card h2{margin:0;font-size:1.35rem}.org-public-card p{color:#475569;line-height:1.55;flex:1}.org-public-card .btn{align-self:flex-start;background:#0f172a;color:#fff;text-decoration:none;border-radius:999px;padding:10px 15px;font-weight:800}.org-hero{position:relative;min-height:360px;background:var(--org-color,#0f4c81);color:#fff;display:flex;align-items:end;padding:72px 7vw;border-radius:0 0 36px 36px;overflow:hidden}.org-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(15,23,42,.72),rgba(15,23,42,.24));z-index:1}.org-hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}.org-hero-content{position:relative;z-index:2;max-width:850px}.org-page-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;padding:36px 7vw}.org-content-card,.org-contact-card{background:#fff;border:1px solid #dbe3ef;border-radius:24px;box-shadow:0 16px 38px rgba(15,23,42,.07);padding:24px}.org-rich-content{line-height:1.7;color:#1e293b}.org-rich-content img{max-width:100%;height:auto;border-radius:18px}.org-contact-card{height:max-content;position:sticky;top:18px}.org-contact-link{display:block;background:#f8fafc;border:1px solid #e2e8f0;border-radius:16px;padding:12px 14px;margin:9px 0;text-decoration:none;color:#0f172a;font-weight:800;word-break:break-word}.org-back-link{display:inline-block;margin-top:16px;color:#0f4c81;font-weight:800}.org-admin-preview{min-height:132px;border-radius:18px;padding:18px;color:#fff;background:#0f4c81;display:flex;flex-direction:column;justify-content:end;gap:4px;box-shadow:inset 0 0 0 1px #ffffff22}.org-admin-preview span{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:900;opacity:.9}.org-admin-preview strong{font-size:24px}.org-admin-preview p{margin:0;line-height:1.35}.org-editor-box{min-height:220px}.org-public-link-admin{display:inline-flex;align-items:center;text-decoration:none}.cms-role-organization .org-admin-only-fields{opacity:.62}.cms-role-organization #orgCancelEdit{display:none!important}@media(max-width:850px){.org-page-layout{grid-template-columns:1fr;padding:24px 18px}.org-contact-card{position:static}.org-hero{min-height:300px;padding:52px 22px}.org-directory-hero{padding:46px 22px}.org-directory-section{padding:28px 18px}.section-heading-row{display:block}}


/* === PATCH ASSOCIATIONS LOT 3 : actualités modérées === */
.org-post-notice{border:1px solid #bfdbfe;background:#eff6ff;color:#1e3a8a;border-radius:16px;padding:12px 14px;margin:10px 0;display:grid;gap:4px}.org-post-notice strong{font-weight:900}.org-post-meta{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.pill.mod-pending{background:#fef3c7;color:#92400e}.pill.mod-approved{background:#dcfce7;color:#166534}.pill.mod-rejected{background:#fee2e2;color:#991b1b}.org-news-section{grid-column:1/-1}.org-news-list{display:grid;gap:14px}.org-news-card{display:grid;grid-template-columns:180px 1fr;gap:16px;align-items:start;border:1px solid rgba(15,23,42,.12);border-radius:22px;padding:14px;background:#fff;box-shadow:0 10px 24px rgba(15,23,42,.06)}.org-news-card h3{margin:4px 0 8px}.org-news-card p{color:#475569}.org-news-image{width:100%;height:120px;object-fit:cover;border-radius:16px;background:#e2e8f0}.org-news-meta{display:flex;gap:8px;flex-wrap:wrap;color:#64748b;font-size:.9rem;font-weight:700}@media(max-width:700px){.org-news-card{grid-template-columns:1fr}.org-news-image{height:180px}}



/* === PATCH ASSOCIATIONS LOT 4B CONTACT ET MESSAGES === */
.org-contact-card .soft-sep{border:0;border-top:1px solid rgba(15,76,129,.14);margin:18px 0}
.org-contact-card h3{margin:0 0 10px;color:#0b3768;font-size:1.05rem}
.org-contact-form{display:grid;gap:10px;margin-top:8px}
.org-contact-form .field{display:grid;gap:5px;margin:0}
.org-contact-form label{font-weight:800;color:#0f2748;font-size:.9rem}
.org-contact-form input,.org-contact-form textarea{width:100%;border:1px solid #dbe5f2;border-radius:12px;padding:10px 12px;font:inherit;background:#fff;color:#0f172a}
.org-contact-form textarea{min-height:130px;resize:vertical}
.org-contact-form .btn{justify-self:start;border:0;cursor:pointer}
.org-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.org-empty-state{border:1px dashed #c8d7ea;background:#f8fbff;border-radius:18px;padding:18px;color:#526987}
.org-empty-state strong{display:block;color:#0b3768;margin-bottom:4px}
.org-news-section{min-height:180px}
.org-message-preview{max-width:420px;white-space:pre-wrap;line-height:1.45;color:#1f2a44}
.org-message-actions{display:flex;flex-wrap:wrap;gap:6px}
.org-messages-panel table td{vertical-align:top}
.pill.org-message-status-new{background:#fff7ed;color:#9a3412;border-color:#fed7aa}
.pill.org-message-status-processed{background:#ecfdf5;color:#047857;border-color:#a7f3d0}
.pill.org-message-status-archived{background:#f1f5f9;color:#475569;border-color:#cbd5e1}
.warn-text{color:#b45309!important}
@media (max-width: 760px){.org-message-preview{max-width:none}.org-messages-panel table{font-size:.88rem}.org-message-actions button{width:100%}}

/* === REPRISE ESTHETIQUE GLOBALE HEROS + ACTUS 20260516 ===
   Objectif : toutes les pages publiques ont le même gabarit de hero que l'accueil,
   sans perdre les photos de fond propres aux pages. Les anciennes règles massives
   documents/abonnements/meteo sont neutralisées ici.
*/
:root {
  --village-hero-padding-y: 45px;
  --village-hero-title-size: 36px;
  --village-hero-text-size: 18px;
  --village-hero-overlay: linear-gradient(rgba(0,51,102,.70), rgba(0,51,102,.70));
}

/* Gabarit unique : même hauteur visuelle que index.html. */
body .hero,
body .small-hero,
body .page-hero,
body .documents-hero,
body .agenda-page-hero,
body .subscription-page-hero,
body .org-directory-hero,
body .article-section-hero {
  min-height: 0 !important;
  height: auto !important;
  padding: var(--village-hero-padding-y) 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  color: #fff !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

body .hero > .container,
body .small-hero > .container,
body .page-hero > .container,
body .documents-hero > .container,
body .agenda-page-hero > .container,
body .subscription-page-hero > .container,
body .org-directory-hero > .container,
body .article-section-hero > .container {
  width: min(1100px, 90%) !important;
  max-width: 1100px !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

/* On garde les photos de fond. */
body .hero,
body .small-hero,
body .page-hero,
body .documents-hero,
body .agenda-page-hero,
body .org-directory-hero,
body .article-section-hero {
  background: var(--village-hero-overlay), url("images/mairie.jpg") center/cover no-repeat !important;
}

body .hero-mairie {
  background: var(--village-hero-overlay), url("images/mairie.jpg") center/cover no-repeat !important;
}

body .hero-ecole {
  background: var(--village-hero-overlay), url("images/ecole.jpg") center/cover no-repeat !important;
}

body .hero-sdf {
  background: var(--village-hero-overlay), url("images/salle/8.jpg") center/cover no-repeat !important;
}

body .subscription-page-hero {
  background: var(--village-hero-overlay), url("projet.png") center/cover no-repeat !important;
}

/* Les contenus internes ajoutés par certains patchs ne doivent plus regonfler le hero. */
.subscription-page-hero .page-hero-content,
.documents-page .documents-hero .container,
.agenda-page-hero .container {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  min-height: 0 !important;
}

body .hero h1,
body .hero h2,
body .small-hero h1,
body .small-hero h2,
body .page-hero h1,
body .documents-hero h1,
body .agenda-page-hero h1,
body .subscription-page-hero h1,
body .org-directory-hero h1,
body .article-section-hero h1 {
  margin: 0 0 10px !important;
  font-size: var(--village-hero-title-size) !important;
  line-height: 1.2 !important;
  letter-spacing: normal !important;
  color: #fff !important;
}

body .hero p,
body .small-hero p,
body .page-hero p,
body .documents-hero p,
body .agenda-page-hero p,
body .subscription-page-hero p,
body .org-directory-hero p,
body .article-section-hero p {
  margin: 0 auto !important;
  max-width: 760px !important;
  font-size: var(--village-hero-text-size) !important;
  line-height: 1.5 !important;
  color: rgba(255,255,255,.95) !important;
  opacity: .95 !important;
}

body .hero .eyebrow,
body .page-hero .eyebrow,
body .documents-hero .eyebrow,
body .subscription-page-hero .eyebrow,
body .org-directory-hero .eyebrow {
  display: inline-block !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(255,255,255,.86) !important;
  font-size: .78rem !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
}

/* Article : bandeau Actualités standard, cover réduite sous le bandeau. */
.article-body .article-section-hero {
  background: var(--village-hero-overlay), url("images/mairie.jpg") center/cover no-repeat !important;
}

.article-body .article-hero {
  min-height: var(--village-hero-padding-y) !important;
  height: auto !important;
  padding: var(--village-hero-padding-y) 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  color: #fff !important;
  background: var(--village-hero-overlay), url("images/mairie.jpg") center/cover no-repeat !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.article-body .article-hero-bg-blur,
.article-body .article-hero-main-image {
  display: none !important;
}

.article-body .article-hero-overlay {
  background: transparent !important;
}

.article-body .article-hero-content {
  width: min(1100px, 90%) !important;
  max-width: 1100px !important;
  margin: 0 auto !important;
  padding: 0 !important;
}

.article-body #articleHeroTitle {
  margin: 0 0 10px !important;
  font-size: var(--village-hero-title-size) !important;
  line-height: 1.2 !important;
  color: #fff !important;
}

.article-body .article-meta {
  margin: 0 !important;
  color: rgba(255,255,255,.92) !important;
}

.article-body .article-category {
  display: inline-block !important;
  margin: 0 0 8px !important;
  background: rgba(255,255,255,.16) !important;
  color: #fff !important;
}

.article-cover-below {
  width: min(980px, 90%) !important;
  margin: 24px auto 0 !important;
  border-radius: 22px !important;
  overflow: hidden !important;
  background: #e8eef6 !important;
  box-shadow: 0 14px 32px rgba(15,23,42,.12) !important;
}

.article-cover-below.is-hidden {
  display: none !important;
}

.article-cover-below-inner {
  width: 100% !important;
  height: clamp(190px, 26vw, 310px) !important;
  overflow: hidden !important;
  background: #dbe5f2 !important;
}

.article-cover-below img {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
  object-fit: cover !important;
  object-position: center center;
  transform-origin: center center !important;
}

.article-layout {
  margin-top: 24px !important;
  padding-top: 0 !important;
}

.article-detail-title {
  margin: 0 0 10px !important;
  color: #10243d !important;
  font-size: clamp(1.8rem, 3.5vw, 2.55rem) !important;
  line-height: 1.18 !important;
}

.article-detail-date {
  margin: 0 0 20px !important;
  color: #64748b !important;
  font-weight: 700 !important;
}

/* Accueil : cards actualités propres, images égales, texte respirant. */
.home-page #actusContainer {
  align-items: stretch !important;
  gap: 22px !important;
}

.home-page #actusContainer .actu-card,
.home-page #actusContainer .actu-card-featured {
  flex: 0 0 min(370px, 84vw) !important;
  display: flex !important;
  flex-direction: column !important;
  align-self: stretch !important;
  padding: 0 !important;
  overflow: hidden !important;
  border-radius: 22px !important;
  background: #fff !important;
  border: 1px solid rgba(15,23,42,.08) !important;
  box-shadow: 0 14px 34px rgba(15,23,42,.10) !important;
  text-decoration: none !important;
  color: inherit !important;
}

.home-page #actusContainer .actu-card .card-img,
.home-page #actusContainer .actu-card-featured .card-img,
.home-page #actusContainer .card-img {
  width: 100% !important;
  height: 205px !important;
  min-height: 205px !important;
  max-height: 205px !important;
  aspect-ratio: auto !important;
  object-fit: cover !important;
  object-position: center center;
  display: block !important;
  margin: 0 !important;
  border-radius: 0 !important;
  background: linear-gradient(135deg,#dbeafe,#f8fafc) !important;
  flex: 0 0 auto !important;
}

.home-page #actusContainer .card-content,
.home-page #actusContainer .actu-card .card-content,
.home-page #actusContainer .actu-card-featured .card-content {
  display: flex !important;
  flex-direction: column !important;
  gap: 10px !important;
  flex: 1 1 auto !important;
  padding: 18px 20px 20px !important;
}

.home-page #actusContainer .actu-date {
  margin: 0 !important;
  color: #2f6f9f !important;
  font-size: .82rem !important;
  line-height: 1.25 !important;
  font-weight: 850 !important;
  letter-spacing: .02em !important;
}

.home-page #actusContainer h3,
.home-page #actusContainer .actu-card h3 {
  margin: 0 !important;
  color: #10243d !important;
  font-size: 1.14rem !important;
  line-height: 1.24 !important;
}

.home-page #actusContainer .actu-excerpt {
  margin: 0 !important;
  color: #334155 !important;
  font-size: .96rem !important;
  line-height: 1.58 !important;
  overflow-wrap: anywhere !important;
  hyphens: auto !important;
}

.home-page #actusContainer .read-more-inline {
  white-space: nowrap !important;
  font-weight: 900 !important;
  color: #003366 !important;
  text-decoration: underline !important;
  text-underline-offset: 3px !important;
}

@media (max-width: 768px) {
  :root {
    --village-hero-padding-y: 34px;
    --village-hero-title-size: 30px;
    --village-hero-text-size: 16px;
  }

  .home-page #actusContainer .actu-card .card-img,
  .home-page #actusContainer .actu-card-featured .card-img,
  .home-page #actusContainer .card-img {
    height: 178px !important;
    min-height: 178px !important;
    max-height: 178px !important;
  }

  .article-cover-below {
    width: calc(100% - 28px) !important;
    margin-top: 16px !important;
    border-radius: 18px !important;
  }

  .article-cover-below-inner {
    height: 205px !important;
  }
}
/* === FIN REPRISE ESTHETIQUE GLOBALE HEROS + ACTUS 20260516 === */



/* === LOCATIONS LOT 2 DEMAT CSS === */
.rental-badge.demat_sent{background:#dbeafe;color:#1e40af}.rental-badge.demat_submitted,.rental-badge.mairie_review{background:#fef3c7;color:#92400e}.rental-badge.file_to_complete{background:#fee2e2;color:#991b1b}.rental-badge.contract_to_sign_entry{background:#ede9fe;color:#5b21b6}

/* === PATCH AGENDA ACCUEIL COMPACT START === */

/* Agenda accueil : cartes plus compactes sur PC, grille 2x2 sur mobile. */
#agendaContainer {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
  align-items: stretch !important;
  max-width: 100% !important;
}

/* Cartes agenda uniquement sur l'accueil */
#agendaContainer .event-card,
#agendaContainer .agenda-card,
#agendaContainer article,
#agendaContainer .card {
  min-height: 0 !important;
  padding: 12px !important;
  border-radius: 16px !important;
}

#agendaContainer .event-card h3,
#agendaContainer .agenda-card h3,
#agendaContainer article h3,
#agendaContainer .card h3 {
  font-size: 1rem !important;
  line-height: 1.18 !important;
  margin-bottom: 6px !important;
}

#agendaContainer .event-card p,
#agendaContainer .agenda-card p,
#agendaContainer article p,
#agendaContainer .card p {
  font-size: .88rem !important;
  line-height: 1.25 !important;
  margin: 4px 0 !important;
}

#agendaContainer .date,
#agendaContainer .event-date,
#agendaContainer .agenda-date {
  transform: scale(.88);
  transform-origin: left top;
}

@media (max-width: 980px) {
  #agendaContainer {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
}

@media (max-width: 640px) {
  #agendaContainer {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
  }

  #agendaContainer .event-card,
  #agendaContainer .agenda-card,
  #agendaContainer article,
  #agendaContainer .card {
    padding: 10px !important;
    border-radius: 14px !important;
  }

  #agendaContainer .event-card h3,
  #agendaContainer .agenda-card h3,
  #agendaContainer article h3,
  #agendaContainer .card h3 {
    font-size: .9rem !important;
  }

  #agendaContainer .event-card p,
  #agendaContainer .agenda-card p,
  #agendaContainer article p,
  #agendaContainer .card p {
    font-size: .78rem !important;
  }
}

/* === PATCH AGENDA ACCUEIL COMPACT END === */

/* === PATCH FINAL AGENDA MOBILE 2x2 START === */
/* Règle placée en fin de fichier pour écraser les anciennes règles mobiles en 1 colonne. */

@media (max-width: 699px) {
  body.home-page .section.agenda #agendaContainer,
  body.home-page #agendaContainer {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-card,
  body.home-page #agendaContainer .agenda-card {
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 9px !important;
    border-radius: 14px !important;
    gap: 7px !important;
    min-height: 0 !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-date-box,
  body.home-page #agendaContainer .agenda-date-box {
    width: 48px !important;
    min-width: 48px !important;
    height: 48px !important;
    border-radius: 13px !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-day,
  body.home-page #agendaContainer .agenda-day {
    font-size: 1.1rem !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-month,
  body.home-page #agendaContainer .agenda-month {
    font-size: .65rem !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-main h3,
  body.home-page #agendaContainer .agenda-main h3 {
    font-size: .82rem !important;
    line-height: 1.15 !important;
    margin: 0 0 4px !important;
  }

  body.home-page .section.agenda #agendaContainer .agenda-time,
  body.home-page .section.agenda #agendaContainer .agenda-location,
  body.home-page #agendaContainer .agenda-time,
  body.home-page #agendaContainer .agenda-location {
    font-size: .72rem !important;
    line-height: 1.15 !important;
  }
}

/* === PATCH FINAL AGENDA MOBILE 2x2 END === */

/* === PATCH ABONNEMENTS MOBILE PROPRE START === */
/* Corrige uniquement les deux choix d'abonnement, sans toucher aux cartes principales. */

@media (max-width: 699px) {
  body.alert-subscription-page .subscription-panel,
  body.alert-subscription-page .subscription-management-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  body.alert-subscription-page .subscription-card,
  body.alert-subscription-page .subscription-info-card {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  body.alert-subscription-page .subscription-form {
    display: grid !important;
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  body.alert-subscription-page .subscription-option {
    display: grid !important;
    grid-template-columns: 34px minmax(0, 1fr) !important;
    gap: 12px !important;
    align-items: start !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }

  body.alert-subscription-page .subscription-option input[type="checkbox"] {
    width: 26px !important;
    height: 26px !important;
    margin: 0 !important;
    flex: 0 0 auto !important;
  }

  body.alert-subscription-page .subscription-option > span {
    display: block !important;
    min-width: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }

  body.alert-subscription-page .subscription-option strong {
    display: block !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    font-size: 1rem !important;
    line-height: 1.2 !important;
  }

  body.alert-subscription-page .subscription-option > span > span {
    display: block !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    font-size: .9rem !important;
    line-height: 1.35 !important;
    margin-top: 4px !important;
  }

  body.alert-subscription-page .subscription-field input[type="text"],
  body.alert-subscription-page .subscription-field input[type="email"] {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

/* === PATCH ABONNEMENTS MOBILE PROPRE END === */

/* === PATCH HERO ABONNEMENTS IDENTIQUE INDEX START === */
/* Même hauteur que le hero de index.html : padding 45px 0, pas de min-height.
   Fond plus adapté aux alertes communales + vigilance météo. */

body.alert-subscription-page .subscription-page-hero {
  min-height: 0 !important;
  height: auto !important;
  padding: 45px 0 !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  color: #fff !important;
  border-radius: 0 !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
  background:
    linear-gradient(rgba(0,51,102,.74), rgba(0,51,102,.74)),
    url("images/mairie.jpg") center center / cover no-repeat !important;
}

body.alert-subscription-page .subscription-page-hero::before {
  content: none !important;
  display: none !important;
}

body.alert-subscription-page .subscription-page-hero > .container {
  width: min(1100px, 90%) !important;
  max-width: 1100px !important;
  min-height: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
  display: block !important;
}

body.alert-subscription-page .subscription-page-hero .page-hero-content {
  max-width: 760px !important;
  margin: 0 auto !important;
  padding: 0 !important;
  text-align: center !important;
}

body.alert-subscription-page .subscription-page-hero .eyebrow {
  display: inline-block !important;
  margin: 0 0 8px !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  color: rgba(255,255,255,.86) !important;
  font-size: .78rem !important;
  line-height: 1.25 !important;
  font-weight: 800 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  backdrop-filter: none !important;
}

body.alert-subscription-page .subscription-page-hero h1 {
  margin: 0 0 10px !important;
  font-size: 36px !important;
  line-height: 1.2 !important;
  color: #fff !important;
  text-align: center !important;
}

body.alert-subscription-page .subscription-page-hero p {
  margin: 0 auto !important;
  max-width: 760px !important;
  font-size: 18px !important;
  line-height: 1.5 !important;
  color: rgba(255,255,255,.95) !important;
  opacity: .95 !important;
  text-align: center !important;
}

@media (max-width: 699px) {
  body.alert-subscription-page .subscription-page-hero {
    min-height: 0 !important;
    height: auto !important;
    padding: 34px 0 !important;
  }

  body.alert-subscription-page .subscription-page-hero h1 {
    font-size: 30px !important;
    line-height: 1.18 !important;
  }

  body.alert-subscription-page .subscription-page-hero p {
    font-size: 16px !important;
    line-height: 1.45 !important;
  }
}

/* === PATCH HERO ABONNEMENTS IDENTIQUE INDEX END === */

/* FIX INDEX ACTUS V3B - exact accueil actualites */
.home-page #actusContainer .actu-card .card-content,
.home-page #actusContainer .actu-card-featured .card-content {
  text-align: left !important;
  align-items: stretch !important;
  justify-content: flex-start !important;
}

.home-page #actusContainer .actu-card h3,
.home-page #actusContainer .actu-card-featured h3 {
  text-align: left !important;
  hyphens: none !important;
  -webkit-hyphens: none !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}

.home-page #actusContainer .actu-excerpt,
.home-page #actusContainer .actu-card .actu-excerpt,
.home-page #actusContainer .actu-card-featured .actu-excerpt {
  display: block !important;
  text-align: left !important;
  white-space: normal !important;
  line-height: 1.62 !important;
  letter-spacing: normal !important;
  word-spacing: .06em !important;
  hyphens: none !important;
  -webkit-hyphens: none !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  max-width: none !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.home-page #actusContainer .actu-date {
  text-align: left !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

.home-page #actusContainer .read-more-inline {
  display: inline !important;
  white-space: nowrap !important;
  margin-left: .25em !important;
}
