/* ===========================
   PN Agenda — Charte verte
   =========================== */
:root{
  --pn-primary:#759739;
  --pn-primary-dark:#5f7a2e;
  --pn-primary-soft:#eff5e6;
  --pn-primary-border:#cfe2b5;

  --pn-text:#111;
  --pn-700:#374151;
  --pn-600:#4b5563;
  --pn-500:#6b7280;
  --pn-400:#9aa3af;
  --pn-border:#e6e6e6;
  --pn-bg:#f9f9f9;
  --pn-shadow:0 2px 8px rgba(0,0,0,.06);
}

/* ===========================
   Boutons
   =========================== */
.pn-btn{
  display:flex; align-items:center; justify-content:center; gap:8px;
  padding:12px 14px; border-radius:10px; text-decoration:none; font-weight:700;
}
.pn-btn:focus-visible,
.pn-link:focus-visible,
.pn-sa-cal:focus-visible{
  outline:3px solid #bfe0ff; outline-offset:2px; border-radius:10px;
}

/* Bouton principal vert */
.pn-btn-primary{
  background:var(--pn-primary); color:#fff;
  transition:background-color .2s ease, opacity .2s ease, transform .15s ease;
}
.pn-btn-primary:hover{ opacity:.92; transform:translateY(-1px); }

/* Bouton fantôme (contour vert) */
.pn-btn-ghost{
  background:var(--pn-primary-soft); color:var(--pn-primary);
  border:1px solid var(--pn-primary-border);
  transition:background-color .2s ease, transform .15s ease;
}
.pn-btn-ghost:hover{ background:#e9f2db; transform:translateY(-1px); }

/* Correction robuste : bouton "Filtrer" (archive) => texte BLANC */
.pn-agenda-filters .pn-btn-primary,
.pn-agenda-filters button.pn-btn-primary,
.pn-agenda-filters input[type="submit"].pn-btn-primary,
.pn-agenda-filters .pn-btn-primary:link,
.pn-agenda-filters .pn-btn-primary:visited,
.pn-agenda-filters .pn-btn-primary:hover,
.pn-agenda-filters .pn-btn-primary:active{
  color:#fff !important;
}

/* ===========================
   Filtres (archive)
   =========================== */
.pn-agenda-filters{
  display:flex; flex-wrap:wrap; gap:10px; align-items:end;
}
.pn-agenda-filters label{
  font-weight:600; color:var(--pn-700); font-size:.95rem;
}
.pn-agenda-filters select,
.pn-agenda-filters input[type="date"]{
  padding:6px 8px; border:1px solid var(--pn-border);
  border-radius:8px; background:#fff;
}
.pn-agenda-filters .pn-btn{
  padding:10px 12px; border-radius:8px;
}
.pn-agenda-filters .pn-btn.pn-btn-reset{
  background:#f3f4f6; color:#374151; border:1px solid #e5e7eb;
}

/* ===========================
   Liste cartes (archive)
   =========================== */
.pn-agenda-list{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(290px,1fr));
  gap:20px; margin:20px 0;
}
.pn-card{
  background:#fff; border:1px solid var(--pn-border);
  border-radius:10px; overflow:hidden; box-shadow:var(--pn-shadow);
  display:flex; flex-direction:column;
}
.pn-card-media img{ width:100%; height:220px; object-fit:cover; display:block; }
.pn-card-body{ padding:16px 18px 20px; }
.pn-card-date{ color:var(--pn-500); font-weight:600; margin-bottom:10px; text-transform:none; }
.pn-card-title{ margin:0 0 14px; font-size:1.35rem; line-height:1.25; }
.pn-card-title a{ color:var(--pn-text); text-decoration:none; }
.pn-card-title a:hover{ text-decoration:underline; }
.pn-card-loc{ display:flex; align-items:center; gap:8px; color:var(--pn-700); font-weight:500; }
svg.pn-icon-pin{ width:18px !important; height:18px !important; }

/* ===========================
   Fil d’Ariane
   =========================== */
.pn-breadcrumbs {
  font-size: .95rem;
  margin: 6px 0 14px;
  color: var(--pn-500);
}
.pn-breadcrumbs a {
  color: var(--pn-primary);
  text-decoration: none;
}
.pn-breadcrumbs a:hover {
  text-decoration: underline;
}
.pn-breadcrumbs .sep {
  margin: 0 6px;
  color: var(--pn-400);
}

/* Fil d’Ariane — mobile */
@media (max-width: 768px) {
  #primary .pn-breadcrumbs {
    font-size: .20rem !important;
    line-height: 1.3;
  }
  #primary .pn-breadcrumbs .sep {
    margin: 0 4px !important;
  }
}


/* ===========================
   SINGLE — Grille & sections
   =========================== */
.pn-sa-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  grid-template-areas:
    "header header"
    "main   aside";
  column-gap:24px; row-gap:16px; align-items:start;
}
.pn-sa-header{ grid-area:header; margin-bottom:0; }
.pn-sa-main{ grid-area:main; margin-top:0; }
.pn-sa-aside{ grid-area:aside; position:sticky; top:12px; }

/* Titre / badges / subline */
.pn-sa-title{ margin:0 0 10px; font-size:clamp(1.6rem,2.5vw,2.2rem); line-height:1.2; }
.pn-sa-badges{ display:flex; flex-wrap:wrap; gap:8px; margin:10px 0 12px; }
.pn-badge{ background:#eef2f7; color:#334155; font-weight:600; font-size:.85rem; padding:6px 10px; border-radius:999px; }

.pn-sa-subline{ display:flex; align-items:center; gap:8px; color:var(--pn-700); margin-top:8px; flex-wrap:wrap; }
.pn-sa-subline .pn-link{ color:var(--pn-primary); text-decoration:none; margin-left:8px; }
.pn-sa-subline .pn-link:hover{ text-decoration:underline; }
svg.pn-ico{ width:18px !important; height:18px !important; fill:#64748b; flex:0 0 18px; }

/* Lien calendrier dans l'encadré */
.pn-sa-cal{
  margin-top:10px; display:flex; align-items:center; gap:8px;
  color:var(--pn-primary); text-decoration:none; font-weight:600;
}
.pn-sa-cal:hover{ text-decoration:underline; }

/* Contenu principal */
.pn-sa-content{ font-size:1.05rem; line-height:1.6; }
.pn-sa-content > :first-child{ margin-top:0; }
.pn-sa-content p{ margin:0 0 1em; }

/* Aside : image + encadrés */
.pn-sa-aside-media{ display:block; cursor:zoom-in; }
.pn-sa-aside-media img{
  width:100%; height:220px; object-fit:cover; border-radius:12px; display:block;
  margin-bottom:14px; box-shadow:var(--pn-shadow);
}
.pn-sa-datecard{
  background:#fff; border:1px solid var(--pn-border); border-radius:12px;
  padding:14px 16px; margin-bottom:14px; box-shadow:var(--pn-shadow);
}
.pn-sa-datehead{ font-weight:700; color:var(--pn-500); font-size:.95rem; margin-bottom:6px; }
.pn-sa-range{ font-weight:700; color:var(--pn-700); text-transform:none; } /* mois en minuscules */
.pn-sa-time{ margin-top:6px; color:var(--pn-700); font-weight:600; }

/* Bloc horaires (fin de page) */
.pn-sa-after{ margin-top:24px; }
.pn-sa-hours{ width:100%; border-collapse:separate; border-spacing:0 6px; margin-top:8px; }
.pn-sa-hours th{ text-align:left; font-weight:700; color:var(--pn-700); padding-right:10px; white-space:nowrap; }
.pn-sa-hours td{ color:var(--pn-700); }

/* ===========================
   Lightbox (image aside)
   =========================== */
.pn-lightbox{
  position:fixed; inset:0; background:rgba(0,0,0,.85);
  display:none; align-items:center; justify-content:center; padding:20px; z-index:9999;
}
.pn-lightbox.open{ display:flex; }
.pn-lightbox img{ max-width:90vw; max-height:90vh; border-radius:8px; box-shadow:0 10px 30px rgba(0,0,0,.5); }
.pn-lightbox-close{
  position:absolute; top:14px; right:18px; background:transparent; border:0;
  color:#fff; font-size:34px; line-height:1; cursor:pointer;
}

/* ===========================
   Modales (itinéraires + partage)
   =========================== */
.pn-modal{
  position:fixed; inset:0; background:rgba(0,0,0,.72);
  display:none; align-items:center; justify-content:center; z-index:99999; padding:20px;
}
.pn-modal[aria-hidden="false"]{ display:flex; }
.pn-modal-dialog{
  background:#fff; border-radius:14px; box-shadow:var(--pn-shadow);
  width:min(680px, 92vw); padding:20px 22px 16px; position:relative;
}
.pn-modal-title{ margin:0 0 14px; font-size:1.35rem; }
.pn-modal-close{
  position:absolute; right:14px; top:12px; width:36px; height:36px;
  border:0; border-radius:8px; background:#eaf2fb; color:#2563eb;
  font-size:24px; line-height:1; cursor:pointer;
}
.pn-nav-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
@media (max-width:520px){ .pn-nav-grid{ grid-template-columns:1fr; } }

/* Cartes d’applis / réseaux */
.pn-nav-app{
  display:flex; align-items:center; gap:12px; padding:14px;
  border:1px solid #eef2f7; border-radius:10px; text-decoration:none;
  background:#fff; color:var(--pn-text); box-shadow:var(--pn-shadow);
  transition:background-color .2s ease;
}
.pn-nav-app:hover{ background:#f9fafb; }

/* Icônes : pas de fond, pas d’arrondi, tailles fixes */
.pn-nav-icon{
  width:40px; height:40px; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.pn-nav-icon img,
.pn-nav-icon svg{
  width:34px !important; height:34px !important; display:block;
  border-radius:0 !important; background:transparent !important; object-fit:contain;
}
.pn-nav-icon i{
  font-size:22px; line-height:1; display:block;
}
.pn-nav-label{ font-size:1.05rem; font-weight:600; }

/* ===========================
   Hero page Agenda
   =========================== */
.pn-agenda-hero {
  position: relative;
  background-image: url('https://patrimoinenormand.com/wp-content/uploads/2025/10/agenda-normandie.webp');
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border-radius: 12px;
  overflow: hidden;
  min-height: 240px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.5rem;
  box-shadow: var(--pn-shadow);
}

/* Overlay foncé semi-transparent */
.pn-agenda-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.35);
  z-index: 1;
}

/* Bloc texte centré */
.pn-agenda-hero-overlay {
  position: relative;
  z-index: 2;
  background: rgba(0,0,0,0.55);
  padding: 0.8rem 1.6rem;
  border-radius: 10px;
}

/* Titre lisible */
.pn-agenda-hero .page-title {
  color: #fff;
  font-size: clamp(1.8rem, 3vw, 2.4rem);
  font-weight: 700;
  margin: 0;
  text-align: center;
  letter-spacing: 0.5px;
}

/* Responsive */
@media (max-width: 768px){
  .pn-agenda-hero {
    min-height: 180px;
  }
  .pn-agenda-hero .page-title {
    font-size: 1.6rem;
  }
}


/* ===========================
   Responsive
   =========================== */
@media (max-width:980px){
  .pn-sa-grid{
    grid-template-columns:1fr;
    grid-template-areas:"header" "aside" "main";
    column-gap:0; row-gap:16px;
  }
  .pn-sa-aside{ position:static; top:auto; width:100%; }
  .pn-sa-aside-media{ display:block !important; }
  .pn-sa-aside .pn-sa-datecard, .pn-sa-aside .pn-btn{ width:100%; }
}

