/*
Theme Name:   Photomagic Child
Theme URI:    https://photomagic.fr
Description:  Thème enfant de Kadence pour Photomagic. Toutes les personnalisations de code se font ici, jamais dans Kadence.
Author:       Photomagic
Template:     kadence
Version:      1.5.2
Requires at least: 6.5
Requires PHP: 8.0
Text Domain:  photomagic-child
*/

/* ==========================================================================
   Variables (reprennent la palette Kadence, avec valeurs de secours)
   ========================================================================== */
:root {
	--pm-accent: var(--global-palette1, #B4235A);
	--pm-accent-dark: var(--global-palette2, #8E1B47);
	--pm-gold: #B7791F;
	--pm-ink: var(--global-palette3, #1E1B2E);
	--pm-ink-2: var(--global-palette4, #3A3650);
	--pm-muted: var(--global-palette5, #5F5C72);
	--pm-line: #E7DED3;
	--pm-paper: #FAF6F1;
	--pm-paper-2: #F3ECE4;
	--pm-white: #FFFFFF;
	--pm-radius: 18px;
	--pm-shadow: 0 18px 40px -18px rgba(30, 27, 46, .35);
	--pm-ease: cubic-bezier(.2, .7, .2, 1);
}

/* ==========================================================================
   Sections de la page d'accueil
   ========================================================================== */
.pm-section {
	padding: clamp(56px, 8vw, 104px) 16px;
}
.pm-section > * {
	max-width: 1120px;
	margin-left: auto;
	margin-right: auto;
}
.pm-section h2 {
	font-size: clamp(1.75rem, 3.4vw, 2.6rem);
	line-height: 1.15;
	margin-bottom: .6em;
	color: var(--pm-ink);
}
.pm-answer {
	max-width: 720px !important;
	font-size: 1.075rem;
	color: var(--pm-ink-2);
	margin-bottom: 2.4em;
}
.pm-how,
.pm-pricing,
.pm-faq-section {
	background: var(--pm-white);
}
.pm-occasions,
.pm-compare {
	background: var(--pm-paper);
}

/* ---------- Héros ---------- */
.pm-hero {
	background:
		radial-gradient(1100px 500px at 85% 20%, rgba(180, 35, 90, .10), transparent 60%),
		radial-gradient(800px 400px at 0% 100%, rgba(183, 121, 31, .10), transparent 60%),
		var(--pm-paper);
	overflow: hidden;
}
.pm-hero__grid {
	gap: clamp(24px, 5vw, 64px) !important;
}
.pm-kicker {
	display: inline-block;
	font-size: .8rem;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--pm-accent);
	background: rgba(180, 35, 90, .08);
	border-radius: 999px;
	padding: .35em .9em;
	margin-bottom: 1.2em;
}
.pm-hero__title {
	font-size: clamp(2.2rem, 5.2vw, 3.8rem);
	line-height: 1.05;
	letter-spacing: -.01em;
	margin: 0 0 .45em;
	color: var(--pm-ink);
}
.pm-hero__title em {
	font-style: italic;
	color: var(--pm-accent);
}
.pm-lead {
	font-size: clamp(1.05rem, 1.6vw, 1.2rem);
	color: var(--pm-ink-2);
	max-width: 560px;
}
.pm-trust {
	list-style: none;
	padding: 0;
	margin: 1.6em 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: .5em 1.4em;
	font-size: .92rem;
	color: var(--pm-muted);
}
.pm-trust li {
	position: relative;
	padding-left: 1.3em;
}
.pm-trust li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .45em;
	width: .7em;
	height: .4em;
	border-left: 2px solid var(--pm-accent);
	border-bottom: 2px solid var(--pm-accent);
	transform: rotate(-45deg);
}

/* ---------- Boutons ---------- */
.pm-cta {
	gap: 12px;
	margin-top: 1.6em;
}
.pm-btn .wp-block-button__link {
	border-radius: 999px;
	padding: .9em 1.6em;
	font-weight: 600;
	transition: transform .25s var(--pm-ease), box-shadow .25s var(--pm-ease), background-color .25s;
}
.pm-btn--primary .wp-block-button__link {
	background: var(--pm-accent);
	color: var(--pm-white);
	box-shadow: 0 10px 24px -10px rgba(180, 35, 90, .7);
}
.pm-btn--primary .wp-block-button__link:hover,
.pm-btn--primary .wp-block-button__link:focus-visible {
	background: var(--pm-accent-dark);
	color: var(--pm-white);
	transform: translateY(-2px);
}
.pm-btn--ghost .wp-block-button__link {
	background: transparent;
	color: var(--pm-ink);
	border: 1.5px solid var(--pm-ink);
}
.pm-btn--ghost .wp-block-button__link:hover,
.pm-btn--ghost .wp-block-button__link:focus-visible {
	background: var(--pm-ink);
	color: var(--pm-white);
}

/* ==========================================================================
   Démo animée : le téléphone se pose sur la photo, la vidéo démarre
   Cycle de 7 s, en boucle.
   ========================================================================== */
.pm-demo {
	position: relative;
	width: min(100%, 420px);
	aspect-ratio: 1 / 1.05;
	margin: 0 auto;
}
.pm-demo__photo {
	position: absolute;
	left: 4%;
	top: 16%;
	width: 62%;
	aspect-ratio: 10 / 15;
	background: var(--pm-white);
	padding: 6%;
	padding-bottom: 14%;
	border-radius: 6px;
	box-shadow: var(--pm-shadow);
	transform: rotate(-6deg);
	animation: pm-photo 7s var(--pm-ease) infinite;
}
.pm-demo__photo .pm-scene {
	width: 100%;
	height: 100%;
	border-radius: 2px;
}
.pm-demo__chip {
	position: absolute;
	right: 10%;
	bottom: 4%;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	border: 2px solid var(--pm-gold);
	opacity: .8;
}
.pm-demo__chip::after {
	content: "";
	position: absolute;
	inset: 4px;
	border-radius: 50%;
	background: var(--pm-gold);
}
.pm-demo__phone {
	position: absolute;
	right: 2%;
	top: 0;
	width: 44%;
	aspect-ratio: 9 / 18.5;
	background: var(--pm-ink);
	border-radius: 26px;
	padding: 7px;
	box-shadow: 0 30px 50px -20px rgba(30, 27, 46, .55);
	animation: pm-phone 7s var(--pm-ease) infinite;
	z-index: 2;
}
.pm-demo__notch {
	position: absolute;
	top: 12px;
	left: 50%;
	width: 30%;
	height: 7px;
	transform: translateX(-50%);
	background: #000;
	border-radius: 999px;
	z-index: 3;
}
.pm-demo__screen {
	position: relative;
	width: 100%;
	height: 100%;
	border-radius: 20px;
	overflow: hidden;
	background: #12101c;
}
.pm-demo__screen .pm-scene,
.pm-demo__video {
	position: absolute;
	inset: 0;
	opacity: 0;
	animation: pm-screen 7s linear infinite;
}
.pm-demo__video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	background: #12101c;
}
/* Image hors flux : la taille du cadre ne dépend que de son ratio (bug Safari iOS) */
.pm-demo__img {
	position: absolute;
	left: 9.68%;
	top: 6.45%;
	width: 80.64% !important;
	height: 78.5% !important;
	max-width: none;
	object-fit: cover;
	border-radius: 2px;
}
/* Bouton « lecture » retiré à la demande de Doran (11/11/2026) */
.pm-demo__play {
	display: none !important;
	position: absolute;
	left: 50%;
	top: 50%;
	width: 44px;
	height: 44px;
	margin: -22px 0 0 -22px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	opacity: 0;
	animation: pm-play 7s linear infinite;
}
.pm-demo__play::after {
	content: "";
	position: absolute;
	left: 17px;
	top: 13px;
	border-left: 14px solid var(--pm-accent);
	border-top: 9px solid transparent;
	border-bottom: 9px solid transparent;
}
.pm-demo__bar {
	position: absolute;
	left: 10%;
	right: 10%;
	bottom: 8%;
	height: 4px;
	border-radius: 4px;
	background: rgba(255, 255, 255, .35);
	opacity: 0;
	overflow: hidden;
	animation: pm-fadebar 7s linear infinite;
}
.pm-demo__bar i {
	display: block;
	height: 100%;
	width: 100%;
	background: var(--pm-white);
	transform: scaleX(0);
	transform-origin: left;
	animation: pm-progress 7s linear infinite;
}
.pm-wave {
	position: absolute;
	left: 50%;
	top: 52%;
	width: 90px;
	height: 90px;
	margin: -45px 0 0 -45px;
	border-radius: 50%;
	border: 2px solid var(--pm-accent);
	opacity: 0;
	animation: pm-wave 7s ease-out infinite;
	z-index: 3; /* au-dessus du téléphone : le « sans contact » se voit */
	pointer-events: none;
	box-shadow: 0 0 0 1px rgba(255, 255, 255, .45);
}
.pm-wave--2 { animation-delay: .25s; }
.pm-wave--3 { animation-delay: .5s; }

@keyframes pm-phone {
	0%, 8%   { transform: translate(18%, -6%) rotate(12deg); }
	30%      { transform: translate(-38%, 22%) rotate(-4deg); }
	32%      { transform: translate(-38%, 24%) rotate(-4deg); }
	78%      { transform: translate(-38%, 24%) rotate(-4deg); }
	100%     { transform: translate(18%, -6%) rotate(12deg); }
}
@keyframes pm-photo {
	0%, 28%  { transform: rotate(-6deg) scale(1); }
	33%      { transform: rotate(-6deg) scale(.98); }
	40%, 100%{ transform: rotate(-6deg) scale(1); }
}
@keyframes pm-wave {
	0%, 30%  { opacity: 0; transform: scale(.4); }
	33%      { opacity: .7; }
	50%, 100%{ opacity: 0; transform: scale(2.4); }
}
@keyframes pm-screen {
	0%, 34%  { opacity: 0; transform: scale(1.15); }
	40%      { opacity: 1; }
	80%      { opacity: 1; transform: scale(1); }
	90%, 100%{ opacity: 0; transform: scale(1); }
}
@keyframes pm-play {
	0%, 36%  { opacity: 0; transform: scale(.6); }
	40%      { opacity: 1; transform: scale(1.1); }
	44%      { opacity: 1; transform: scale(1); }
	48%, 100%{ opacity: 0; transform: scale(1); }
}
@keyframes pm-fadebar {
	0%, 44%  { opacity: 0; }
	48%, 80% { opacity: 1; }
	88%, 100%{ opacity: 0; }
}
@keyframes pm-progress {
	0%, 46%  { transform: scaleX(0); }
	82%, 100%{ transform: scaleX(1); }
}

/* Démo pilotée par JS (functions.php) : le téléphone reste posé pendant toute la vidéo */
.pm-demo.is-live .pm-demo__photo,
.pm-demo.is-live .pm-demo__phone,
.pm-demo.is-live .pm-wave,
.pm-demo.is-live .pm-demo__video,
.pm-demo.is-live .pm-demo__play,
.pm-demo.is-live .pm-demo__bar,
.pm-demo.is-live .pm-demo__bar i {
	animation: none;
}
.pm-demo.is-live .pm-demo__phone {
	transform: translate(18%, -6%) rotate(12deg);
	transition: transform 1.6s var(--pm-ease);
}
.pm-demo.is-live.is-on .pm-demo__phone {
	transform: translate(-38%, 24%) rotate(-4deg);
}
.pm-demo.is-live.is-on .pm-demo__photo {
	animation: pm-photo-tap .5s ease 1.3s both;
}
.pm-demo.is-live.is-on .pm-wave {
	animation: pm-wave-tap 1.4s ease-out 1.3s both;
}
.pm-demo.is-live.is-on .pm-wave--2 { animation-delay: 1.55s; }
.pm-demo.is-live.is-on .pm-wave--3 { animation-delay: 1.8s; }
.pm-demo.is-live .pm-demo__video {
	opacity: 0;
	transform: scale(1.15);
	transition: opacity .5s ease, transform .8s ease;
}
.pm-demo.is-live.is-playing .pm-demo__video {
	opacity: 1;
	transform: scale(1);
}
.pm-demo.is-live.is-playing .pm-demo__play {
	animation: pm-play-tap 1.1s ease both;
}
.pm-demo.is-live .pm-demo__bar {
	opacity: 0;
	transition: opacity .4s;
}
.pm-demo.is-live.is-playing .pm-demo__bar {
	opacity: 1;
}
.pm-demo.is-live .pm-demo__bar i {
	transform: scaleX(var(--pm-p, 0));
	transition: transform .25s linear;
}
/* Jamais de bouton « lecture » d'iPhone sur la démo */
.pm-demo__video::-webkit-media-controls,
.pm-demo__video::-webkit-media-controls-start-playback-button,
.pm-demo__video::-webkit-media-controls-overlay-play-button {
	display: none !important;
	-webkit-appearance: none;
}
/* Lecture auto bloquée (mode économie d'énergie) : la photo s'anime à la place */
.pm-demo.is-live.is-still.is-playing .pm-demo__video {
	animation: pm-kenburns 6s ease-out both;
}
.pm-demo.is-live.is-still.is-playing .pm-demo__bar i {
	animation: pm-bar-still 6s linear both;
}
@keyframes pm-kenburns {
	from { transform: scale(1); }
	to   { transform: scale(1.12) translateY(-2%); }
}
@keyframes pm-bar-still {
	from { transform: scaleX(0); }
	to   { transform: scaleX(1); }
}
@keyframes pm-photo-tap {
	0%, 100% { transform: rotate(-6deg) scale(1); }
	50%      { transform: rotate(-6deg) scale(.98); }
}
@keyframes pm-wave-tap {
	0%   { opacity: 0; transform: scale(.4); }
	15%  { opacity: .7; }
	100% { opacity: 0; transform: scale(2.4); }
}
@keyframes pm-play-tap {
	0%   { opacity: 0; transform: scale(.6); }
	35%  { opacity: 1; transform: scale(1.1); }
	60%  { opacity: 1; transform: scale(1); }
	100% { opacity: 0; transform: scale(1); }
}

/* ==========================================================================
   Petites scènes illustrées en CSS (en attendant les vraies photos)
   ========================================================================== */
.pm-scene {
	position: relative;
	overflow: hidden;
}
.pm-scene--beach {
	background: linear-gradient(180deg, #F6B98A 0%, #F08A7E 38%, #C8628A 58%, #3F6E99 58%, #2E5A85 74%, #E9CFA4 74%, #DDBB88 100%);
}
.pm-scene--beach .pm-sun {
	position: absolute;
	left: 50%;
	top: 34%;
	width: 34%;
	aspect-ratio: 1;
	transform: translate(-50%, -50%);
	border-radius: 50%;
	background: radial-gradient(circle, #FFF2C9 0%, #FFD58A 60%, rgba(255, 213, 138, 0) 72%);
}
.pm-scene--beach .pm-sea {
	position: absolute;
	left: -10%;
	right: -10%;
	top: 60%;
	height: 3px;
	background: rgba(255, 255, 255, .5);
	box-shadow: 0 8px 0 rgba(255, 255, 255, .25), 0 16px 0 rgba(255, 255, 255, .15);
}
.pm-scene--moving .pm-sea {
	animation: pm-sea 2.4s ease-in-out infinite alternate;
}
.pm-scene--moving .pm-sun {
	animation: pm-sun 7s ease-in-out infinite;
}
@keyframes pm-sea { to { transform: translateX(6%); } }
@keyframes pm-sun { 50% { top: 40%; } }

.pm-scene--wedding {
	background: linear-gradient(160deg, #FBE7EC 0%, #F3CFD8 55%, #E8B4C3 100%);
}
.pm-scene--wedding .pm-arch {
	position: absolute;
	left: 50%;
	bottom: -6%;
	width: 62%;
	height: 82%;
	transform: translateX(-50%);
	border: 6px solid rgba(255, 255, 255, .85);
	border-bottom: 0;
	border-radius: 999px 999px 0 0;
}
.pm-scene--wedding .pm-heart {
	position: absolute;
	left: 50%;
	top: 46%;
	width: 26%;
	aspect-ratio: 1;
	transform: translate(-50%, -50%) rotate(-45deg);
	background: var(--pm-accent);
}
.pm-scene--wedding .pm-heart::before,
.pm-scene--wedding .pm-heart::after {
	content: "";
	position: absolute;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background: var(--pm-accent);
}
.pm-scene--wedding .pm-heart::before { top: -50%; left: 0; }
.pm-scene--wedding .pm-heart::after { left: 50%; top: 0; }

.pm-scene--baby {
	background: linear-gradient(180deg, #2E2A55 0%, #4B3F7A 60%, #7A5C9E 100%);
}
.pm-scene--baby .pm-moon {
	position: absolute;
	right: 22%;
	top: 22%;
	width: 30%;
	aspect-ratio: 1;
	border-radius: 50%;
	box-shadow: -14px 6px 0 0 #FFE7B0;
}
.pm-scene--baby .pm-star {
	position: absolute;
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #FFF4D6;
	box-shadow: 0 0 8px #FFF4D6;
}
.pm-star--1 { left: 20%; top: 30%; }
.pm-star--2 { left: 38%; top: 62%; }
.pm-star--3 { left: 70%; top: 72%; }

.pm-scene--party {
	background: linear-gradient(160deg, #FFF1D6 0%, #FBD9A5 100%);
}
.pm-scene--party .pm-cake {
	position: absolute;
	left: 50%;
	bottom: 18%;
	width: 46%;
	height: 30%;
	transform: translateX(-50%);
	border-radius: 8px 8px 4px 4px;
	background: linear-gradient(180deg, var(--pm-white) 0 30%, #F3B8C8 30% 100%);
}
.pm-scene--party .pm-cake::before {
	content: "";
	position: absolute;
	left: 50%;
	top: -36%;
	width: 6%;
	height: 36%;
	transform: translateX(-50%);
	background: var(--pm-gold);
	border-radius: 2px;
}
.pm-scene--party .pm-cake::after {
	content: "";
	position: absolute;
	left: 50%;
	top: -56%;
	width: 10%;
	aspect-ratio: 1 / 1.4;
	transform: translateX(-50%);
	border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
	background: #FFB347;
	box-shadow: 0 0 12px #FFB347;
}
.pm-scene--party .pm-confetti {
	position: absolute;
	inset: 0;
	background-image:
		radial-gradient(circle, var(--pm-accent) 2px, transparent 3px),
		radial-gradient(circle, var(--pm-gold) 2px, transparent 3px),
		radial-gradient(circle, #6C8EBF 2px, transparent 3px);
	background-size: 38px 42px, 46px 36px, 52px 48px;
	background-position: 0 0, 12px 20px, 26px 8px;
	opacity: .7;
}

/* ==========================================================================
   Étapes
   ========================================================================== */
.pm-steps {
	gap: 24px !important;
	counter-reset: pm-step;
}
.pm-step {
	background: var(--pm-paper);
	border-radius: var(--pm-radius);
	padding: 28px 24px;
	position: relative;
}
.pm-step h3 {
	font-size: 1.2rem;
	margin: .8em 0 .4em;
}
.pm-step p {
	color: var(--pm-ink-2);
	margin: 0;
}
.pm-step__icon {
	width: 68px;
	height: 68px;
	border-radius: 20px;
	background: rgba(180, 35, 90, .1);
	position: relative;
}
.pm-step__icon span {
	position: absolute;
	inset: 0;
	margin: auto;
}
.pm-step__icon--1 span {
	width: 22px;
	height: 30px;
	border: 2.5px solid var(--pm-accent);
	border-radius: 3px;
}
.pm-step__icon--2 span {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 2.5px solid var(--pm-accent);
	box-shadow: 0 0 0 5px rgba(180, 35, 90, .15);
	animation: pm-pulse 2.4s ease-out infinite;
}
.pm-step__icon--3 span {
	width: 0;
	height: 0;
	border-left: 16px solid var(--pm-accent);
	border-top: 10px solid transparent;
	border-bottom: 10px solid transparent;
	transform: translateX(3px);
}
/* Icônes dessinées (SVG) des 3 étapes */
.pm-step__icon {
	display: grid;
	place-items: center;
}
.pm-step__icon svg {
	width: 40px;
	height: 40px;
	fill: none;
	stroke: var(--pm-accent);
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
	overflow: visible;
}
.pm-step__icon .pm-i-fill {
	fill: var(--pm-accent);
	stroke: none;
}
.pm-step__icon .pm-i-play {
	fill: var(--pm-white);
	stroke: none;
}
.pm-step__icon .pm-i-gold {
	stroke: var(--pm-gold);
}
.pm-step__icon .pm-i-spark {
	stroke: var(--pm-gold);
	transform-box: fill-box;
	transform-origin: center;
	animation: pm-spark 2.4s ease-in-out infinite;
}
.pm-step__icon .pm-i-spark--2 { animation-delay: .8s; }
.pm-step__icon .pm-i-spark--3 { animation-delay: 1.6s; }
.pm-step__icon .pm-i-wave {
	animation: pm-wave-icon 2s ease-out infinite;
}
.pm-step__icon .pm-i-wave--2 { animation-delay: .35s; }
.pm-step__icon .pm-i-badge {
	transform-box: fill-box;
	transform-origin: center;
	animation: pm-badge-pop 2.8s ease-in-out infinite;
}
@keyframes pm-spark {
	0%, 100% { opacity: .25; transform: scale(.6); }
	50%      { opacity: 1; transform: scale(1.15); }
}
@keyframes pm-wave-icon {
	0%   { opacity: 0; }
	30%  { opacity: 1; }
	100% { opacity: 0; }
}
@keyframes pm-badge-pop {
	0%, 70%, 100% { transform: scale(1); }
	80%           { transform: scale(1.18); }
}
@keyframes pm-pulse {
	0%   { box-shadow: 0 0 0 0 rgba(180, 35, 90, .35); }
	70%  { box-shadow: 0 0 0 12px rgba(180, 35, 90, 0); }
	100% { box-shadow: 0 0 0 0 rgba(180, 35, 90, 0); }
}

/* ==========================================================================
   Cartes « occasions »
   ========================================================================== */
.pm-cards {
	gap: 20px !important;
}
.pm-card {
	background: var(--pm-white);
	border-radius: var(--pm-radius);
	padding: 14px 14px 22px;
	box-shadow: 0 1px 0 var(--pm-line);
	transition: transform .35s var(--pm-ease), box-shadow .35s var(--pm-ease);
}
.pm-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--pm-shadow);
}
.pm-card h3 {
	font-size: 1.15rem;
	margin: .9em 6px .3em;
}
.pm-card p {
	margin: 0 6px;
	color: var(--pm-ink-2);
	font-size: .97rem;
}
.pm-card__media {
	position: relative;
	aspect-ratio: 4 / 3;
	border-radius: 12px;
	overflow: hidden;
}
.pm-card__media .pm-scene {
	position: absolute;
	inset: 0;
	transition: transform 1.2s var(--pm-ease);
}
.pm-card:hover .pm-card__media .pm-scene {
	transform: scale(1.08);
}
.pm-card__play {
	position: absolute;
	right: 12px;
	bottom: 12px;
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: rgba(255, 255, 255, .92);
	box-shadow: 0 6px 16px -6px rgba(0, 0, 0, .4);
	transition: transform .35s var(--pm-ease), background-color .35s;
}
.pm-card__play::after {
	content: "";
	position: absolute;
	left: 15px;
	top: 11px;
	border-left: 11px solid var(--pm-accent);
	border-top: 8px solid transparent;
	border-bottom: 8px solid transparent;
}
.pm-card:hover .pm-card__play {
	transform: scale(1.15);
}
/* Carte cliquable vers une page d'occasion : toute la carte est un lien */
.pm-card {
	position: relative;
}
.pm-card__link {
	color: inherit !important;
	text-decoration: none !important;
}
.pm-card__link::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: var(--pm-radius);
	z-index: 2;
}
.pm-card__link:focus-visible::after {
	outline: 2px solid var(--pm-accent);
	outline-offset: 3px;
}
.pm-card p.pm-card__more {
	margin-top: 10px;
	color: var(--pm-accent);
	font-weight: 700;
	font-size: .92rem;
}
.pm-card__more::after {
	content: " →";
	display: inline-block;
	transition: transform .3s var(--pm-ease);
}
.pm-card:hover .pm-card__more::after {
	transform: translateX(4px);
}

/* ==========================================================================
   Prix
   ========================================================================== */
.pm-prices {
	gap: 20px !important;
	max-width: 880px !important;
}
.pm-price {
	text-align: center;
	border: 1.5px solid var(--pm-line);
	border-radius: var(--pm-radius);
	padding: 28px 20px;
	background: var(--pm-paper);
	transition: transform .3s var(--pm-ease);
}
.pm-price:hover {
	transform: translateY(-4px);
}
/* Sans JS : la formule « 2 photos » reste mise en avant.
   Avec JS : la carte cliquée devient la formule sélectionnée. */
.pm-prices:not(.pm-has-js) .pm-price--featured,
.pm-price.is-selected {
	border-color: var(--pm-accent);
	background: var(--pm-white);
	box-shadow: var(--pm-shadow);
}
.pm-has-js .pm-price {
	cursor: pointer;
	position: relative;
	-webkit-tap-highlight-color: transparent;
	transition: transform .3s var(--pm-ease), border-color .3s, background-color .3s, box-shadow .3s;
}
.pm-has-js .pm-price:focus-visible {
	outline: 2px solid var(--pm-accent);
	outline-offset: 3px;
}
.pm-has-js .pm-price:active {
	transform: scale(.98);
}
.pm-price.is-selected {
	transform: translateY(-4px);
}
.pm-has-js .pm-price::after {
	content: "";
	position: absolute;
	top: 12px;
	right: 12px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 2px solid var(--pm-line);
	background: var(--pm-white);
	transition: background-color .25s, border-color .25s;
}
.pm-has-js .pm-price.is-selected::after {
	border-color: var(--pm-accent);
	background:
		radial-gradient(circle, var(--pm-white) 0 3px, transparent 4px),
		var(--pm-accent);
	animation: pm-pick .35s var(--pm-ease);
}
@keyframes pm-pick {
	0%   { transform: scale(.6); }
	70%  { transform: scale(1.15); }
	100% { transform: scale(1); }
}
.pm-price p {
	margin: 0;
}
.pm-price__label {
	font-weight: 600;
	color: var(--pm-ink-2);
}
.pm-price__amount {
	font-family: var(--global-heading-font-family, serif);
	font-size: 2.4rem;
	font-weight: 700;
	color: var(--pm-ink);
	margin: .15em 0 !important;
}
.pm-price__note {
	font-size: .9rem;
	color: var(--pm-muted);
}
.pm-price-legal {
	font-size: .82rem;
	color: var(--pm-muted);
	margin: 18px auto 0 !important;
	max-width: 640px;
}

/* Grille de 6 formules (11/11/2026) : 3 colonnes, 2 sur mobile */
.pm-prices.wp-block-columns {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 26px 18px !important;
	margin-top: 26px !important;
}
.pm-prices > .wp-block-column {
	flex-basis: auto !important;
	width: auto !important;
	margin: 0 !important;
}
.pm-price {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
}
.pm-price__badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	padding: 4px 12px;
	border-radius: 999px;
	background: var(--pm-accent);
	color: var(--pm-white);
	font-size: .7rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	white-space: nowrap;
	box-shadow: 0 6px 14px -6px rgba(180, 35, 90, .7);
}
.pm-price__save {
	display: inline-block;
	margin-top: 10px !important;
	padding: 3px 10px;
	border-radius: 999px;
	background: rgba(46, 125, 79, .1);
	color: #2E7D4F;
	font-size: .78rem;
	font-weight: 700;
}
.pm-launch {
	margin: 4px 0 6px !important;
}
.pm-launch span {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px;
	border-radius: 999px;
	background: linear-gradient(90deg, rgba(180, 35, 90, .1), rgba(183, 121, 31, .15));
	color: var(--pm-accent-dark);
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.pm-launch span::before {
	content: "✦";
	color: var(--pm-gold);
	animation: pm-twinkle 2.4s ease-in-out infinite;
}
@keyframes pm-twinkle {
	0%, 100% { opacity: .4; transform: scale(.8); }
	50%      { opacity: 1; transform: scale(1.15); }
}
@media (max-width: 767px) {
	.pm-prices.wp-block-columns {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px 12px !important;
	}
	.pm-price {
		padding: 24px 10px 18px;
	}
	.pm-price__amount {
		font-size: 1.85rem;
	}
	.pm-price__note {
		font-size: .8rem;
	}
	.pm-price__save {
		font-size: .7rem;
	}
	.pm-has-js .pm-price::after {
		top: 8px;
		right: 8px;
		width: 18px;
		height: 18px;
	}
}

/* ==========================================================================
   NFC vs QR code
   ========================================================================== */
.pm-vs {
	gap: 20px !important;
	max-width: 880px !important;
	margin-top: 1em;
}
.pm-vs__col {
	background: var(--pm-white);
	border-radius: var(--pm-radius);
	padding: 24px;
}
.pm-vs__col--nfc {
	outline: 2px solid var(--pm-accent);
}
.pm-vs__title {
	font-weight: 700;
	margin-bottom: .6em;
}
.pm-vs ul {
	margin: 0;
	padding-left: 1.1em;
	color: var(--pm-ink-2);
}

/* ==========================================================================
   FAQ (accordéons)
   ========================================================================== */
.pm-faq {
	max-width: 780px !important;
	border-bottom: 1px solid var(--pm-line);
	padding: 0;
}
.pm-faq summary {
	cursor: pointer;
	list-style: none;
	font-weight: 600;
	font-size: 1.05rem;
	padding: 20px 40px 20px 0;
	position: relative;
	color: var(--pm-ink);
}
.pm-faq summary::-webkit-details-marker {
	display: none;
}
.pm-faq summary::after {
	content: "";
	position: absolute;
	right: 8px;
	top: 50%;
	width: 10px;
	height: 10px;
	border-right: 2px solid var(--pm-accent);
	border-bottom: 2px solid var(--pm-accent);
	transform: translateY(-70%) rotate(45deg);
	transition: transform .3s var(--pm-ease);
}
.pm-faq[open] summary::after {
	transform: translateY(-30%) rotate(-135deg);
}
.pm-faq p {
	color: var(--pm-ink-2);
	padding-bottom: 20px;
	margin: 0;
}

/* ==========================================================================
   Appel final
   ========================================================================== */
.pm-final {
	background: linear-gradient(135deg, var(--pm-accent-dark) 0%, var(--pm-accent) 100%);
	color: var(--pm-white);
}
.pm-final h2,
.pm-final p {
	color: var(--pm-white);
}
.pm-final .pm-btn--primary .wp-block-button__link {
	background: var(--pm-white);
	color: var(--pm-accent-dark);
}
.pm-final .pm-btn--primary .wp-block-button__link:hover {
	background: var(--pm-paper);
	color: var(--pm-accent-dark);
}

/* ==========================================================================
   PAGES D'OCCASION (anniversaire, mariage…) : blocs visuels « pm-occ »
   ========================================================================== */
.pm-occ-crumb {
	margin: 0 0 14px !important;
	font-size: .82rem;
	color: var(--pm-muted);
}
.pm-occ-crumb a {
	color: var(--pm-muted);
	text-decoration: none;
}
.pm-occ-crumb a:hover {
	color: var(--pm-accent);
}
/* Kadence ajoute un conteneur interne aux groupes : on le rend « transparent »
   pour que les grilles s'appliquent directement aux cartes */
.pm-occ-head > .wp-block-group__inner-container,
.pm-occ-grid > .wp-block-group__inner-container,
.pm-occ-card > .wp-block-group__inner-container,
.pm-occ-duo > .wp-block-group__inner-container,
.pm-occ-panel > .wp-block-group__inner-container,
.pm-occ-panel__top > .wp-block-group__inner-container,
.pm-occ-steps > .wp-block-group__inner-container,
.pm-occ-step > .wp-block-group__inner-container,
.pm-occ-price > .wp-block-group__inner-container {
	display: contents;
}
.pm-occ--cream {
	background: var(--pm-paper);
}
.pm-occ--white {
	background: var(--pm-white);
}
/* En-tête de section centré */
.pm-occ-head {
	max-width: 720px !important;
	margin: 0 auto 40px !important;
	text-align: center;
}
.pm-occ-eyebrow {
	display: inline-block;
	margin: 0 0 14px !important;
	padding: .4em 1em;
	border-radius: 999px;
	background: rgba(180, 35, 90, .08);
	color: var(--pm-accent);
	font-size: .76rem;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.pm-occ-head h2 {
	margin: 0 0 .45em !important;
}
.pm-occ-head p:not(.pm-occ-eyebrow) {
	margin: 0 !important;
	font-size: 1.07rem;
	color: var(--pm-ink-2);
}

/* Grille de 3 cartes avec icône */
.pm-occ-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	max-width: 1040px !important;
	margin: 0 auto !important;
}
.pm-occ-card {
	position: relative;
	margin: 0 !important;
	padding: 28px 24px;
	border-radius: 22px;
	background: var(--pm-paper);
	box-shadow: 0 1px 0 var(--pm-line), 0 18px 40px -30px rgba(30, 27, 46, .45);
	transition: transform .35s var(--pm-ease), box-shadow .35s var(--pm-ease);
}
.pm-occ--cream .pm-occ-card {
	background: var(--pm-white);
}
.pm-occ-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--pm-shadow);
}
.pm-occ-card h3 {
	margin: 16px 0 6px !important;
	font-size: 1.15rem;
	color: var(--pm-ink);
}
.pm-occ-card p {
	margin: 0 !important;
	font-size: .97rem;
	line-height: 1.55;
	color: var(--pm-ink-2);
}
.pm-occ-ico {
	display: grid;
	place-items: center;
	width: 58px;
	height: 58px;
	margin: 0 !important;
	border-radius: 18px;
	background: linear-gradient(135deg, rgba(180, 35, 90, .14), rgba(183, 121, 31, .18));
	transition: transform .35s var(--pm-ease);
}
.pm-occ-card:hover .pm-occ-ico {
	transform: rotate(-6deg) scale(1.06);
}
.pm-occ-ico svg {
	width: 28px;
	height: 28px;
	fill: none;
	stroke: var(--pm-accent);
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

/* Deux grands panneaux « Pour maman » / « Pour papa » */
.pm-occ-duo {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	max-width: 1080px !important;
	margin: 0 auto !important;
	align-items: stretch;
}
.pm-occ-panel {
	display: flex;
	flex-direction: column;
	margin: 0 !important;
	overflow: hidden;
	border-radius: 28px;
	background: var(--pm-white);
	box-shadow: 0 30px 60px -40px rgba(30, 27, 46, .55);
}
.pm-occ-panel__top {
	position: relative;
	margin: 0 !important;
	padding: 30px 28px 28px;
	background:
		radial-gradient(circle at 88% 18%, rgba(255, 255, 255, .22) 0 3px, transparent 4px),
		radial-gradient(circle at 76% 40%, rgba(255, 255, 255, .16) 0 2px, transparent 3px),
		radial-gradient(circle at 94% 62%, rgba(255, 255, 255, .18) 0 2.5px, transparent 3.5px),
		radial-gradient(420px 220px at 100% 0%, rgba(183, 121, 31, .45), transparent 60%),
		linear-gradient(135deg, var(--pm-accent) 0%, var(--pm-accent-dark) 100%);
	color: var(--pm-white);
}
.pm-occ-panel--papa .pm-occ-panel__top {
	background:
		radial-gradient(circle at 88% 18%, rgba(255, 255, 255, .2) 0 3px, transparent 4px),
		radial-gradient(circle at 76% 40%, rgba(255, 255, 255, .14) 0 2px, transparent 3px),
		radial-gradient(circle at 94% 62%, rgba(255, 255, 255, .16) 0 2.5px, transparent 3.5px),
		radial-gradient(420px 220px at 100% 0%, rgba(183, 121, 31, .5), transparent 60%),
		linear-gradient(135deg, #3A3650 0%, #1E1B2E 100%);
}
.pm-occ-panel__tag {
	display: inline-block;
	margin: 0 !important;
	padding: .38em .95em;
	border-radius: 999px;
	background: rgba(255, 255, 255, .18);
	color: var(--pm-white);
	font-size: .74rem;
	font-weight: 700;
	letter-spacing: .07em;
	text-transform: uppercase;
}
.pm-occ-panel__top h2 {
	margin: 14px 0 10px !important;
	font-size: clamp(1.35rem, 2.6vw, 1.75rem) !important;
	line-height: 1.2;
	text-align: left !important;
	color: var(--pm-white) !important;
}
.pm-occ-panel__top p:not(.pm-occ-panel__tag) {
	margin: 0 !important;
	line-height: 1.55;
	color: rgba(255, 255, 255, .9);
}
.pm-occ-ideas {
	list-style: none;
	display: grid;
	gap: 10px;
	margin: 0 !important;
	padding: 20px 20px 24px !important;
	counter-reset: pmidea;
}
.pm-occ-ideas li {
	position: relative;
	counter-increment: pmidea;
	padding: 14px 16px 14px 58px;
	border-radius: 16px;
	background: var(--pm-paper);
	line-height: 1.5;
	color: var(--pm-ink-2);
	transition: transform .3s var(--pm-ease), background-color .3s;
}
.pm-occ-ideas li:hover {
	transform: translateX(4px);
	background: #F6EEE6;
}
.pm-occ-ideas li::before {
	content: counter(pmidea);
	position: absolute;
	left: 14px;
	top: 12px;
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: var(--pm-white);
	color: var(--pm-accent);
	font-family: var(--global-heading-font-family, serif);
	font-weight: 700;
	box-shadow: 0 6px 14px -6px rgba(180, 35, 90, .6);
}
.pm-occ-panel--papa .pm-occ-ideas li::before {
	color: var(--pm-gold);
	box-shadow: 0 6px 14px -6px rgba(183, 121, 31, .6);
}

/* Étapes numérotées reliées */
.pm-occ-steps {
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 28px;
	max-width: 1040px !important;
	margin: 0 auto !important;
	counter-reset: pmstep;
}
.pm-occ-steps::before {
	content: "";
	position: absolute;
	top: 36px;
	left: 17%;
	right: 17%;
	border-top: 2px dashed rgba(180, 35, 90, .3);
}
.pm-occ-step {
	position: relative;
	margin: 0 !important;
	text-align: center;
	counter-increment: pmstep;
}
.pm-occ-step::before {
	content: "0" counter(pmstep);
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	width: 72px;
	height: 72px;
	margin: 0 auto 18px;
	border-radius: 50%;
	border: 2px solid var(--pm-accent);
	background: var(--pm-white);
	color: var(--pm-accent);
	font-family: var(--global-heading-font-family, serif);
	font-size: 1.35rem;
	font-weight: 700;
	box-shadow: 0 0 0 8px var(--pm-paper), 0 14px 28px -14px rgba(180, 35, 90, .7);
}
.pm-occ-step h3 {
	margin: 0 0 8px !important;
	font-size: 1.15rem;
}
.pm-occ-step p {
	margin: 0 !important;
	line-height: 1.55;
	color: var(--pm-ink-2);
}
.pm-occ-tip {
	display: flex;
	align-items: center;
	gap: 16px;
	max-width: 760px !important;
	margin: 44px auto 0 !important;
	padding: 18px 22px;
	border: 1.5px solid rgba(183, 121, 31, .4);
	border-radius: 20px;
	background: #FFF9EE;
	color: var(--pm-ink-2);
	line-height: 1.5;
}
.pm-occ-tip::before {
	content: "";
	flex: 0 0 44px;
	height: 44px;
	border-radius: 14px;
	background: var(--pm-gold) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='16' rx='2'/%3E%3Cpath d='M16 3v4M8 3v4M3 10h18'/%3E%3Cpath d='M9 15l2 2 4-4'/%3E%3C/svg%3E") center / 24px no-repeat;
}
.pm-occ-tip a {
	color: var(--pm-accent);
	font-weight: 600;
}

/* Carte prix sombre */
.pm-occ-price {
	position: relative;
	max-width: 880px !important;
	margin: 0 auto !important;
	padding: clamp(32px, 6vw, 56px) clamp(20px, 5vw, 48px);
	overflow: hidden;
	border-radius: 32px;
	background:
		radial-gradient(520px 300px at 92% 0%, rgba(180, 35, 90, .6), transparent 62%),
		radial-gradient(460px 280px at 0% 100%, rgba(183, 121, 31, .38), transparent 62%),
		var(--pm-ink);
	color: var(--pm-white);
	text-align: center;
	box-shadow: 0 40px 80px -40px rgba(30, 27, 46, .9);
}
.pm-occ-price h2 {
	margin: 14px 0 6px !important;
	text-align: center !important;
	color: var(--pm-white) !important;
}
.pm-occ-price .pm-launch {
	margin: 0 !important;
}
.pm-occ-price .pm-launch span {
	background: rgba(255, 255, 255, .12);
	color: var(--pm-white);
}
.pm-occ-from {
	margin: 4px 0 8px !important;
	font-family: var(--global-heading-font-family, serif);
	font-size: clamp(3rem, 9vw, 4.4rem);
	font-weight: 700;
	line-height: 1;
	color: var(--pm-white);
}
.pm-occ-from small {
	display: block;
	margin-bottom: 6px;
	font-family: var(--global-body-font-family, sans-serif);
	font-size: .9rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, .7);
}
.pm-occ-price p {
	color: rgba(255, 255, 255, .86);
}
.pm-occ-price p:not(.pm-occ-from):not(.pm-launch):not(.pm-occ-note) {
	max-width: 600px;
	margin: 0 auto 6px !important;
	line-height: 1.6;
}
.pm-occ-chips {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 12px;
	max-width: 640px;
	margin: 26px auto !important;
	padding: 0 !important;
}
.pm-occ-chips li {
	padding: 14px 10px;
	border: 1px solid rgba(255, 255, 255, .16);
	border-radius: 18px;
	background: rgba(255, 255, 255, .07);
	font-size: .86rem;
	line-height: 1.35;
	color: rgba(255, 255, 255, .78);
	transition: transform .3s var(--pm-ease), background-color .3s;
}
.pm-occ-chips li:hover {
	transform: translateY(-4px);
	background: rgba(255, 255, 255, .12);
}
.pm-occ-chips li strong {
	display: block;
	margin-bottom: 2px;
	font-family: var(--global-heading-font-family, serif);
	font-size: 1.35rem;
	color: var(--pm-white);
}
.pm-occ-chips li.is-best {
	border-color: rgba(255, 255, 255, .5);
	background: rgba(180, 35, 90, .35);
}
.pm-occ-price .pm-cta {
	justify-content: center;
	margin-top: 8px !important;
}
.pm-occ-price .pm-btn--primary .wp-block-button__link {
	background: var(--pm-white);
	color: var(--pm-accent-dark);
	box-shadow: 0 14px 30px -12px rgba(0, 0, 0, .6);
}
.pm-occ-price .pm-btn--primary .wp-block-button__link:hover {
	background: var(--pm-paper);
	color: var(--pm-accent-dark);
}
.pm-occ-note {
	margin: 18px auto 0 !important;
	font-size: .88rem;
	color: rgba(255, 255, 255, .7) !important;
}

/* FAQ des pages d'occasion */
.pm-occ-faq .pm-faq {
	margin-bottom: 10px !important;
	padding: 0 20px;
	border: 1px solid var(--pm-line);
	border-radius: 16px;
	background: var(--pm-white);
	transition: box-shadow .3s var(--pm-ease), border-color .3s;
}
.pm-occ-faq .pm-faq[open] {
	border-color: rgba(180, 35, 90, .35);
	box-shadow: var(--pm-shadow);
}

/* Mobile */
@media (max-width: 860px) {
	.pm-occ-grid,
	.pm-occ-duo {
		grid-template-columns: 1fr;
	}
	.pm-occ-card {
		display: grid;
		grid-template-columns: 52px 1fr;
		gap: 0 16px;
		align-items: start;
		padding: 20px 18px;
	}
	.pm-occ-card .pm-occ-ico {
		grid-row: span 2;
		width: 52px;
		height: 52px;
		border-radius: 16px;
	}
	.pm-occ-card h3 {
		margin: 2px 0 4px !important;
	}
	.pm-occ-steps {
		grid-template-columns: 1fr;
		gap: 18px;
	}
	.pm-occ-steps::before {
		top: 30px;
		bottom: 30px;
		left: 29px;
		right: auto;
		border-top: 0;
		border-left: 2px dashed rgba(180, 35, 90, .3);
	}
	.pm-occ-step {
		display: grid;
		grid-template-columns: 60px 1fr;
		gap: 0 16px;
		text-align: left;
	}
	.pm-occ-step::before {
		grid-row: span 2;
		width: 60px;
		height: 60px;
		margin: 0;
		font-size: 1.15rem;
	}
	.pm-occ-step h3 {
		margin: 6px 0 4px !important;
	}
	.pm-occ-tip {
		align-items: flex-start;
		margin-top: 32px !important;
	}
	.pm-occ-chips {
		grid-template-columns: 1fr;
		max-width: 320px;
	}
	.pm-occ-chips li {
		display: flex;
		align-items: baseline;
		justify-content: space-between;
		gap: 10px;
		text-align: left;
		padding: 12px 16px;
	}
	.pm-occ-chips li strong {
		order: 2;
		margin: 0;
		font-size: 1.2rem;
	}
	.pm-occ-panel__top {
		padding: 26px 22px 24px;
	}
	.pm-occ-ideas {
		padding: 16px 14px 20px !important;
	}
}

/* ---------- Pages d'occasion : variantes (mariage, naissance, vacances) ---------- */
.pm-occ-story > .wp-block-group__inner-container,
.pm-occ-split > .wp-block-group__inner-container {
	display: contents;
}
.pm-card__play {
	display: none !important;
}
/* Panneaux de couleur supplémentaires */
.pm-occ-panel--gold .pm-occ-panel__top {
	background:
		radial-gradient(circle at 88% 18%, rgba(255, 255, 255, .25) 0 3px, transparent 4px),
		radial-gradient(circle at 76% 40%, rgba(255, 255, 255, .18) 0 2px, transparent 3px),
		radial-gradient(circle at 94% 62%, rgba(255, 255, 255, .2) 0 2.5px, transparent 3.5px),
		radial-gradient(420px 220px at 100% 0%, rgba(255, 255, 255, .22), transparent 60%),
		linear-gradient(135deg, #C98A2B 0%, #8F5A12 100%);
}
.pm-occ-panel--gold .pm-occ-ideas li::before {
	color: #9A6416;
	box-shadow: 0 6px 14px -6px rgba(183, 121, 31, .6);
}
.pm-occ-panel--rose .pm-occ-panel__top {
	background:
		radial-gradient(circle at 88% 18%, rgba(255, 255, 255, .3) 0 3px, transparent 4px),
		radial-gradient(circle at 76% 40%, rgba(255, 255, 255, .22) 0 2px, transparent 3px),
		radial-gradient(circle at 94% 62%, rgba(255, 255, 255, .24) 0 2.5px, transparent 3.5px),
		linear-gradient(135deg, #D9708F 0%, #B4235A 100%);
}
/* Grille de 4 cartes */
.pm-occ-grid--4 {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	max-width: 1120px !important;
}
/* Bloc « histoire » : un texte qui se lit comme une lettre */
.pm-occ-story {
	position: relative;
	max-width: 760px !important;
	margin: 0 auto !important;
	padding: 40px 34px 32px;
	border-radius: 28px;
	background: var(--pm-white);
	box-shadow: 0 1px 0 var(--pm-line), 0 30px 60px -44px rgba(30, 27, 46, .6);
}
.pm-occ--white .pm-occ-story {
	background: var(--pm-paper);
}
.pm-occ-story::before {
	content: "“";
	position: absolute;
	top: -18px;
	left: 26px;
	font-family: var(--global-heading-font-family, serif);
	font-size: 6.5rem;
	line-height: 1;
	color: var(--pm-accent);
	opacity: .28;
}
.pm-occ-story p {
	margin: 0 0 1em !important;
	font-size: 1.1rem;
	line-height: 1.75;
	color: var(--pm-ink-2);
}
.pm-occ-story p:last-child {
	margin-bottom: 0 !important;
}
.pm-occ-story strong {
	color: var(--pm-ink);
}
/* Texte à gauche, liste à droite */
.pm-occ-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: 48px;
	align-items: center;
	max-width: 1060px !important;
	margin: 0 auto !important;
}
.pm-occ-split .pm-occ-head {
	margin: 0 !important;
	text-align: left;
}
.pm-occ-checks {
	list-style: none;
	display: grid;
	gap: 12px;
	margin: 0 !important;
	padding: 0 !important;
}
.pm-occ-checks li {
	position: relative;
	padding: 16px 18px 16px 54px;
	border-radius: 18px;
	background: var(--pm-white);
	box-shadow: 0 1px 0 var(--pm-line), 0 16px 34px -28px rgba(30, 27, 46, .55);
	line-height: 1.5;
	color: var(--pm-ink-2);
	transition: transform .3s var(--pm-ease);
}
.pm-occ--white .pm-occ-checks li {
	background: var(--pm-paper);
}
.pm-occ-checks li:hover {
	transform: translateX(4px);
}
.pm-occ-checks li::before {
	content: "";
	position: absolute;
	left: 18px;
	top: 18px;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	background: var(--pm-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 13px no-repeat;
}
.pm-occ-checks strong {
	color: var(--pm-ink);
}
/* Liens vers les autres occasions (dans l'appel final) */
.pm-occ-more {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 28px auto 0 !important;
	font-size: .88rem;
}
.pm-occ-more a {
	display: inline-block;
	padding: .45em 1.05em;
	border: 1px solid rgba(255, 255, 255, .4);
	border-radius: 999px;
	background: rgba(255, 255, 255, .12);
	color: var(--pm-white) !important;
	font-weight: 600;
	text-decoration: none !important;
	transition: background-color .25s, transform .25s var(--pm-ease);
}
.pm-occ-more a:hover {
	background: rgba(255, 255, 255, .26);
	transform: translateY(-2px);
}
@media (max-width: 1100px) {
	.pm-occ-grid--4 {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}
@media (max-width: 860px) {
	.pm-occ-grid--4,
	.pm-occ-split {
		grid-template-columns: 1fr;
	}
	.pm-occ-split {
		gap: 26px;
	}
	.pm-occ-split .pm-occ-head {
		text-align: center;
	}
	.pm-occ-story {
		padding: 34px 22px 26px;
	}
	.pm-occ-story p {
		font-size: 1.03rem;
	}
}

/* ---------- Carte prix claire, aux couleurs de chaque occasion ---------- */
.pm-occ-price--light {
	border: 1px solid rgba(255, 255, 255, .8);
	color: var(--pm-ink);
	box-shadow: 0 30px 60px -42px rgba(30, 27, 46, .5);
}
.pm-occ-price--anniv {
	--occ: #C2416B;
	background:
		radial-gradient(circle at 10% 20%, rgba(194, 65, 107, .35) 0 4px, transparent 5px),
		radial-gradient(circle at 88% 26%, rgba(183, 121, 31, .4) 0 3.5px, transparent 4.5px),
		radial-gradient(circle at 80% 84%, rgba(91, 127, 184, .35) 0 3px, transparent 4px),
		radial-gradient(circle at 18% 80%, rgba(31, 138, 132, .3) 0 3.5px, transparent 4.5px),
		radial-gradient(circle at 50% 8%, rgba(255, 255, 255, .95) 0 3px, transparent 4px),
		linear-gradient(135deg, #FFEDE3 0%, #FFDFEA 100%);
}
.pm-occ-price--mariage {
	--occ: #A0702A;
	background:
		radial-gradient(520px 280px at 92% 0%, rgba(255, 255, 255, .85), transparent 60%),
		radial-gradient(420px 240px at 0% 100%, rgba(201, 138, 43, .18), transparent 62%),
		linear-gradient(135deg, #FCF7EE 0%, #F2E3C6 100%);
}
.pm-occ-price--naissance {
	--occ: #5277B3;
	background:
		radial-gradient(circle at 14% 24%, rgba(255, 255, 255, .95) 0 3px, transparent 4px),
		radial-gradient(circle at 86% 70%, rgba(255, 255, 255, .95) 0 2.5px, transparent 3.5px),
		radial-gradient(circle at 72% 16%, rgba(255, 255, 255, .9) 0 2px, transparent 3px),
		linear-gradient(135deg, #E8F1FC 0%, #F7EAF4 100%);
}
.pm-occ-price--vacances {
	--occ: #1B8079;
	background:
		radial-gradient(520px 260px at 100% 0%, rgba(255, 255, 255, .7), transparent 60%),
		linear-gradient(165deg, #D9F2F0 0%, #FCF0DA 100%);
}
.pm-occ-price--light h2 {
	color: var(--pm-ink) !important;
}
.pm-occ-price--light .pm-launch span {
	background: var(--pm-white);
	color: var(--occ);
	box-shadow: 0 6px 16px -10px rgba(30, 27, 46, .5);
}
.pm-occ-price--light .pm-launch span::before {
	color: var(--occ);
}
.pm-occ-price--light .pm-occ-from {
	color: var(--pm-ink);
}
.pm-occ-price--light .pm-occ-from small {
	color: var(--occ);
}
.pm-occ-price--light .pm-occ-chips li {
	border: 1px solid rgba(255, 255, 255, .95);
	background: rgba(255, 255, 255, .7);
	color: var(--pm-ink-2);
}
.pm-occ-price--light .pm-occ-chips li:hover {
	background: var(--pm-white);
}
.pm-occ-price--light .pm-occ-chips li strong {
	color: var(--pm-ink);
}
.pm-occ-price--light .pm-occ-chips li.is-best {
	border-color: var(--occ);
	background: var(--pm-white);
	box-shadow: 0 14px 28px -18px rgba(30, 27, 46, .6);
}
.pm-occ-price--light .pm-occ-chips li.is-best strong {
	color: var(--occ);
}
.pm-occ-price--light .pm-btn--primary .wp-block-button__link {
	background: var(--occ);
	color: var(--pm-white);
	box-shadow: 0 14px 28px -14px rgba(30, 27, 46, .55);
}
.pm-occ-price--light .pm-btn--primary .wp-block-button__link:hover,
.pm-occ-price--light .pm-btn--primary .wp-block-button__link:focus-visible {
	background: var(--pm-ink);
	color: var(--pm-white);
}

/* ---------- Page « Merci » (après l'envoi des fichiers) ---------- */
.pm-merci {
	position: relative;
	overflow: hidden;
	text-align: center;
	background:
		radial-gradient(700px 360px at 50% 0%, rgba(180, 35, 90, .12), transparent 65%),
		radial-gradient(600px 320px at 100% 100%, rgba(183, 121, 31, .12), transparent 65%),
		var(--pm-paper);
}
.pm-merci > .wp-block-group__inner-container > *,
.pm-merci > * {
	max-width: 680px;
	margin-left: auto !important;
	margin-right: auto !important;
}
.pm-merci-check {
	position: relative;
	width: 112px;
	height: 112px;
	margin: 0 auto 26px !important;
}
.pm-merci-check__disc {
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--pm-accent) 0%, var(--pm-accent-dark) 100%);
	box-shadow: 0 20px 40px -18px rgba(180, 35, 90, .8);
	animation: pm-merci-pop .7s var(--pm-ease) both;
}
.pm-merci-check__disc::after {
	content: "";
	position: absolute;
	inset: -10px;
	border-radius: 50%;
	border: 2px solid rgba(180, 35, 90, .35);
	animation: pm-merci-ring 2.4s ease-out .6s infinite;
}
.pm-merci-check svg {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: #fff;
	stroke-width: 6;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.pm-merci-check svg path {
	stroke-dasharray: 70;
	stroke-dashoffset: 70;
	animation: pm-merci-draw .55s ease-out .45s forwards;
}
.pm-merci-check i {
	position: absolute;
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--pm-gold);
	opacity: 0;
	animation: pm-merci-spark 2.6s ease-in-out .8s infinite;
}
.pm-merci-check i:nth-of-type(1) { top: -6px; left: 6px; }
.pm-merci-check i:nth-of-type(2) { top: 10px; right: -14px; width: 7px; height: 7px; animation-delay: 1.2s; background: var(--pm-accent); }
.pm-merci-check i:nth-of-type(3) { bottom: -4px; left: -14px; width: 8px; height: 8px; animation-delay: 1.6s; }
.pm-merci-check i:nth-of-type(4) { bottom: 6px; right: -6px; width: 6px; height: 6px; animation-delay: 2s; background: #5B7FB8; }
@keyframes pm-merci-pop {
	0%   { transform: scale(.4); opacity: 0; }
	70%  { transform: scale(1.08); opacity: 1; }
	100% { transform: scale(1); }
}
@keyframes pm-merci-draw {
	to { stroke-dashoffset: 0; }
}
@keyframes pm-merci-ring {
	0%   { transform: scale(.9); opacity: .9; }
	100% { transform: scale(1.35); opacity: 0; }
}
@keyframes pm-merci-spark {
	0%, 100% { opacity: 0; transform: scale(.4); }
	40%      { opacity: 1; transform: scale(1.2); }
	70%      { opacity: .6; transform: scale(.9); }
}
.pm-merci h1 {
	margin: 0 0 .35em !important;
	font-size: clamp(2rem, 6vw, 3.1rem);
	line-height: 1.1;
	color: var(--pm-ink);
}
.pm-merci h1 em {
	font-style: italic;
	color: var(--pm-accent);
}
.pm-merci .pm-lead {
	margin: 0 auto 28px !important;
	color: var(--pm-ink-2);
}
.pm-merci-info {
	margin: 0 auto !important;
	padding: 24px 22px;
	border-radius: 24px;
	background: var(--pm-white);
	box-shadow: 0 1px 0 var(--pm-line), 0 30px 60px -40px rgba(30, 27, 46, .55);
	text-align: left;
}
.pm-merci-info__order {
	display: inline-block;
	margin: 0 0 14px !important;
	padding: .35em .95em;
	border-radius: 999px;
	background: rgba(180, 35, 90, .08);
	color: var(--pm-accent);
	font-size: .85rem;
	font-weight: 700;
}
.pm-merci-info__mail {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}
.pm-merci-info__mail p {
	margin: 0 !important;
	line-height: 1.55;
	color: var(--pm-ink-2);
}
.pm-merci-info__mail strong,
.pm-merci-info__mail b {
	color: var(--pm-ink);
}
.pm-merci-info__ico {
	flex: 0 0 46px;
	height: 46px;
	display: grid;
	place-items: center;
	border-radius: 14px;
	background: linear-gradient(135deg, rgba(180, 35, 90, .14), rgba(183, 121, 31, .18));
}
.pm-merci-info__ico svg {
	width: 24px;
	height: 24px;
	fill: none;
	stroke: var(--pm-accent);
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.pm-merci-info__edit {
	margin: 18px 0 0 !important;
	padding-top: 16px;
	border-top: 1px solid var(--pm-line);
	font-size: .92rem;
	color: var(--pm-muted);
}
.pm-merci-info__edit a {
	margin-right: 6px;
	color: var(--pm-accent);
	font-weight: 700;
}
.pm-merci .pm-cta {
	justify-content: center;
	margin-top: 26px !important;
}
.pm-merci-steps .pm-occ-step:first-child::before {
	content: "✓";
	background: var(--pm-accent);
	color: var(--pm-white);
}
@media (prefers-reduced-motion: reduce) {
	.pm-merci-check__disc,
	.pm-merci-check__disc::after,
	.pm-merci-check i {
		animation: none !important;
	}
	.pm-merci-check svg path {
		animation: none !important;
		stroke-dashoffset: 0;
	}
}

/* ==========================================================================
   FICHE PRODUIT « v2 » (refonte du 11/11/2026) — active si body.pm-product-v2
   ========================================================================== */
.pm-product-v2 .kadence-breadcrumbs,
.pm-product-v2 .woocommerce-breadcrumb,
.pm-product-v2 .product_meta,
.pm-product-v2 form.variations_form table.variations,
.pm-product-v2 form.variations_form .reset_variations,
.pm-product-v2 .woocommerce-variation-price,
.pm-product-v2 form.cart .quantity {
	display: none !important;
}
.pm-product-v2 .woocommerce-product-gallery__image img,
.pm-product-v2 .woocommerce-product-gallery img {
	border-radius: 24px;
}
.pm-product-v2 .woocommerce-product-gallery {
	border-radius: 24px;
	box-shadow: 0 30px 60px -40px rgba(30, 27, 46, .55);
}
.pm-product-v2 .product_title {
	margin: 0 0 .3em !important;
	font-size: clamp(1.9rem, 4.6vw, 2.8rem);
	line-height: 1.1;
	color: var(--pm-ink);
}
/* Prix « À partir de » */
.pm-product-v2 .summary .price {
	margin: 0 0 16px !important;
	color: var(--pm-ink) !important;
}
.pm-pprice {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 6px 10px;
}
.pm-pprice .pm-launch {
	flex-basis: 100%;
	margin: 0 0 4px !important;
}
.pm-pprice__from {
	font-size: .95rem;
	font-weight: 600;
	color: var(--pm-muted);
}
.pm-pprice .woocommerce-Price-amount {
	font-family: var(--global-heading-font-family, serif);
	font-size: 2.2rem;
	font-weight: 700;
	color: var(--pm-ink);
}
/* Résumé en coches */
.pm-product-v2 .woocommerce-product-details__short-description ul {
	list-style: none;
	margin: 0 0 22px !important;
	padding: 0 !important;
	display: grid;
	gap: 8px;
}
.pm-product-v2 .woocommerce-product-details__short-description li {
	position: relative;
	padding-left: 30px;
	line-height: 1.5;
	color: var(--pm-ink-2);
}
.pm-product-v2 .woocommerce-product-details__short-description li::before {
	content: "";
	position: absolute;
	left: 0;
	top: .2em;
	width: 20px;
	height: 20px;
	border-radius: 50%;
	background: var(--pm-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat;
}
/* Formules en cartes */
.pm-ppacks__title {
	margin: 0 0 10px !important;
	font-weight: 700;
	color: var(--pm-ink);
}
.pm-ppacks {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px 10px;
	margin: 0 0 18px;
}
.pm-ppack {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 2px;
	padding: 18px 8px 14px;
	border: 1.5px solid var(--pm-line);
	border-radius: 18px;
	background: var(--pm-white);
	color: var(--pm-ink);
	font: inherit;
	text-align: center;
	cursor: pointer;
	transition: border-color .25s, box-shadow .25s, transform .25s var(--pm-ease);
	-webkit-tap-highlight-color: transparent;
}
.pm-ppack:hover {
	transform: translateY(-3px);
	border-color: rgba(180, 35, 90, .45);
}
/* Kadence colore les boutons au survol / focus : on garde un fond blanc */
.pm-ppack,
.pm-ppack:hover,
.pm-ppack:focus,
.pm-ppack:active,
.pm-ppack.is-selected {
	background: var(--pm-white) !important;
	color: var(--pm-ink) !important;
}
.pm-ppack.is-selected {
	border: 2px solid var(--pm-accent);
	box-shadow: 0 12px 26px -20px rgba(180, 35, 90, .6);
}
.pm-ppack.is-selected::after {
	content: "";
	position: absolute;
	top: 8px;
	right: 8px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--pm-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 11px no-repeat;
	animation: pm-pick .35s var(--pm-ease);
}
.pm-ppack__badge {
	position: absolute;
	top: -10px;
	left: 50%;
	transform: translateX(-50%);
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--pm-accent);
	color: var(--pm-white);
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	white-space: nowrap;
}
.pm-ppack__label {
	font-size: .88rem;
	font-weight: 600;
	color: var(--pm-ink-2);
}
.pm-ppack__price {
	font-family: var(--global-heading-font-family, serif);
	font-size: 1.35rem;
	font-weight: 700;
	line-height: 1.2;
}
.pm-ppack__per {
	font-size: .74rem;
	color: var(--pm-muted);
}
.pm-ppack__save {
	margin-top: 4px;
	padding: 2px 8px;
	border-radius: 999px;
	background: rgba(46, 125, 79, .1);
	color: #2E7D4F;
	font-size: .7rem;
	font-weight: 700;
}
.pm-ppack__ship {
	font-size: .68rem;
	font-weight: 700;
	color: var(--pm-gold);
}
/* Bouton d'achat */
.pm-product-v2 .single_add_to_cart_button {
	width: 100%;
	min-height: 56px;
	border-radius: 999px !important;
	background: var(--pm-accent) !important;
	color: var(--pm-white) !important;
	font-size: 1.08rem !important;
	font-weight: 700 !important;
	box-shadow: 0 14px 30px -14px rgba(180, 35, 90, .85);
	transition: background-color .25s, transform .2s !important;
}
.pm-product-v2 .single_add_to_cart_button:hover {
	background: var(--pm-accent-dark) !important;
	transform: translateY(-2px);
}
.pm-product-v2 .woocommerce-variation-add-to-cart {
	display: block !important;
}
.pm-product-v2 .ppc-button-wrapper {
	margin-top: 12px;
}
/* Arguments + mention légale */
.pm-preassure {
	list-style: none;
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 10px;
	margin: 20px 0 14px !important;
	padding: 0 !important;
}
.pm-preassure li {
	position: relative;
	padding: 12px 12px 12px 40px;
	border-radius: 14px;
	background: var(--pm-white);
	box-shadow: 0 1px 0 var(--pm-line);
	font-size: .84rem;
	line-height: 1.4;
	color: var(--pm-ink-2);
}
.pm-preassure li::before {
	content: "✦";
	position: absolute;
	left: 14px;
	top: 11px;
	color: var(--pm-gold);
}
.pm-plegal {
	margin: 0 !important;
	font-size: .78rem;
	line-height: 1.5;
	color: var(--pm-muted);
}
/* Description en blocs, pleine largeur */
.pm-pdesc {
	clear: both;
	padding-top: 40px;
}
.pm-pdesc .pm-section {
	margin: 0 0 22px;
	padding: clamp(36px, 6vw, 64px) clamp(18px, 4vw, 48px);
	border-radius: 30px;
}
.pm-pdesc .pm-occ--white {
	box-shadow: 0 1px 0 var(--pm-line), 0 30px 60px -48px rgba(30, 27, 46, .5);
}
/* Barre d'achat fixe (mobile) */
.pm-pbar {
	position: fixed;
	left: 10px;
	right: 10px;
	bottom: 10px;
	z-index: 999;
	display: none;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 10px 10px 10px 18px;
	border-radius: 999px;
	background: rgba(30, 27, 46, .92);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
	box-shadow: 0 18px 40px -16px rgba(30, 27, 46, .8);
	color: var(--pm-white);
	transform: translateY(140%);
	transition: transform .35s var(--pm-ease);
}
.pm-pbar.is-visible {
	transform: none;
}
.pm-pbar__info {
	display: flex;
	flex-direction: column;
	line-height: 1.2;
}
.pm-pbar__label {
	font-size: .78rem;
	opacity: .8;
}
.pm-pbar__price {
	font-family: var(--global-heading-font-family, serif);
	font-size: 1.15rem;
	font-weight: 700;
}
.pm-pbar__btn {
	min-height: 46px;
	padding: 0 20px;
	border: 0;
	border-radius: 999px;
	background: var(--pm-accent);
	color: var(--pm-white);
	font: inherit;
	font-weight: 700;
	cursor: pointer;
}
@media (max-width: 767px) {
	.pm-pbar {
		display: flex;
	}
	.pm-ppacks {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.pm-preassure {
		grid-template-columns: 1fr;
	}
	.pm-product-v2 .site-footer {
		padding-bottom: 80px;
	}
}

/* ==========================================================================
   Apparition au défilement (seulement si le JS est actif, pour ne jamais
   cacher le contenu aux moteurs de recherche)
   ========================================================================== */
.pm-js .pm-reveal > * {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity .8s var(--pm-ease), transform .8s var(--pm-ease);
}
.pm-js .pm-reveal.is-in > * {
	opacity: 1;
	transform: none;
}
.pm-js .pm-reveal.is-in > *:nth-child(2) { transition-delay: .08s; }
.pm-js .pm-reveal.is-in > *:nth-child(3) { transition-delay: .16s; }
.pm-js .pm-reveal.is-in > *:nth-child(4) { transition-delay: .24s; }

/* Centrage des blocs à largeur limitée (Kadence remet les marges à 0) */
.pm-section .pm-answer,
.pm-section .pm-prices,
.pm-section .pm-vs,
.pm-section .pm-faq {
	margin-left: auto !important;
	margin-right: auto !important;
}

/* ==========================================================================
   PAGES D'AIDE (Comment ça marche, Téléphones, FAQ, Contact)
   ========================================================================== */

/* ---------- Bandeau de page ---------- */
.pm-page-hero {
	position: relative;
	overflow: hidden;
	text-align: center;
	padding: clamp(40px, 9vw, 96px) 16px clamp(48px, 8vw, 88px);
	background:
		radial-gradient(600px 300px at 15% 0%, rgba(180, 35, 90, .12), transparent 70%),
		radial-gradient(500px 280px at 100% 100%, rgba(183, 121, 31, .12), transparent 70%),
		var(--pm-paper);
}
.pm-page-hero > * {
	max-width: 760px;
	margin-left: auto !important;
	margin-right: auto !important;
}
.pm-page-hero h1 {
	font-size: clamp(2rem, 7vw, 3.4rem);
	line-height: 1.08;
	margin: .2em auto .35em;
	color: var(--pm-ink);
}
.pm-page-hero h1 em {
	font-style: italic;
	color: var(--pm-accent);
}
.pm-page-hero .pm-lead {
	margin-left: auto;
	margin-right: auto;
	max-width: 620px;
}
.pm-page-hero .pm-cta {
	justify-content: center;
}

/* Petite illustration animée du bandeau : puce NFC qui « émet » */
.pm-pulse-badge {
	position: relative;
	width: 84px;
	height: 84px;
	margin: 0 auto 8px;
	border-radius: 24px;
	background: var(--pm-white);
	box-shadow: var(--pm-shadow);
	display: grid;
	place-items: center;
}
.pm-pulse-badge::before,
.pm-pulse-badge::after {
	content: "";
	position: absolute;
	inset: -6px;
	border-radius: 30px;
	border: 2px solid var(--pm-accent);
	opacity: 0;
	animation: pm-badge-wave 2.6s ease-out infinite;
}
.pm-pulse-badge::after { animation-delay: 1.3s; }
.pm-pulse-badge span {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 3px solid var(--pm-gold);
	position: relative;
}
.pm-pulse-badge span::after {
	content: "";
	position: absolute;
	inset: 6px;
	border-radius: 50%;
	background: var(--pm-gold);
}
.pm-pulse-badge--phone span {
	width: 26px;
	height: 44px;
	border-radius: 7px;
	border: 3px solid var(--pm-ink);
}
.pm-pulse-badge--phone span::after {
	inset: auto 7px 4px;
	height: 3px;
	border-radius: 3px;
	background: var(--pm-ink);
}
.pm-pulse-badge--chat span {
	width: 40px;
	height: 30px;
	border-radius: 10px 10px 10px 2px;
	border: 3px solid var(--pm-accent);
}
.pm-pulse-badge--chat span::after {
	inset: 9px 7px auto;
	height: 3px;
	border-radius: 3px;
	background: var(--pm-accent);
	box-shadow: 0 6px 0 var(--pm-accent);
}
.pm-pulse-badge--faq span {
	width: 34px;
	height: 34px;
	border: 3px solid var(--pm-accent);
}
.pm-pulse-badge--faq span::after {
	content: "?";
	inset: 0;
	background: none;
	display: grid;
	place-items: center;
	font: 700 20px/1 var(--global-heading-font-family, serif);
	color: var(--pm-accent);
}
@keyframes pm-badge-wave {
	0%   { opacity: .6; transform: scale(.9); }
	100% { opacity: 0; transform: scale(1.5); }
}

/* ---------- Conteneur de section des pages d'aide ---------- */
.pm-block {
	padding: clamp(44px, 8vw, 88px) 16px;
}
.pm-block > * {
	max-width: 920px;
	margin-left: auto !important;
	margin-right: auto !important;
}
.pm-block--alt {
	background: var(--pm-paper);
}
.pm-block--white {
	background: var(--pm-white);
}
.pm-block h2 {
	font-size: clamp(1.6rem, 5.4vw, 2.3rem);
	line-height: 1.15;
	text-align: center;
	margin-bottom: .5em;
}
.pm-block .pm-answer {
	text-align: center;
}

/* ---------- Frise des étapes (verticale sur mobile, horizontale sur grand écran) ---------- */
.pm-timeline {
	list-style: none;
	padding: 0 !important;
	margin-top: 8px !important;
	position: relative;
	display: grid;
	gap: 18px;
	counter-reset: pm-tl;
}
.pm-timeline::before {
	content: "";
	position: absolute;
	left: 27px;
	top: 28px;
	bottom: 28px;
	width: 2px;
	background: linear-gradient(var(--pm-accent), var(--pm-gold));
	transform-origin: top;
	transform: scaleY(1);
	transition: transform 1.4s var(--pm-ease) .2s;
}
.pm-js .pm-reveal:not(.is-in) .pm-timeline::before {
	transform: scaleY(0);
}
.pm-timeline li {
	position: relative;
	counter-increment: pm-tl;
	background: var(--pm-white);
	border-radius: var(--pm-radius);
	padding: 18px 18px 18px 80px;
	box-shadow: 0 1px 0 var(--pm-line), 0 14px 30px -24px rgba(30, 27, 46, .5);
	min-height: 56px;
}
.pm-timeline li::before {
	content: counter(pm-tl);
	position: absolute;
	left: 8px;
	top: 18px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font: 700 1.1rem/1 var(--global-heading-font-family, serif);
	color: var(--pm-white);
	background: var(--pm-accent);
	box-shadow: 0 0 0 6px var(--pm-paper);
}
.pm-block--white .pm-timeline li::before {
	box-shadow: 0 0 0 6px var(--pm-white);
}

/* ---------- Séquence « puce → ondes → vidéo » ---------- */
.pm-flow {
	display: grid;
	grid-template-columns: 1fr auto 1fr auto 1fr;
	align-items: center;
	gap: 8px;
	max-width: 620px !important;
	margin: 8px auto 28px !important;
}
.pm-flow__step {
	text-align: center;
	font-size: .82rem;
	font-weight: 600;
	color: var(--pm-ink-2);
}
.pm-flow__icon {
	width: 64px;
	height: 64px;
	margin: 0 auto 8px;
	border-radius: 18px;
	background: var(--pm-white);
	box-shadow: var(--pm-shadow);
	position: relative;
	display: grid;
	place-items: center;
}
.pm-flow__icon--chip i {
	width: 22px;
	height: 22px;
	border-radius: 50%;
	border: 3px solid var(--pm-gold);
}
.pm-flow__icon--waves i {
	width: 28px;
	height: 28px;
	border-radius: 50%;
	border: 3px solid transparent;
	border-right-color: var(--pm-accent);
	animation: pm-flow-wave 1.6s ease-in-out infinite;
}
.pm-flow__icon--waves i::before,
.pm-flow__icon--waves i::after {
	content: "";
	position: absolute;
	inset: 18px 14px;
	border-radius: 50%;
	border: 3px solid transparent;
	border-right-color: var(--pm-accent);
}
.pm-flow__icon--waves i::after {
	inset: 10px 6px;
	opacity: .5;
}
.pm-flow__icon--video i {
	width: 0;
	height: 0;
	border-left: 18px solid var(--pm-accent);
	border-top: 11px solid transparent;
	border-bottom: 11px solid transparent;
	margin-left: 5px;
}
.pm-flow__arrow {
	width: 22px;
	height: 2px;
	background: var(--pm-line);
	position: relative;
	overflow: hidden;
	margin-bottom: 26px;
}
.pm-flow__arrow::after {
	content: "";
	position: absolute;
	inset: 0;
	background: var(--pm-accent);
	transform: translateX(-100%);
	animation: pm-flow-arrow 1.8s ease-in-out infinite;
}
@keyframes pm-flow-wave { 50% { transform: scale(1.12); } }
@keyframes pm-flow-arrow { 60%, 100% { transform: translateX(100%); } }

/* ---------- Cartes de conseils ---------- */
.pm-tips {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 14px;
	list-style: none;
	padding: 0 !important;
}
.pm-tips li {
	background: var(--pm-white);
	border-radius: var(--pm-radius);
	padding: 18px 18px 18px 66px;
	position: relative;
	box-shadow: 0 1px 0 var(--pm-line);
	transition: transform .3s var(--pm-ease), box-shadow .3s var(--pm-ease);
}
.pm-tips li:hover {
	transform: translateY(-3px);
	box-shadow: var(--pm-shadow);
}
.pm-tips li::before {
	content: "";
	position: absolute;
	left: 18px;
	top: 18px;
	width: 34px;
	height: 34px;
	border-radius: 11px;
	background:
		radial-gradient(circle at 50% 50%, var(--pm-accent) 0 5px, transparent 6px),
		rgba(180, 35, 90, .1);
}
.pm-block--alt .pm-tips li {
	background: var(--pm-white);
}

/* Liste « à faire / à éviter » */
.pm-checklist {
	list-style: none;
	padding: 0 !important;
	display: grid;
	gap: 10px;
	max-width: 620px !important;
}
.pm-checklist li {
	position: relative;
	padding: 14px 16px 14px 52px;
	background: var(--pm-white);
	border-radius: 14px;
	box-shadow: 0 1px 0 var(--pm-line);
}
.pm-checklist li::before {
	content: "";
	position: absolute;
	left: 16px;
	top: 50%;
	width: 22px;
	height: 22px;
	margin-top: -11px;
	border-radius: 50%;
	background: #2E7D4F;
}
.pm-checklist li::after {
	content: "";
	position: absolute;
	left: 23px;
	top: 50%;
	width: 8px;
	height: 4px;
	margin-top: -4px;
	border-left: 2px solid #fff;
	border-bottom: 2px solid #fff;
	transform: rotate(-45deg);
}

/* ---------- Encadré « test rapide » ---------- */
.pm-quick {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 16px;
	align-items: center;
	background: var(--pm-white);
	border: 2px solid rgba(180, 35, 90, .2);
	border-radius: 22px;
	padding: 18px;
	max-width: 620px !important;
	box-shadow: var(--pm-shadow);
}
.pm-quick__icon {
	width: 56px;
	height: 56px;
	border-radius: 16px;
	background: linear-gradient(135deg, var(--pm-accent), var(--pm-accent-dark));
	position: relative;
}
.pm-quick__icon::before {
	content: "";
	position: absolute;
	left: 14px;
	top: 18px;
	width: 28px;
	height: 19px;
	border-radius: 4px;
	border: 2.5px solid #fff;
}
.pm-quick__icon::after {
	content: "";
	position: absolute;
	left: 14px;
	top: 24px;
	width: 28px;
	height: 2.5px;
	background: #fff;
}
.pm-quick p {
	margin: 0;
}
.pm-quick strong {
	color: var(--pm-ink);
}

/* ---------- Onglets iPhone / Android (sans JS, accessibles au clavier) ---------- */
.pm-tabs {
	max-width: 720px !important;
}
.pm-tab-input {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.pm-tab-labels {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 6px;
	padding: 6px;
	border-radius: 999px;
	background: rgba(30, 27, 46, .06);
	max-width: 420px;
	margin: 0 auto 22px !important;
}
.pm-tab-labels label {
	text-align: center;
	padding: 12px 10px;
	border-radius: 999px;
	font-weight: 600;
	cursor: pointer;
	color: var(--pm-ink-2);
	transition: background-color .3s var(--pm-ease), color .3s var(--pm-ease), box-shadow .3s;
	user-select: none;
}
#pm-tab-ios:checked ~ .pm-tab-labels label[for="pm-tab-ios"],
#pm-tab-android:checked ~ .pm-tab-labels label[for="pm-tab-android"] {
	background: var(--pm-white);
	color: var(--pm-accent);
	box-shadow: 0 6px 16px -8px rgba(30, 27, 46, .45);
}
#pm-tab-ios:focus-visible ~ .pm-tab-labels label[for="pm-tab-ios"],
#pm-tab-android:focus-visible ~ .pm-tab-labels label[for="pm-tab-android"] {
	outline: 2px solid var(--pm-accent);
	outline-offset: 2px;
}
.pm-tab-panel {
	display: none;
}
#pm-tab-ios:checked ~ .pm-tab-panel--ios,
#pm-tab-android:checked ~ .pm-tab-panel--android {
	display: grid;
	animation: pm-tab-in .45s var(--pm-ease);
}
@keyframes pm-tab-in {
	from { opacity: 0; transform: translateY(10px); }
	to   { opacity: 1; transform: none; }
}
.pm-tab-panel {
	grid-template-columns: 1fr;
	gap: 20px;
	align-items: center;
	background: var(--pm-white);
	border-radius: 24px;
	padding: 22px;
	box-shadow: var(--pm-shadow);
}
.pm-tab-panel h3 {
	margin-top: 0;
	font-size: 1.35rem;
}
.pm-tab-panel ul {
	padding-left: 1.1em;
	margin: 0;
}
.pm-tab-panel li {
	margin-bottom: .6em;
}

/* Téléphone vu de dos avec la zone NFC qui clignote */
.pm-antenna {
	width: 120px;
	height: 230px;
	margin: 0 auto;
	border-radius: 26px;
	border: 3px solid var(--pm-ink);
	background: linear-gradient(160deg, #F7F2EC, #ECE3D8);
	position: relative;
}
.pm-antenna::before {
	content: "";
	position: absolute;
	left: 12px;
	top: 12px;
	width: 34px;
	height: 34px;
	border-radius: 10px;
	background: rgba(30, 27, 46, .12);
}
.pm-antenna i {
	position: absolute;
	left: 50%;
	width: 64px;
	height: 64px;
	margin-left: -32px;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(180, 35, 90, .55) 0 30%, rgba(180, 35, 90, 0) 70%);
	animation: pm-antenna 1.8s ease-in-out infinite;
}
.pm-antenna--top i { top: 4px; }
.pm-antenna--middle i { top: 50%; margin-top: -32px; }
.pm-antenna b {
	position: absolute;
	left: 50%;
	bottom: -30px;
	transform: translateX(-50%);
	white-space: nowrap;
	font-size: .78rem;
	font-weight: 600;
	color: var(--pm-accent);
}
@keyframes pm-antenna {
	0%, 100% { transform: scale(.85); opacity: .7; }
	50%      { transform: scale(1.15); opacity: 1; }
}

/* ---------- FAQ : recherche + raccourcis ---------- */
.pm-search {
	position: relative;
	max-width: 560px !important;
	margin-top: 22px !important;
}
.pm-search input {
	width: 100%;
	font: inherit;
	font-size: 1rem;
	padding: 16px 18px 16px 50px;
	border-radius: 999px;
	border: 1.5px solid var(--pm-line);
	background: var(--pm-white);
	box-shadow: var(--pm-shadow);
	color: var(--pm-ink);
	transition: border-color .25s, box-shadow .25s;
}
.pm-search input:focus {
	outline: none;
	border-color: var(--pm-accent);
	box-shadow: 0 0 0 4px rgba(180, 35, 90, .15), var(--pm-shadow);
}
.pm-search::before {
	content: "";
	position: absolute;
	left: 20px;
	top: 50%;
	width: 14px;
	height: 14px;
	margin-top: -9px;
	border-radius: 50%;
	border: 2.5px solid var(--pm-muted);
}
.pm-search::after {
	content: "";
	position: absolute;
	left: 33px;
	top: 50%;
	width: 7px;
	height: 2.5px;
	margin-top: 5px;
	background: var(--pm-muted);
	transform: rotate(45deg);
}
.pm-chips {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	scrollbar-width: none;
	padding: 10px 16px !important;
	margin: 0 !important;
	max-width: none !important;
	position: sticky;
	top: 0;
	z-index: 6;
	background: rgba(250, 246, 241, .78);
	backdrop-filter: blur(14px);
	-webkit-backdrop-filter: blur(14px);
	border-bottom: 1px solid rgba(30, 27, 46, .06);
	justify-content: flex-start;
}
.admin-bar .pm-chips { top: 32px; }
@media (max-width: 782px) {
	.admin-bar .pm-chips { top: 46px; }
}
.pm-chips::-webkit-scrollbar { display: none; }
.pm-chips a {
	flex: 0 0 auto;
	padding: 9px 16px;
	border-radius: 999px;
	background: var(--pm-white);
	border: 1px solid var(--pm-line);
	color: var(--pm-ink-2);
	font-size: .9rem;
	font-weight: 600;
	text-decoration: none;
	transition: background-color .25s, color .25s, border-color .25s;
}
.pm-chips a:hover,
.pm-chips a:focus-visible {
	background: var(--pm-accent);
	border-color: var(--pm-accent);
	color: var(--pm-white);
}
@media (min-width: 782px) {
	.pm-chips { justify-content: center; }
}
.pm-faq-group h2 {
	scroll-margin-top: 90px;
	text-align: left;
	font-size: clamp(1.35rem, 4.6vw, 1.8rem);
	display: flex;
	align-items: center;
	gap: 12px;
}
.pm-faq-group h2::before {
	content: "";
	width: 10px;
	height: 10px;
	border-radius: 50%;
	background: var(--pm-accent);
	box-shadow: 0 0 0 5px rgba(180, 35, 90, .15);
	flex: 0 0 auto;
}
.pm-faq-group {
	padding-top: 28px !important;
	padding-bottom: 28px !important;
}
.pm-faq-group .pm-faq,
.pm-block .pm-faq {
	background: var(--pm-white);
	border: 1px solid var(--pm-line);
	border-radius: 16px;
	padding: 0 18px;
	margin-bottom: 10px !important;
	transition: box-shadow .3s var(--pm-ease), border-color .3s;
}
.pm-faq-group .pm-faq[open],
.pm-block .pm-faq[open] {
	border-color: rgba(180, 35, 90, .35);
	box-shadow: var(--pm-shadow);
}
.pm-faq[open] > *:not(summary) {
	animation: pm-tab-in .35s var(--pm-ease);
}
.pm-faq summary {
	padding-top: 18px;
	padding-bottom: 18px;
}
.pm-faq summary:focus-visible {
	outline: 2px solid var(--pm-accent);
	outline-offset: 4px;
	border-radius: 6px;
}
.pm-faq-empty {
	display: none;
	text-align: center;
	color: var(--pm-muted);
	padding: 24px 16px;
}
.pm-faq-empty.is-visible {
	display: block;
}
.pm-hidden {
	display: none !important;
}
mark.pm-hl {
	background: rgba(183, 121, 31, .25);
	color: inherit;
	border-radius: 3px;
	padding: 0 2px;
}

/* ---------- Contact ---------- */
.pm-contact-cards {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 14px;
	list-style: none;
	padding: 0 !important;
}
.pm-contact-cards li {
	background: var(--pm-white);
	border-radius: 20px;
	padding: 20px 20px 20px 76px;
	position: relative;
	box-shadow: 0 1px 0 var(--pm-line);
	transition: transform .3s var(--pm-ease), box-shadow .3s var(--pm-ease);
}
.pm-contact-cards li:hover {
	transform: translateY(-3px);
	box-shadow: var(--pm-shadow);
}
.pm-contact-cards li::before {
	content: "";
	position: absolute;
	left: 20px;
	top: 20px;
	width: 40px;
	height: 40px;
	border-radius: 13px;
	background: linear-gradient(135deg, var(--pm-accent), var(--pm-accent-dark));
}
.pm-contact-cards li::after {
	content: "";
	position: absolute;
	left: 31px;
	top: 33px;
	width: 18px;
	height: 12px;
	border: 2px solid #fff;
	border-radius: 2px;
}
.pm-contact-cards a {
	font-weight: 600;
}
.pm-mail-card {
	text-align: center;
	background: var(--pm-white);
	border-radius: 24px;
	padding: 28px 20px;
	box-shadow: var(--pm-shadow);
	max-width: 560px !important;
}
.pm-mail-card p {
	margin: .3em 0;
}
.pm-mail-card .pm-mail {
	font-family: var(--global-heading-font-family, serif);
	font-size: clamp(1.2rem, 5vw, 1.6rem);
	font-weight: 700;
	color: var(--pm-accent);
	word-break: break-word;
}

/* Formulaire de contact [photomagic_contact] */
.pm-contact {
	max-width: 560px !important;
	margin: 22px auto 0 !important;
	text-align: left;
}
.pm-contact__form {
	background: var(--pm-white);
	border-radius: 24px;
	padding: 24px 18px 20px;
	box-shadow: var(--pm-shadow);
}
.pm-field {
	margin: 0 0 14px;
}
.pm-field label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
	color: var(--pm-ink);
}
.pm-field label span {
	font-weight: 400;
	color: var(--pm-muted);
}
.pm-contact .pm-field input,
.pm-contact .pm-field textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1.5px solid var(--pm-line);
	border-radius: 14px;
	background: var(--pm-paper);
	color: var(--pm-ink);
	font: inherit;
	font-size: 16px; /* évite le zoom automatique d'iPhone */
	box-shadow: none;
	transition: border-color .2s, box-shadow .2s, background-color .2s;
}
.pm-contact .pm-field textarea {
	min-height: 140px;
	resize: vertical;
}
.pm-contact .pm-field input:focus,
.pm-contact .pm-field textarea:focus {
	outline: none;
	border-color: var(--pm-accent);
	background: var(--pm-white);
	box-shadow: 0 0 0 4px rgba(180, 35, 90, .12);
}
.pm-contact__consent {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	margin: 4px 0 18px;
	font-size: .88rem;
	line-height: 1.45;
	color: var(--pm-ink-2);
	cursor: pointer;
}
.pm-contact__consent input {
	flex: 0 0 auto;
	width: 20px;
	height: 20px;
	margin-top: 1px;
	accent-color: var(--pm-accent);
}
.pm-contact__consent a {
	color: var(--pm-accent);
}
.pm-contact__btn {
	width: 100%;
	min-height: 52px;
	border: 0;
	border-radius: 999px;
	background: var(--pm-accent);
	color: var(--pm-white);
	font: inherit;
	font-size: 1.05rem;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 12px 26px -12px rgba(180, 35, 90, .8);
	transition: background-color .25s, transform .2s;
}
.pm-contact__btn:hover,
.pm-contact__btn:focus-visible {
	background: var(--pm-accent-dark);
}
.pm-contact__btn:active {
	transform: scale(.98);
}
.pm-contact__hp {
	position: absolute !important;
	left: -10000px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}
.pm-contact__notice {
	margin: 0 0 16px;
	padding: 14px 16px;
	border-radius: 14px;
	font-weight: 600;
	animation: pm-notice-in .4s var(--pm-ease) both;
}
.pm-contact__notice--ok {
	background: #F2FAF5;
	border: 1.5px solid rgba(46, 125, 79, .45);
	color: #2E7D4F;
}
.pm-contact__notice--err {
	background: #FDF2F1;
	border: 1.5px solid #C0392B;
	color: #A93226;
}
@keyframes pm-notice-in {
	from { opacity: 0; transform: translateY(-6px); }
	to   { opacity: 1; transform: none; }
}

/* Bouton/lien d'appel dans le texte */
.pm-link-cta a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 600;
	text-decoration: none;
	color: var(--pm-accent);
}
.pm-link-cta a::after {
	content: "→";
	transition: transform .25s var(--pm-ease);
}
.pm-link-cta a:hover::after {
	transform: translateX(4px);
}

/* Grand écran */
@media (min-width: 782px) {
	.pm-timeline {
		grid-template-columns: repeat(3, 1fr);
		gap: 22px;
	}
	.pm-timeline::before {
		left: 16%;
		right: 16%;
		top: 38px;
		bottom: auto;
		width: auto;
		height: 2px;
		background: linear-gradient(90deg, var(--pm-accent), var(--pm-gold));
		transform-origin: left;
		transform: scaleX(1);
	}
	.pm-js .pm-reveal:not(.is-in) .pm-timeline::before {
		transform: scaleX(0);
	}
	.pm-timeline li {
		padding: 76px 22px 24px;
		text-align: center;
	}
	.pm-timeline li::before {
		left: 50%;
		top: 18px;
		margin-left: -20px;
	}
	.pm-tips,
	.pm-contact-cards {
		grid-template-columns: repeat(3, 1fr);
	}
	.pm-tab-panel {
		grid-template-columns: 1fr 180px;
		padding: 30px;
	}
}

/* ==========================================================================
   MENU MOBILE : burger à gauche, tiroir effet verre
   ========================================================================== */
#mobile-header .site-main-header-inner-wrap {
	position: relative;
}
#mobile-header .site-header-main-section-right {
	order: -1;
}
#mobile-header .site-header-main-section-left {
	flex: 1 1 auto;
	justify-content: center;
	padding-right: 44px;
}
.menu-toggle-open {
	border-radius: 12px;
	transition: background-color .25s;
}
.menu-toggle-open:hover,
.menu-toggle-open:focus-visible {
	background: rgba(180, 35, 90, .08);
}
#mobile-drawer .drawer-overlay {
	background: rgba(30, 27, 46, .22) !important;
	backdrop-filter: blur(3px);
	-webkit-backdrop-filter: blur(3px);
}
#mobile-drawer .drawer-inner {
	background: rgba(250, 246, 241, .72) !important;
	backdrop-filter: blur(22px) saturate(160%);
	-webkit-backdrop-filter: blur(22px) saturate(160%);
	border-right: 1px solid rgba(255, 255, 255, .7);
	box-shadow: 20px 0 60px -20px rgba(30, 27, 46, .35);
	color: var(--pm-ink);
	width: min(86vw, 380px);
}
#mobile-drawer .drawer-header .drawer-toggle,
#mobile-drawer .drawer-header .menu-toggle-close {
	color: var(--pm-ink) !important;
}
#mobile-drawer .drawer-content {
	padding: 8px 22px 32px;
}
#mobile-drawer .mobile-navigation ul li > a,
#mobile-drawer .mobile-navigation ul li.menu-item > .drawer-nav-drop-wrap > a {
	color: var(--pm-ink) !important;
	font-family: var(--global-heading-font-family, serif);
	font-size: 1.45rem;
	font-weight: 600;
	padding: 16px 4px;
	border-bottom: 1px solid rgba(30, 27, 46, .08);
	transition: color .25s, padding-left .3s var(--pm-ease);
}
#mobile-drawer .mobile-navigation ul li > a:hover,
#mobile-drawer .mobile-navigation ul li.current-menu-item > a {
	color: var(--pm-accent) !important;
	padding-left: 10px;
}
#mobile-drawer .mobile-navigation ul li {
	border: 0 !important;
}
#mobile-drawer.active .mobile-navigation ul li {
	animation: pm-drawer-item .5s var(--pm-ease) both;
}
#mobile-drawer.active .mobile-navigation ul li:nth-child(2) { animation-delay: .05s; }
#mobile-drawer.active .mobile-navigation ul li:nth-child(3) { animation-delay: .1s; }
#mobile-drawer.active .mobile-navigation ul li:nth-child(4) { animation-delay: .15s; }
#mobile-drawer.active .mobile-navigation ul li:nth-child(5) { animation-delay: .2s; }
#mobile-drawer.active .mobile-navigation ul li:nth-child(6) { animation-delay: .25s; }
@keyframes pm-drawer-item {
	from { opacity: 0; transform: translateX(-18px); }
	to   { opacity: 1; transform: none; }
}
/* Dernier lien du menu mis en avant comme bouton (classe « pm-menu-cta ») */
#mobile-drawer .mobile-navigation ul li.pm-menu-cta > a {
	margin-top: 22px;
	justify-content: center;
	text-align: center;
	border: 0;
	border-radius: 999px;
	background: var(--pm-accent);
	color: var(--pm-white) !important;
	font-family: inherit;
	font-size: 1.05rem;
	padding: 16px;
	box-shadow: 0 12px 26px -12px rgba(180, 35, 90, .8);
}
#mobile-drawer .mobile-navigation ul li.pm-menu-cta > a:hover {
	padding-left: 16px;
	background: var(--pm-accent-dark);
}
.header-navigation .menu li.pm-menu-cta > a {
	background: var(--pm-accent);
	color: var(--pm-white) !important;
	border-radius: 999px;
	padding-left: 18px !important;
	padding-right: 18px !important;
	margin-left: 8px;
}
/* Lien « Mon panier » avec icône (classe « pm-menu-cart ») */
#mobile-drawer .mobile-navigation ul li.pm-menu-cart > a,
.header-navigation .menu li.pm-menu-cart > a {
	display: flex;
	align-items: center;
	gap: 10px;
}
#mobile-drawer .mobile-navigation ul li.pm-menu-cart > a {
	margin-top: 12px;
	justify-content: center;
	padding: 14px;
	border: 1.5px solid var(--pm-accent);
	border-radius: 999px;
	background: rgba(255, 255, 255, .6);
	color: var(--pm-accent) !important;
	font-family: inherit;
	font-size: 1.02rem;
	font-weight: 600;
}
#mobile-drawer .mobile-navigation ul li.pm-menu-cart > a:hover {
	padding-left: 14px;
	background: var(--pm-white);
}
li.pm-menu-cart > a::before {
	content: "";
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2.2l2.1 10.4a1.5 1.5 0 0 0 1.5 1.2h8.7a1.5 1.5 0 0 0 1.5-1.1L21 8H6.1'/%3E%3Ccircle cx='9.5' cy='19.5' r='1.3'/%3E%3Ccircle cx='17' cy='19.5' r='1.3'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 4h2.2l2.1 10.4a1.5 1.5 0 0 0 1.5 1.2h8.7a1.5 1.5 0 0 0 1.5-1.1L21 8H6.1'/%3E%3Ccircle cx='9.5' cy='19.5' r='1.3'/%3E%3Ccircle cx='17' cy='19.5' r='1.3'/%3E%3C/svg%3E") center / contain no-repeat;
}
.header-navigation .menu li.pm-menu-cart > a {
	gap: 6px;
}

/* Pied de page : liens légaux centrés sous le copyright */
.site-footer .footer-navigation-wrap {
	justify-content: center;
}
.site-footer .footer-navigation-inner {
	width: 100%;
}
.site-footer .footer-navigation {
	justify-content: center;
}

/* ==========================================================================
   Mobile
   ========================================================================== */
@media (max-width: 781px) {
	.pm-hero__visual {
		order: -1;
	}
	.pm-demo {
		width: min(82%, 340px);
		margin-bottom: 40px;
	}
	.pm-cta .wp-block-button {
		width: 100%;
	}
	.pm-cta .wp-block-button__link {
		width: 100%;
		text-align: center;
	}
}

/* ==========================================================================
   Accessibilité : pas d'animation si l'utilisateur l'a demandé
   ========================================================================== */
@media (prefers-reduced-motion: reduce) {
	.pm-demo *,
	.pm-demo,
	.pm-step__icon span,
	.pm-scene--moving *,
	.pm-pulse-badge::before,
	.pm-pulse-badge::after,
	.pm-antenna i,
	.pm-flow__icon i,
	.pm-flow__arrow::after,
	#mobile-drawer.active .mobile-navigation ul li,
	.pm-tab-panel,
	.pm-faq[open] > *,
	.pm-step__icon svg * {
		animation: none !important;
	}
	.pm-timeline::before {
		transition: none !important;
	}
	.pm-demo__screen .pm-scene,
	.pm-demo__video {
		opacity: 1;
	}
	.pm-demo__phone {
		transform: translate(-38%, 24%) rotate(-4deg);
	}
	/* Sans animation : ondes fixes pour montrer le « sans contact » */
	.pm-demo .pm-wave--1 { opacity: .45; transform: scale(1.1); }
	.pm-demo .pm-wave--2 { opacity: .28; transform: scale(1.65); }
	.pm-demo .pm-wave--3 { opacity: .14; transform: scale(2.2); }
	.pm-js .pm-reveal > * {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
