/*
 * Ajustements propres à WordPress / Elementor. Le design d'origine (design.css) n'est jamais modifié.
 */

/* ------------------------------------------------------------------ */
/* Widgets « transparents » : le vrai élément (paragraphe, bouton,     */
/* code court) se place directement dans la mise en page du parent.    */
/* ------------------------------------------------------------------ */
.pm-c,
.pm-c > .elementor-widget-container,
.pm-c > .elementor-widget-container > .elementor-shortcode,
.pm-c > .elementor-shortcode,
.pm-c > .elementor-text-editor,
.pm-c > .elementor-widget-container > .elementor-text-editor {
	display: contents;
}
/* Paragraphe ajouté automatiquement par l'éditeur autour d'un bouton ou d'un lien */
.pm-c > p:not([class]):only-child,
.pm-c > .elementor-widget-container > p:not([class]):only-child {
	display: contents;
}
/* Sous un parent « space-y-* », l'espacement se pose sur l'enveloppe du widget : elle doit exister */
[class*="space-y-"] > .pm-c {
	display: block;
}
[class*="space-y-"] > .pm-c > .elementor-widget-container {
	display: block;
}

/* Titres : l'élément h1-h6 hérite du style posé sur le widget */
.pm-w.elementor-widget-heading .elementor-heading-title,
.pm-w.elementor-widget-heading > .elementor-widget-container > .elementor-heading-title {
	font-size: inherit;
	font-weight: inherit;
	line-height: inherit;
	letter-spacing: inherit;
	text-transform: inherit;
	font-style: inherit;
	color: inherit;
	margin: 0;
	padding: 0;
	text-align: inherit;
}
.pm-w.elementor-widget-heading .elementor-heading-title a {
	color: inherit;
}
.pm-w.elementor-widget-heading > .elementor-widget-container {
	display: contents;
}

/* Images : l'image remplit le bloc qui porte les classes du design */
.pm-w.elementor-widget-image {
	text-align: inherit;
	overflow: hidden;
}
.pm-w.elementor-widget-image > .elementor-widget-container {
	display: contents;
}
.pm-w.elementor-widget-image img,
.elementor .pm-w.elementor-widget-image img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	border-radius: inherit;
	box-shadow: none;
}

/* Pages Elementor : pas de marge du thème */
.pm-site .elementor-page .page-content,
.pm-site .site-main {
	max-width: none;
	padding: 0;
	margin: 0;
}
body.pm-site {
	background-color: hsl(var(--background));
}

/* Lien qui couvre toute une carte */
.pm-card-link { color: inherit; }

/* ------------------------------------------------------------------ */
/* Animations du site d'origine                                         */
/* ------------------------------------------------------------------ */

/* Apparition des blocs (titre, sous-titre, bouton de l'accueil) */
@keyframes pm-up { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@keyframes pm-up-scale { from { opacity: 0; transform: translateY(20px) scale(.9); } to { opacity: 1; transform: none; } }
@keyframes pm-fade { from { opacity: 0; } to { opacity: 1; } }
.pm-anim-1 { animation: pm-up .6s ease-out .1s both; }
.pm-anim-2 { animation: pm-up .6s ease-out .2s both; }
.pm-anim-3 { animation: pm-up .6s ease-out .3s both; }
.pm-anim-4 { animation: pm-up-scale .6s ease-out .4s both; }
.pm-anim-5 { animation: pm-up .6s ease-out .5s both; }
.pm-anim-8 { animation: pm-fade .6s ease-out .8s both; }
/* Le titre garde son reflet doré animé (animate-text-wave) en plus de l'apparition */
.pm-anim-1.animate-text-wave { animation: pm-up .6s ease-out .1s both, text-wave 4s ease-in-out infinite; }

/* Bouton d'accueil : légère croissance au survol */
.pm-hover-grow { transition: transform .2s ease; }
.pm-hover-grow:hover { transform: scale(1.05); }
.pm-hover-grow:active { transform: scale(.95); }

/* Flèche « défiler » */
@keyframes pm-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(8px); } }
.pm-bob { animation: pm-bob 1.5s ease-in-out infinite; }

/* Apparitions au défilement */
.pm-reveal, .pm-reveal-left, .pm-reveal-right { opacity: 0; transition: opacity .6s ease-out, transform .6s ease-out; }
.pm-reveal { transform: translateY(20px); }
.pm-reveal-left { transform: translateX(-30px); }
.pm-reveal-right { transform: translateX(30px); transition-delay: .2s; }
.pm-in { opacity: 1 !important; transform: none !important; }
.elementor-editor-active .pm-reveal, .elementor-editor-active .pm-reveal-left, .elementor-editor-active .pm-reveal-right { opacity: 1; transform: none; }

/* Bandeau des partenaires */
@keyframes pm-marquee { from { transform: translateX(0); } to { transform: translateX(calc(-50% - 24px)); } }
.pm-marquee-track { animation: pm-marquee 30s linear infinite; }
.pm-marquee:hover .pm-marquee-track { animation-duration: 60s; }

/* Colonnes de témoignages */
@keyframes pm-tcol { from { transform: translateY(0); } to { transform: translateY(-50%); } }
.pm-tcol { animation-name: pm-tcol; animation-timing-function: linear; animation-iteration-count: infinite; }

/* Galerie vidéo : bouton lecture visible seulement sur la vidéo ouverte */
.pm-gal-play { opacity: 0; transform: scale(.8); transition: opacity .3s ease .2s, transform .3s ease .2s; pointer-events: none; }
.pm-gal-item.is-active .pm-gal-play { opacity: 1; transform: none; pointer-events: auto; }
.pm-gal-item { transition: flex .5s cubic-bezier(.4, 0, .2, 1); }
.pm-lightbox[hidden] { display: none; }

/* FAQ : chevron qui tourne */
.pm-faq-item[data-state="open"] .pm-faq-btn svg { transform: rotate(180deg); }

/* Carrousel : boutons désactivés */
.pm-carousel button:disabled { opacity: .5; pointer-events: none; }

/* Liste « animate-fade-in » de la page des balades */
@keyframes pm-fade-in { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
.animate-fade-in { animation: pm-fade-in .5s ease-out both; }

/* Code Resamar : prend toute la largeur de la carte */
.pm-resamar, .pm-resamar iframe { width: 100%; max-width: 100%; border: 0; }

/* Articles du cocon : figures, tableaux, encadrés, FAQ, articles liés */
.article-content figure{margin:2rem 0}
.article-content figure img{margin:0}
.article-content figcaption{margin-top:.5rem;font-size:.8125rem;color:hsl(var(--muted-foreground));text-align:center}
.article-content ul{list-style:disc}
.article-content ol{list-style:decimal}
.article-content a{color:hsl(var(--primary));font-weight:500;text-decoration:underline;text-decoration-color:hsl(var(--accent));text-underline-offset:3px}
.article-content a:hover{text-decoration-thickness:2px}
.article-content .pm-table{overflow-x:auto;margin:2rem 0;border-radius:.75rem;border:1px solid hsl(var(--border))}
.article-content table{width:100%;border-collapse:collapse;font-size:.95rem}
.article-content th{background:hsl(var(--primary));color:#fff;text-align:left;padding:.75rem 1rem;font-weight:600}
.article-content td{padding:.75rem 1rem;border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));vertical-align:top}
.article-content tr:nth-child(even) td{background:hsl(var(--muted) / .35)}
.article-content .pm-credits{margin-top:2.5rem;font-size:.8125rem;line-height:1.4;color:hsl(var(--muted-foreground))}
.pm-faq-item{border:1px solid hsl(var(--border));border-radius:.75rem;margin-bottom:.75rem;background:hsl(var(--card));overflow:hidden}
.pm-faq-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem 1.25rem;font-weight:600;color:hsl(var(--foreground))}
.pm-faq-item summary::-webkit-details-marker{display:none}
.pm-faq-item summary svg{flex-shrink:0;transition:transform .2s}
.pm-faq-item[open] summary svg{transform:rotate(180deg)}
.pm-faq-item p{padding:0 1.25rem 1.25rem;margin:0;color:hsl(var(--muted-foreground));line-height:1.65}
.pm-related{display:block;border:1px solid hsl(var(--border));border-radius:.75rem;overflow:hidden;background:hsl(var(--card));transition:box-shadow .2s}
.pm-related:hover{box-shadow:0 10px 30px -12px #00000030}
.pm-related img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}
.pm-related span{display:block;padding:.75rem 1rem;font-weight:600;color:hsl(var(--foreground));line-height:1.35}
.pm-related-grid{display:grid;gap:1rem}@media (min-width:640px){.pm-related-grid{grid-template-columns:repeat(3,1fr)}}
.pm-sec-title{font-size:1.5rem;line-height:2rem;font-weight:700;color:hsl(var(--foreground));margin-bottom:1.5rem}@media (min-width:768px){.pm-sec-title{font-size:1.875rem;line-height:2.25rem}}
