/* ==========================================================
   ParcsActus Theme — CSS Principal v1.0
   ========================================================== */

/* ---- Reset ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;font-size:var(--pa-fsize,16px);}
body{
  font-family:var(--pa-font,'Sora',sans-serif);
  font-size:1rem;line-height:1.65;
  color:var(--pa-black,#111);
  background:var(--pa-white,#fff);
  -webkit-font-smoothing:antialiased;
}
img,video{max-width:100%;height:auto;display:block;}
a{color:inherit;text-decoration:none;transition:color .2s;}
a:hover{color:var(--pa-link,#de0740);}
ul,ol{list-style:none;}
button{cursor:pointer;border:none;background:none;font:inherit;}
input,textarea,select{font:inherit;}

/* ---- Layout ---- */
.pa-container{
  width:100%;
  max-width:1240px;
  margin:0 auto;
  padding:0 clamp(16px,4vw,40px);
}
.pa-section{padding:clamp(40px,6vw,80px) 0;}

/* ---- Dégradé animé ---- */
@keyframes pa-grad{
  0%{background-position:0% 50%}
  50%{background-position:100% 50%}
  100%{background-position:0% 50%}
}
.pa-grad-bg{
  background:var(--pa-grad-anim);
  background-size:300% 300%;
  animation:pa-grad var(--pa-speed,6s) ease infinite;
}
.pa-grad-text{
  background:var(--pa-grad-anim);
  background-size:300% 300%;
  animation:pa-grad var(--pa-speed,6s) ease infinite;
  -webkit-background-clip:text;
  -webkit-text-fill-color:transparent;
  background-clip:text;
}

/* ---- TOP BAR ---- */
.pa-topbar{
  background:var(--pa-black);
  padding:clamp(8px,1vw,10px) 0;
  position:relative;z-index:200;
}
.pa-topbar__inner{
  display:flex;align-items:center;
  justify-content:space-between;gap:16px;
}
.pa-topbar__left{
  display:flex;align-items:center;gap:10px;
  flex:1;min-width:0;overflow:hidden;
}
.pa-topbar__badge{
  background:var(--pa-red);color:#fff;
  font-size:10px;font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;padding:3px 10px;
  border-radius:8px;white-space:nowrap;flex-shrink:0;
}
.pa-topbar__text{
  font-size:13px;color:rgba(255,255,255,.8);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pa-topbar__link{
  font-size:13px;font-weight:700;
  color:var(--pa-red)!important;
  display:inline-flex;align-items:center;gap:4px;
  white-space:nowrap;flex-shrink:0;
}
.pa-topbar__link svg{width:13px;height:13px;}
.pa-topbar__close{
  background:none;border:none;
  color:rgba(255,255,255,.4);font-size:12px;
  display:flex;align-items:center;gap:5px;
  cursor:pointer;flex-shrink:0;
  transition:color .2s;letter-spacing:.08em;text-transform:uppercase;
}
.pa-topbar__close:hover{color:#fff;}
.pa-topbar__close svg{width:13px;height:13px;}

/* ---- HEADER ---- */
.pa-header{
  position:relative;z-index:100;
  background:#fff;
  border-bottom:1px solid rgba(0,0,0,.06);
  transition:box-shadow .3s,background .3s;
}
.pa-head-zone{
  position:sticky;top:0;z-index:100;
}
.pa-header--sticky{
  position:static; /* le sticky est porte par .pa-head-zone (topbar + header solidaires) */
}
.pa-header.is-scrolled{
  box-shadow:0 2px 24px rgba(0,0,0,.08);
  background:rgba(255,255,255,.99);
}
.pa-header__inner{
  display:flex;align-items:center;gap:clamp(16px,2.5vw,32px);
  height:clamp(60px,7vw,72px);
}

/* Logo */
.pa-logo{
  display:flex;align-items:center;gap:10px;
  flex-shrink:0;text-decoration:none!important;
}
.pa-logo img{height:clamp(32px,4vw,44px)!important;width:auto!important;max-width:none!important;} /* !important : woocommerce-general.css force height:auto sur toutes les img */
.pa-logo__text{
  font-size:clamp(16px,2vw,20px);font-weight:800;
  color:var(--pa-black)!important;letter-spacing:-.03em;
}
.pa-logo__text span{color:var(--pa-red);}

/* Nav */
.pa-nav{
  display:flex;align-items:center;gap:2px;flex:1;
  justify-content:center;
}
.pa-nav__item{position:relative;}
.pa-nav__link{
  display:block;padding:8px 12px;
  font-size:12px;font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:rgba(17,17,17,.7)!important;
  border-radius:7px;transition:color .2s,background .2s;
  white-space:nowrap;
  position:relative;
}
.pa-nav__link:hover{
  color:var(--pa-red)!important;
  background:rgba(222,7,64,.06);
}
.pa-nav__link.is-active{color:var(--pa-red)!important;}

/* Dropdown */
.pa-nav__item--dropdown:hover .pa-dropdown{opacity:1;visibility:visible;transform:translateY(0);}
.pa-dropdown{
  position:absolute;top:calc(100% + 8px);left:50%;
  transform:translateX(-50%) translateY(6px);
  background:#fff;border-radius:12px;
  box-shadow:0 8px 32px rgba(0,0,0,.12);
  padding:8px;min-width:200px;
  opacity:0;visibility:hidden;
  transition:opacity .2s,transform .2s,visibility .2s;
  z-index:50;
}
.pa-dropdown::before{
  content:'';position:absolute;top:-6px;left:50%;
  transform:translateX(-50%);
  border:6px solid transparent;
  border-bottom-color:#fff;border-top:none;
}
.pa-dropdown a{
  display:block;padding:9px 14px;font-size:13px;
  font-weight:600;color:var(--pa-black)!important;
  border-radius:7px;transition:background .15s,color .15s;
  white-space:nowrap;
}
.pa-dropdown a:hover{background:var(--pa-bg);color:var(--pa-red)!important;}

/* Actions header */
.pa-header__actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.pa-header__search{
  width:36px;height:36px;border-radius:50%;
  border:1.5px solid rgba(0,0,0,.1);
  display:flex;align-items:center;justify-content:center;
  color:rgba(0,0,0,.5);transition:border-color .2s,color .2s;
}
.pa-header__search:hover{border-color:var(--pa-red);color:var(--pa-red);}
.pa-header__search svg{width:16px;height:16px;}

/* Bouton CTA */
.pa-header__cta{
  display:inline-flex;align-items:center;gap:6px;
  padding:9px 18px;border-radius:100px;
  background:var(--pa-red);color:#fff!important;
  font-size:12px;font-weight:700;letter-spacing:.04em;
  text-transform:uppercase;transition:transform .2s,box-shadow .2s,background .2s;
  text-decoration:none!important;
}
.pa-header__cta:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 16px rgba(222,7,64,.35);
  background:color-mix(in srgb,var(--pa-red) 85%,black);
}

/* Burger mobile */
.pa-burger{
  display:none;width:36px;height:36px;
  flex-direction:column;justify-content:center;
  align-items:center;gap:5px;
  border-radius:8px;border:1.5px solid rgba(0,0,0,.1);
}
.pa-burger span{
  display:block;width:18px;height:2px;
  background:var(--pa-black);border-radius:2px;
  transition:transform .3s,opacity .3s,width .3s;
}
.pa-burger.is-open span:nth-child(1){transform:rotate(45deg) translate(5px,5px);}
.pa-burger.is-open span:nth-child(2){opacity:0;width:0;}
.pa-burger.is-open span:nth-child(3){transform:rotate(-45deg) translate(5px,-5px);}

/* Menu mobile overlay */
.pa-mobile-menu{
  display:none;position:fixed;inset:0;z-index:99;
  background:#fff;flex-direction:column;
  padding:80px 24px 32px;overflow-y:auto;
  gap:4px;
}
.pa-mobile-menu.is-open{display:flex;}
.pa-mobile-menu__link{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 16px;font-size:16px;font-weight:700;
  color:var(--pa-black)!important;border-radius:10px;
  border-bottom:1px solid rgba(0,0,0,.06);
  transition:background .15s,color .15s;
}
.pa-mobile-menu__link:hover{
  background:var(--pa-bg);color:var(--pa-red)!important;
}
.pa-mobile-menu__close{
  position:absolute;top:20px;right:20px;
  width:36px;height:36px;border-radius:50%;
  border:1.5px solid rgba(0,0,0,.1);
  display:flex;align-items:center;justify-content:center;
}
.pa-mobile-menu__close svg{width:16px;height:16px;}

/* ---- FOOTER ---- */
.pa-footer{background:var(--pa-black);color:rgba(255,255,255,.6);}
.pa-footer__main{
  display:grid;
  grid-template-columns:1.5fr 1fr 1fr 1fr 1.4fr;
  gap:clamp(24px,3vw,48px);
  padding:clamp(48px,6vw,72px) 0 clamp(32px,4vw,48px);
  border-bottom:1px solid rgba(255,255,255,.07);
}

/* Brand */
.pa-footer__brand{display:flex;flex-direction:column;gap:16px;}
.pa-footer__logo{display:flex;align-items:center;gap:10px;}
.pa-footer__logo img{height:40px;width:auto;}
.pa-footer__logo-text{font-size:20px;font-weight:800;color:#fff;letter-spacing:-.03em;}
.pa-footer__logo-text span{color:var(--pa-red);}
.pa-footer__tagline{
  font-size:11px;text-transform:uppercase;letter-spacing:.12em;
  color:rgba(255,255,255,.65);line-height:1.5;
}
.pa-footer__social{display:flex;gap:8px;flex-wrap:wrap;}
.pa-footer__social a{
  width:34px;height:34px;border-radius:50%;
  border:1px solid rgba(255,255,255,.1);
  display:flex;align-items:center;justify-content:center;
  color:rgba(255,255,255,.7);
  transition:border-color .2s,color .2s,background .2s;
}
.pa-footer__social a:hover{
  border-color:var(--pa-red);
  color:#fff;background:var(--pa-red);
}
.pa-footer__social svg{width:15px;height:15px;}

/* Colonnes nav */
.pa-footer__col h4{
  font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#fff;
  margin-bottom:18px;
  display:flex;align-items:center;gap:8px;
}
.pa-footer__col h4::before{
  content:'';width:16px;height:2px;
  background:var(--pa-red);border-radius:2px;flex-shrink:0;
}
.pa-footer__col ul{display:flex;flex-direction:column;gap:8px;}
.pa-footer__col ul li a{
  font-size:13px;color:rgba(255,255,255,.45);
  transition:color .2s;display:block;
}
.pa-footer__col ul li a:hover{color:#fff;}

/* Newsletter */
.pa-footer__nl h4{
  font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:#fff;
  margin-bottom:8px;
  display:flex;align-items:center;gap:8px;
}
.pa-footer__nl h4::before{
  content:'';width:16px;height:2px;
  background:var(--pa-red);border-radius:2px;
}
.pa-footer__nl-title{
  font-size:16px;font-weight:700;color:#fff;
  margin-bottom:6px;
}
.pa-footer__nl-text{font-size:13px;color:rgba(255,255,255,.45);line-height:1.55;margin-bottom:14px;}
.pa-footer__nl-form{display:flex;gap:8px;}
.pa-footer__nl-input{
  flex:1;background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1);
  border-radius:8px;padding:10px 14px;
  color:#fff;font-size:13px;
  transition:border-color .2s;outline:none;
}
.pa-footer__nl-input::placeholder{color:rgba(255,255,255,.25);}
.pa-footer__nl-input:focus{border-color:var(--pa-red);}
.pa-footer__nl-btn{
  background:var(--pa-red);color:#fff;
  padding:10px 16px;border-radius:8px;
  border:none;cursor:pointer;font-size:13px;font-weight:700;
  display:flex;align-items:center;gap:6px;
  transition:background .2s,transform .15s;white-space:nowrap;
}
.pa-footer__nl-btn:hover{
  background:color-mix(in srgb,var(--pa-red) 85%,black);
  transform:translateY(-1px);
}
.pa-footer__nl-btn svg{width:14px;height:14px;}

/* Bottom bar */
.pa-footer__bottom{
  display:flex;align-items:center;justify-content:space-between;gap:14px 28px;flex-wrap:wrap;
  padding:22px 0 2px;
  border-top:1px solid rgba(255,255,255,.08);
  font-size:11.5px;letter-spacing:.015em;
  color:rgba(255,255,255,.4);
}
.pa-footer__copy{color:rgba(255,255,255,.4);}
.pa-footer__bottom a{color:rgba(255,255,255,.5);text-decoration:none;transition:color .2s;}
.pa-footer__bottom a:hover{color:#fff;}
.pa-footer__legal-list a{color:rgba(255,255,255,.55)!important;text-decoration:none;transition:color .2s;}
.pa-footer__legal-list a:hover{color:#fff!important;}
.pa-footer__bottom-links{display:flex;gap:0;flex-wrap:wrap;align-items:center;}
.pa-footer__legal-list{display:flex;gap:0;flex-wrap:wrap;align-items:center;list-style:none;margin:0;padding:0;}
.pa-footer__legal-list li{list-style:none;margin:0;display:flex;align-items:center;}
.pa-footer__legal-list li::before{content:none!important;}
.pa-footer__legal-list li:not(:first-child){margin-left:16px;padding-left:16px;position:relative;}
.pa-footer__legal-list li:not(:first-child)::after{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.28);}
/* lien "Gérer les cookies" dans le bas */
.pa-footer__cookie-link{background:none;border:none;cursor:pointer;font:inherit;color:rgba(255,255,255,.5);padding:0;transition:color .2s;}
.pa-footer__cookie-link:hover{color:#fff;}

/* ---- Badges ---- */
.pa-badge{
  display:inline-block;font-size:10px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;
  background:var(--pa-red);color:#fff!important;
  padding:3px 10px;border-radius:100px;
  text-decoration:none!important;white-space:nowrap;
}

/* ---- Boutons ---- */
.pa-btn{
  display:inline-flex;align-items:center;gap:8px;
  font-size:13px;font-weight:700;letter-spacing:.03em;
  padding:10px 22px;border-radius:100px;
  text-decoration:none!important;cursor:pointer;
  transition:transform .2s,box-shadow .2s,background .2s;white-space:nowrap;border:none;
}
.pa-btn:hover{transform:translateY(-1px);}
.pa-btn--red{background:var(--pa-red);color:#fff!important;}
.pa-btn--red:hover{box-shadow:0 4px 16px rgba(222,7,64,.35);}
.pa-btn--outline{
  background:transparent;color:var(--pa-red)!important;
  border:2px solid var(--pa-red);
}
.pa-btn--outline:hover{background:var(--pa-red);}
.pa-btn--dark{background:var(--pa-black);color:#fff!important;}
.pa-btn--white{background:#fff;color:var(--pa-black)!important;}
.pa-btn--grad{
  background:var(--pa-grad-anim);background-size:300% 300%;
  animation:pa-grad var(--pa-speed,6s) ease infinite;
  color:#fff!important;
}
.pa-btn svg{width:14px;height:14px;transition:transform .2s;flex-shrink:0;}
.pa-btn:hover svg{transform:translateX(3px);}

/* ---- Articles cards ---- */
.pa-card{
  display:flex;flex-direction:column;
  background:#fff;border-radius:var(--pa-radius,10px);
  overflow:hidden;box-shadow:0 2px 16px rgba(0,0,0,.07);
  transition:transform .25s,box-shadow .25s;
  text-decoration:none!important;
}
.pa-card:hover{transform:translateY(-3px);box-shadow:0 8px 32px rgba(0,0,0,.12);}
.pa-card__img{
  position:relative;overflow:hidden;
  aspect-ratio:16/10;background:#e8e8e8;flex-shrink:0;
}
.pa-card__img img{
  width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .5s ease;
}
.pa-card:hover .pa-card__img img{transform:scale(1.05);}
.pa-card__img .pa-badge{position:absolute;top:10px;left:10px;z-index:2;}
.pa-card__body{
  padding:clamp(12px,1.8vw,18px);
  display:flex;flex-direction:column;gap:6px;flex:1;
}
.pa-card__title{
  font-size:clamp(14px,1.8vw,16px);font-weight:700;
  line-height:1.35;color:var(--pa-black);margin:0;
}
.pa-card__title a{color:inherit!important;text-decoration:none!important;}
.pa-card__title a:hover{color:var(--pa-red)!important;}
.pa-card__meta{
  display:flex;align-items:center;gap:5px;flex-wrap:wrap;
  font-size:11px;color:var(--pa-gray);margin-top:auto;padding-top:8px;
}
.pa-card__meta a{color:inherit;font-weight:500;}
.pa-card__meta a:hover{color:var(--pa-black);}

/* ---- Section head ---- */
.pa-section-head{
  display:flex;align-items:flex-end;
  justify-content:space-between;
  margin-bottom:clamp(24px,3vw,40px);
  gap:16px;flex-wrap:wrap;
}
.pa-section-head__left{display:flex;flex-direction:column;gap:6px;}
.pa-section-head__eyebrow{
  font-size:11px;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--pa-red);
  display:flex;align-items:center;gap:8px;
}
.pa-section-head__eyebrow::before{
  content:'';width:20px;height:2px;
  background:var(--pa-red);border-radius:2px;
}
.pa-section-head__title{
  font-size:clamp(22px,3.5vw,36px);font-weight:800;
  line-height:1.1;letter-spacing:-.02em;margin:0;
}
.pa-section-head__desc{
  font-size:clamp(13px,1.6vw,15px);
  color:var(--pa-gray);margin:0;
}

/* ---- Grille articles ---- */
.pa-grid{display:grid;align-items:start;}
.pa-grid--2{grid-template-columns:repeat(2,1fr);}
.pa-grid--3{grid-template-columns:repeat(3,1fr);}
.pa-grid--4{grid-template-columns:repeat(4,1fr);}
.pa-grid--gap-sm{gap:12px;}
.pa-grid--gap-md{gap:clamp(14px,2vw,24px);}
.pa-grid--gap-lg{gap:clamp(20px,3vw,36px);}

/* ---- Responsive ---- */
@media(max-width:1024px){
  .pa-footer__main{grid-template-columns:1fr 1fr 1fr;}
  .pa-footer__brand{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:flex-start;}
}
@media(max-width:768px){
  .pa-nav,.pa-header__cta{display:none;}
  .pa-burger{display:flex;}
  .pa-footer__main{grid-template-columns:1fr 1fr;}
  .pa-topbar__text{display:none;}
  .pa-grid--4,.pa-grid--3{grid-template-columns:repeat(2,1fr);}
}
@media(max-width:540px){
  .pa-footer__main{grid-template-columns:1fr;}
  .pa-footer__brand{flex-direction:column;}
  .pa-grid--4,.pa-grid--3,.pa-grid--2{grid-template-columns:1fr;}
}

/* ==========================================================
   AJOUTS v1.1 — Mega menu, Recherche, Réseaux header, Topbar
   ========================================================== */

/* ---- Réseaux sociaux header ---- */
.pa-header__socials {
    display: flex;
    align-items: center;
    gap: 4px;
}
.pa-header__social-link {
    width: 32px; height: 32px;
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    color: rgba(17,17,17,.55);
    border: 1.5px solid transparent;
    transition: color .2s, border-color .2s, background .2s;
    text-decoration: none !important;
}
.pa-header__social-link:hover {
    color: var(--pa-red) !important;
    border-color: rgba(222,7,64,.2);
    background: rgba(222,7,64,.05);
}

/* ---- Recherche inline ---- */
.pa-search-wrap { position: relative; }
.pa-search-panel {
    position: absolute;
    top: calc(100% + 10px);
    right: 0;
    width: 300px;
    background: #fff;
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,.14);
    padding: 6px;
    opacity: 0;
    visibility: hidden;
    transform: translateY(6px);
    transition: opacity .2s, transform .2s, visibility .2s;
    z-index: 200;
    border: 1px solid rgba(0,0,0,.06);
}
.pa-search-panel.is-open {
    opacity: 1;
    visibility: visible;
    transform: none; /* important : un transform actif dans un header sticky fait scroller la page a chaque frappe (bug caret Chrome) */
}
.pa-search-panel form {
    display: flex;
    gap: 6px;
    align-items: center;
}
.pa-search-input {
    flex: 1;
    border: none;
    outline: none;
    font-size: 14px;
    padding: 9px 12px;
    border-radius: 8px;
    background: var(--pa-bg, #f8f8f8);
    color: var(--pa-black);
    font-family: var(--pa-font);
}
.pa-search-input::placeholder { color: #aaa; }
.pa-search-submit {
    width: 36px; height: 36px;
    border-radius: 8px;
    background: var(--pa-red);
    color: #fff;
    display: flex; align-items: center; justify-content: center;
    flex-shrink: 0;
    transition: background .2s;
    border: none; cursor: pointer;
}
.pa-search-submit:hover { background: color-mix(in srgb, var(--pa-red) 85%, black); }

/* ---- Mega menu ---- */
.pa-megamenu {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: #fff;
    border-top: 1px solid rgba(0,0,0,.06);
    box-shadow: 0 16px 48px rgba(0,0,0,.1);
    padding: 32px 0;
    z-index: 90;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-8px);
    transition: opacity .25s ease, transform .25s ease, visibility .25s;
    pointer-events: none;
}
.pa-megamenu.is-open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    pointer-events: auto;
}
.pa-megamenu__inner {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 32px;
}
.pa-megamenu__col h5 {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
    text-transform: uppercase;
    color: var(--pa-red);
    margin-bottom: 12px;
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(0,0,0,.07);
}
.pa-megamenu__col ul {
    display: flex;
    flex-direction: column;
    gap: 6px;
}
.pa-megamenu__col ul li a {
    font-size: 13px;
    font-weight: 500;
    color: rgba(17,17,17,.7) !important;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px 0;
    border-radius: 5px;
    transition: color .15s, padding-left .15s;
}
.pa-megamenu__col ul li a:hover {
    color: var(--pa-red) !important;
    padding-left: 4px;
}
.pa-megamenu__col ul li a::before {
    content: '';
    width: 4px; height: 4px;
    border-radius: 50%;
    background: var(--pa-red);
    opacity: 0;
    flex-shrink: 0;
    transition: opacity .15s;
}
.pa-megamenu__col ul li a:hover::before { opacity: 1; }

/* Lien nav avec sous-menu — indicateur */
.pa-nav__link.has-children::after {
    content: '';
    display: inline-block;
    width: 6px; height: 6px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: rotate(45deg) translateY(-2px);
    margin-left: 5px;
    opacity: .5;
    transition: transform .2s;
}
.pa-nav__item--mega.is-active > .pa-nav__link.has-children::after {
    transform: rotate(-135deg) translateY(-2px);
}

/* Topbar scroll-hide */
.pa-topbar {
    overflow: hidden;
    transition: max-height .35s ease, opacity .35s ease;
}
.pa-topbar.is-hidden {
    max-height: 0 !important;
    opacity: 0;
    pointer-events: none;
    border: none !important;
    margin: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
.pa-topbar.is-closed { display: none !important; }



/* ==========================================================
   ParcsActus Theme — v2.2.0
   ========================================================== */

/* ---- Responsive header ---- */
@media (max-width: 768px) {
    .pa-header__socials { display: none; }
    .pa-search-panel { width: 260px; right: -40px; }
    .pa-header__inner { justify-content: space-between; }
}

/* ================================================================
   TOPBAR — ticker + mobile popup
   ================================================================ */
.pa-topbar { overflow: hidden; transition: max-height .35s ease, opacity .35s ease; }
.pa-topbar.is-hidden { max-height: 0 !important; opacity: 0; pointer-events: none; }

@media (max-width: 768px) {
    .pa-topbar {
        position: fixed; bottom: 0; left: 0; right: 0; z-index: 200;
        transform: translateY(100%);
        transition: transform .4s ease;
        border-radius: 16px 16px 0 0;
        box-shadow: 0 -4px 24px rgba(0,0,0,.18);
        max-height: none !important;
    }
    .pa-topbar.mobile-visible { transform: translateY(0); }
    .pa-topbar.is-hidden { transform: translateY(100%) !important; opacity: 1 !important; }
}

.pa-topbar__ticker-wrap { flex: 1; overflow: hidden; min-width: 0; }
.pa-topbar__ticker { display: flex; width: max-content; animation: pa-ticker-scroll 60s linear infinite; }
.pa-topbar__ticker:hover { animation-play-state: paused; }
.pa-topbar__ticker-inner { display: inline-flex; align-items: center; white-space: nowrap; }
.pa-topbar__ticker-item {
    display: inline-flex; align-items: center;
    font-size: 13px; color: rgba(255,255,255,.82);
    padding: 0 32px; line-height: 1;
}
.pa-topbar__ticker-item + .pa-topbar__ticker-item::before { content: '·'; margin-right: 32px; opacity: .35; }
.pa-topbar__ticker-item a { color: rgba(255,255,255,.82) !important; font-weight: 500; text-decoration: none !important; }
.pa-topbar__ticker-item a:hover { color: #fff !important; }
@keyframes pa-ticker-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ================================================================
   DROPDOWN — caché, source de données JS uniquement
   ================================================================ */
.pa-dropdown { display: none !important; }

/* ================================================================
   NAV — chevron fixe (position absolute = 0 impact layout)
   ================================================================ */
.pa-nav__link.has-children::after { display: none !important; }
.pa-nav__link.has-children {
    padding-right: 22px;
    position: relative;
}
.pa-nav__link.has-children::before {
    content: '';
    position: absolute; right: 6px; top: 50%;
    width: 5px; height: 5px;
    border-right: 1.5px solid currentColor;
    border-bottom: 1.5px solid currentColor;
    transform: translateY(-65%) rotate(45deg);
    opacity: .5;
    transition: transform .2s, opacity .2s;
    pointer-events: none;
}
.pa-nav__item--mega.is-active > .pa-nav__link.has-children::before {
    transform: translateY(-35%) rotate(-135deg);
    opacity: .8;
}

/* ================================================================
   NAV — états actifs et parent actif
   ================================================================ */
.pa-nav__link.is-active,
.pa-nav__link.is-current-parent { color: var(--pa-red) !important; }

.pa-nav__link.is-active::after,
.pa-nav__link.is-current-parent::after {
    content: '';
    display: block;
    position: absolute;
    bottom: -4px; left: 8px; right: 8px;
    height: 3px; background: var(--pa-red); border-radius: 2px;
}

/* ================================================================
   MEGA MENU
   Pont invisible entre l'item nav et le mega pour éviter la zone morte
   ================================================================ */
.pa-megamenu {
    position: absolute; top: 100%; left: 0; right: 0;
    background: #fff;
    border-top: 2px solid var(--pa-red);
    box-shadow: 0 16px 48px rgba(0,0,0,.1);
    padding: 28px 0 32px;
    z-index: 90;
    opacity: 0; visibility: hidden; transform: translateY(-8px);
    transition: opacity .22s ease, transform .22s ease, visibility .22s;
    pointer-events: none;
    /* Pont invisible vers le haut pour combler la zone morte */
}
.pa-megamenu::before {
    content: '';
    position: absolute;
    top: -12px; left: 0; right: 0;
    height: 12px;
    background: transparent;
}
.pa-megamenu.is-open {
    opacity: 1; visibility: visible; transform: translateY(0);
    pointer-events: auto;
}

/* Grille : chaque slot = colonne automatique */
.pa-megamenu__inner {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
    gap: 32px;
    align-items: start;
}

/* Colonne liens */
.pa-megamenu__col { min-width: 0; }
.pa-megamenu__col h5 {
    font-size: 10px; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: var(--pa-red);
    margin-bottom: 10px; padding-bottom: 8px;
    border-bottom: 1px solid rgba(0,0,0,.07);
}
.pa-megamenu__col ul { display: flex; flex-direction: column; gap: 2px; list-style: none; padding: 0; margin: 0; }
.pa-megamenu__col ul li a {
    font-size: 13px; font-weight: 500;
    color: rgba(17,17,17,.7) !important;
    display: flex; align-items: center; gap: 6px;
    padding: 5px 4px; border-radius: 5px;
    transition: color .15s, padding-left .15s;
    text-decoration: none !important;
}
.pa-megamenu__col ul li a:hover { color: var(--pa-red) !important; padding-left: 8px; }

/* Image */
.pa-megamenu__image {
    display: block; border-radius: var(--pa-radius, 10px); overflow: hidden;
    min-width: 0;
}
.pa-megamenu__image img {
    width: 100%; display: block; object-fit: cover; aspect-ratio: 16/9;
    transition: transform .4s ease;
}
.pa-megamenu__image:hover img { transform: scale(1.03); }

/* News */
.pa-megamenu__news { min-width: 0; }
.pa-megamenu__news h6 {
    font-size: 10px; font-weight: 700; letter-spacing: .12em;
    text-transform: uppercase; color: var(--pa-gray); margin-bottom: 10px;
}
.pa-megamenu__news-item {
    display: flex; align-items: flex-start; gap: 8px;
    padding: 6px 0; border-bottom: 1px solid rgba(0,0,0,.05);
    font-size: 12px; color: rgba(17,17,17,.7) !important;
    line-height: 1.4; transition: color .15s; text-decoration: none !important;
}
.pa-megamenu__news-item:last-child { border-bottom: none; }
.pa-megamenu__news-item:hover { color: var(--pa-red) !important; }
.pa-megamenu__news-item::before {
    content: ''; width: 5px; height: 5px; border-radius: 50%;
    background: var(--pa-red); flex-shrink: 0; margin-top: 5px;
}

/* Promo */
.pa-megamenu__promo { border-radius: var(--pa-radius, 10px); padding: 18px 20px; color: #fff; min-width: 0; }
.pa-megamenu__promo-title { font-size: 14px; font-weight: 800; margin-bottom: 6px; color: #fff; }
.pa-megamenu__promo-text  { font-size: 12px; opacity: .85; line-height: 1.5; margin-bottom: 12px; color: #fff; }
.pa-megamenu__promo-btn {
    display: inline-flex; align-items: center; gap: 5px;
    background: rgba(255,255,255,.2); border: 1.5px solid rgba(255,255,255,.4);
    color: #fff !important; font-size: 11px; font-weight: 700; letter-spacing: .06em;
    text-transform: uppercase; padding: 6px 14px; border-radius: 8px;
    transition: background .2s; text-decoration: none !important;
}
.pa-megamenu__promo-btn:hover { background: rgba(255,255,255,.35); }

/* ================================================================
   BADGES NAV
   ================================================================ */
.pa-nav__badge { display: inline-block; font-size: 9px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; padding: 2px 7px; border-radius: 100px; vertical-align: middle; margin-left: 5px; }
.pa-nav__badge--new   { background: #22c55e; color: #fff; }
.pa-nav__badge--promo { background: var(--pa-red); color: #fff; }
.pa-nav__link--bold { font-weight: 900 !important; }
.pa-nav__link--red  { color: var(--pa-red) !important; }
.pa-dd__link--bold  { font-weight: 800 !important; }
.pa-dd__link--red   { color: var(--pa-red) !important; }
.pa-mobile-menu__link--sub  { padding-left: 32px !important; font-size: 14px !important; opacity: .7; }
.pa-mobile-menu__link--bold { font-weight: 900 !important; }
.pa-mobile-menu__link--red  { color: var(--pa-red) !important; }

/* ================================================================
   BADGE .pa-badge — hover fond blanc, texte rouge (lisible)
   ================================================================ */
.pa-badge {
    display: inline-block; font-size: 10px; font-weight: 700;
    letter-spacing: .1em; text-transform: uppercase;
    background: var(--pa-red); color: #fff !important;
    padding: 3px 10px; border-radius: 0;
    text-decoration: none !important; white-space: nowrap;
    transition: background .2s, color .2s, outline .2s;
}
/* Sur les cards : hover bascule fond blanc + texte rouge */
.pa-card:hover .pa-badge,
.pa-article-row:hover .pa-badge {
    background: #fff;
    color: var(--pa-red) !important;
    outline: 1.5px solid var(--pa-red);
}
/* Sur single : pas de hover (le badge est dans le hero statique) */
.pa-single-hero .pa-badge:hover { background: var(--pa-red); color: #fff !important; outline: none; }

/* ================================================================
   FOOTER — réseaux sociaux hover (icône blanche sur fond rouge, pas rouge sur rouge)
   ================================================================ */
.pa-footer__social a:hover {
    border-color: var(--pa-red);
    color: #fff !important;      /* icône blanche */
    background: var(--pa-red);
}

/* Footer bottom legal — sans points */
.pa-footer__bottom-links { display: flex; gap: 20px; flex-wrap: wrap; list-style: none; padding: 0; margin: 0; }
.pa-footer__bottom-links li { list-style: none; }
.pa-footer__bottom-links li::before { display: none !important; content: none !important; }

/* ================================================================
   CARDS — hover unifié
   ================================================================ */
.pa-card {
    display: block;
    background: #fff; border-radius: var(--pa-radius, 10px);
    border: 1.5px solid rgba(0,0,0,.07); overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,.04);
    transition: transform .25s, box-shadow .25s, border-color .25s;
    text-decoration: none !important; cursor: pointer;
}
.pa-card:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.11); border-color: rgba(0,0,0,.14); }
.pa-card:hover .pa-card__img img { transform: scale(1.06); }
.pa-card:hover .pa-card__title { color: var(--pa-red); }
.pa-card__img { position: relative; overflow: hidden; aspect-ratio: 16/10; background: #e8e8e8; display: block; }
.pa-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.pa-card__img .pa-badge { position: absolute; top: 10px; left: 10px; z-index: 2; }
.pa-card__body { padding: clamp(12px, 1.8vw, 18px); display: flex; flex-direction: column; gap: 6px; }
.pa-card__title { font-size: clamp(14px, 1.8vw, 16px); font-weight: 700; line-height: 1.35; color: var(--pa-black); margin: 0; transition: color .2s; text-wrap: balance; }
.pa-card__meta { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; font-size: 11px; color: var(--pa-gray); margin-top: 4px; }
.pa-card__meta svg { width: 11px; height: 11px; }
.pa-card__cat { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pa-red); margin-bottom: 2px; display: block; }

/* ================================================================
   LISTE D'ARTICLES — 2 colonnes sur grand écran
   ================================================================ */
/* ================================================================
   LISTE D'ARTICLES — cartes verticales (photo haut, texte bas), 2 col
   ================================================================ */
.pa-article-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    align-items: stretch; /* cartes de meme hauteur -> metas alignees en bas */
}
@media (max-width: 760px) { .pa-article-list { grid-template-columns: 1fr; } }

/* Carte verticale */
.pa-article-row {
    display: flex;
    flex-direction: column;
    height: 100%;
    background: #fff;
    border-radius: var(--pa-radius, 10px);
    border: 1.5px solid rgba(0,0,0,.07);
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,.04);
    text-decoration: none !important;
    transition: transform .25s, box-shadow .25s, border-color .25s;
    cursor: pointer;
    height: 100%;
}
.pa-article-row:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.11); border-color: rgba(0,0,0,.12); }
.pa-article-row:hover .pa-article-row__img img { transform: scale(1.05); }
.pa-article-row:hover .pa-article-row__title { color: var(--pa-red); }

/* Photo en haut, pleine largeur */
.pa-article-row__img {
    position: relative; overflow: hidden;
    aspect-ratio: 16/10; background: #e8e8e8;
    flex-shrink: 0; width: 100%;
}
.pa-article-row__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.pa-article-row__img .pa-badge { position: absolute; top: 10px; left: 10px; z-index: 2; }
.pa-article-row__placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--pa-bg), #ddd); }

/* Texte en bas */
.pa-article-row__body { padding: 16px; display: flex; flex-direction: column; gap: 6px; min-width: 0; flex: 1; }
.pa-article-row__cat { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pa-red); }
.pa-article-row__title { font-size: clamp(15px, 1.8vw, 17px); font-weight: 700; line-height: 1.3; color: var(--pa-black); margin: 0; transition: color .2s; text-wrap: balance; }
.pa-article-row__excerpt { font-size: 13px; color: var(--pa-gray); line-height: 1.6; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pa-article-row__meta { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--pa-gray); margin-top: auto; padding-top: 8px; flex-wrap: wrap; }

/* ================================================================
   PAGE ARTICLE (SINGLE) — centrage du contenu
   ================================================================ */

/* ================================================================
   SINGLE HERO
   ================================================================ */
.pa-single-hero {
    position: relative;
    height: clamp(300px, 45vw, 520px);
    background-size: cover; background-position: center;
    display: flex; align-items: flex-end;
}
.pa-single-hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.2) 60%, transparent 100%);
    z-index: 1;
}
.pa-single-hero__content {
    position: relative; z-index: 2;
    padding-bottom: clamp(24px, 4vw, 48px);
    display: flex; flex-direction: column;
}
.pa-single-hero__title {
    color: #fff; font-size: clamp(22px, 4vw, 46px);
    font-weight: 800; line-height: 1.15; max-width: 820px; margin: 0 0 16px;
    text-wrap: balance;
}
.pa-single-wrap { padding-top: clamp(32px, 5vw, 64px); padding-bottom: clamp(40px, 6vw, 80px); }
.pa-single-layout {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 60px; align-items: start;
    max-width: 1060px; margin: 0 auto;
}
@media (max-width: 900px) { .pa-single-layout { grid-template-columns: 1fr !important; gap: 40px; } }

/* Si pas de sidebar : centrer l'article seul */
.pa-single-layout:not(:has(.pa-single-sidebar > *)) {
    grid-template-columns: minmax(0, 760px);
    justify-content: center;
}

.pa-article { font-size: clamp(15px, 2vw, 17px); line-height: 1.85; color: #1a1a1a; min-width: 0; }
.pa-article > * { margin-top: 0; margin-bottom: 1.4em; }
.pa-article > *:last-child { margin-bottom: 0; }

/* Espacement enrichi avant les titres */
.pa-article > p + h2, .pa-article > ul + h2, .pa-article > ol + h2,
.pa-article > blockquote + h2, .pa-article > figure + h2 { margin-top: 2.8em; }
.pa-article > p + h3, .pa-article > ul + h3, .pa-article > ol + h3 { margin-top: 2.2em; }
.pa-article > h2 + p, .pa-article > h3 + p, .pa-article > h4 + p { margin-top: .6em; }

.pa-article h2 {
    font-size: clamp(20px, 3vw, 28px); font-weight: 800; letter-spacing: -.025em;
    line-height: 1.2; color: #111; position: relative;
}
.pa-article h2::before { content: none; }
.pa-article h3 { font-size: clamp(17px, 2.5vw, 22px); font-weight: 700; line-height: 1.3; color: #111; }
.pa-article h4 { font-size: 13px; font-weight: 700; color: var(--pa-gray); text-transform: uppercase; letter-spacing: .06em; }

/* Images + légendes */
.pa-article img { border-radius: var(--pa-radius, 10px); width: 100%; height: auto; display: block; }
.pa-article figure { margin: 2.4em 0; }
.pa-article figure img { margin: 0; }
.pa-article figcaption {
    font-size: 12px; color: var(--pa-gray); text-align: center;
    margin-top: 10px; font-style: italic; line-height: 1.5;
    padding: 0 12px;
}
/* Légende via p.caption (Gutenberg/WP classic) */
.pa-article .wp-caption { margin: 2.4em 0; width: 100% !important; }
.pa-article .wp-caption img { border-radius: var(--pa-radius, 10px); }
.pa-article .wp-caption-text {
    font-size: 12px; color: var(--pa-gray); text-align: center;
    margin-top: 10px; font-style: italic; line-height: 1.5;
}
.pa-article > p + figure, .pa-article > p + img { margin-top: 2.4em; }
.pa-article > figure + p, .pa-article > img + p { margin-top: 2.4em; }
.pa-article figure + figure { margin-top: 1.4em; }

.pa-article blockquote {
    border: none; background: linear-gradient(135deg, rgba(222,7,64,.06), rgba(222,7,64,.02));
    border-left: 4px solid var(--pa-red); border-radius: 0 12px 12px 0;
    padding: 20px 24px; margin: 2em 0; font-style: italic; font-size: 1.05em; color: #333; position: relative;
}
.pa-article blockquote::before { content: '\201C'; font-size: 60px; line-height: 1; color: var(--pa-red); opacity: .2; position: absolute; top: -4px; left: 16px; font-style: normal; font-weight: 900; }
.pa-article blockquote p { margin-bottom: 0; }
.pa-article ul { list-style: none; padding-left: 0; }
.pa-article ul li { padding-left: 1.4em; position: relative; }
.pa-article ul li::before { content: ''; position: absolute; left: 0; top: .55em; width: 6px; height: 6px; border-radius: 50%; background: var(--pa-red); }
.pa-article ol { list-style: decimal; padding-left: 1.4em; }
.pa-article li { margin-bottom: .4em; }
.pa-article a { color: var(--pa-red) !important; text-decoration: underline; text-underline-offset: 3px; }
.pa-article a:hover { opacity: .8; }
.pa-article code { background: #f3f4f6; border-radius: 5px; padding: 2px 7px; font-size: .88em; font-family: monospace; }
.pa-article pre { background: #111; color: #e5e7eb; border-radius: 10px; padding: 20px; overflow-x: auto; margin: 2em 0; }
.pa-article pre code { background: none; padding: 0; color: inherit; }
.pa-article table { width: 100%; border-collapse: collapse; margin: 2em 0; font-size: 14px; }
.pa-article th { background: var(--pa-bg); font-weight: 700; text-align: left; padding: 10px 14px; border-bottom: 2px solid rgba(0,0,0,.1); }
.pa-article td { padding: 10px 14px; border-bottom: 1px solid rgba(0,0,0,.06); }

/* Meta bar */
.pa-single-hero__meta { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; font-size: 13px; color: rgba(255,255,255,.75); }
.pa-single-meta__item { display: inline-flex; align-items: center; gap: 5px; line-height: 1; }
.pa-single-meta__item svg { width: 13px; height: 13px; opacity: .8; flex-shrink: 0; }
.pa-single-meta__sep { opacity: .35; }
.pa-single-meta__plain-link { color: rgba(255,255,255,.9) !important; text-decoration: none !important; font-weight: inherit; }
.pa-single-meta__plain-link:hover { color: #fff !important; }

/* ================================================================
   BARRE DE PROGRESSION DE LECTURE
   ================================================================ */
#pa-reading-progress {
    position: fixed; bottom: 0; left: 0; right: 0;
    height: 4px; z-index: 9999;
    background: var(--pa-grad-anim, linear-gradient(90deg, #de0740, #ff6b35));
    background-size: 300% 300%;
    animation: pa-grad 6s ease infinite;
    transform-origin: left;
    transform: scaleX(0);
    pointer-events: none;
    will-change: transform;
}

/* ================================================================
   PARTAGER — options étendues + mobile propre
   ================================================================ */
.pa-single-share {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
    padding: 24px 0; border-top: 1px solid rgba(0,0,0,.07); margin-bottom: 32px;
}
.pa-single-share__label { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; color: var(--pa-gray); margin-right: 4px; flex-shrink: 0; }
.pa-single-share__btn {
    display: inline-flex; align-items: center; gap: 6px;
    padding: 8px 14px; border-radius: 100px; font-size: 12px; font-weight: 700;
    text-decoration: none !important; cursor: pointer; border: 1.5px solid transparent;
    transition: all .2s; white-space: nowrap; background: none;
}
.pa-single-share__btn svg { width: 14px; height: 14px; flex-shrink: 0; }
.pa-single-share__btn--fb  { background: #1877f2; color: #fff !important; border-color: #1877f2; }
.pa-single-share__btn--fb:hover  { background: #155cca; }
.pa-single-share__btn--x   { background: #000; color: #fff !important; border-color: #000; }
.pa-single-share__btn--x:hover   { background: #222; }
.pa-single-share__btn--ig  { background: linear-gradient(135deg, #f58529, #dd2a7b, #8134af); color: #fff !important; border: none; }
.pa-single-share__btn--ig:hover  { filter: brightness(.88); }
.pa-single-share__btn--mail { background: #f3f4f6; color: #333 !important; border-color: #e5e7eb; }
.pa-single-share__btn--mail:hover { background: #e2e3e5; }
.pa-single-share__btn--copy { background: #fff; color: var(--pa-black) !important; border-color: rgba(0,0,0,.15); }
.pa-single-share__btn--copy:hover { background: #f3f4f6; }
@media (max-width: 640px) {
    .pa-single-share { gap: 6px; padding: 20px 0; }
    .pa-single-share__btn { padding: 8px 10px; }
    .pa-single-share__btn .btn-label { display: none; }
    .pa-single-share__btn { font-size: 0; gap: 0; padding: 9px; }
    .pa-single-share__btn svg { width: 16px; height: 16px; }
    .pa-single-share__label { width: 100%; margin-bottom: 2px; }
}

/* ================================================================
   AUTEUR
   ================================================================ */
.pa-single-author {
    display: flex; align-items: flex-start; gap: 18px;
    background: var(--pa-bg, #f8f8f8); border-radius: var(--pa-radius, 10px);
    padding: 24px; margin: 0 0 40px;
}
.pa-single-author__img { width: 72px; height: 72px; border-radius: 50%; object-fit: cover; flex-shrink: 0; border: 3px solid rgba(0,0,0,.07); }
.pa-single-author__info { display: flex; flex-direction: column; gap: 4px; }
.pa-single-author__by { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--pa-gray); }
.pa-single-author__name { font-size: 16px; font-weight: 800; color: var(--pa-black); }
.pa-single-author__desc { font-size: 13px; color: var(--pa-gray); line-height: 1.6; margin: 0; }

/* ================================================================
   ARTICLES LIÉS
   ================================================================ */
.pa-single-related { padding: clamp(40px, 5vw, 64px) 0; background: var(--pa-bg, #f8f8f8); margin-top: 40px; }
@media (max-width: 900px) { .pa-related-grid.pa-grid--4 { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 540px) { .pa-related-grid.pa-grid--4 { grid-template-columns: 1fr !important; } }

/* ================================================================
   PAGE DE RECHERCHE — tag parc en vedette
   ================================================================ */
.pa-search-tag-match {
    display: flex; align-items: center; gap: 18px;
    padding: 22px 26px; margin-bottom: 36px;
    background: #fff;
    border: 1.5px solid rgba(222,7,64,.22); border-radius: var(--pa-radius, 10px);
    box-shadow: 0 6px 26px rgba(222,7,64,.08);
    text-decoration: none !important;
    transition: box-shadow .25s, border-color .25s, transform .25s;
}
.pa-search-tag-match__icon {
    flex-shrink: 0; width: 50px; height: 50px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    background: linear-gradient(135deg, var(--pa-red, #de0740), #ff6b35);
    color: #fff;
}
.pa-search-tag-match__body { flex: 1; }
.pa-search-tag-match:hover {
    border-color: var(--pa-red, #de0740);
    box-shadow: 0 14px 38px rgba(222,7,64,.16);
    transform: translateY(-3px);
}
.pa-search-tag-match__body { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pa-search-tag-match__label { font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--pa-red); }
.pa-search-tag-match__name  { font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: var(--pa-black); text-wrap: balance; }
.pa-search-tag-match__desc  { font-size: 13px; color: var(--pa-gray); line-height: 1.5; }
.pa-search-tag-match__cta {
    display: inline-flex; align-items: center; gap: 6px; flex-shrink: 0;
    background: var(--pa-red); color: #fff !important;
    padding: 11px 20px; border-radius: 8px;
    font-size: 12px; font-weight: 700; letter-spacing: .04em;
    white-space: nowrap; transition: background .2s;
}
.pa-search-tag-match:hover .pa-search-tag-match__cta { background: color-mix(in srgb, var(--pa-red) 85%, black); }
@media (max-width: 540px) {
    .pa-search-tag-match { flex-direction: column; align-items: flex-start; }
    .pa-search-tag-match__cta { align-self: flex-start; }
}

/* ================================================================
   FOOTER CRÉDIT
   ================================================================ */
.pa-footer__credit { color: rgba(255,255,255,.35); font-size: 11.5px; letter-spacing:.015em; }
.pa-footer__credit a { color: rgba(255,255,255,.48) !important; text-decoration: none; transition: color .2s; }
.pa-footer__credit a:hover { color: rgba(255,255,255,.78) !important; }

/* ================================================================
   GRILLE ARTICLES — 3/2/1 colonnes adaptative
   Sur la page parc (avec sidebar), une seule colonne
   ================================================================ */
.pa-article-list {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    align-items: start;
}
/* 2 colonnes sous 1100px */
@media (max-width: 1100px) { .pa-article-list { grid-template-columns: repeat(2, 1fr); } }
/* 1 colonne sous 640px */
@media (max-width: 640px)  { .pa-article-list { grid-template-columns: 1fr; } }

/* Dans la page parc (sidebar occupe de la place) : 2 colonnes max */
.pa-article-list--in-park {
    grid-template-columns: repeat(2, 1fr);
}
@media (max-width: 900px)  { .pa-article-list--in-park { grid-template-columns: 1fr; } }

/* Carte verticale */
.pa-article-row {
    display: flex; flex-direction: column;
    background: #fff; border-radius: var(--pa-radius, 10px);
    border: 1.5px solid rgba(0,0,0,.07); overflow: hidden;
    box-shadow: 0 2px 10px rgba(0,0,0,.04);
    text-decoration: none !important;
    transition: transform .25s, box-shadow .25s, border-color .25s;
    cursor: pointer; height: 100%;
}
.pa-article-row:hover { transform: translateY(-4px); box-shadow: 0 12px 32px rgba(0,0,0,.11); border-color: rgba(0,0,0,.12); }
.pa-article-row:hover .pa-article-row__img img { transform: scale(1.05); }
.pa-article-row:hover .pa-article-row__title { color: var(--pa-red); }

.pa-article-row__img {
    position: relative; overflow: hidden;
    aspect-ratio: 16/10; background: #e8e8e8; flex-shrink: 0; width: 100%;
}
.pa-article-row__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .5s ease; }
.pa-article-row__img .pa-badge { position: absolute; top: 10px; left: 10px; z-index: 2; }
.pa-article-row__placeholder { width: 100%; height: 100%; background: linear-gradient(135deg, var(--pa-bg), #ddd); }

.pa-article-row__body { padding: 16px; display: flex; flex-direction: column; gap: 6px; min-width: 0; flex: 1; }
.pa-article-row__cat { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pa-red); }
.pa-article-row__title { font-size: clamp(14px, 1.6vw, 16px); font-weight: 700; line-height: 1.3; color: var(--pa-black); margin: 0; transition: color .2s; text-wrap: balance; }
.pa-article-row__excerpt { font-size: 13px; color: var(--pa-gray); line-height: 1.6; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.pa-article-row__meta { display: flex; align-items: center; gap: 5px; font-size: 11px; color: var(--pa-gray); margin-top: auto; padding-top: 8px; }

/* ================================================================
   PAGE PARC (taxonomy-post_tag)
   ================================================================ */


.pa-park-hero__count {
    display: inline-flex; align-items: center; gap: 6px;
    color: rgba(255,255,255,.7); font-size: 13px; margin: 4px 0 0;
}
.pa-park-hero__count svg { opacity: .7; }

/* Hero */
.pa-park-hero {
    position: relative;
    min-height: clamp(280px, 38vw, 480px);
    background: #111 center/cover no-repeat;
    display: flex; align-items: flex-end;
}
.pa-park-hero__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.85) 0%, rgba(0,0,0,.35) 50%, rgba(0,0,0,.1) 100%);
    z-index: 1;
}
.pa-park-hero__content {
    position: relative; z-index: 2;
    padding-bottom: clamp(28px, 5vw, 56px);
}
.pa-park-hero__title {
    color: rgba(255,255,255,.8);
    font-size: clamp(18px, 3vw, 28px);
    font-weight: 400; line-height: 1.3; margin: 0;
    text-wrap: balance;
}
.pa-park-hero__title strong {
    display: block;
    color: #fff;
    font-size: clamp(32px, 6vw, 64px);
    font-weight: 800; letter-spacing: -.03em; line-height: 1.05;
}
/* Le ! est inline après le nom, pas de retour à la ligne */
.pa-park-hero__title strong .pa-park-excl {
    font-weight: 400; color: rgba(255,255,255,.7);
}

/* Body layout */
.pa-park-body {
    display: grid;
    grid-template-columns: 1fr 300px;
    gap: 56px;
    align-items: start;
    padding-top: clamp(40px, 6vw, 64px);
    padding-bottom: clamp(56px, 8vw, 96px);
}
/* La sidebar s'étire sur toute la hauteur de la colonne principale */
.pa-park-sidebar { align-self: stretch; min-height: 100%; }
@media (max-width: 960px) {
    .pa-park-body { grid-template-columns: 1fr; gap: 40px; }
    .pa-park-sidebar { order: -1; }
    .pa-park-sidebar__sticky { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
}

/* Sections espacées */
.pa-park-main { display: flex; flex-direction: column; gap: 56px; min-width: 0; }
.pa-park-section { display: flex; flex-direction: column; }

/* Intro */
.pa-park-intro {
    font-size: clamp(15px, 1.8vw, 17px); line-height: 1.85; color: #444;
}
.pa-park-intro p { margin-bottom: .8em; }
.pa-park-intro p:last-child { margin-bottom: 0; }


/* Description native du tag */
.pa-park-tag-desc {
    font-size: clamp(16px, 2vw, 18px); line-height: 1.8;
    color: #333; font-weight: 400;
}
.pa-park-tag-desc p { margin-bottom: .8em; }
.pa-park-tag-desc p:last-child { margin-bottom: 0; }

/* Avis équipe */
.pa-park-team-opinion {
    font-size: clamp(15px, 1.8vw, 16px); line-height: 1.8; color: #444;
    background: var(--pa-bg, #f8f8f8);
    border-radius: var(--pa-radius, 10px);
    padding: 28px 32px;
    position: relative;
}
.pa-park-team-opinion::before {
    content: '\201C';
    position: absolute; top: 12px; left: 24px;
    font-size: 72px; line-height: 1; color: var(--pa-red); opacity: .12;
    font-weight: 900; pointer-events: none;
}
.pa-park-team-opinion p { margin-bottom: .8em; }
.pa-park-team-opinion p:last-child { margin-bottom: 0; }

/* Photo */
.pa-park-photo img {
    width: 100%; border-radius: var(--pa-radius, 10px);
    aspect-ratio: 16/7; object-fit: cover; display: block;
}

/* Bannière billetterie */
.pa-park-tickets-banner {
    display: flex; align-items: center; justify-content: space-between; gap: 20px;
    padding: 24px 28px;
    background: var(--pa-grad-anim);
    background-size: 300% 300%;
    animation: pa-grad 6s ease infinite;
    border-radius: var(--pa-radius, 10px);
    text-decoration: none !important;
    transition: transform .2s, box-shadow .2s;
}
.pa-park-tickets-banner:hover { transform: translateY(-2px); box-shadow: 0 8px 28px rgba(222,7,64,.35); }
.pa-park-tickets-banner__text { display: flex; flex-direction: column; gap: 4px; }
.pa-park-tickets-banner__eyebrow { font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.pa-park-tickets-banner__title { font-size: clamp(15px, 2vw, 18px); font-weight: 800; color: #fff; text-wrap: balance; }
.pa-park-tickets-banner__btn {
    display: inline-flex; align-items: center; gap: 8px; flex-shrink: 0;
    background: #fff; color: var(--pa-red) !important;
    padding: 10px 18px; border-radius: 8px;
    font-size: 13px; font-weight: 700; white-space: nowrap;
    border: 2px solid #fff;
    transition: background .2s, color .2s;
}
.pa-park-tickets-banner:hover .pa-park-tickets-banner__btn {
    background: rgba(255,255,255,.88);
}
@media (max-width: 580px) {
    .pa-park-tickets-banner { flex-direction: column; align-items: flex-start; }
}

/* FAQ */
.pa-park-faq { display: flex; flex-direction: column; gap: 8px; }
.pa-park-faq__item {
    background: #fff; border: 1.5px solid rgba(0,0,0,.07);
    border-radius: var(--pa-radius, 10px); overflow: hidden;
    transition: border-color .2s;
}
.pa-park-faq__item[open] { border-color: rgba(222,7,64,.2); }
.pa-park-faq__q {
    cursor: pointer; list-style: none;
    display: flex; align-items: center; justify-content: space-between; gap: 12px;
    padding: 16px 20px; font-size: 14px; font-weight: 700; color: var(--pa-black);
    user-select: none;
}
.pa-park-faq__q::-webkit-details-marker { display: none; }
.pa-park-faq__q::after {
    content: '+'; flex-shrink: 0;
    font-size: 22px; font-weight: 300; color: var(--pa-red);
    transition: transform .25s; line-height: 1;
}
.pa-park-faq__item[open] .pa-park-faq__q::after { transform: rotate(45deg); }
.pa-park-faq__r { padding: 0 20px 16px; font-size: 14px; line-height: 1.7; color: #444; }
.pa-park-faq__r p { margin-bottom: .6em; }
.pa-park-faq__r p:last-child { margin-bottom: 0; }

/* Parcs proches */
.pa-park-nearby {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
}
@media (max-width: 640px) { .pa-park-nearby { grid-template-columns: 1fr; } }

.pa-park-nearby__item {
    position: relative; display: flex; align-items: flex-end;
    border-radius: var(--pa-radius, 10px); overflow: hidden;
    aspect-ratio: 3/2; background: #111 center/cover no-repeat;
    text-decoration: none !important;
    transition: transform .25s, box-shadow .25s;
}
.pa-park-nearby__item:hover { transform: translateY(-3px); box-shadow: 0 10px 28px rgba(0,0,0,.18); }
.pa-park-nearby__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.75) 0%, transparent 60%);
}
.pa-park-nearby__content {
    position: relative; z-index: 1;
    padding: 12px; width: 100%;
    display: flex; flex-direction: column; align-items: flex-start; gap: 4px;
}
.pa-park-nearby__logo { height: 44px; width: auto; max-width: 140px; object-fit: contain; }
.pa-park-nearby__name { color: #fff; font-size: 13px; font-weight: 700; }
.pa-park-nearby__dist { color: rgba(255,255,255,.7); font-size: 11px; font-weight: 600; }

/* ── SIDEBAR STICKY ── */
.pa-park-sidebar { }
.pa-park-sidebar__sticky {
    position: sticky;
    top: calc(72px + 16px);
    height: calc(100vh - 72px - 32px);
    display: flex; flex-direction: column; gap: 16px;
    overflow: hidden; /* La map prend le reste */
}
/* La carte prend tout l'espace restant */
.pa-park-sidebar__sticky .pa-park-map {
    flex: 1; min-height: 120px;
    display: flex; flex-direction: column;
}
.pa-park-sidebar__sticky .pa-park-map .pa-park-map__embed {
    flex: 1; aspect-ratio: unset; min-height: 0;
}
.pa-park-sidebar__sticky .pa-park-map .pa-park-map__embed iframe {
    height: 100%;
}
@media (max-width: 960px) {
    .pa-park-sidebar__sticky { height: auto; overflow: visible; }
    .pa-park-sidebar__sticky .pa-park-map { flex: none; }
    .pa-park-sidebar__sticky .pa-park-map .pa-park-map__embed { aspect-ratio: 4/3; }
}

/* Logo dans la sidebar */
.pa-park-sidebar__logo {
    background: #fff;
    border: 1.5px solid rgba(0,0,0,.07);
    border-radius: var(--pa-radius, 10px);
    padding: 20px;
    display: flex; align-items: center; justify-content: center;
}
.pa-park-sidebar__logo img {
    max-height: 80px; width: auto; max-width: 200px;
    object-fit: contain; display: block;
    /* Pas de filtre blanc — logo affiché tel quel */
}

/* Widgets */
.pa-park-widget {
    background: #fff; border: 1.5px solid rgba(0,0,0,.07);
    border-radius: var(--pa-radius, 10px); overflow: hidden;
}
.pa-park-widget__head {
    display: flex; align-items: center; gap: 10px;
    padding: 14px 18px; border-bottom: 1px solid rgba(0,0,0,.06);
}
.pa-park-widget__icon {
    width: 30px; height: 30px; border-radius: 8px;
    background: rgba(222,7,64,.08); color: var(--pa-red);
    display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.pa-park-widget__title { font-size: 13px; font-weight: 700; color: var(--pa-black); margin: 0; }

/* Infos pratiques */
.pa-park-info-list { list-style: none; padding: 12px 18px; margin: 0; display: flex; flex-direction: column; gap: 10px; }
.pa-park-info-list li { display: flex; align-items: flex-start; gap: 10px; font-size: 13px; color: #444; }
.pa-park-info-list li svg { flex-shrink: 0; margin-top: 1px; color: var(--pa-red); }
.pa-park-info-list li a { color: var(--pa-red) !important; text-decoration: underline; text-underline-offset: 2px; }

/* Carte */
.pa-park-map__embed { position: relative; aspect-ratio: 4/3; }
.pa-park-map__embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: none; display: block; }

/* Queue Times */
.pa-park-status__loading { display: flex; align-items: center; gap: 10px; padding: 16px 18px; font-size: 13px; color: var(--pa-gray); }
.pa-park-status__spinner { width: 16px; height: 16px; border-radius: 50%; border: 2px solid rgba(222,7,64,.2); border-top-color: var(--pa-red); animation: pa-spin .7s linear infinite; flex-shrink: 0; }
@keyframes pa-spin { to { transform: rotate(360deg); } }
.pa-park-status__credit { padding: 8px 18px 12px; font-size: 11px; color: var(--pa-gray); border-top: 1px solid rgba(0,0,0,.05); margin: 0; }
.pa-park-status__credit a { color: var(--pa-red) !important; text-decoration: underline; }
.pa-park-status__top { display: flex; align-items: center; gap: 10px; padding: 12px 18px 8px; flex-wrap: wrap; }
.pa-park-status__open { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; color: #16a34a; background: #dcfce7; padding: 4px 10px; border-radius: 100px; }
.pa-park-status__open::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #16a34a; animation: pa-pulse 1.5s ease infinite; }
@keyframes pa-pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.6;transform:scale(1.3)} }
.pa-park-status__closed { display: inline-flex; align-items: center; gap: 5px; font-size: 12px; font-weight: 700; color: #dc2626; background: #fee2e2; padding: 4px 10px; border-radius: 100px; }
.pa-park-status__closed::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: #dc2626; }
.pa-park-status__count { font-size: 12px; color: var(--pa-gray); }
.pa-qt-rides { padding: 4px 18px 12px; display: flex; flex-direction: column; gap: 4px; }
.pa-qt-ride { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 0; border-bottom: 1px solid rgba(0,0,0,.05); font-size: 12px; }
.pa-qt-ride:last-child { border-bottom: none; }
.pa-qt-ride__name { color: var(--pa-black); font-weight: 500; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.pa-qt-ride__wait { font-weight: 700; font-size: 11px; flex-shrink: 0; padding: 2px 8px; border-radius: 100px; }
.pa-qt-ride__wait--low  { background: #dcfce7; color: #16a34a; }
.pa-qt-ride__wait--med  { background: #fef9c3; color: #ca8a04; }
.pa-qt-ride__wait--high { background: #fee2e2; color: #dc2626; }

/* ================================================================
   BREADCRUMB — dans le hero des pages parc uniquement
   ================================================================ */
.pa-park-breadcrumb {
    display: flex; align-items: center; gap: 6px;
    font-size: 12px; color: rgba(255,255,255,.55);
    margin-bottom: 12px;
}
.pa-park-breadcrumb a { color: rgba(255,255,255,.55) !important; text-decoration: none !important; transition: color .15s; }
.pa-park-breadcrumb a:hover { color: rgba(255,255,255,.9) !important; }
.pa-park-breadcrumb__sep { opacity: .5; }

/* Météo dans la sidebar parc */
.pa-park-weather {
    background: #fff; border: 1.5px solid rgba(0,0,0,.07);
    border-radius: var(--pa-radius, 10px); overflow: hidden;
}
.pa-park-weather__content {
    padding: 16px 18px;
    display: flex; align-items: center; gap: 14px;
}
.pa-park-weather__icon { font-size: 36px; line-height: 1; flex-shrink: 0; }
.pa-park-weather__info { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.pa-park-weather__temp { font-size: 28px; font-weight: 800; color: var(--pa-black); line-height: 1; }
.pa-park-weather__desc { font-size: 13px; color: var(--pa-gray); text-transform: capitalize; }
.pa-park-weather__loc  { font-size: 11px; color: var(--pa-gray); }
.pa-park-weather__credit { padding: 0 18px 10px; font-size: 11px; color: var(--pa-gray); }
.pa-park-weather__credit a { color: var(--pa-gray) !important; }
.pa-park-weather__loading { padding: 16px 18px; font-size: 13px; color: var(--pa-gray); display: flex; align-items: center; gap: 8px; }

/* Badge ouvert sur cards parcs proches */
.pa-park-nearby__open {
    position: absolute; top: 8px; right: 8px; z-index: 2;
    background: #16a34a; color: #fff;
    font-size: 10px; font-weight: 700; letter-spacing: .06em;
    padding: 3px 8px; border-radius: 100px;
    display: flex; align-items: center; gap: 4px;
}
.pa-park-nearby__open::before {
    content: ''; width: 5px; height: 5px; border-radius: 50%;
    background: #fff; opacity: .8;
    animation: pa-pulse 1.5s ease infinite;
}

.pa-park-status__hours {
    display: flex; align-items: center; gap: 6px;
    padding: 8px 18px 12px; font-size: 13px;
    color: var(--pa-gray); font-weight: 500;
}
.pa-park-status__hours svg { flex-shrink: 0; color: var(--pa-red); }

/* Météo compacte */
.pa-park-weather__row {
    display: flex; align-items: center; gap: 10px;
    padding: 12px 18px;
}
.pa-park-weather__icon { font-size: 24px; line-height: 1; flex-shrink: 0; }
.pa-park-weather__temp { font-size: 20px; font-weight: 800; color: var(--pa-black); }
.pa-park-weather__desc { font-size: 12px; color: var(--pa-gray); }

/* Accordéons sidebar parc */
.pa-park-widget__head { cursor: pointer; }
.pa-park-widget__head:hover { background: rgba(0,0,0,.02); }
.pa-park-acc__body { }

/* ================================================================
   ARCHIVE CATÉGORIE
   ================================================================ */
.pa-cat-hero {
    position: relative; overflow: hidden;
    background: radial-gradient(120% 140% at 0% 0%, color-mix(in srgb, var(--cat-accent,#de0740) 22%, #0d0d12) 0%, #0d0d12 55%);
    padding: clamp(48px,7vw,88px) 0 clamp(40px,5vw,60px);
}
.pa-cat-hero::after {
    content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px;
    background: linear-gradient(90deg, var(--cat-accent,#de0740), transparent 70%);
}
.pa-cat-hero__content { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }
.pa-cat-hero__eyebrow { font-size: 11px; font-weight: 800; letter-spacing: .18em; text-transform: uppercase; color: var(--cat-accent,#de0740); display: inline-flex; align-items: center; gap: 8px; }
.pa-cat-hero__eyebrow::before { content: ""; width: 22px; height: 2px; background: var(--cat-accent,#de0740); }
.pa-cat-hero__title { font-size: clamp(32px,5.5vw,58px); font-weight: 800; letter-spacing: -.03em; color: #fff; margin: 0; line-height: 1.04; text-wrap: balance; }
.pa-cat-hero__desc { font-size: 16px; color: rgba(255,255,255,.62); max-width: 620px; margin: 0; line-height: 1.65; }
.pa-cat-hero__count { font-size: 12px; font-weight: 700; letter-spacing: .04em; color: #fff; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.14); padding: 6px 14px; border-radius: 8px; }

/* Corps de l'archive : marges = celles du site (.pa-container), rythme vertical homogene */
.pa-cat-body { padding: clamp(36px,5vw,60px) 0 clamp(56px,8vw,90px); }
/* Largeur du corps d'archive alignee sur celle des articles (lecture + coherence header/footer) */
.pa-cat-body, .pa-cat-hero__content { max-width: calc(1100px + 2 * clamp(16px,4vw,40px)); }
.pa-cat-pagination { margin-top: clamp(36px,5vw,52px); }

.pa-cat-others { margin-top: clamp(48px,7vw,80px); padding-top: clamp(32px,4vw,48px); border-top: 1px solid rgba(0,0,0,.07); }
.pa-cat-grid { display: flex; flex-wrap: wrap; gap: 10px; }
.pa-cat-chip {
    display: inline-flex; align-items: center; gap: 8px;
    background: #fff; border: 1.5px solid rgba(0,0,0,.08);
    border-radius: 8px; padding: 7px 14px;
    text-decoration: none !important;
    font-size: 13px; font-weight: 600; color: var(--pa-black) !important;
    transition: border-color .2s, box-shadow .2s, transform .2s;
}
.pa-cat-chip:hover { border-color: var(--pa-red); box-shadow: 0 2px 12px rgba(222,7,64,.1); transform: translateY(-1px); }
.pa-cat-chip__dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; }
.pa-cat-chip__count { font-size: 11px; color: var(--pa-gray); margin-left: 2px; }

/* ================================================================
   PAGE PARC — Top 10 banner
   ================================================================ */
.pa-park-top10-banner {
    position: relative; display: flex; align-items: flex-end;
    border-radius: var(--pa-radius, 10px); overflow: hidden;
    min-height: 140px; text-decoration: none !important;
    transition: transform .25s, box-shadow .25s;
}
.pa-park-top10-banner:hover { transform: translateY(-3px); box-shadow: 0 12px 32px rgba(0,0,0,.15); }
.pa-park-top10-banner__img {
    position: absolute; inset: 0;
    background: #111 center/cover no-repeat;
    transition: transform .5s ease;
}
.pa-park-top10-banner:hover .pa-park-top10-banner__img { transform: scale(1.04); }
.pa-park-top10-banner__overlay {
    position: absolute; inset: 0;
    background: linear-gradient(to right, rgba(0,0,0,.85) 0%, rgba(0,0,0,.4) 60%, transparent 100%);
}
.pa-park-top10-banner__content {
    position: relative; z-index: 1;
    padding: 20px 24px; display: flex; flex-direction: column; gap: 6px;
}
.pa-park-top10-banner__label {
    display: inline-block;
    background: var(--pa-red); color: #fff;
    font-size: 10px; font-weight: 800; letter-spacing: .12em; text-transform: uppercase;
    padding: 3px 10px; border-radius: 0; align-self: flex-start;
}
.pa-park-top10-banner__title {
    color: #fff; font-size: clamp(15px,2vw,18px); font-weight: 700;
    line-height: 1.3; max-width: 500px; text-wrap: balance;
}
.pa-park-top10-banner__cta { color: rgba(255,255,255,.7); font-size: 12px; font-weight: 600; }

/* ================================================================
   PAGE PARC — Statut plus compact
   ================================================================ */
.pa-park-status__top {
    display: flex; align-items: center; gap: 12px;
    padding: 14px 16px; flex-wrap: wrap;
}
.pa-park-status__open {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 12px; font-weight: 700; color: #16a34a;
    background: #dcfce7; padding: 5px 12px; border-radius: 100px;
    white-space: nowrap;
}
.pa-park-status__open::before {
    content: ''; width: 6px; height: 6px; border-radius: 50%;
    background: #16a34a; animation: pa-pulse 1.5s ease infinite;
}
.pa-park-status__closed {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 12px; font-weight: 700; color: #dc2626;
    background: #fee2e2; padding: 5px 12px; border-radius: 100px;
    white-space: nowrap;
}
.pa-park-status__closed::before { content: ''; width: 6px; height: 6px; border-radius: 50%; background: #dc2626; }
.pa-park-status__hours {
    display: inline-flex; align-items: center; gap: 5px;
    font-size: 13px; font-weight: 600; color: var(--pa-black);
}
.pa-park-status__hours svg { color: var(--pa-red); flex-shrink: 0; }

/* ================================================================
   MOBILE TOPBAR POPUP
   ================================================================ */
.pa-topbar-popup {
    position: fixed; bottom: 0; left: 0; right: 0; z-index: 300;
    background: var(--pa-black);
    border-radius: 16px 16px 0 0;
    padding: 20px 20px 32px;
    transform: translateY(100%);
    transition: transform .4s cubic-bezier(.22,1,.36,1);
    box-shadow: 0 -8px 32px rgba(0,0,0,.25);
}
.pa-topbar-popup.is-visible { transform: translateY(0); }
.pa-topbar-popup__handle {
    width: 36px; height: 4px; background: rgba(255,255,255,.2);
    border-radius: 2px; margin: 0 auto 16px; cursor: pointer;
}
.pa-topbar-popup__title {
    font-size: 11px; font-weight: 700; letter-spacing: .14em;
    text-transform: uppercase; color: var(--pa-red); margin-bottom: 12px;
}
.pa-topbar-popup__items { display: flex; flex-direction: column; gap: 12px; }
.pa-topbar-popup__item {
    font-size: 14px; color: rgba(255,255,255,.8); line-height: 1.5;
    padding-bottom: 12px; border-bottom: 1px solid rgba(255,255,255,.07);
}
.pa-topbar-popup__item:last-child { border-bottom: none; padding-bottom: 0; }
.pa-topbar-popup__item a { color: rgba(255,255,255,.8) !important; }
.pa-topbar-popup__close {
    position: absolute; top: 16px; right: 16px;
    width: 28px; height: 28px; border-radius: 50%;
    background: rgba(255,255,255,.1); border: none; cursor: pointer;
    display: flex; align-items: center; justify-content: center; color: #fff;
}
.pa-topbar-popup__overlay {
    position: fixed; inset: 0; z-index: 299;
    background: rgba(0,0,0,.5);
    opacity: 0; visibility: hidden;
    transition: opacity .3s, visibility .3s;
}
.pa-topbar-popup__overlay.is-visible { opacity: 1; visibility: visible; }

/* ================================================================
   MEGA MENU — image même taille que la liste
   ================================================================ */
.pa-megamenu__inner { align-items: stretch; }
.pa-megamenu__image { display: flex; flex-direction: column; }
.pa-megamenu__image img {
    width: 100%; flex: 1; object-fit: cover;
    aspect-ratio: auto;
    min-height: 100%;
}

/* ================================================================
   MOBILE — bouton close z-index fix
   ================================================================ */
.pa-mobile-menu__close {
    position: absolute; top: 20px; right: 20px;
    width: 40px; height: 40px; border-radius: 50%;
    border: 1.5px solid rgba(0,0,0,.1);
    background: #fff;
    display: flex; align-items: center; justify-content: center;
    cursor: pointer; z-index: 10;
    transition: background .2s;
}
.pa-mobile-menu__close:hover { background: var(--pa-bg); }
.pa-mobile-menu__close svg { width: 16px; height: 16px; }

/* ================================================================
   BOUTONS GLOBAUX — radius cohérent avec newsletter footer
   ================================================================ */
.pa-btn, button.pa-btn, a.pa-btn,
.wp-block-button__link,
.woocommerce button.button,
.woocommerce input[type="submit"] {
    border-radius: 8px !important;
}
/* Boutons avec radius 100px (pills) restent pills */
.pa-single-share__btn,
.pa-park-tickets-banner__btn,
.pa-search-tag-match__cta,
.pa-park-nearby__open,
.pa-nav__badge,
.pa-badge,
.pa-park-status__open,
.pa-park-status__closed,
.pa-cat-chip {
    /* ces boutons gardent leur radius spécifique */
}

/* ================================================================
   WIDGET FUSIONNÉ Météo + Statut
   ================================================================ */
.pa-park-widget--combined { }
.pa-park-widget--combined .pa-park-widget__head { border-bottom: none; }
.pa-park-combined__row {
    display: flex; align-items: center; gap: 12px;
    padding: 8px 16px 14px;
    border-bottom: 1px solid rgba(0,0,0,.06);
}
.pa-park-combined__row:last-child { border-bottom: none; }
.pa-park-combined__icon { font-size: 22px; line-height: 1; flex-shrink: 0; }
.pa-park-combined__info { display: flex; flex-direction: column; gap: 1px; min-width: 0; flex: 1; }
.pa-park-combined__label { font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--pa-gray); }
.pa-park-combined__value { font-size: 15px; font-weight: 700; color: var(--pa-black); line-height: 1.2; }
.pa-park-combined__sub { font-size: 12px; color: var(--pa-gray); }
/* Statut compact inline */
.pa-park-status-inline {
    display: flex; align-items: center; gap: 8px; flex-wrap: wrap;
}
.pa-park-status-inline .pa-park-status__open,
.pa-park-status-inline .pa-park-status__closed { font-size: 11px; padding: 3px 10px; }
.pa-park-status-inline .pa-park-status__hours { font-size: 12px; }

/* Articles similaires single — 3/2/1 colonnes */
.pa-related-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
@media (max-width: 900px) { .pa-related-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 540px) { .pa-related-grid { grid-template-columns: 1fr; } }

/* Masquer la row statut si vide (pas de données d'ouverture) */
.pa-park-combined__row--status:empty { display: none; }
.pa-park-combined__row--status:has(.pa-park-status__spinner:only-child) { display: none; }

/* Supprimer la catégorie au-dessus du titre dans les listes d'articles */
.pa-article-row__cat { display: none; }

/* ================================================================
   DESIGN SYSTEM v2.3 — uniformisation des interactions
   Regles : hover = mise en avant du rouge / texte rouge devient
   blanc sur fond rouge / lift -3px (-2px boutons) / ombre teintee
   du degrade de la charte / jamais d'effet sur les logos.
   ================================================================ */
:root {
    --pa-content-w: 760px;
    --pa-t: .25s;
    --pa-ease: cubic-bezier(.4,0,.2,1);
    --pa-lift: -3px;
    --pa-shadow-rest: 0 2px 12px rgba(0,0,0,.05);
    --pa-shadow-hover: 0 10px 28px rgba(222,7,64,.16), 0 4px 12px rgba(255,107,53,.10);
    --pa-shadow-hover-strong: 0 14px 36px rgba(222,7,64,.22), 0 6px 16px rgba(255,107,53,.14);
}
@supports (color: color-mix(in srgb, red, blue)) {
    :root {
        --pa-shadow-hover: 0 10px 28px color-mix(in srgb, var(--pa-g1, #de0740) 17%, transparent),
                           0 4px 12px color-mix(in srgb, var(--pa-g2, #ff6b35) 11%, transparent);
        --pa-shadow-hover-strong: 0 14px 36px color-mix(in srgb, var(--pa-g1, #de0740) 23%, transparent),
                                  0 6px 16px color-mix(in srgb, var(--pa-g2, #ff6b35) 15%, transparent);
    }
}

/* ── BOUTONS — un seul style pour tout le site ── */
.pa-btn {
    display:inline-flex; align-items:center; gap:8px;
    font-size:13px; font-weight:700; letter-spacing:.03em;
    padding:11px 22px; border-radius:8px;
    text-decoration:none!important; cursor:pointer; white-space:nowrap; border:none;
    transition:transform var(--pa-t) var(--pa-ease), box-shadow var(--pa-t) var(--pa-ease),
               background var(--pa-t) var(--pa-ease), color var(--pa-t) var(--pa-ease);
}
.pa-btn:hover { transform:translateY(-2px); box-shadow:var(--pa-shadow-hover); }
.pa-btn svg { width:14px; height:14px; flex-shrink:0; transition:transform var(--pa-t) var(--pa-ease); }
.pa-btn:hover svg { transform:translateX(3px); }
.pa-btn--red:hover { background:#fff; color:var(--pa-red)!important; }
/* Texte rouge -> blanc sur fond rouge au hover */
.pa-btn--outline:hover { background:var(--pa-red); color:#fff!important; border-color:var(--pa-red); }
.pa-btn--white { background:#fff; color:var(--pa-red)!important; }
.pa-btn--white:hover { background:var(--pa-red); color:#fff!important; }

/* ── CARTES — hover unifie : lift -3px + ombre charte + titre rouge ── */
.pa-card,
.pa-article-row,
.pa-dossiers-featured,
.pa-park-nearby__item,
.pa-park-tickets-banner,
.pa-park-top10-banner,
.pa-banner-card,
.pa-park-card {
    transition:transform var(--pa-t) var(--pa-ease), box-shadow var(--pa-t) var(--pa-ease),
               border-color var(--pa-t) var(--pa-ease);
}
.pa-card:hover,
.pa-article-row:hover,
.pa-dossiers-featured:hover,
.pa-park-nearby__item:hover,
.pa-park-tickets-banner:hover,
.pa-park-top10-banner:hover {
    transform:translateY(var(--pa-lift));
    box-shadow:var(--pa-shadow-hover);
    border-color:rgba(222,7,64,.18);
}
.pa-park-card:hover { transform:translateY(var(--pa-lift)); box-shadow:var(--pa-shadow-hover-strong); }
/* Zoom image unifie */
.pa-card:hover .pa-card__img img,
.pa-article-row:hover .pa-article-row__img img,
.pa-dossiers-item:hover .pa-dossiers-item__img img,
.pa-park-top10-banner:hover .pa-park-top10-banner__img,
.pa-megamenu__image:hover img {
    transform:scale(1.04);
}

/* ── CHIPS & LIENS ROUGES — hover : fond rouge, texte blanc ── */
.pa-cat-chip { transition:background var(--pa-t) var(--pa-ease), color var(--pa-t) var(--pa-ease),
               border-color var(--pa-t) var(--pa-ease), transform var(--pa-t) var(--pa-ease),
               box-shadow var(--pa-t) var(--pa-ease); }
.pa-cat-chip:hover {
    background:var(--pa-red); border-color:var(--pa-red); color:#fff!important;
    transform:translateY(-2px); box-shadow:var(--pa-shadow-hover);
}
.pa-cat-chip:hover .pa-cat-chip__count { color:rgba(255,255,255,.75); }

/* Liens texte rouges (hors nav) : pastille rouge au hover, sans decalage */
.pa-single-meta__plain-link { transition:background var(--pa-t), color var(--pa-t); border-radius:100px; padding:2px 8px; margin:-2px -8px; }
.pa-single-meta__plain-link:hover { background:transparent!important; color:#fff!important; }

/* ── LOGOS — jamais d'effet ── */
.pa-park-logos__item img,
.pa-park-card__logo,
.pa-header__logo img,
.pa-footer__logo img {
    transition:none!important; filter:none!important; transform:none!important;
}

.pa-park-logos__item:hover img { filter:none!important; }

/* ── PAGES (hors accueil/articles/archives) : H1 + largeur contenu ── */
.pa-page-head { padding:clamp(36px,6vw,72px) 0 clamp(8px,2vw,16px); }
.pa-page-title {
    font-size:clamp(30px,5vw,56px); font-weight:800;
    letter-spacing:-.03em; line-height:1.08; margin:0;
    color:var(--pa-black); text-wrap:balance;
}
.pa-page-content { padding:clamp(20px,3.5vw,40px) 0 clamp(48px,7vw,88px); }
.pa-page-content--front { padding:0; }

/* Blocs pleine largeur : sortent du flux texte */
.pa-page-content > .alignfull {
    max-width:none; width:100vw;
    margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
}
.pa-page-content > .alignwide { max-width:1100px; }
.pa-page-content--front > * { max-width:none; margin:0; }
.pa-page-content--front > .alignfull { width:auto; margin-left:0; margin-right:0; }
/* h2 des pages : sans barre (retiree partout) */
.pa-page-content h2 { position:relative; padding-left:0; }
.pa-page-content h2::before { content:none; }

/* ── TYPO — echelle commune des cartes ── */
.pa-card__title { font-size:clamp(14px,1.8vw,16px); }
.pa-dossiers-item__title { font-size:14px; }

/* ================================================================
   v2.3.1 — corrections coherence
   ================================================================ */

/* ── OVERLAY ROUGE AU HOVER — generalise a toutes les cartes image ── */
.pa-card__img::after,
.pa-article-row__img::after,
.pa-dossiers-featured__img::after,
.pa-dossiers-item__img::after,
.pa-megamenu__image::after {
    content:''; position:absolute; inset:0; z-index:1;
    opacity:0; pointer-events:none;
    transform:translateY(14px);
    background:linear-gradient(to top, rgba(222,7,64,.5) 0%, rgba(255,107,53,.22) 55%, transparent 100%);
    transition:opacity var(--pa-t, .25s) var(--pa-ease, ease), transform .32s var(--pa-ease, ease);
}
@supports (color: color-mix(in srgb, red, blue)) {
    .pa-card__img::after,
    .pa-article-row__img::after,
    .pa-dossiers-featured__img::after,
    .pa-dossiers-item__img::after,
    .pa-megamenu__image::after {
        background:linear-gradient(to top,
            color-mix(in srgb, var(--pa-g1, #de0740) 50%, transparent) 0%,
            color-mix(in srgb, var(--pa-g2, #ff6b35) 22%, transparent) 55%,
            transparent 100%);
    }
}
.pa-card__img, .pa-article-row__img, .pa-dossiers-featured__img, .pa-dossiers-item__img, .pa-megamenu__image { position:relative; }
.pa-card:hover .pa-card__img::after,
.pa-article-row:hover .pa-article-row__img::after,
.pa-dossiers-featured:hover .pa-dossiers-featured__img::after,
.pa-dossiers-item:hover .pa-dossiers-item__img::after,
.pa-megamenu__image:hover::after { opacity:1; transform:none; }
.pa-card:hover .pa-card__img::after,
.pa-article-row:hover .pa-article-row__img::after,
.pa-dossiers-featured:hover .pa-dossiers-featured__img::after,
.pa-dossiers-item:hover .pa-dossiers-item__img::after { transform:none; }

/* ── LISTE DES PARCS : logo en couleurs d'origine, sans chip ── */
.pa-park-card__logo-wrap,
.pa-park-card:hover .pa-park-card__logo-wrap {
    background:transparent!important; border:none!important;
    padding:0!important; border-radius:0!important; box-shadow:none!important;
}
.pa-park-card__logo { filter:none!important; max-height:40px; }

/* ── TYPO COMMUNE articles + pages : 17px / 31px / #1a1a1a ──
   Scopee aux paragraphes du flux editorial uniquement :
   les blocs PA (newsletter, hero, ticker, logos, grilles) gardent leurs styles */
.pa-article > p, .pa-page-content > p,
.pa-article > ul li, .pa-article > ol li,
.pa-page-content > ul li, .pa-page-content > ol li,
.pa-article .wp-block-column p, .pa-page-content .wp-block-column p,
.pa-article .wp-block-group p, .pa-page-content .wp-block-group p {
    font-size:17px; line-height:31px; color:#1a1a1a;
}

/* ── RYTHME VERTICAL (meme scope) ── */
.pa-article > p, .pa-page-content > p,
.pa-article .wp-block-column p, .pa-page-content .wp-block-column p,
.pa-article .wp-block-group p, .pa-page-content .wp-block-group p { margin:0 0 22px; }
.pa-article > ul, .pa-page-content > ul { margin:0 0 26px; padding-left:0; }
.pa-article > ol, .pa-page-content > ol { margin:0 0 26px; padding-left:22px; }
.pa-article > ul li, .pa-page-content > ul li { margin-bottom:8px; list-style:none; }
.pa-article > ol li, .pa-page-content > ol li { margin-bottom:8px; list-style:decimal; }
.pa-article > h2, .pa-page-content > h2 { margin:44px 0 16px; }
.pa-article > h3, .pa-page-content > h3 { margin:32px 0 12px; }
.pa-article .wp-block-image, .pa-article figure,
.pa-page-content .wp-block-image, .pa-page-content figure { margin:36px auto; }
/* Deux images qui se suivent : petit espace, comme deux images cote a cote */
.pa-article .wp-block-image + .wp-block-image,
.pa-page-content .wp-block-image + .wp-block-image,
.pa-article figure + figure,
.pa-page-content figure + figure { margin-top:-20px!important; margin-top:calc(-36px + 16px)!important; }

/* ── BLOCS NATIFS WP — regles dans le theme (le CSS plugin est conditionnel) ── */
.pa-page-content .wp-block-columns,
.pa-article .wp-block-columns {
    display:flex; gap:16px; align-items:flex-start; margin:36px 0;
}
.pa-page-content .wp-block-column, .pa-article .wp-block-column { min-width:0; flex:1; }
/* 2 colonnes Gutenberg -> 1 colonne sur telephone */
@media(max-width:768px){
    .pa-page-content .wp-block-columns,
    .pa-article .wp-block-columns { flex-wrap:wrap; }
    .pa-page-content .wp-block-column,
    .pa-article .wp-block-column { flex-basis:100%!important; }
}
.pa-page-content .wp-block-image img, .pa-article .wp-block-image img { border-radius:var(--pa-radius,10px); }
.pa-page-content .wp-block-image figcaption, .pa-article .wp-block-image figcaption {
    font-size:12px; color:var(--pa-gray); text-align:center; margin-top:8px; font-style:italic;
}

/* ── ACCUEIL : blocs natifs alignes sur la largeur du site ── */
.pa-page-content--front > *:not(.alignfull):not([class*="pa-"]) {
    max-width:1240px;
    margin-left:auto; margin-right:auto;
    padding-left:clamp(16px,4vw,40px); padding-right:clamp(16px,4vw,40px);
}
.pa-page-content--front > .alignfull { max-width:none; width:auto; margin-left:0; margin-right:0; padding:0; }

/* Pages : le breakout alignfull fonctionne depuis le pa-container */
.pa-page-content > .alignfull {
    width:100vw; max-width:100vw;
    margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw);
}

/* ── MENU MOBILE — refonte ── */
.pa-mobile-menu {
    display:flex; visibility:hidden; opacity:0;
    transform:translateY(10px);
    transition:opacity .28s var(--pa-ease, ease), transform .28s var(--pa-ease, ease), visibility .28s;
    padding:92px 22px 40px;
    gap:0;
}
.pa-mobile-menu.is-open { visibility:visible; opacity:1; transform:none; }
.pa-mobile-menu__link {
    font-size:17px; font-weight:700;
    padding:16px 6px; border-radius:0;
    border-bottom:1px solid rgba(0,0,0,.07);
    transition:color var(--pa-t,.25s), padding-left var(--pa-t,.25s);
}
.pa-mobile-menu__link:hover,
.pa-mobile-menu__link:active,
.pa-mobile-menu__link.is-active {
    background:none; color:var(--pa-red)!important; padding-left:12px;
}
.pa-mobile-menu__link--sub { padding-left:22px!important; font-size:14px!important; opacity:.65; font-weight:600!important; }
.pa-mobile-menu__link--sub:hover { padding-left:30px!important; opacity:1; }
.pa-mobile-menu__close {
    top:18px; right:18px; width:44px; height:44px;
    background:var(--pa-bg); border:none;
    transition:background var(--pa-t,.25s), color var(--pa-t,.25s);
}
.pa-mobile-menu__close:hover { background:var(--pa-red); color:#fff; }

/* ── TOPBAR : masquer le texte FERMER sur telephone ── */
@media(max-width:640px){
    .pa-topbar__close { font-size:0; gap:0; }
    .pa-topbar__close svg { width:14px; height:14px; }
}

/* ── BANNIERE GUIDE COMPLET (fin d'article) ── */
.pa-single-guide { background:var(--pa-bg,#f8f8f8); padding:0 0 clamp(40px,6vw,72px); }
.pa-guide-banner {
    position:relative; display:block;
    border-radius:var(--pa-radius,10px); overflow:hidden;
    background:#111 center/cover no-repeat;
    min-height:clamp(180px,22vw,260px);
    text-decoration:none!important;
    transition:transform var(--pa-t,.25s) var(--pa-ease,ease), box-shadow var(--pa-t,.25s) var(--pa-ease,ease);
}
.pa-guide-banner:hover { transform:translateY(var(--pa-lift,-3px)); box-shadow:var(--pa-shadow-hover); }
.pa-guide-banner__overlay {
    position:absolute; inset:0;
    background:linear-gradient(100deg, rgba(0,0,0,.85) 0%, rgba(0,0,0,.55) 50%, rgba(0,0,0,.15) 100%);
    transition:opacity var(--pa-t,.25s);
}
.pa-guide-banner::after {
    content:''; position:absolute; inset:0; z-index:1;
    opacity:0; transform:translateY(14px); pointer-events:none;
    background:linear-gradient(100deg, rgba(222,7,64,.78) 0%, rgba(222,7,64,.45) 50%, rgba(255,107,53,.18) 100%);
    transition:opacity var(--pa-t,.25s) var(--pa-ease,ease), transform .32s var(--pa-ease,ease);
}
.pa-guide-banner:hover::after { opacity:1; transform:none; }
.pa-guide-banner__content {
    position:relative; z-index:2;
    display:flex; align-items:center; gap:clamp(16px,3vw,32px);
    padding:clamp(20px,3.5vw,40px);
    min-height:inherit; flex-wrap:wrap;
}
.pa-guide-banner__logo { max-height:64px; max-width:140px; object-fit:contain; flex-shrink:0; }
.pa-guide-banner__text { flex:1; min-width:220px; display:flex; flex-direction:column; gap:6px; }
.pa-guide-banner__eyebrow { font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.7); }
.pa-guide-banner__title { font-size:clamp(17px,2.4vw,26px); font-weight:800; color:#fff; line-height:1.25; margin:0; letter-spacing:-.02em; text-wrap:balance; }
.pa-guide-banner .pa-btn--white { flex-shrink:0; }

/* ── SECURITE : jamais de rouge sur rouge ── */
.pa-btn--outline:hover,
.pa-btn--white:hover,
.pa-cat-chip:hover,
.pa-section-head__link:hover { color:#fff!important; }

/* ── LIGHTBOX images d'article ── */
.pa-article .wp-block-image img, .pa-article figure > img { cursor:zoom-in; }
.pa-lightbox {
    position:fixed; inset:0; z-index:10000;
    display:flex; align-items:center; justify-content:center;
    background:rgba(0,0,0,.92);
    opacity:0; visibility:hidden;
    transition:opacity .25s ease, visibility .25s;
    padding:clamp(16px,4vw,48px);
}
.pa-lightbox.is-open { opacity:1; visibility:visible; }
.pa-lightbox img {
    max-width:100%; max-height:100%;
    border-radius:8px; cursor:zoom-out;
    transform:scale(.96); transition:transform .25s ease;
}
.pa-lightbox.is-open img { transform:scale(1); }
.pa-lightbox__close {
    position:absolute; top:18px; right:18px;
    width:44px; height:44px; border-radius:50%;
    background:rgba(255,255,255,.12); border:none; color:#fff;
    display:flex; align-items:center; justify-content:center; cursor:pointer;
    transition:background .2s;
}
.pa-lightbox__close:hover { background:var(--pa-red); }

/* ================================================================
   v2.3.2 — guide parc, ancres, overlays animes, images
   ================================================================ */

/* ── SOMMAIRE DU GUIDE (archive tag) ── */
.pa-park-anchors {
    background:#fff;
    border-bottom:1px solid rgba(0,0,0,.07);
    position:sticky; top:0; z-index:90;
}
.pa-park-anchors__track {
    display:flex; align-items:center; gap:6px;
    overflow-x:auto; -webkit-overflow-scrolling:touch;
    scrollbar-width:none; padding:10px 0;
}
.pa-park-anchors__track::-webkit-scrollbar { display:none; }
.pa-park-anchors__item {
    display:inline-flex; align-items:center; gap:6px;
    font-size:12.5px; font-weight:700; white-space:nowrap;
    color:var(--pa-black)!important;
    padding:8px 14px; border-radius:8px;
    border:1.5px solid rgba(0,0,0,.08);
    text-decoration:none!important;
    transition:background var(--pa-t,.25s), color var(--pa-t,.25s), border-color var(--pa-t,.25s);
}
.pa-park-anchors__item:hover {
    background:var(--pa-red); border-color:var(--pa-red); color:#fff!important;
}
html { scroll-padding-top:120px; } /* ancres : ne pas passer sous le header sticky */

/* ── PARCS PROCHES : overlay rouge anime au hover ── */
.pa-park-nearby__item { position:relative; overflow:hidden; }
.pa-park-nearby__item::after {
    content:''; position:absolute; inset:0; z-index:1;
    opacity:0; transform:translateY(14px); pointer-events:none;
    background:linear-gradient(to top, rgba(222,7,64,.6) 0%, rgba(255,107,53,.25) 55%, transparent 100%);
    transition:opacity var(--pa-t,.25s) var(--pa-ease,ease), transform .32s var(--pa-ease,ease);
}
.pa-park-nearby__item:hover::after { opacity:1; transform:none; }
.pa-park-nearby__content, .pa-park-nearby__overlay ~ * { position:relative; z-index:2; }

/* ── LISTE DES PARCS : overlay rouge anime (remplace le swap de fond) ── */
.pa-park-card::after {
    content:''; position:absolute; inset:0; z-index:1;
    opacity:0; transform:translateY(14px); pointer-events:none;
    background:linear-gradient(to top, rgba(222,7,64,.72) 0%, rgba(255,107,53,.4) 50%, rgba(222,7,64,.06) 100%);
    transition:opacity var(--pa-t,.25s) var(--pa-ease,ease), transform .32s var(--pa-ease,ease);
}
.pa-park-card:hover::after { opacity:1; transform:none; }
.pa-park-card:hover .pa-park-card__overlay { opacity:1; background:linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.3) 45%, rgba(0,0,0,.05) 100%); }

/* ── BOUTONS : inversion rouge <-> blanc partout, y compris hero ── */
.pa-btn--red:hover { background:#fff!important; color:var(--pa-red)!important; }
.pa-btn--white:hover { background:var(--pa-red)!important; color:#fff!important; }
.pa-park-tickets-banner__btn { transition:background var(--pa-t,.25s), color var(--pa-t,.25s); }
.pa-park-tickets-banner:hover .pa-park-tickets-banner__btn { background:#fff; color:var(--pa-red); }
.pa-footer__nl-btn:hover { background:#fff; color:var(--pa-red); }

/* ── IMAGES sur une meme ligne : meme hauteur ── */
.pa-article .wp-block-columns .wp-block-image img,
.pa-page-content .wp-block-columns .wp-block-image img {
    aspect-ratio:3/2; width:100%; height:auto; object-fit:cover;
}
.pa-article .wp-block-gallery img,
.pa-page-content .wp-block-gallery img {
    aspect-ratio:3/2; object-fit:cover; width:100%; height:auto!important;
}

/* ================================================================
   v2.3.3 — alignements, listes pages, h2, logos ticker
   ================================================================ */

/* Conteneurs imbriques : un bloc PA dans une page (deja dans pa-container)
   ne doit pas re-appliquer le padding du container -> 100% de la largeur */
.pa-page-content > *:not(.alignfull) .pa-container {
    padding-left:0; padding-right:0; max-width:100%;
}

/* Points rouges aussi sur les listes des pages classiques */
.pa-page-content > ul li { padding-left:1.4em; position:relative; }
.pa-page-content > ul li::before {
    content:''; position:absolute; left:0; top:.55em;
    width:6px; height:6px; border-radius:50%; background:var(--pa-red);
}

/* Titres pages = titres articles */
.pa-article h2, .pa-page-content > h2, .pa-page-content .wp-block-group h2, .pa-page-content .wp-block-column h2 {
    font-size:clamp(22px,3vw,30px); font-weight:800; letter-spacing:-.02em; line-height:1.25;
}
.pa-article h3, .pa-page-content > h3, .pa-page-content .wp-block-group h3, .pa-page-content .wp-block-column h3 {
    font-size:clamp(18px,2.2vw,22px); font-weight:700; letter-spacing:-.01em;
}

/* Images memes hauteurs — renforce (galeries + colonnes) */
.pa-article .wp-block-gallery .wp-block-image,
.pa-page-content .wp-block-gallery .wp-block-image { margin:0!important; }
.pa-article .wp-block-gallery img,
.pa-page-content .wp-block-gallery img,
.pa-article .wp-block-columns .wp-block-image img,
.pa-page-content .wp-block-columns .wp-block-image img {
    aspect-ratio:3/2!important; width:100%!important; height:auto!important; object-fit:cover!important;
}
.pa-article .wp-block-columns .wp-block-image,
.pa-page-content .wp-block-columns .wp-block-image { margin:0!important; }

/* ── MEGA MENU : nouvelles personnalisations ── */
.pa-megamenu { border-top:3px solid var(--mega-accent, var(--pa-red)); }
.pa-megamenu__tagline {
    font-size:13px; color:var(--pa-gray); line-height:1.6;
    margin:0 0 14px; max-width:420px;
}
.pa-megamenu__col--2 ul {
    column-count:2; column-gap:32px;
}
.pa-megamenu__col--2 ul li { break-inside:avoid; }
.pa-megamenu__col ul li a::before { background:var(--mega-accent, var(--pa-red)); }
.pa-megamenu__featured {
    display:flex; align-items:center; gap:14px;
    padding:14px 16px; border-radius:var(--pa-radius,10px);
    border:1.5px solid rgba(0,0,0,.08);
    text-decoration:none!important;
    transition:border-color var(--pa-t,.25s), box-shadow var(--pa-t,.25s), transform var(--pa-t,.25s);
    margin-top:4px;
}
.pa-megamenu__featured:hover {
    border-color:var(--mega-accent, var(--pa-red));
    box-shadow:var(--pa-shadow-hover);
    transform:translateY(-2px);
}
.pa-megamenu__featured-logo { max-height:40px; max-width:88px; object-fit:contain; flex-shrink:0; }
.pa-megamenu__featured-body { display:flex; flex-direction:column; gap:2px; min-width:0; }
.pa-megamenu__featured-eyebrow { font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--pa-gray); }
.pa-megamenu__featured-name { font-size:14px; font-weight:800; color:var(--pa-black); }
.pa-megamenu__featured-cta { font-size:12px; font-weight:700; color:var(--mega-accent, var(--pa-red)); }
.pa-megamenu__cta2 { align-self:flex-start; margin-top:10px; }

/* ================================================================
   v2.4.0 — pagination unifiee
   ================================================================ */
.navigation.pagination { margin-top:clamp(32px,5vw,56px); }
.navigation.pagination .nav-links {
    display:flex; align-items:center; justify-content:center;
    gap:8px; flex-wrap:wrap;
}
.navigation.pagination .screen-reader-text { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
.page-numbers {
    display:inline-flex; align-items:center; justify-content:center; gap:7px;
    min-width:42px; height:42px; padding:0 8px;
    border-radius:8px;
    font-size:14px; font-weight:700;
    color:var(--pa-black)!important; text-decoration:none!important;
    border:1.5px solid rgba(0,0,0,.1); background:#fff;
    transition:transform var(--pa-t,.25s) var(--pa-ease,ease), box-shadow var(--pa-t,.25s) var(--pa-ease,ease),
               background var(--pa-t,.25s), color var(--pa-t,.25s), border-color var(--pa-t,.25s);
}
.page-numbers:hover:not(.current):not(.dots) {
    background:var(--pa-red); border-color:var(--pa-red); color:#fff!important;
    transform:translateY(-2px); box-shadow:var(--pa-shadow-hover);
}
.page-numbers.current {
    background:linear-gradient(120deg, var(--pa-g1,#de0740), var(--pa-g2,#ff6b35));
    border-color:transparent; color:#fff!important;
    box-shadow:var(--pa-shadow-hover);
}
.page-numbers.dots { border:none; background:none; min-width:24px; color:var(--pa-gray)!important; }
.page-numbers.prev, .page-numbers.next {
    border-radius:8px; padding:0 18px;
    font-size:13px;
}
.page-numbers.prev svg, .page-numbers.next svg { flex-shrink:0; transition:transform var(--pa-t,.25s); }
.page-numbers.prev:hover svg { transform:translateX(-3px); }
.page-numbers.next:hover svg { transform:translateX(3px); }
@media(max-width:540px){
    .page-numbers.prev span, .page-numbers.next span { display:none; }
    .page-numbers.prev, .page-numbers.next { border-radius:8px; padding:0 8px; }
}

/* ================================================================
   v2.4.1 — boutons natifs WordPress alignes sur la charte
   ================================================================ */
.wp-block-button { margin:0; }
.wp-block-buttons { gap:12px!important; }
.wp-block-button__link, .wp-element-button {
    display:inline-flex; align-items:center; gap:8px;
    font-size:13px!important; font-weight:700!important; letter-spacing:.03em;
    padding:12px 24px!important; border-radius:8px!important;
    background:var(--pa-red); color:#fff!important;
    text-decoration:none!important; cursor:pointer; border:2px solid var(--pa-red);
    transition:transform var(--pa-t,.25s) var(--pa-ease,ease), box-shadow var(--pa-t,.25s) var(--pa-ease,ease),
               background var(--pa-t,.25s), color var(--pa-t,.25s), border-color var(--pa-t,.25s);
}
.wp-block-button__link:hover, .wp-element-button:hover {
    background:#fff; color:var(--pa-red)!important; border-color:var(--pa-red);
    transform:translateY(-2px); box-shadow:var(--pa-shadow-hover);
}
/* Variante contour native */
.wp-block-button.is-style-outline .wp-block-button__link {
    background:transparent; color:var(--pa-red)!important; border:2px solid var(--pa-red);
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
    background:var(--pa-red); color:#fff!important; border-color:var(--pa-red);
}
/* Si l'utilisateur force des couleurs personnalisees, on respecte le fond mais on garde l'interaction */
.wp-block-button__link.has-background:hover, .wp-element-button.has-background:hover {
    filter:brightness(1.05);
}

/* ================================================================
   v2.4.2 — WooCommerce aux couleurs du site
   ================================================================ */
.pa-woo__body { padding-bottom:clamp(48px,7vw,88px); }
.woocommerce .woocommerce-result-count { color:var(--pa-gray); font-size:13px; }
.woocommerce .woocommerce-ordering select {
    padding:8px 12px; border:1.5px solid rgba(0,0,0,.12); border-radius:8px; font-size:13px; background:#fff;
}

/* ── Grille boutique ── */
.woocommerce ul.products { display:grid!important; grid-template-columns:repeat(3,1fr); gap:24px; margin:0!important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { content:none!important; }
.woocommerce ul.products li.product { width:auto!important; margin:0!important; float:none!important; text-align:left; }
@media(max-width:900px){ .woocommerce ul.products { grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .woocommerce ul.products { grid-template-columns:1fr; } }

.woocommerce ul.products li.product {
    background:#fff; border:1.5px solid rgba(0,0,0,.07); border-radius:var(--pa-radius,10px); overflow:hidden;
    transition:transform var(--pa-t,.25s) var(--pa-ease,ease), box-shadow var(--pa-t,.25s) var(--pa-ease,ease), border-color var(--pa-t,.25s);
    display:flex; flex-direction:column; position:relative;
}
.woocommerce ul.products li.product:hover { transform:translateY(var(--pa-lift,-3px)); box-shadow:var(--pa-shadow-hover); border-color:rgba(222,7,64,.18); }
.woocommerce ul.products li.product a img { margin:0; border-radius:0; aspect-ratio:1/1; object-fit:cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-size:16px!important; font-weight:700!important; color:var(--pa-black); padding:14px 16px 4px!important; line-height:1.3;
}
.woocommerce ul.products li.product .price {
    color:var(--pa-red)!important; font-weight:800; font-size:16px; padding:0 16px; margin-top:auto;
}
.woocommerce ul.products li.product .price del { color:var(--pa-gray)!important; font-weight:500; font-size:13px; }
.woocommerce ul.products li.product .button { margin:14px 16px 16px; }
.woocommerce span.onsale {
    background:var(--pa-red)!important; color:#fff!important; border-radius:100px; min-height:auto;
    min-width:auto; padding:5px 12px; font-size:11px; font-weight:700; top:12px; left:12px; margin:0;
}

/* ── Boutons WooCommerce ── */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce #respond input#submit {
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    background:var(--pa-red)!important; color:#fff!important;
    font-size:13px!important; font-weight:700!important; letter-spacing:.03em;
    padding:12px 24px!important; border-radius:8px!important; border:2px solid var(--pa-red)!important;
    text-shadow:none!important; box-shadow:none;
    transition:transform var(--pa-t,.25s) var(--pa-ease,ease), box-shadow var(--pa-t,.25s) var(--pa-ease,ease), background var(--pa-t,.25s), color var(--pa-t,.25s);
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce #respond input#submit:hover {
    background:#fff!important; color:var(--pa-red)!important; transform:translateY(-2px); box-shadow:var(--pa-shadow-hover);
}
.woocommerce a.added_to_cart { font-weight:700; color:var(--pa-red)!important; padding-top:8px; }

/* ── Page produit ── */
.single-product div.product { display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); align-items:start; }
@media(max-width:860px){ .single-product div.product { grid-template-columns:1fr; } }
.single-product div.product .woocommerce-product-gallery { margin:0; width:100%!important; }
.single-product div.product .woocommerce-product-gallery__image img { border-radius:var(--pa-radius,10px); }
.single-product div.product .product_title {
    font-size:clamp(24px,3.2vw,36px)!important; font-weight:800; letter-spacing:-.02em; line-height:1.1; margin:0 0 12px;
}
.single-product div.product p.price, .single-product div.product span.price {
    color:var(--pa-red)!important; font-size:26px!important; font-weight:800; margin-bottom:18px;
}
.single-product div.product .woocommerce-product-details__short-description { font-size:15px; line-height:1.7; color:#333; margin-bottom:20px; }
.single-product .quantity input.qty {
    padding:11px 8px; border:1.5px solid rgba(0,0,0,.15); border-radius:8px; width:64px; font-size:15px; text-align:center;
}
.single-product div.product form.cart { margin-bottom:24px; display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
/* Onglets */
.woocommerce-tabs ul.tabs { padding:0!important; display:flex; gap:6px; flex-wrap:wrap; border-bottom:1px solid rgba(0,0,0,.1); margin-bottom:24px!important; }
.woocommerce-tabs ul.tabs::before { border:none!important; }
.woocommerce-tabs ul.tabs li {
    background:none!important; border:none!important; border-radius:0!important; padding:0!important; margin:0!important;
}
.woocommerce-tabs ul.tabs li a {
    padding:12px 18px!important; font-weight:700!important; color:var(--pa-gray)!important; font-size:14px;
    border-bottom:2px solid transparent; transition:color var(--pa-t,.25s), border-color var(--pa-t,.25s);
}
.woocommerce-tabs ul.tabs li a:hover { color:var(--pa-black)!important; }
.woocommerce-tabs ul.tabs li.active a { color:var(--pa-red)!important; border-bottom-color:var(--pa-red); }
.woocommerce-tabs ul.tabs li::before, .woocommerce-tabs ul.tabs li::after { border:none!important; box-shadow:none!important; content:none!important; }
.woocommerce div.product .woocommerce-tabs .panel h2 { font-size:clamp(20px,2.6vw,26px); font-weight:800; }
/* Produits liés / ventes croisées */
.woocommerce .related > h2, .woocommerce .upsells > h2, .woocommerce .cross-sells > h2 {
    font-size:clamp(20px,2.6vw,28px); font-weight:800; letter-spacing:-.02em; margin-bottom:24px; position:relative; padding-left:14px;
}
.woocommerce .related > h2::before, .woocommerce .upsells > h2::before {
    content:''; position:absolute; left:0; top:.1em; bottom:.1em; width:3px; background:var(--pa-red); border-radius:2px;
}
/* Messages WooCommerce */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    border-top-color:var(--pa-red)!important; border-radius:8px; padding:14px 18px 14px 44px;
}
.woocommerce-message::before, .woocommerce-info::before { color:var(--pa-red)!important; }
/* Badges prix dans le panier / récap */
.woocommerce .cart_totals .order-total .amount, .woocommerce-checkout .order-total .amount { color:var(--pa-red); }

/* ================================================================
   v2.4.3 — panier flottant + tiroir + contenu produit pleine largeur
   ================================================================ */
.pa-floating-cart {
    position:fixed; right:clamp(16px,3vw,28px); bottom:clamp(16px,3vw,28px); z-index:9000;
    display:inline-flex; align-items:center; gap:12px;
    background:var(--pa-red); color:#fff;
    padding:10px 12px; border:none; border-radius:var(--pa-radius,10px); cursor:pointer;
    box-shadow:0 10px 30px rgba(222,7,64,.32);
    transition:transform var(--pa-t,.25s) var(--pa-ease,ease), box-shadow var(--pa-t,.25s) var(--pa-ease,ease);
}
.pa-floating-cart:hover { transform:translateY(-3px); box-shadow:0 16px 40px rgba(222,7,64,.42); }
/* couleurs verrouillees au survol (jamais de rouge sur rouge) */
.pa-floating-cart, .pa-floating-cart:hover,
.pa-floating-cart:hover .pa-floating-cart__label,
.pa-floating-cart:hover .pa-floating-cart__total,
.pa-floating-cart:hover .pa-floating-cart__total .amount { color:#fff!important; }
.pa-floating-cart__icon { position:relative; display:flex; align-items:center; justify-content:center; width:42px; height:42px; background:rgba(255,255,255,.18); border-radius:8px; flex-shrink:0; color:#fff; }
.pa-floating-cart__count {
    position:absolute; top:-6px; right:-6px; min-width:20px; height:20px; padding:0 5px;
    background:#fff; color:var(--pa-red)!important; border-radius:100px;
    font-size:11px; font-weight:800; display:flex; align-items:center; justify-content:center;
    border:2px solid var(--pa-red);
}
.pa-floating-cart__body { display:flex; flex-direction:column; line-height:1.15; padding-right:2px; text-align:left; }
.pa-floating-cart__label { font-size:11px; opacity:.85; font-weight:600; }
.pa-floating-cart__total { font-size:15px; font-weight:800; }
.pa-floating-cart__total .amount { color:#fff!important; }
.pa-floating-cart__cta {
    font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase;
    background:#fff; color:var(--pa-red)!important; padding:9px 16px; border-radius:8px; margin-left:2px;
}
@media(max-width:560px){
    .pa-floating-cart__body, .pa-floating-cart__cta { display:none; }
    .pa-floating-cart { padding:10px; }
}

/* ── Tiroir panier (off-canvas) ── */
.pa-cart-drawer { position:fixed; inset:0; z-index:9500; visibility:hidden; }
.pa-cart-drawer.is-open { visibility:visible; }
.pa-cart-drawer__overlay {
    position:absolute; inset:0; background:rgba(0,0,0,.5);
    opacity:0; transition:opacity .3s ease;
}
.pa-cart-drawer.is-open .pa-cart-drawer__overlay { opacity:1; }
.pa-cart-drawer__panel {
    position:absolute; top:0; right:0; bottom:0;
    width:min(420px,92vw); background:#fff;
    display:flex; flex-direction:column;
    transform:translateX(100%); transition:transform .32s var(--pa-ease,cubic-bezier(.4,0,.2,1));
    box-shadow:-12px 0 40px rgba(0,0,0,.18);
}
.pa-cart-drawer.is-open .pa-cart-drawer__panel { transform:none; }
.pa-cart-drawer__head {
    display:flex; align-items:center; justify-content:space-between;
    padding:20px 24px; border-bottom:1px solid rgba(0,0,0,.08);
}
.pa-cart-drawer__title { font-size:18px; font-weight:800; letter-spacing:-.02em; }
.pa-cart-drawer__close {
    width:38px; height:38px; border-radius:8px; border:none; background:var(--pa-bg,#f8f8f8);
    display:flex; align-items:center; justify-content:center; cursor:pointer; color:var(--pa-black);
    transition:background var(--pa-t,.25s), color var(--pa-t,.25s);
}
.pa-cart-drawer__close:hover { background:var(--pa-red); color:#fff; }
.pa-cart-drawer__body { flex:1; overflow-y:auto; padding:20px 24px; }
/* mini-cart WooCommerce dans le tiroir */
.pa-cart-drawer .woocommerce-mini-cart { list-style:none!important; margin:0!important; padding:0!important; }
.pa-cart-drawer .woocommerce-mini-cart__empty-message { color:var(--pa-gray); font-size:15px; }
.pa-cart-drawer li.woocommerce-mini-cart-item {
    display:grid; grid-template-columns:56px minmax(0,1fr); grid-template-rows:auto auto;
    column-gap:12px; row-gap:2px; align-items:center;
    padding:14px 30px 14px 0!important;
    border-bottom:1px solid rgba(0,0,0,.07); position:relative;
}
.pa-cart-drawer .woocommerce-mini-cart-item > a:not(.remove) {
    grid-column:1 / -1; display:grid; grid-template-columns:56px minmax(0,1fr);
    column-gap:12px; align-items:center;
}
.pa-cart-drawer .woocommerce-mini-cart-item .quantity { grid-column:1 / -1; padding-left:68px; margin-top:-8px; }
.pa-cart-drawer .woocommerce-mini-cart-item img { width:56px!important; height:56px; object-fit:cover; border-radius:8px; float:none!important; margin:0!important; }
.pa-cart-drawer .woocommerce-mini-cart-item a:not(.remove) { font-weight:700; color:var(--pa-black)!important; text-decoration:none!important; font-size:14px; line-height:1.3; }
.pa-cart-drawer .woocommerce-mini-cart-item .quantity { color:var(--pa-gray); font-size:13px; }
.pa-cart-drawer a.remove {
    position:absolute; top:50%; right:0; transform:translateY(-50%);
    width:24px; height:24px; border-radius:8px; background:var(--pa-bg,#f4f4f4)!important;
    color:var(--pa-red)!important; font-size:15px!important; font-weight:400!important;
    line-height:1!important; text-decoration:none!important;
    display:flex; align-items:center; justify-content:center;
    transition:background .2s, color .2s;
}
.pa-cart-drawer a.remove::before { content:none!important; } /* une seule croix : le caractere du lien */
.pa-cart-drawer a.remove:hover { background:var(--pa-red)!important; color:#fff!important; }
.pa-cart-drawer .woocommerce-mini-cart__total {
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 0 14px; font-size:16px; border-bottom:none!important; margin-top:8px;
}
.pa-cart-drawer .woocommerce-mini-cart__total strong { font-weight:700; }
.pa-cart-drawer .woocommerce-mini-cart__total .amount { color:var(--pa-red); font-weight:800; }
.pa-cart-drawer .woocommerce-mini-cart__buttons { display:flex; flex-direction:column; gap:10px; margin:0!important; padding-top:6px; }
.pa-cart-drawer .woocommerce-mini-cart__buttons a {
    display:flex; align-items:center; justify-content:center; margin:0!important;
    padding:13px 20px!important; border-radius:8px!important; font-weight:700!important; font-size:14px!important;
}
.pa-cart-drawer .woocommerce-mini-cart__buttons a:not(.checkout) { background:transparent!important; color:var(--pa-red)!important; border:2px solid var(--pa-red)!important; }
.pa-cart-drawer .woocommerce-mini-cart__buttons a:not(.checkout):hover { background:var(--pa-red)!important; color:#fff!important; }
.pa-cart-drawer .woocommerce-mini-cart__buttons a.checkout { background:var(--pa-red)!important; color:#fff!important; border:2px solid var(--pa-red)!important; }
.pa-cart-drawer .woocommerce-mini-cart__buttons a.checkout:hover { background:#fff!important; color:var(--pa-red)!important; }

/* Contenu produit (description longue en blocs) */
.pa-product-content {
    grid-column:1 / -1; max-width:none;
    margin-top:clamp(32px,5vw,56px); padding-top:clamp(28px,4vw,40px);
    border-top:1px solid rgba(0,0,0,.1);
}
.single-product div.product .pa-product-content > * { max-width:var(--pa-content-w,760px); margin-left:auto; margin-right:auto; }
.single-product div.product .pa-product-content > .alignfull { max-width:none; width:100%; margin:2em 0; }
.single-product div.product .pa-product-content > .alignwide { max-width:1100px; }

/* ================================================================
   v2.4.4 — panier / commande / compte (selecteurs GLOBAUX, !important :
   s'applique meme sur une page Elementor ou l'editeur, sans le wrapper du theme)
   ================================================================ */
.woocommerce-cart-form, body .woocommerce table.shop_table, .woocommerce table.cart,
form.woocommerce-cart-form table {
    width:100%!important; border:1px solid rgba(0,0,0,.08)!important; border-radius:var(--pa-radius,10px)!important;
    overflow:hidden; border-collapse:separate!important; border-spacing:0!important; margin:0 0 28px!important; background:#fff!important;
}
.woocommerce table.shop_table th { background:var(--pa-bg,#f8f8f8)!important; font-weight:700!important; font-size:13px!important; padding:14px 16px!important; text-align:left!important; border:none!important; color:var(--pa-black)!important; }
.woocommerce table.shop_table td { padding:16px!important; vertical-align:middle!important; border:none!important; border-top:1px solid rgba(0,0,0,.07)!important; background:#fff!important; }
.woocommerce table.shop_table td.product-thumbnail img, .woocommerce td.product-thumbnail img { width:80px!important; height:auto!important; border-radius:8px!important; }
.woocommerce .product-name a, .woocommerce td.product-name a { font-weight:700!important; color:var(--pa-black)!important; text-decoration:none!important; }
.woocommerce .product-name a:hover { color:var(--pa-red)!important; }
.woocommerce td.product-subtotal .amount, .woocommerce td.product-price { color:var(--pa-black)!important; font-weight:700!important; }
.woocommerce td.product-subtotal .amount { color:var(--pa-red)!important; }
.woocommerce a.remove {
    display:inline-flex!important; align-items:center!important; justify-content:center!important;
    width:24px!important; height:24px!important; border-radius:50%!important; color:var(--pa-red)!important;
    background:var(--pa-bg,#f4f4f4)!important; font-size:16px!important; line-height:1!important; text-decoration:none!important;
}
.woocommerce a.remove:hover { background:var(--pa-red)!important; color:#fff!important; }
.woocommerce .quantity input.qty { padding:10px 6px!important; border:1.5px solid rgba(0,0,0,.15)!important; border-radius:8px!important; width:64px!important; text-align:center!important; font-size:15px!important; }
/* Boutons */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce input[type="submit"],
.woocommerce a.checkout-button, .woocommerce #place_order, .woocommerce button[type="submit"] {
    display:inline-flex!important; align-items:center!important; justify-content:center!important; gap:8px!important;
    background:var(--pa-red)!important; color:#fff!important; border:2px solid var(--pa-red)!important;
    font-size:14px!important; font-weight:700!important; letter-spacing:.02em!important;
    padding:13px 24px!important; border-radius:8px!important; cursor:pointer!important; text-decoration:none!important;
    box-shadow:none!important; text-shadow:none!important; min-height:auto!important; line-height:1.2!important;
    transition:background .25s, color .25s, transform .25s, box-shadow .25s!important;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover,
.woocommerce input[type="submit"]:hover, .woocommerce a.checkout-button:hover, .woocommerce #place_order:hover, .woocommerce button[type="submit"]:hover {
    background:#fff!important; color:var(--pa-red)!important; transform:translateY(-2px); box-shadow:var(--pa-shadow-hover)!important;
}
.woocommerce .added_to_cart { font-weight:700!important; color:var(--pa-red)!important; }
/* Coupon / actions */
.woocommerce .cart .actions { display:flex!important; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; padding:6px 0 18px!important; }
.woocommerce .cart .actions .coupon { display:flex!important; gap:8px; float:none!important; }
.woocommerce .cart .actions .coupon input[type="text"] { padding:11px 14px!important; border:1.5px solid rgba(0,0,0,.15)!important; border-radius:8px!important; min-width:160px!important; }
/* Totaux */
.woocommerce .cart_totals, .woocommerce .cart-collaterals .cart_totals { background:var(--pa-bg,#f8f8f8)!important; border-radius:var(--pa-radius,10px)!important; padding:clamp(20px,3vw,32px)!important; }
.woocommerce .cart_totals h2 { font-size:20px!important; font-weight:800!important; margin:0 0 16px!important; }
.woocommerce .cart_totals table { width:100%!important; border:none!important; background:transparent!important; margin:0!important; }
.woocommerce .cart_totals table th, .woocommerce .cart_totals table td { padding:10px 0!important; border:none!important; border-bottom:1px solid rgba(0,0,0,.08)!important; background:transparent!important; }
.woocommerce .cart_totals .order-total .amount { color:var(--pa-red)!important; font-size:20px!important; }
.woocommerce .wc-proceed-to-checkout { padding-top:18px!important; }
.woocommerce .wc-proceed-to-checkout a.checkout-button { width:100%!important; }
@media(min-width:1000px){
    .woocommerce-cart .woocommerce { display:grid; grid-template-columns:1fr 360px; gap:32px; align-items:start; }
    .woocommerce-cart .woocommerce > .woocommerce-cart-form { grid-column:1; }
    .woocommerce-cart .woocommerce > .cart-collaterals { grid-column:2; width:auto!important; }
    .woocommerce-cart .cart-collaterals, .woocommerce-cart .cart-collaterals .cart_totals { width:100%!important; float:none!important; }
}
/* Commande */
.woocommerce form .form-row label { font-weight:600!important; font-size:13px!important; margin-bottom:6px!important; display:block; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce-checkout select,
.woocommerce .select2-container .select2-selection { padding:12px 14px!important; border:1.5px solid rgba(0,0,0,.15)!important; border-radius:8px!important; font-size:15px!important; width:100%!important; min-height:46px!important; }
.woocommerce form .form-row input.input-text:focus, .woocommerce form .form-row textarea:focus { border-color:var(--pa-red)!important; outline:none!important; box-shadow:0 0 0 3px rgba(222,7,64,.1)!important; }
.woocommerce-checkout #order_review, .woocommerce-checkout .woocommerce-checkout-review-order { background:var(--pa-bg,#f8f8f8)!important; border-radius:var(--pa-radius,10px)!important; padding:clamp(20px,3vw,28px)!important; }
.woocommerce-checkout #order_review table.shop_table { background:#fff!important; }
.woocommerce-checkout #order_review .order-total .amount { color:var(--pa-red)!important; font-size:20px!important; }
.woocommerce-checkout #payment, .woocommerce #payment { background:transparent!important; }
.woocommerce-checkout #payment ul.payment_methods { border:1px solid rgba(0,0,0,.08)!important; border-radius:8px!important; background:#fff!important; list-style:none!important; padding:14px!important; margin:0 0 16px!important; }
@media(min-width:1000px){
    .woocommerce-checkout form.checkout.woocommerce-checkout { display:grid; grid-template-columns:1fr 400px; gap:32px; align-items:start; }
    .woocommerce-checkout #customer_details { grid-column:1; }
    .woocommerce-checkout .woocommerce-checkout-review-order, .woocommerce-checkout #order_review { grid-column:2; }
}
/* Messages */
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-noreviews {
    border-top:3px solid var(--pa-red)!important; border-radius:8px!important; background:var(--pa-bg,#f8f8f8)!important; padding:14px 18px!important; list-style:none!important; margin:0 0 20px!important;
}
/* Compte */
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style:none!important; margin:0!important; padding:0!important; }
.woocommerce-account .woocommerce-MyAccount-navigation li { border-bottom:1px solid rgba(0,0,0,.07)!important; }
.woocommerce-account .woocommerce-MyAccount-navigation li a { display:block!important; padding:12px 4px!important; font-weight:600!important; color:var(--pa-black)!important; text-decoration:none!important; }
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a, .woocommerce-account .woocommerce-MyAccount-navigation li a:hover { color:var(--pa-red)!important; }
.woocommerce-account .woocommerce-MyAccount-content { background:var(--pa-bg,#f8f8f8)!important; border-radius:var(--pa-radius,10px)!important; padding:clamp(20px,3vw,32px)!important; }

/* ================================================================
   v2.4.5 — sticky add-to-cart, fiche produit, panier/commande (blocs)
   ================================================================ */
/* Categorie produit masquee (demande) */
.single-product .product_meta .posted_in { display:none; }

/* Bouton d'ajout flottant (bas gauche, n'empiete pas sur la bulle panier a droite) */
.pa-sticky-atc {
    position:fixed; left:clamp(16px,3vw,28px); bottom:clamp(16px,3vw,28px); z-index:9000;
    display:flex; align-items:center; gap:14px;
    background:#fff; border:1.5px solid rgba(0,0,0,.1); border-radius:var(--pa-radius,10px);
    padding:10px 12px 10px 18px; box-shadow:0 10px 30px rgba(0,0,0,.14);
    opacity:0; transform:translateY(20px); pointer-events:none;
    transition:opacity .3s var(--pa-ease,ease), transform .3s var(--pa-ease,ease);
    max-width:min(440px,calc(100vw - 32px));
}
.pa-sticky-atc.is-visible { opacity:1; transform:none; pointer-events:auto; }
.pa-sticky-atc__info { display:flex; flex-direction:column; line-height:1.2; min-width:0; }
.pa-sticky-atc__name { font-size:13px; font-weight:700; color:var(--pa-black); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:200px; }
.pa-sticky-atc__price { font-size:14px; font-weight:800; color:var(--pa-red); }
.pa-sticky-atc__price .amount { color:var(--pa-red)!important; }
.pa-sticky-atc__btn {
    display:inline-flex; align-items:center; white-space:nowrap;
    background:var(--pa-red); color:#fff!important; text-decoration:none!important;
    font-size:13px; font-weight:700; padding:11px 20px; border-radius:8px; border:2px solid var(--pa-red);
    transition:background var(--pa-t,.25s), color var(--pa-t,.25s);
}
.pa-sticky-atc__btn:hover { background:#fff; color:var(--pa-red)!important; }
.pa-sticky-atc__btn.added { display:inline-flex; }
.pa-sticky-atc .added_to_cart { display:none!important; }
@media(max-width:560px){
    .pa-sticky-atc { left:12px; right:76px; bottom:14px; max-width:none; padding:8px 8px 8px 14px; }
    .pa-sticky-atc__name { max-width:120px; }
}

/* ── Panier / Commande en BLOCS WooCommerce (en plus du shortcode classique) ── */
.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { margin:0; }
.wc-block-components-button, .wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
    background:var(--pa-red)!important; color:#fff!important;
    border-radius:8px!important; font-weight:700!important; border:2px solid var(--pa-red)!important;
    transition:background var(--pa-t,.25s), color var(--pa-t,.25s)!important;
}
.wc-block-components-button:hover, .wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
    background:#fff!important; color:var(--pa-red)!important;
}
.wc-block-cart-items__row td, .wc-block-cart-items__row { border-color:rgba(0,0,0,.07)!important; }
.wc-block-components-product-name { font-weight:700!important; color:var(--pa-black)!important; }
.wc-block-components-product-name:hover { color:var(--pa-red)!important; }
.wc-block-cart-item__total-price-and-sale-badge-wrapper .wc-block-components-formatted-money-amount,
.wc-block-components-totals-item__value { font-weight:700; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value { color:var(--pa-red); }
.wc-block-cart__sidebar .wc-block-components-totals-wrapper,
.wc-block-checkout__sidebar .wc-block-components-totals-wrapper {
    background:var(--pa-bg,#f8f8f8); border-radius:var(--pa-radius,10px);
}
.wc-block-components-text-input input, .wc-block-components-text-input input[type=text] {
    border-radius:8px!important;
}
.wc-block-components-text-input input:focus { border-color:var(--pa-red)!important; box-shadow:0 0 0 2px rgba(222,7,64,.15)!important; }
.wc-block-cart__totals-title, .wc-block-checkout__main-title { font-weight:800; }
.wc-block-components-quantity-selector { border-radius:8px!important; }


/* ================================================================
   v2.4.6 — partage (sans changement de couleur), sources discretes,
   no-zoom, topbar mobile
   ================================================================ */

/* ── Boutons de partage : meme radius, lift seul, AUCUN changement de couleur ── */
.pa-single-share__btn { border-radius:8px!important; transition:transform .25s, box-shadow .25s!important; }
.pa-single-share__btn:hover { transform:translateY(-2px); box-shadow:var(--pa-shadow-hover); }
.pa-single-share__btn--fb:hover   { background:#1877f2!important; }
.pa-single-share__btn--x:hover    { background:#000!important; }
.pa-single-share__btn--ig:hover   { filter:none!important; }
.pa-single-share__btn--mail:hover { background:var(--pa-red)!important; }
.pa-single-share__btn--copy:hover { background:#fff!important; }
/* FB / X / Insta / mail : texte + icone BLANCS au survol */
.pa-single-share__btn--fb:hover, .pa-single-share__btn--fb:hover .btn-label, .pa-single-share__btn--fb:hover svg,
.pa-single-share__btn--x:hover, .pa-single-share__btn--x:hover .btn-label, .pa-single-share__btn--x:hover svg,
.pa-single-share__btn--ig:hover, .pa-single-share__btn--ig:hover .btn-label, .pa-single-share__btn--ig:hover svg,
.pa-single-share__btn--mail:hover, .pa-single-share__btn--mail:hover .btn-label, .pa-single-share__btn--mail:hover svg { color:#fff!important; }
/* Copier : texte fonce au survol (fond clair) */
.pa-single-share__btn--copy:hover, .pa-single-share__btn--copy:hover .btn-label, .pa-single-share__btn--copy:hover svg { color:var(--pa-black)!important; }

/* ── Sources en bas d'article : discret, une seule ligne (pas d'encadre) ── */
.pa-article-sources {
    margin-top:28px; padding-top:16px; border-top:1px solid rgba(0,0,0,.08);
    font-size:13.5px; color:var(--pa-gray); line-height:1.7;
}
.pa-article-sources__title { font-weight:700; color:var(--pa-black); margin-right:6px; }
.pa-article-sources__list { display:inline; }
.pa-article-sources a { color:var(--pa-gray); text-decoration:underline; text-underline-offset:2px; transition:color .25s; }
.pa-article-sources a:hover { color:var(--pa-red); }
.pa-article-sources .sep { color:rgba(0,0,0,.25); margin:0 7px; }

/* ── Image non-zoomable : classe CSS "no-zoom" sur le bloc image ── */
.pa-article .wp-block-image.no-zoom img, .pa-article img.no-zoom { cursor:default!important; }

/* ── Barre d'actus masquee sur telephone (remplacee par popup si texte perso) ── */
@media(max-width:768px){ .pa-topbar { display:none!important; } }
.pa-topbar-popup {
    position:fixed; left:16px; right:16px; bottom:16px; z-index:9400;
    background:var(--pa-black); color:#fff; border-radius:var(--pa-radius,10px);
    padding:16px 18px; box-shadow:0 16px 40px rgba(0,0,0,.3);
    display:none; align-items:flex-start; gap:12px; transform:translateY(20px); opacity:0; transition:opacity .3s, transform .3s;
}
.pa-topbar-popup.is-open { display:flex; opacity:1; transform:none; }
.pa-topbar-popup__badge { background:var(--pa-red); color:#fff; font-size:10px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; padding:4px 9px; border-radius:6px; flex-shrink:0; }
.pa-topbar-popup__body { flex:1; font-size:14px; line-height:1.5; }
.pa-topbar-popup__body a { color:#fff; font-weight:700; text-decoration:underline; }
.pa-topbar-popup__close { background:none; border:none; color:rgba(255,255,255,.7); cursor:pointer; padding:2px; flex-shrink:0; }
@media(min-width:769px){ .pa-topbar-popup { display:none!important; } }


/* ── Footer : texte de decharge ── */
.pa-footer__colophon { margin-top: clamp(30px,4vw,48px); }
.pa-footer__disclaimer {
    display:flex; gap:10px; align-items:flex-start;
    max-width:820px; margin:0 auto; padding:0 0 24px;
    font-size:11.5px; line-height:1.7; letter-spacing:.01em;
    color:rgba(255,255,255,.38);
}
.pa-footer__disclaimer svg { flex-shrink:0; width:15px; height:15px; margin-top:1px; color:var(--pa-red); opacity:.55; }
.pa-footer__disclaimer a { color:rgba(255,255,255,.6); text-decoration:none; border-bottom:1px solid rgba(255,255,255,.22); transition:color .2s, border-color .2s; }
.pa-footer__disclaimer a:hover { color:#fff; border-bottom-color:rgba(255,255,255,.6); }

@media (max-width:720px){
    /* Telephone : tout le bas de page aligne a gauche */
    .pa-footer__bottom { flex-direction:column; align-items:flex-start; text-align:left; gap:12px; }
    .pa-footer__disclaimer { flex-direction:row; align-items:flex-start; justify-content:flex-start; text-align:left; gap:9px; }
    .pa-footer__disclaimer svg { margin-top:2px; }
    .pa-footer__bottom-links, .pa-footer__legal-list { justify-content:flex-start; }
    .pa-footer__legal-list li:not(:first-child){ margin-left:14px; padding-left:14px; }
}

/* ════════════════════════════════════════════════════════════
   COOKIES / CONSENTEMENT RGPD (charte Parcs Actus)
   ════════════════════════════════════════════════════════════ */
#pa-cookie { position: fixed; inset: 0; z-index: 99990; pointer-events: none; }
#pa-cookie [hidden] { display: none !important; }

/* — Bandeau — */
.pa-cookie__banner {
    position: fixed; left: 50%; bottom: 22px; transform: translateX(-50%) translateY(140%);
    width: min(1000px, calc(100vw - 32px));
    background: #16161d; color: #fff; pointer-events: auto;
    border: 1px solid rgba(255,255,255,.1); border-radius: 18px;
    box-shadow: 0 24px 70px rgba(0,0,0,.5); opacity: 0;
    transition: transform .38s cubic-bezier(.22,1,.36,1), opacity .38s;
}
#pa-cookie.is-banner .pa-cookie__banner { transform: translateX(-50%) translateY(0); opacity: 1; }
.pa-cookie__banner-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px 28px; padding: 20px 24px; flex-wrap: wrap; }
.pa-cookie__text { display: flex; align-items: flex-start; gap: 14px; flex: 1; min-width: 260px; }
.pa-cookie__icon { font-size: 26px; line-height: 1; flex-shrink: 0; margin-top: 2px; }
.pa-cookie__title { display: block; font-size: 15px; font-weight: 800; margin-bottom: 4px; }
.pa-cookie__text p { margin: 0; font-size: 13px; line-height: 1.6; color: rgba(255,255,255,.66); }
.pa-cookie__text a { color: #fff; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.4); white-space: nowrap; }
.pa-cookie__text a:hover { border-color: #fff; }
.pa-cookie__actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

/* — Boutons (charte) — */
.pa-cookie__btn {
    font: inherit; font-size: 13px; font-weight: 700; cursor: pointer;
    border-radius: 8px; padding: 11px 18px; white-space: nowrap;
    border: 1.5px solid transparent; transition: transform .15s, box-shadow .2s, background .2s, border-color .2s, color .2s;
}
.pa-cookie__btn--primary { background: linear-gradient(120deg, #de0740, #ff6b35); color: #fff; box-shadow: 0 6px 18px rgba(222,7,64,.32); }
.pa-cookie__btn--primary:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(222,7,64,.44); }
.pa-cookie__btn--ghost { background: transparent; color: rgba(255,255,255,.82); border-color: rgba(255,255,255,.22); }
.pa-cookie__btn--ghost:hover { border-color: rgba(255,255,255,.55); color: #fff; }

/* — Overlay + modale — */
.pa-cookie__overlay { position: fixed; inset: 0; background: rgba(10,10,16,.55); backdrop-filter: blur(2px); opacity: 0; pointer-events: auto; transition: opacity .3s; }
#pa-cookie.is-modal .pa-cookie__overlay { opacity: 1; }
.pa-cookie__modal { position: fixed; left: 50%; top: 50%; transform: translate(-50%, -46%); width: min(520px, calc(100vw - 28px)); pointer-events: auto; opacity: 0; transition: transform .34s cubic-bezier(.22,1,.36,1), opacity .34s; }
#pa-cookie.is-modal .pa-cookie__modal { transform: translate(-50%, -50%); opacity: 1; }
.pa-cookie__modal-card { background: #fff; border-radius: 18px; padding: 24px 26px 22px; box-shadow: 0 30px 80px rgba(0,0,0,.4); max-height: calc(100vh - 60px); overflow-y: auto; }
.pa-cookie__modal-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 6px; }
.pa-cookie__modal-head h3 { font-size: 19px; font-weight: 800; letter-spacing: -.02em; margin: 0; color: #16161d; }
.pa-cookie__x { background: none; border: none; font-size: 26px; line-height: 1; color: #9a9aa4; cursor: pointer; padding: 0 2px; transition: color .2s; }
.pa-cookie__x:hover { color: #de0740; }
.pa-cookie__modal-intro { font-size: 13.5px; color: #6b6b78; line-height: 1.6; margin: 0 0 18px; }
.pa-cookie__modal-intro a { color: #de0740; text-decoration: none; border-bottom: 1px solid rgba(222,7,64,.35); }
.pa-cookie__modal-intro a:hover { border-color: #de0740; }

/* — Catégories — */
.pa-cookie__cat { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 0; border-top: 1px solid #eeeef2; }
.pa-cookie__cat:last-of-type { border-bottom: 1px solid #eeeef2; }
.pa-cookie__cat-info strong { display: block; font-size: 14.5px; font-weight: 700; color: #16161d; margin-bottom: 3px; }
.pa-cookie__cat-info span { font-size: 12.5px; color: #7a7a86; line-height: 1.5; }
.pa-cookie__locked { font-size: 12px; font-weight: 700; color: #10b981; white-space: nowrap; flex-shrink: 0; }
label.pa-cookie__cat { cursor: pointer; }

/* — Interrupteur (switch) charte — */
.pa-cookie__switch { position: relative; width: 46px; height: 26px; flex-shrink: 0; }
.pa-cookie__switch input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.pa-cookie__slider { position: absolute; inset: 0; background: #d6d6de; border-radius: 100px; transition: background .25s; }
.pa-cookie__slider::after { content: ""; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; background: #fff; border-radius: 50%; box-shadow: 0 2px 5px rgba(0,0,0,.25); transition: transform .25s; }
.pa-cookie__switch input:checked + .pa-cookie__slider { background: linear-gradient(120deg, #de0740, #ff6b35); }
.pa-cookie__switch input:checked + .pa-cookie__slider::after { transform: translateX(20px); }
.pa-cookie__switch input:focus-visible + .pa-cookie__slider { outline: 2px solid #de0740; outline-offset: 2px; }

.pa-cookie__modal-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: flex-end; margin-top: 20px; }
.pa-cookie__modal-actions .pa-cookie__btn--ghost { color: #6b6b78; border-color: #dcdce4; }
.pa-cookie__modal-actions .pa-cookie__btn--ghost:hover { border-color: #de0740; color: #de0740; }

@media (max-width: 620px) {
    .pa-cookie__banner-inner { padding: 18px; }
    .pa-cookie__actions { width: 100%; }
    .pa-cookie__actions .pa-cookie__btn { flex: 1; text-align: center; }
    .pa-cookie__modal-actions { justify-content: stretch; }
    .pa-cookie__modal-actions .pa-cookie__btn { flex: 1; text-align: center; }
}

/* ════ WOO : STRUCTURE AUTONOME cart/checkout (independant de woocommerce-layout.css) ════ */
.woocommerce, .woocommerce-page { --wc-max: 1100px; }
.woocommerce form.checkout, .woocommerce .woocommerce-cart-form, .woocommerce-cart .woocommerce,
.woocommerce form.woocommerce-checkout { max-width: var(--wc-max); margin-left:auto; margin-right:auto; }

/* form rows : labels au-dessus, champs pleine largeur, 2 colonnes cote a cote */
.woocommerce form .form-row { display:block!important; float:none!important; width:100%!important; margin:0 0 16px!important; padding:0!important; }
.woocommerce form .form-row label { display:block!important; font-weight:600!important; font-size:13.5px!important; margin:0 0 6px!important; color:var(--pa-black,#111)!important; }
.woocommerce form .form-row .woocommerce-input-wrapper { display:block!important; width:100%!important; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
    display:block!important; width:100%!important; box-sizing:border-box!important;
}
.woocommerce form .form-row-first, .woocommerce form .form-row-last { width:calc(50% - 8px)!important; display:inline-block!important; vertical-align:top!important; }
.woocommerce form .form-row-first { margin-right:12px!important; }
@media (max-width:640px){ .woocommerce form .form-row-first, .woocommerce form .form-row-last { width:100%!important; display:block!important; margin-right:0!important; } }

/* checkout : facturation a gauche, recap a droite */
.woocommerce-checkout #customer_details.col2-set { display:grid!important; grid-template-columns:1fr 1fr; gap:28px; width:100%!important; }
.woocommerce-checkout #customer_details .col-1, .woocommerce-checkout #customer_details .col-2 { float:none!important; width:100%!important; }
@media (max-width:860px){ .woocommerce-checkout #customer_details.col2-set { grid-template-columns:1fr; } }
.woocommerce-checkout form.checkout { display:block; }
.woocommerce-checkout #order_review_heading { margin-top:34px!important; }
.woocommerce form h3, .woocommerce #order_review_heading { font-size:20px!important; font-weight:800!important; letter-spacing:-.02em!important; margin:0 0 16px!important; }

/* cart : table + totaux */
.woocommerce-cart table.shop_table { width:100%!important; border-collapse:collapse!important; }
.woocommerce-cart .cart-collaterals { display:block!important; width:100%!important; max-width:460px; margin:26px 0 0 auto; }
@media (max-width:760px){ .woocommerce-cart .cart-collaterals { max-width:none; } }
.woocommerce table.shop_table td.actions { background:transparent!important; border:none!important; padding:16px 0!important; }
.woocommerce table.shop_table td.actions .coupon { display:flex; gap:10px; flex-wrap:wrap; }
.woocommerce table.shop_table td.actions .coupon .input-text { width:auto!important; min-width:180px; }

/* privacy / mentions discretes */
.woocommerce form .woocommerce-privacy-policy-text p { font-size:12.5px; color:#8a8a94; line-height:1.6; }

/* ════ TRANSITIONS DE PAGES (View Transitions natives, cross-document) ════ */
@view-transition { navigation: auto; }

::view-transition-old(root) { animation: pa-vt-out .2s ease both; }
::view-transition-new(root) { animation: pa-vt-in .3s ease both; }
@keyframes pa-vt-out { to { opacity: 0; } }
@keyframes pa-vt-in { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* Le header est capture separement : identique d'une page a l'autre, il reste stable */
#pa-header { view-transition-name: pa-header; }
::view-transition-old(pa-header), ::view-transition-new(pa-header) { animation: none; }

@media (prefers-reduced-motion: reduce) {
    ::view-transition-old(root), ::view-transition-new(root),
    ::view-transition-old(pa-header), ::view-transition-new(pa-header) { animation: none; }
}

/* ════ MEGA MENU : widgets newsletter / compte a rebours / sociaux ════ */
.pa-megamenu__nl {
    background: var(--pa-bg,#f8f8f8); border-radius: 12px; padding: 18px;
    display: flex; flex-direction: column; gap: 8px; min-width: 240px; max-width: 300px;
}
.pa-megamenu__nl-title { font-size: 14.5px; font-weight: 800; letter-spacing: -.01em; }
.pa-megamenu__nl-text { font-size: 12.5px; color: var(--pa-gray); line-height: 1.55; }
.pa-megamenu__nl-form { display: flex; gap: 6px; margin-top: 4px; }
.pa-megamenu__nl-form input {
    flex: 1; min-width: 0; border: 1.5px solid rgba(0,0,0,.1); border-radius: 8px;
    padding: 8px 12px; font-size: 13px; font-family: inherit;
}
.pa-megamenu__nl-form input:focus { outline: none; border-color: var(--pa-red); }
.pa-megamenu__nl-form .pa-btn { padding: 8px 14px; font-size: 12.5px; }
.pa-megamenu__nl-status { font-size: 11.5px; color: var(--pa-gray); margin: 0; min-height: 14px; }

.pa-megamenu__cd {
    background: #16161d; color: #fff; border-radius: 12px; padding: 18px 20px;
    display: flex; flex-direction: column; gap: 10px; min-width: 240px;
    position: relative; overflow: hidden;
}
.pa-megamenu__cd::after { content:""; position:absolute; inset:0; pointer-events:none;
    background: radial-gradient(240px 110px at 100% 0%, rgba(222,7,64,.4), transparent 70%); }
.pa-megamenu__cd-title { font-size: 13.5px; font-weight: 800; position: relative; }
.pa-megamenu__cd-timer { display: flex; gap: 12px; position: relative; }
.pa-megamenu__cd-timer span { text-align: center; }
.pa-megamenu__cd-timer b { display: block; font-size: 22px; font-weight: 800; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.pa-megamenu__cd-timer small { display: block; font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .1em; opacity: .55; margin-top: 2px; }
.pa-megamenu__cd-over { font-size: 16px; font-weight: 800; }

.pa-megamenu__social { display: flex; flex-direction: column; gap: 8px; min-width: 200px; }
.pa-megamenu__social h6 { font-size: 10.5px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--pa-gray); margin: 0 0 2px; }
.pa-megamenu__social-link {
    display: flex; align-items: center; gap: 10px;
    font-size: 13.5px; font-weight: 600; color: var(--pa-black); text-decoration: none !important;
    padding: 8px 12px; border: 1.5px solid rgba(0,0,0,.08); border-radius: 8px;
    transition: border-color .2s, background .2s, color .2s;
}
.pa-megamenu__social-link:hover { border-color: var(--pa-red); background: var(--pa-red); color: #fff !important; }

/* ════ RESPIRATIONS — archives et guides parcs ════ */
/* Archive categorie : espace clair au-dessus des articles et apres les dossiers */
.pa-cat-body { padding-top: clamp(44px, 6vw, 72px) !important; padding-bottom: clamp(64px, 9vw, 110px) !important; }
.pa-cat-others { margin-top: clamp(48px, 7vw, 80px); }

/* Guide parc : sous le compteur du hero, apres les raccourcis, apres la derniere section */
.pa-park-hero__content { padding-bottom: clamp(28px, 4vw, 44px); }
.pa-park-anchors { margin-bottom: clamp(36px, 5vw, 56px); }
main.pa-park { padding-bottom: clamp(56px, 8vw, 96px); }


/* ════ RECHERCHE : meme largeur que le reste du site ════ */
.pa-search-hero .pa-container,
.pa-search-body { max-width: calc(1100px + 2 * clamp(16px,4vw,40px)); }
.pa-search-body { padding-top: clamp(40px,5vw,56px); padding-bottom: clamp(64px,9vw,100px); }

/* ════ FICHE PRODUIT — layout 2 colonnes + galerie + resume ════ */
.woocommerce div.product { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 5vw, 56px); align-items: start; }
@media (max-width: 860px) { .woocommerce div.product { grid-template-columns: 1fr; } }
.pa-woo__body { padding: clamp(32px, 5vw, 56px) clamp(16px,4vw,40px) clamp(64px, 9vw, 100px); max-width: calc(1100px + 2 * clamp(16px,4vw,40px)); margin: 0 auto; }

/* Galerie */
.woocommerce div.product div.images.woocommerce-product-gallery { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product .woocommerce-product-gallery .flex-viewport {
    border-radius: 14px; overflow: hidden;
    border: 1.5px solid rgba(0,0,0,.07);
    box-shadow: 0 6px 26px rgba(17,17,34,.08);
    background: #fff;
}
.woocommerce div.product .woocommerce-product-gallery__image img { border-radius: 0; }
.woocommerce div.product .woocommerce-product-gallery__trigger {
    top: 14px !important; right: 14px !important;
    width: 40px; height: 40px; border-radius: 10px !important;
    background: rgba(255,255,255,.92) !important;
    box-shadow: 0 2px 10px rgba(0,0,0,.12);
    display: flex; align-items: center; justify-content: center;
    font-size: 16px; z-index: 9;
}
.woocommerce div.product ol.flex-control-thumbs {
    display: flex; gap: 10px; margin: 12px 0 0 !important; padding: 0 !important; list-style: none;
}
.woocommerce div.product ol.flex-control-thumbs li {
    width: 72px !important; float: none !important; margin: 0 !important;
}
.woocommerce div.product ol.flex-control-thumbs li img {
    width: 72px !important; height: 72px !important; object-fit: cover;
    border-radius: 10px; border: 2px solid transparent; cursor: pointer;
    opacity: .55; transition: opacity .2s, border-color .2s;
}
.woocommerce div.product ol.flex-control-thumbs li img.flex-active,
.woocommerce div.product ol.flex-control-thumbs li img:hover { opacity: 1; border-color: var(--pa-red, #de0740); }

/* Resume produit */
.woocommerce div.product div.summary { width: 100% !important; float: none !important; margin: 0 !important; }
.woocommerce div.product .summary .price {
    font-size: clamp(26px, 3.4vw, 34px) !important; font-weight: 800 !important;
    color: var(--pa-red, #de0740) !important; letter-spacing: -.02em; margin: 0 0 14px !important;
}
.woocommerce div.product .summary .price .woocommerce-Price-currencySymbol { font-size: .72em; }
.woocommerce-product-details__short-description { font-size: 15.5px; line-height: 1.75; color: #3d3d46; margin-bottom: 14px; }
.woocommerce div.product .summary p.stock.in-stock {
    display: inline-flex; align-items: center; gap: 7px;
    background: rgba(16,185,129,.1); color: #067a56 !important;
    font-size: 12.5px !important; font-weight: 700;
    padding: 6px 12px; border-radius: 8px; margin: 0 0 18px !important;
}
.woocommerce div.product .summary p.stock.in-stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: #10b981; }
.woocommerce div.product .summary p.stock.out-of-stock {
    display: inline-flex; background: rgba(222,7,64,.08); color: var(--pa-red) !important;
    font-size: 12.5px !important; font-weight: 700; padding: 6px 12px; border-radius: 8px;
}
.woocommerce div.product form.cart { display: flex; gap: 12px; align-items: stretch; margin: 0 0 18px !important; flex-wrap: wrap; }
.woocommerce div.product form.cart div.quantity { float: none !important; margin: 0 !important; }
.woocommerce div.product form.cart .qty {
    width: 84px !important; height: 100%; min-height: 50px;
    border: 1.5px solid rgba(0,0,0,.12) !important; border-radius: 10px !important;
    font-size: 15px !important; font-weight: 700; text-align: center;
    font-family: inherit !important;
}
.woocommerce div.product form.cart .qty:focus { outline: none; border-color: var(--pa-red, #de0740) !important; }
.woocommerce div.product form.cart .single_add_to_cart_button {
    flex: 1; min-height: 50px;
    background: var(--pa-red, #de0740) !important; color: #fff !important;
    border: none !important; border-radius: 10px !important;
    font-size: 14.5px !important; font-weight: 700 !important; letter-spacing: .01em;
    font-family: inherit !important; cursor: pointer;
    transition: background .2s, transform .2s, box-shadow .2s;
}
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: #b8063a !important; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(222,7,64,.3);
}
.woocommerce div.product .product_meta {
    border-top: 1px solid rgba(0,0,0,.07); padding-top: 16px; margin-top: 20px;
    font-size: 12.5px; color: var(--pa-gray, #666);
}
.woocommerce div.product .product_meta a { color: var(--pa-red, #de0740); text-decoration: none; font-weight: 600; }
.woocommerce div.product .product_meta a:hover { text-decoration: underline; }

/* ════ PANIER — table + totaux charte ════ */
.woocommerce-cart .woocommerce { max-width: none; }
.woocommerce table.shop_table.cart {
    border: none !important; border-radius: 0 !important; margin-bottom: 8px;
}
.woocommerce table.shop_table.cart th {
    font-size: 11px !important; font-weight: 800 !important; letter-spacing: .1em; text-transform: uppercase;
    color: var(--pa-gray, #666) !important; border: none !important;
    border-bottom: 2px solid rgba(0,0,0,.08) !important; padding: 12px 10px !important;
    background: transparent !important;
}
.woocommerce table.shop_table.cart td {
    border: none !important; border-bottom: 1px solid rgba(0,0,0,.06) !important;
    padding: 16px 10px !important; vertical-align: middle; background: transparent !important;
}
.woocommerce table.shop_table.cart td.product-thumbnail img {
    width: 72px !important; height: 72px !important; object-fit: cover; border-radius: 10px; display: block;
}
.woocommerce table.shop_table.cart td.product-name a {
    font-weight: 700; color: var(--pa-black, #111) !important; text-decoration: none !important; font-size: 14.5px;
}
.woocommerce table.shop_table.cart td.product-name a:hover { color: var(--pa-red, #de0740) !important; }
.woocommerce table.shop_table.cart a.remove {
    width: 28px !important; height: 28px !important; line-height: 26px !important;
    border-radius: 8px !important; color: var(--pa-gray, #666) !important;
    border: 1.5px solid rgba(0,0,0,.1); font-size: 18px !important; font-weight: 400 !important;
    transition: all .2s; display: inline-block; text-align: center;
}
.woocommerce table.shop_table.cart a.remove:hover {
    background: var(--pa-red, #de0740) !important; color: #fff !important; border-color: var(--pa-red, #de0740);
}
.woocommerce table.shop_table.cart .quantity .qty {
    width: 70px !important; padding: 8px !important; text-align: center;
    border: 1.5px solid rgba(0,0,0,.12) !important; border-radius: 8px !important;
    font-family: inherit !important; font-weight: 700;
}
.woocommerce table.shop_table.cart td.actions { padding-top: 20px !important; border-bottom: none !important; }
.woocommerce table.shop_table.cart td.actions .coupon { display: flex; gap: 10px; float: none; }
.woocommerce table.shop_table.cart td.actions .coupon .input-text {
    min-width: 200px; padding: 11px 14px !important;
    border: 1.5px solid rgba(0,0,0,.12) !important; border-radius: 8px !important;
    font-family: inherit !important; font-size: 13.5px !important;
}
.woocommerce table.shop_table.cart td.actions .button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    font-family: inherit !important; font-weight: 700 !important; border-radius: 8px !important;
    transition: all .2s !important;
}
.woocommerce table.shop_table.cart td.actions .button {
    background: #fff !important; color: var(--pa-black, #111) !important;
    border: 1.5px solid rgba(0,0,0,.15) !important; padding: 11px 18px !important;
}
.woocommerce table.shop_table.cart td.actions .button:hover:not(:disabled) { border-color: var(--pa-red) !important; color: var(--pa-red) !important; }
.woocommerce table.shop_table.cart td.actions .button:disabled { opacity: .45; }

.woocommerce-cart .cart-collaterals .cart_totals {
    width: 100% !important; float: none !important;
    background: #fff; border: 1.5px solid rgba(0,0,0,.07); border-radius: 14px;
    box-shadow: 0 6px 26px rgba(17,17,34,.07);
    padding: 24px 26px;
}
.woocommerce-cart .cart-collaterals .cart_totals h2 {
    font-size: 19px !important; font-weight: 800 !important; letter-spacing: -.02em; margin: 0 0 14px !important;
}
.woocommerce-cart .cart_totals table.shop_table { border: none !important; margin: 0 !important; }
.woocommerce-cart .cart_totals table.shop_table th,
.woocommerce-cart .cart_totals table.shop_table td {
    border: none !important; border-bottom: 1px solid rgba(0,0,0,.06) !important;
    padding: 12px 4px !important; background: transparent !important; font-size: 14px;
}
.woocommerce-cart .cart_totals tr.order-total th,
.woocommerce-cart .cart_totals tr.order-total td { border-bottom: none !important; font-size: 16px; }
.woocommerce-cart .cart_totals tr.order-total .amount { color: var(--pa-red, #de0740); font-weight: 800; }
.woocommerce ul#shipping_method li { margin-bottom: 8px; display: flex; align-items: flex-start; gap: 8px; }
.woocommerce ul#shipping_method li input[type="radio"] { accent-color: var(--pa-red, #de0740); margin-top: 3px; flex-shrink: 0; }
.woocommerce ul#shipping_method li label { font-size: 13.5px; line-height: 1.5; }
.woocommerce-shipping-destination { font-size: 12px; color: var(--pa-gray, #666); }
.woocommerce-cart .wc-proceed-to-checkout { padding: 18px 0 0 !important; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
    display: block; text-align: center;
    background: var(--pa-red, #de0740) !important; color: #fff !important;
    padding: 15px 20px !important; font-size: 15px !important;
    border: none !important;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
    background: #b8063a !important; transform: translateY(-2px); box-shadow: 0 8px 22px rgba(222,7,64,.3);
}
@media (max-width: 760px) {
    .woocommerce table.shop_table_responsive.cart tr { border-bottom: 1.5px solid rgba(0,0,0,.08); padding: 8px 0; }
    .woocommerce table.shop_table_responsive.cart td { border: none !important; }
}

/* ════ RESPONSIVE : groupes en rangee -> empiles sur mobile ════
   Les blocs Groupe en disposition horizontale (variation Rangee, y compris
   is-nowrap) passent en colonne sous 781px dans le contenu des pages et articles.
   Les rangees de boutons gardent leur comportement (elles wrappent cote a cote). */
@media (max-width: 781px) {
    .pa-article .wp-block-group.is-horizontal.is-layout-flex,
    .pa-page-content .wp-block-group.is-horizontal.is-layout-flex {
        flex-wrap: wrap !important;
    }
    .pa-article .wp-block-group.is-horizontal.is-layout-flex > .wp-block-group,
    .pa-article .wp-block-group.is-horizontal.is-layout-flex > figure,
    .pa-article .wp-block-group.is-horizontal.is-layout-flex > .wp-block-image,
    .pa-article .wp-block-group.is-horizontal.is-layout-flex > [class*="pa-"],
    .pa-page-content .wp-block-group.is-horizontal.is-layout-flex > .wp-block-group,
    .pa-page-content .wp-block-group.is-horizontal.is-layout-flex > figure,
    .pa-page-content .wp-block-group.is-horizontal.is-layout-flex > .wp-block-image,
    .pa-page-content .wp-block-group.is-horizontal.is-layout-flex > [class*="pa-"] {
        flex: 1 1 100% !important;
        min-width: 0 !important;
        max-width: 100% !important;
    }
}

/* ════ NOTICES WOOCOMMERCE — charte ════ */
.woocommerce-message, .woocommerce-info, .woocommerce-error li, ul.woocommerce-error {
    font-family: inherit;
}
.woocommerce-message, .woocommerce-info, .woocommerce-error {
    background: #fff !important;
    border: 1.5px solid rgba(0,0,0,.08) !important;
    border-left-width: 4px !important;
    border-radius: 10px !important;
    padding: 16px 20px !important;
    margin: 0 0 22px !important;
    color: var(--pa-black, #111) !important;
    font-size: 14px; line-height: 1.6;
    box-shadow: 0 4px 18px rgba(17,17,34,.06);
    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
    list-style: none !important;
}
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { display: none !important; }
.woocommerce-message { border-left-color: #10b981 !important; }
.woocommerce-info    { border-left-color: var(--pa-red, #de0740) !important; }
.woocommerce-error   { border-left-color: #dc2626 !important; flex-direction: column; align-items: flex-start; }
.woocommerce-error li { margin: 0 !important; }
.woocommerce-message .button, .woocommerce-info .button, .woocommerce-error .button,
.woocommerce-message a.wc-forward {
    order: 2; margin-left: auto;
    background: var(--pa-red, #de0740) !important; color: #fff !important;
    border: none !important; border-radius: 8px !important;
    padding: 9px 16px !important; font-size: 12.5px !important; font-weight: 700 !important;
    font-family: inherit !important; text-decoration: none !important;
    transition: background .2s;
}
.woocommerce-message .button:hover, .woocommerce-info .button:hover { background: #b8063a !important; }
.woocommerce-info a.showcoupon { color: var(--pa-red, #de0740); font-weight: 600; }

/* ════ PANIER — layout 2 colonnes, recap sticky ════ */
.woocommerce-cart .pa-page-content > .woocommerce {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 32px;
    align-items: start;
}
.woocommerce-cart .pa-page-content > .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; }
.woocommerce-cart .woocommerce-cart-form { grid-column: 1; }
.woocommerce-cart .cart-collaterals {
    grid-column: 2; margin: 0 !important; max-width: none !important;
    position: sticky; top: 96px;
}
@media (max-width: 960px) {
    .woocommerce-cart .pa-page-content > .woocommerce { grid-template-columns: 1fr; }
    .woocommerce-cart .woocommerce-cart-form, .woocommerce-cart .cart-collaterals { grid-column: 1; }
    .woocommerce-cart .cart-collaterals { position: static; }
}

/* La table du panier dans une carte, colonnes alignees */
.woocommerce-cart .woocommerce-cart-form {
    background: #fff; border: 1.5px solid rgba(0,0,0,.07); border-radius: 14px;
    box-shadow: 0 6px 26px rgba(17,17,34,.07);
    padding: 10px 22px 18px;
}
.woocommerce table.shop_table.cart { margin: 0 !important; width: 100%; }
.woocommerce table.shop_table.cart th.product-remove,
.woocommerce table.shop_table.cart td.product-remove { width: 40px; padding-left: 0 !important; }
.woocommerce table.shop_table.cart th.product-thumbnail,
.woocommerce table.shop_table.cart td.product-thumbnail { width: 88px; }
.woocommerce table.shop_table.cart th.product-price,
.woocommerce table.shop_table.cart th.product-quantity,
.woocommerce table.shop_table.cart th.product-subtotal { text-align: left; }
.woocommerce table.shop_table.cart td.product-price,
.woocommerce table.shop_table.cart td.product-subtotal { font-weight: 700; white-space: nowrap; }
.woocommerce table.shop_table.cart td.product-subtotal .amount { color: var(--pa-red, #de0740); }
.woocommerce table.shop_table.cart td.product-name { min-width: 160px; }

/* Bouton "Choisir un point de retrait" (Mondial Relay) */
button.wms_pickup_open_modal_openstreetmap {
    display: inline-block; margin: 8px 0 4px;
    background: #fff; color: var(--pa-red, #de0740);
    border: 1.5px solid var(--pa-red, #de0740); border-radius: 8px;
    padding: 9px 14px; font-size: 12.5px; font-weight: 700;
    font-family: inherit; cursor: pointer;
    transition: background .2s, color .2s;
}
button.wms_pickup_open_modal_openstreetmap:hover { background: var(--pa-red, #de0740); color: #fff; }
#wms_pickup_selected { font-size: 12.5px; color: var(--pa-gray, #666); line-height: 1.5; }

/* ════ VALIDATION — formulaire a gauche, commande sticky a droite ════ */
.woocommerce-checkout form.checkout.woocommerce-checkout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 440px;
    grid-template-rows: auto 1fr;
    column-gap: 36px;
    align-items: start;
}
.woocommerce-checkout form.checkout #customer_details {
    grid-column: 1; grid-row: 1 / 3;
    display: block !important; /* facturation puis expedition, empilees dans la colonne gauche */
}
.woocommerce-checkout form.checkout #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 14px !important; }
.woocommerce-checkout form.checkout #order_review {
    grid-column: 2; grid-row: 2;
    align-self: start; position: sticky; top: 96px;
}
@media (max-width: 1020px) {
    .woocommerce-checkout form.checkout.woocommerce-checkout { grid-template-columns: 1fr; grid-template-rows: none; }
    .woocommerce-checkout form.checkout #customer_details,
    .woocommerce-checkout form.checkout #order_review_heading,
    .woocommerce-checkout form.checkout #order_review { grid-column: 1; grid-row: auto; }
    .woocommerce-checkout form.checkout #order_review { position: static; }
}

/* Cartes des sections du checkout */
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 {
    background: #fff; border: 1.5px solid rgba(0,0,0,.07); border-radius: 14px;
    box-shadow: 0 6px 26px rgba(17,17,34,.07);
    padding: 26px 28px; margin-bottom: 24px;
    width: 100% !important; float: none !important;
}
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #ship-to-different-address {
    font-size: 18px !important; font-weight: 800 !important; letter-spacing: -.02em;
    margin: 0 0 18px !important;
}
.woocommerce-checkout #ship-to-different-address label { display: flex; align-items: center; gap: 10px; font-size: 15px; cursor: pointer; }
.woocommerce-checkout #ship-to-different-address input[type="checkbox"] { accent-color: var(--pa-red, #de0740); width: 17px; height: 17px; }
.woocommerce form .form-row.form-row-wide { width: 100% !important; display: block !important; }

/* Recap commande : carte forte */
#order_review.woocommerce-checkout-review-order {
    background: #fff; border: 1.5px solid rgba(0,0,0,.07); border-radius: 14px;
    box-shadow: 0 10px 34px rgba(17,17,34,.1);
    padding: 24px 26px;
}
#order_review table.shop_table { border: none !important; margin: 0 0 8px !important; width: 100%; }
#order_review table.shop_table th, #order_review table.shop_table td {
    border: none !important; border-bottom: 1px solid rgba(0,0,0,.06) !important;
    padding: 12px 4px !important; background: transparent !important; font-size: 14px;
    text-align: left; vertical-align: top;
}
#order_review table.shop_table thead th {
    font-size: 11px !important; font-weight: 800 !important; letter-spacing: .1em; text-transform: uppercase;
    color: var(--pa-gray, #666) !important; border-bottom: 2px solid rgba(0,0,0,.08) !important;
}
#order_review .product-quantity { color: var(--pa-gray, #666); font-weight: 600; }
#order_review tr.order-total th, #order_review tr.order-total td { border-bottom: none !important; font-size: 16.5px; padding-top: 16px !important; }
#order_review tr.order-total .amount { color: var(--pa-red, #de0740); font-weight: 800; font-size: 19px; }

/* Paiement */
#payment.woocommerce-checkout-payment { background: transparent !important; border-radius: 0 !important; }
#payment ul.payment_methods { border-bottom: none !important; padding: 6px 0 0 !important; }
#payment ul.payment_methods li { list-style: none; }
#payment ul.payment_methods label { font-weight: 700; font-size: 14.5px; }
#payment div.payment_box {
    background: var(--pa-bg, #f7f7f9) !important; border-radius: 10px !important;
    margin-top: 10px !important; padding: 16px !important;
}
#payment div.payment_box::before { display: none !important; }
.woocommerce-privacy-policy-text p { font-size: 12px !important; color: #8a8a94 !important; line-height: 1.6; }
.woocommerce-privacy-policy-text a { color: var(--pa-red, #de0740); }
#payment .form-row.place-order { padding: 12px 0 0 !important; margin: 0 !important; }
#place_order {
    display: block; width: 100%;
    background: var(--pa-red, #de0740) !important; color: #fff !important;
    border: none !important; border-radius: 10px !important;
    padding: 16px 20px !important; font-size: 15px !important; font-weight: 800 !important;
    font-family: inherit !important; letter-spacing: .01em; cursor: pointer;
    transition: background .2s, transform .2s, box-shadow .2s;
}
#place_order:hover:not(:disabled) { background: #b8063a !important; transform: translateY(-2px); box-shadow: 0 10px 26px rgba(222,7,64,.32); }
#place_order:disabled { opacity: .55; cursor: not-allowed; }

/* Coupon toggle du checkout */
.woocommerce-form-coupon-toggle .woocommerce-info { box-shadow: none; }
form.checkout_coupon.woocommerce-form-coupon {
    background: #fff; border: 1.5px solid rgba(0,0,0,.08); border-radius: 12px;
    padding: 18px 20px !important; margin-bottom: 22px !important;
    display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap;
    border-top: 1.5px solid rgba(0,0,0,.08) !important;
}
form.checkout_coupon .form-row { margin: 0 !important; }
form.checkout_coupon .form-row-first { flex: 1; min-width: 200px; }
form.checkout_coupon button { white-space: nowrap; }

/* Marge de fin de page article */
.pa-single-layout { padding-bottom: clamp(56px, 8vw, 96px); }

/* ════ Protection des images (anti-enregistrement) ════ */
body:not(.admin-bar) img,
body:not(.admin-bar) figure {
    -webkit-user-select: none; user-select: none;
    -webkit-user-drag: none;
    -webkit-touch-callout: none; /* iOS : pas de menu "Enregistrer l'image" a l'appui long */
}

/* ════ Titres a barre verticale : espace garanti entre le trait et le texte ════ */
@media (max-width: 782px) {
    .woocommerce .related > h2, .woocommerce .upsells > h2, .woocommerce .cross-sells > h2,
    .pa-cat-others__title, .pa-search-section__title {
        padding-left: 16px !important;
    }
}
