/**
 * Peyrus v3 — Styles pages intérieures (L2)
 * Complément de peyrus-v3.min.css
 * Couvre : page-hero, single actu, archives, agenda plein, filtres,
 *          pagination, empty-state, breadcrumb, partage, related
 */

/* ====================================================
   PAGE HERO L2
==================================================== */
.pv3-page-hero {
    position: relative;
    min-height: 220px;
    display: flex;
    align-items: flex-end;
    overflow: hidden;
    background: var(--c-primary-d);
}

/* ====================================================
   PAGE HERO L2 — Images spécifiques par page
   Chaque .pv3-page-X override le background générique
==================================================== */

/* Piscine — eau bleue */
.pv3-page-piscine .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.75) 0%, rgba(14,87,131,.65) 100%),
        url('https://images.unsplash.com/photo-1575429198097-0414ec08e8cd?w=1200&q=70&auto=format') center/cover;
    opacity: .7;
}

/* Loisirs / sport — montagne Vercors */
.pv3-page-loisirs .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.72) 0%, rgba(42,107,60,.6) 100%),
        url('https://images.unsplash.com/photo-1464822759023-fed622ff2c3b?w=1200&q=70&auto=format') center/cover;
    opacity: .7;
}

/* La Parenthèse — bibliothèque / livres */
.pv3-page-parenthese .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.78) 0%, rgba(27,79,130,.65) 100%),
        url('https://images.unsplash.com/photo-1507003211169-0a1dd7228f2d?w=1200&q=70&auto=format') center/cover;
    opacity: .7;
}

/* Commerces — marché plein air */
.pv3-page-commerces .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.72) 0%, rgba(146,64,14,.55) 100%),
        url('https://images.unsplash.com/photo-1488459716781-31db52582fe9?w=1200&q=70&auto=format') center/cover;
    opacity: .7;
}

/* Associations — communauté / personnes */
.pv3-page-associations .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.75) 0%, rgba(27,79,130,.6) 100%),
        url('https://images.unsplash.com/photo-1529156069898-49953e39b3ac?w=1200&q=70&auto=format') center/cover;
    opacity: .7;
}

/* Conseil municipal — salle de réunion / institution */
.pv3-page-conseil .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.82) 0%, rgba(16,50,88,.7) 100%),
        url('https://images.unsplash.com/photo-1541888946425-d81bb19240f5?w=1200&q=70&auto=format') center/cover;
    opacity: .65;
}

/* Ma ville — vue aérienne village */
.pv3-page-ma-ville .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.78) 0%, rgba(16,50,88,.65) 100%),
        url('https://images.unsplash.com/photo-1499678329028-101435549a4e?w=1200&q=70&auto=format') center/cover;
    opacity: .7;
}

/* Urbanisme — construction / plan */
.pv3-page-urbanisme .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.8) 0%, rgba(146,64,14,.5) 100%),
        url('https://images.unsplash.com/photo-1503387762-592deb58ef4e?w=1200&q=70&auto=format') center/cover;
    opacity: .65;
}

/* État civil — mairie / registres */
.pv3-page-etat-civil .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.8) 0%, rgba(27,79,130,.65) 100%),
        url('https://images.unsplash.com/photo-1450101499163-c8848c66ca85?w=1200&q=70&auto=format') center/cover;
    opacity: .65;
}

/* CNI / Passeport — documents / voyage */
.pv3-page-cni .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.8) 0%, rgba(27,79,130,.6) 100%),
        url('https://images.unsplash.com/photo-1436491865332-7a61a109cc05?w=1200&q=70&auto=format') center/cover;
    opacity: .65;
}

/* Quotidien — village / vie locale */
.pv3-page-quotidien .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.72) 0%, rgba(42,107,60,.55) 100%),
        url('https://images.unsplash.com/photo-1444210971048-6130cf0c46cf?w=1200&q=70&auto=format') center/cover;
    opacity: .7;
}

/* Délibérations — documents officiels */
.pv3-page-l2.pv3-page-deliberations .pv3-page-hero__bg,
body.post-type-archive .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.82) 0%, rgba(16,50,88,.68) 100%),
        url('https://images.unsplash.com/photo-1589829545856-d10d557cf95f?w=1200&q=70&auto=format') center/cover;
    opacity: .65;
}

/* Infos travaux — chantier */
.pv3-page-hero__bg--travaux,
body.page-template .pv3-page-hero .pv3-page-hero__bg {
    background:
        linear-gradient(160deg, rgba(17,24,39,.8) 0%, rgba(146,64,14,.6) 100%),
        url('https://images.unsplash.com/photo-1504307651254-35680f356dfd?w=1200&q=70&auto=format') center/cover;
    opacity: .65;
}


.pv3-page-hero__content {
    position: relative;
    z-index: 2;
    padding: 2.5rem 0 2rem;
}

.pv3-page-hero__title {
    font-family: var(--ff-heading);
    font-weight: 900;
    font-size: clamp(2rem, 5vw, 3.5rem);
    text-transform: uppercase;
    color: #fff;
    line-height: 1;
    margin: .5rem 0 0;
}

.pv3-page-hero__title em {
    color: var(--c-accent);
    font-style: normal;
}

/* ====================================================
   FIL D'ARIANE
==================================================== */
.pv3-breadcrumb {
    display: flex;
    align-items: center;
    gap: .4rem;
    flex-wrap: wrap;
    font-size: .82rem;
    color: rgba(255,255,255,.6);
    margin-bottom: .4rem;
}

.pv3-breadcrumb a {
    color: rgba(255,255,255,.7);
    transition: color .2s;
}

.pv3-breadcrumb a:hover { color: #fff; }

.pv3-breadcrumb [aria-current="page"] {
    color: rgba(255,255,255,.5);
}

/* ====================================================
   MAIN CONTENT WRAPPER
==================================================== */
.pv3-main {
    padding: 3rem 0 4rem;
}

/* ====================================================
   FILTRES (catégories / types)
==================================================== */
.pv3-filters {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
    margin-bottom: 1rem;
}

.pv3-agenda-toolbar {
    display: flex;
    flex-direction: column;
    gap: .5rem;
    margin-bottom: 2rem;
}

.pv3-filter-btn {
    display: inline-block;
    padding: .4rem .9rem;
    border-radius: 99px;
    font-family: var(--ff-heading);
    font-weight: 700;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    background: var(--c-light);
    color: var(--c-dark);
    border: 1px solid var(--c-border);
    transition: all .18s;
    white-space: nowrap;
}

.pv3-filter-btn:hover,
.pv3-filter-btn.active {
    background: var(--c-primary);
    color: #fff;
    border-color: var(--c-primary);
}

/* ====================================================
   GRILLE ACTUALITÉS (archive)
==================================================== */
.pv3-actu-featured {
    min-height: 360px;
}

.pv3-actu-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.25rem;
    margin-bottom: 2.5rem;
}

.pv3-actu-card {
    background: var(--c-white);
    border: 1px solid var(--c-border);
    border-radius: var(--rad-lg);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: all .22s;
    color: var(--c-dark);
}

.pv3-actu-card:hover {
    box-shadow: var(--shadow);
    transform: translateY(-3px);
    border-color: var(--c-primary);
}

.pv3-actu-card__img {
    aspect-ratio: 16/9;
    background: var(--c-light) center/cover;
    position: relative;
    flex-shrink: 0;
}

.pv3-actu-card__cat {
    position: absolute;
    bottom: .6rem;
    left: .6rem;
    background: var(--c-accent);
    color: #fff;
    border-radius: 99px;
    padding: .2rem .65rem;
    font-family: var(--ff-heading);
    font-weight: 700;
    font-size: .72rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pv3-actu-card__body {
    padding: 1rem 1.1rem 1.2rem;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.pv3-actu-card__title {
    font-family: var(--ff-heading);
    font-weight: 700;
    font-size: 1rem;
    line-height: 1.25;
    color: var(--c-dark);
    margin-bottom: .4rem;
    flex: 1;
}

.pv3-actu-card:hover .pv3-actu-card__title { color: var(--c-primary); }

.pv3-actu-card__excerpt {
    font-size: .85rem;
    color: var(--c-gray);
    line-height: 1.5;
    margin-bottom: .5rem;
}

.pv3-actu-card__date {
    font-size: .78rem;
    color: var(--c-gray);
    margin-top: auto;
}

/* ====================================================
   GRILLE AGENDA PLEIN
==================================================== */
.pv3-agenda-full-grid {
    grid-template-columns: repeat(3, 1fr) !important;
    margin-bottom: 2.5rem;
}

/* ====================================================
   ARTICLE SINGLE
==================================================== */
.pv3-article {
    max-width: 800px;
    margin: 0 auto 3rem;
}

.pv3-article__header {
    margin-bottom: 1.5rem;
}

.pv3-article__meta {
    display: flex;
    align-items: center;
    gap: .75rem;
    flex-wrap: wrap;
    margin-bottom: .5rem;
}

.pv3-article__cat {
    display: inline-block;
    background: var(--c-accent);
    color: #fff;
    border-radius: 99px;
    padding: .2rem .75rem;
    font-family: var(--ff-heading);
    font-weight: 700;
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.pv3-article__date {
    font-size: .85rem;
    color: var(--c-gray);
}

.pv3-article__subtitle {
    font-size: 1.1rem;
    color: var(--c-gray);
    font-style: italic;
    line-height: 1.5;
    margin-top: .25rem;
}

.pv3-article__figure {
    margin: 0 0 2rem;
    border-radius: var(--rad-lg);
    overflow: hidden;
}

.pv3-article__img {
    width: 100%;
    display: block;
    aspect-ratio: 16/7;
    object-fit: cover;
}

.pv3-article__body {
    font-size: 1rem;
    line-height: 1.75;
    color: var(--c-dark);
    margin-bottom: 2.5rem;
}

.pv3-article__body h2 {
    font-family: var(--ff-heading);
    font-weight: 800;
    font-size: 1.5rem;
    color: var(--c-primary);
    margin: 2rem 0 .75rem;
    text-transform: uppercase;
}

.pv3-article__body h3 {
    font-family: var(--ff-heading);
    font-weight: 700;
    font-size: 1.2rem;
    margin: 1.5rem 0 .5rem;
}

.pv3-article__body p { margin-bottom: 1rem; }
.pv3-article__body img { border-radius: var(--rad); max-width: 100%; }

.pv3-article__body blockquote {
    border-left: 4px solid var(--c-accent);
    margin: 1.5rem 0;
    padding: 1rem 1.5rem;
    background: var(--c-accent-l);
    border-radius: 0 var(--rad) var(--rad) 0;
    font-style: italic;
    color: var(--c-dark);
}

/* Footer article */
.pv3-article__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 1rem;
    padding-top: 1.5rem;
    border-top: 1px solid var(--c-border);
}

/* ====================================================
   PARTAGE
==================================================== */
.pv3-share {
    display: flex;
    align-items: center;
    gap: .5rem;
    flex-wrap: wrap;
}

.pv3-share__label {
    font-size: .82rem;
    color: var(--c-gray);
    font-weight: 600;
}

/* ====================================================
   RETOUR
==================================================== */
.pv3-back-link {
    font-family: var(--ff-heading);
    font-weight: 700;
    font-size: .88rem;
    text-transform: uppercase;
    letter-spacing: .07em;
    color: var(--c-primary);
    display: flex;
    align-items: center;
    gap: .35rem;
    transition: gap .2s;
}

.pv3-back-link:hover { gap: .6rem; }

/* ====================================================
   ACTUALITÉS LIÉES
==================================================== */
.pv3-related {
    margin-top: 3rem;
    padding-top: 2rem;
    border-top: 2px solid var(--c-border);
}

.pv3-related__title {
    font-family: var(--ff-heading);
    font-weight: 900;
    font-size: clamp(1.6rem, 3vw, 2.2rem);
    text-transform: uppercase;
    color: var(--c-dark);
    margin-bottom: 1.5rem;
    line-height: 1;
}

.pv3-related__title span { color: var(--c-accent); }

/* ====================================================
   PAGINATION
==================================================== */
.pv3-pagination {
    display: flex;
    justify-content: center;
    margin-top: 2.5rem;
}

.pv3-pagination .page-numbers {
    display: flex;
    align-items: center;
    gap: .35rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.pv3-pagination .page-numbers li {}

.pv3-pagination .page-numbers a,
.pv3-pagination .page-numbers span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 .75rem;
    border-radius: var(--rad);
    border: 1px solid var(--c-border);
    font-family: var(--ff-heading);
    font-weight: 700;
    font-size: .88rem;
    color: var(--c-dark);
    transition: all .18s;
    background: var(--c-white);
}

.pv3-pagination .page-numbers a:hover {
    background: var(--c-primary-l);
    border-color: var(--c-primary);
    color: var(--c-primary);
}

.pv3-pagination .page-numbers .current {
    background: var(--c-primary);
    border-color: var(--c-primary);
    color: #fff;
}

.pv3-pagination .page-numbers .dots {
    border: none;
    background: none;
    color: var(--c-gray);
}

/* ====================================================
   ÉTAT VIDE
==================================================== */
.pv3-empty-state {
    text-align: center;
    padding: 4rem 2rem;
    background: var(--c-light);
    border-radius: var(--rad-lg);
    border: 2px dashed var(--c-border);
}

.pv3-empty-state__icon {
    font-size: 3.5rem;
    margin-bottom: 1rem;
    display: block;
}

.pv3-empty-state h2 {
    font-family: var(--ff-heading);
    font-weight: 800;
    font-size: 1.5rem;
    color: var(--c-dark);
    margin-bottom: .5rem;
}

.pv3-empty-state p {
    color: var(--c-gray);
    margin-bottom: 1.5rem;
}

/* ====================================================
   RESPONSIVE
==================================================== */
@media (max-width: 1024px) {
    .pv3-actu-grid,
    .pv3-agenda-full-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 768px) {
    .pv3-actu-grid,
    .pv3-agenda-full-grid { grid-template-columns: 1fr !important; }
    .pv3-article { margin: 0 0 2rem; }
    .pv3-article__footer { flex-direction: column; align-items: flex-start; }
    .pv3-page-hero { min-height: 160px; }
    .pv3-page-hero__title { font-size: 2rem; }
}

/* ====================================================
   RESPONSIVE AMÉLIORÉ — Pages intérieures
==================================================== */
@media (max-width: 768px) {
    /* Hero L2 */
    .pv3-page-hero { min-height: 160px; }
    .pv3-page-hero__content { padding: 1.75rem 0 1.5rem; }
    .pv3-page-hero__title { font-size: clamp(1.6rem, 8vw, 2.5rem); }
    .pv3-breadcrumb { font-size: .78rem; flex-wrap: wrap; gap: .3rem; }

    /* Main padding */
    .pv3-main { padding-top: 0; }
    .wrap--sm { padding: 0 1rem; }

    /* Grilles adaptatives */
    .pv3-videos-grid { grid-template-columns: 1fr; }
    .pv3-vid-filters { gap: .4rem; }
    .pv3-vid-filter { font-size: .75rem; padding: .35rem .75rem; }

    /* Pages spécifiques */
    .pv3-page-ma-ville [style*="grid-template-columns:repeat(auto-fill,minmax(260px"] {
        grid-template-columns: 1fr !important;
    }
    .pv3-page-conseil [style*="grid-template-columns:repeat(3,1fr)"] {
        grid-template-columns: 1fr !important;
    }
    .pv3-page-piscine [style*="grid-template-columns:repeat(2,1fr)"] {
        grid-template-columns: 1fr !important;
    }
    .pv3-page-cni [style*="grid-template-columns:repeat(auto-fill,minmax(220px"] {
        grid-template-columns: 1fr !important;
    }

    /* 404 */
    .pv3-404-actions { flex-direction: column; align-items: center; }
    .pv3-404-code { font-size: clamp(5rem, 30vw, 8rem); }
}

@media (max-width: 480px) {
    .pv3-page-hero__title { font-size: clamp(1.4rem, 9vw, 2rem); }

    /* Boutons hero L2 taille mobile */
    .pv3-404-actions a,
    .pv3-404-actions button {
        width: 100%;
        justify-content: center;
    }

    /* Grilles 2 col → 1 col */
    .pv3-page-cni .pv3-icon-selector,
    .pv3-page-etat-civil [style*="grid-template-columns:repeat(auto-fill,minmax(200px"] {
        grid-template-columns: 1fr 1fr !important;
    }
}

/* ====================================================
   FOCUS / ACCESSIBILITÉ
==================================================== */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--c-accent);
    outline-offset: 2px;
    border-radius: 2px;
}

/* ============================================================
   v3.19.83 — MENU MOBILE (hamburger)
   La nav principale était masquée <=768px sans bouton de repli.
   ============================================================ */
.btn-hamburger{display:none}
.pv3-mobilenav-head{display:none}
@media (max-width:768px){
  .btn-hamburger{display:inline-flex;align-items:center;gap:.45rem;background:none;border:1.5px solid var(--c-border,#d4dae1);border-radius:8px;padding:.5rem .8rem;font-family:var(--ff-heading,inherit);font-weight:800;font-size:.85rem;letter-spacing:.03em;color:var(--c-dark,#1f2a36);cursor:pointer;min-height:44px}
  body.pv3-nav-open{overflow:hidden}
  body.pv3-nav-open .header__nav{display:block !important;position:fixed;inset:0;z-index:1400;background:var(--c-white,#fff);overflow-y:auto;padding:0 1.1rem 2.5rem}
  body.pv3-nav-open .pv3-mobilenav-head{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--c-white,#fff);padding:1rem .2rem .8rem;border-bottom:2px solid var(--c-primary,#1b4f82);margin-bottom:.5rem;font-family:var(--ff-heading,inherit);font-weight:900;font-size:1.05rem;text-transform:uppercase;letter-spacing:.05em}
  .pv3-mobilenav-close{background:var(--c-light,#f0f4f8);border:none;border-radius:50%;width:40px;height:40px;font-size:1.1rem;cursor:pointer;line-height:1}
  body.pv3-nav-open .header__nav .nav__item{display:block;border-bottom:1px solid var(--c-border,#e3e7eb)}
  body.pv3-nav-open .header__nav .nav__item>a{display:block;padding:.85rem .2rem;font-family:var(--ff-heading,inherit);font-weight:800;font-size:1.02rem;color:var(--c-dark,#1f2a36);text-decoration:none}
  body.pv3-nav-open .header__nav .nav__arrow-btn{display:none}
  body.pv3-nav-open .header__nav .nav__dropdown,
  body.pv3-nav-open .header__nav .nav__mega{display:block !important;position:static !important;visibility:visible !important;opacity:1 !important;transform:none !important;box-shadow:none !important;border:none !important;padding:0 .4rem .9rem !important;background:transparent !important;min-width:0 !important;width:auto !important}
  body.pv3-nav-open .nav__mega-articles,
  body.pv3-nav-open .nav__mega-all{display:none !important}
  body.pv3-nav-open .nav__dropdown a,
  body.pv3-nav-open .nav__mega-links a{display:block;padding:.5rem .4rem;font-size:.95rem;color:var(--c-dark,#37424e);text-decoration:none}
  body.pv3-nav-open .nav__group{display:block;margin-top:.55rem;font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--c-gray,#6b7480)}
}

/* ============================================================
   v3.19.86 — ACCUEIL COMPACT (audit UX)
   Le hero occupait 92 % de l'écran : raccourcis, actus et agenda
   passaient sous la ligne de flottaison. Ramené à ~56 vh.
   ============================================================ */
.hero{min-height:56vh;padding:3.5rem 0 4.5rem}
@media (max-width:768px){ .hero{min-height:64vh} }

/* v3.19.88 — bande de stats robuste : pleine largeur, répartition égale quel
   que soit le nombre de blocs (plus jamais de colonne vide). */
.hero__stats{display:flex !important;flex-wrap:wrap}
.hero__stat{flex:1 1 0;min-width:140px;padding:1.1rem;border-right:1px solid rgba(255,255,255,.08)}
.hero__stat:last-child{border-right:none}
