/*
Theme Name: PiscineAzur
Theme URI: https://example.com/
Author: PiscineAzur
Description: Thème vitrine pour pisciniste : design sur mesure, calculateur de budget, formulaire de devis enregistré dans WordPress, diaporama. Entièrement modifiable depuis l'éditeur WordPress, sans constructeur payant.
Version: 1.1.0
Requires at least: 6.5
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: piscineazur
*/

/* Icônes (Lucide, licence ISC) */
:root {
	--pa-i-map-pin: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0'/%3E%3Ccircle cx='12' cy='10' r='3'/%3E%3C/svg%3E");
	--pa-i-arrow-right: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14'/%3E%3Cpath d='m12 5 7 7-7 7'/%3E%3C/svg%3E");
	--pa-i-shield-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z'/%3E%3Cpath d='m9 12 2 2 4-4'/%3E%3C/svg%3E");
	--pa-i-droplets: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M7 16.3c2.2 0 4-1.83 4-4.05 0-1.16-.57-2.26-1.71-3.19S7.29 6.75 7 5.3c-.29 1.45-1.14 2.84-2.29 3.76S3 11.1 3 12.25c0 2.22 1.8 4.05 4 4.05z'/%3E%3Cpath d='M12.56 6.6A10.97 10.97 0 0 0 14 3.02c.5 2.5 2 4.9 4 6.5s3 3.5 3 5.5a6.98 6.98 0 0 1-11.91 4.97'/%3E%3C/svg%3E");
	--pa-i-chevron-down: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	--pa-i-check: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
	--pa-i-chevron-down-grey: url("data:image/svg+xml,%3Csvg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 24 24%22 fill=%22none%22 stroke=%22%2364748b%22 stroke-width=%222%22 stroke-linecap=%22round%22 stroke-linejoin=%22round%22%3E%3Cpath d=%22m6 9 6 6 6-6%22/%3E%3C/svg%3E");
}


/* ==========================================================================
   1. Jetons de design
   ========================================================================== */
:root {
	--pa-navy: #0a2540;
	--pa-navy-2: #0d2c4d;
	--pa-deep: #061523;
	--pa-cyan: #00b4d8;
	--pa-cyan-50: #ecfeff;
	--pa-cyan-100: #cffafe;
	--pa-cyan-200: #a5f3fc;
	--pa-cyan-300: #67e8f9;
	--pa-cyan-400: #22d3ee;
	--pa-cyan-500: #06b6d4;
	--pa-cyan-600: #0891b2;
	--pa-cyan-700: #0e7490;
	--pa-cyan-800: #155e75;
	--pa-ink: #0f172a;
	--pa-slate-700: #334155;
	--pa-slate-600: #475569;
	--pa-slate-500: #64748b;
	--pa-slate-400: #94a3b8;
	--pa-slate-300: #cbd5e1;
	--pa-slate-200: #e2e8f0;
	--pa-bg: #f8fcfd;
	/* La touche de rose : poudrée, réservée aux accents */
	--pa-rose: #d9849b;
	--pa-rose-deep: #b85c76;
	--pa-rose-soft: #fbecf0;
	--pa-rose-line: #f0cdd6;
	--pa-rose-light: #eeb3c2;
	--pa-font: var(--wp--preset--font-family--poppins, "Poppins", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif);
	--pa-header-h: 4rem;
	--pa-ease: cubic-bezier(.22, .61, .36, 1);
	--pa-shadow-xl: 0 20px 25px -5px rgba(10, 37, 64, .10), 0 8px 10px -6px rgba(10, 37, 64, .08);
	--pa-shadow-2xl: 0 25px 50px -12px rgba(10, 37, 64, .30);
}
@media (min-width: 1024px) {
	:root { --pa-header-h: 4.5rem; }
}

/* ==========================================================================
   2. Base
   ========================================================================== */
html { scroll-behavior: smooth; scroll-padding-top: calc(var(--pa-header-h) + 1rem); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	margin: 0;
	background: var(--pa-bg);
	color: var(--pa-ink);
	font-family: var(--pa-font);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; }
a { color: var(--pa-cyan-700); }
:focus-visible { outline: 2px solid var(--pa-cyan-400); outline-offset: 3px; border-radius: 6px; }
::selection { background: var(--pa-cyan-200); color: var(--pa-navy); }

h1, h2, h3, h4 { font-family: var(--pa-font); color: var(--pa-navy); font-weight: 700; letter-spacing: -.025em; line-height: 1.12; margin: 0; }

.pa-content > * { margin-block: 0; }
.wp-site-blocks > * + * { margin-block-start: 0; }
.pa-main { margin: 0; }

/* Note réservée à l'administrateur : jamais visible pour les visiteurs */
.pa-todo { display: none; }
body.logged-in .pa-todo {
	display: block;
	margin-top: 1.5rem !important;
	padding: .9rem 1.1rem;
	border: 1px dashed #f59e0b;
	border-radius: 1rem;
	background: #fffbeb;
	color: #92400e;
	font-size: .8125rem;
	line-height: 1.6;
}

/* ==========================================================================
   3. Mise en page
   ========================================================================== */
.pa-container { position: relative; z-index: 1; max-width: 80rem; margin-inline: auto !important; padding-inline: 1.25rem; box-sizing: border-box; }
.pa-container--narrow { max-width: 56rem; }

.pa-section { position: relative; overflow: hidden; padding-block: 5rem; margin: 0 !important; }
.pa-section--flush-top { padding-top: 0; }
@media (min-width: 1024px) { .pa-section { padding-block: 7rem; } .pa-section--flush-top { padding-top: 0; } }

.pa-dark { background-color: var(--pa-deep); color: #e2e8f0; }
.pa-navy { background-color: var(--pa-navy); color: #e2e8f0; }
.pa-dark h1, .pa-dark h2, .pa-dark h3, .pa-navy h1, .pa-navy h2, .pa-navy h3 { color: #fff; }

/* Grain + halos lumineux (effet « eau ») */
.pa-noise::before {
	content: "";
	position: absolute; inset: 0; z-index: 0; pointer-events: none;
	opacity: .05; mix-blend-mode: overlay;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.pa-glow-hero { background-image: radial-gradient(28rem 28rem at 0% 0%, rgba(103, 232, 249, .28), transparent 70%), radial-gradient(22rem 22rem at 100% 38%, rgba(186, 230, 253, .55), transparent 70%); }
.pa-glow-page { background-image: radial-gradient(26rem 26rem at 72% 0%, rgba(103, 232, 249, .24), transparent 70%); }
.pa-glow-dark { background-image: radial-gradient(22rem 22rem at 75% 0%, rgba(6, 182, 212, .15), transparent 70%); }
.pa-glow-navy { background-image: radial-gradient(26rem 26rem at 25% 100%, rgba(6, 182, 212, .16), transparent 70%), radial-gradient(18rem 18rem at 92% 0%, rgba(232, 136, 156, .10), transparent 70%); }
.pa-glow-reviews { background-image: radial-gradient(24rem 24rem at 0% 20%, rgba(217, 132, 155, .12), transparent 70%), radial-gradient(22rem 22rem at 100% 90%, rgba(165, 243, 252, .35), transparent 70%); }
.pa-glow-zones { background-image: radial-gradient(18rem 18rem at 100% 12%, rgba(217, 132, 155, .07), transparent 70%), radial-gradient(22rem 22rem at 0% 40%, rgba(165, 243, 252, .38), transparent 70%); }

/* Colonnes */
.wp-block-columns.pa-cols { gap: 3rem; align-items: center; margin: 0 !important; }
.wp-block-columns.pa-cols--top { align-items: flex-start; }
@media (min-width: 1024px) { .wp-block-columns.pa-cols { gap: 3.5rem; } }
.pa-cols > .wp-block-column > * { margin-block: 0; }

/* Grilles */
.pa-grid { display: grid; gap: 1.25rem; margin-top: 3rem !important; }
.pa-grid > * { margin: 0 !important; }
@media (min-width: 640px) { .pa-grid--3, .pa-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .pa-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pa-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.pa-est-block { margin-top: 2.5rem !important; }
.pa-cta-block { margin-top: 4rem !important; }
.pa-cta-block > * { margin-inline: auto; }
.pa-center-head { text-align: center; }
.pa-center-head .pa-eyebrow { justify-content: center; }

/* En-tête de section (titre à gauche, action à droite) */
.pa-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1.5rem; }
.pa-head > * { margin: 0 !important; }
.pa-head__aside { max-width: 24rem; font-size: .875rem; line-height: 1.7; color: var(--pa-slate-500); }

/* ==========================================================================
   4. Typographie
   ========================================================================== */
.pa-eyebrow {
	display: flex; align-items: center; gap: .5rem;
	margin: 0;
	font-size: .75rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
	color: var(--pa-cyan-600);
}
.pa-eyebrow::before { content: ""; width: 1.25rem; height: 2px; flex: none; border-radius: 2px; background: var(--pa-rose); }
.pa-eyebrow--light { color: rgba(103, 232, 249, .82); }
.pa-eyebrow--light::before { background: var(--pa-rose-light); }
.pa-eyebrow--pin::before {
	content: ""; width: 13px; height: 13px; flex: none; border-radius: 0;
	background: var(--pa-rose);
	-webkit-mask: var(--pa-i-map-pin) center / contain no-repeat; mask: var(--pa-i-map-pin) center / contain no-repeat;
}

.pa-h1 {
	max-width: 48rem;
	margin-top: 1.5rem !important;
	font-size: clamp(2.25rem, 1.35rem + 3.6vw, 3.75rem);
	font-weight: 700; line-height: 1.08; letter-spacing: -.03em;
}
.pa-h1 em, .pa-h2 em { font-style: italic; color: var(--pa-cyan); }
.pa-h1 .pa-line { display: block; overflow: hidden; padding-bottom: .06em; }
.pa-h1 .pa-line > span { display: block; }

.pa-h2 {
	max-width: 40rem;
	margin-top: 1rem !important;
	font-size: clamp(1.5rem, 1.05rem + 1.8vw, 2.25rem);
	font-weight: 700; line-height: 1.15;
}
.pa-h2--center { margin-inline: auto; text-align: center; }

.pa-lead { max-width: 36rem; margin-top: 1.75rem !important; font-size: 1rem; line-height: 1.75; color: var(--pa-slate-600); }
@media (min-width: 640px) { .pa-lead { font-size: 1.125rem; } }
.pa-text { max-width: 32rem; margin-top: 1.25rem !important; font-size: 1rem; line-height: 1.75; color: var(--pa-slate-600); }
.pa-text + .pa-text { margin-top: 1rem !important; }
.pa-center-text { margin-inline: auto; text-align: center; }
.pa-muted-light { color: rgba(207, 250, 254, .72); }

/* ==========================================================================
   5. Boutons (blocs « Bouton » + boutons des formulaires)
   ========================================================================== */
.wp-block-buttons.pa-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 2.25rem !important; }
.wp-block-buttons.pa-actions--center { justify-content: center; }
.wp-block-buttons.pa-actions--tight { margin-top: 0 !important; }
.wp-block-buttons.pa-actions--block, .wp-block-buttons.pa-actions--block .wp-block-button { width: 100%; }
.wp-block-buttons.pa-actions--block .wp-block-button__link { width: 100%; }

.wp-block-button[class*="is-style-pa-"] .wp-block-button__link,
.pa-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: .55rem;
	box-sizing: border-box;
	padding: .9rem 1.6rem;
	border: 1px solid transparent; border-radius: 999px;
	font-family: var(--pa-font); font-size: .9375rem; font-weight: 600; line-height: 1.2;
	text-decoration: none; cursor: pointer;
	transition: transform .25s var(--pa-ease), background-color .25s, color .25s, border-color .25s, box-shadow .25s;
}
.wp-block-button[class*="is-style-pa-"] .wp-block-button__link::after,
.pa-btn--arrow::after {
	content: ""; width: 16px; height: 16px; flex: none; background: currentColor;
	-webkit-mask: var(--pa-i-arrow-right) center / contain no-repeat; mask: var(--pa-i-arrow-right) center / contain no-repeat;
	transition: transform .25s var(--pa-ease);
}
.wp-block-button[class*="is-style-pa-"] .wp-block-button__link:hover::after,
.pa-btn--arrow:hover::after { transform: translateX(3px); }

.wp-block-button.is-style-pa-primary .wp-block-button__link, .pa-btn--primary { background: var(--pa-navy); color: #fff; }
.wp-block-button.is-style-pa-primary .wp-block-button__link:hover, .pa-btn--primary:hover {
	background: var(--pa-rose-deep); color: #fff; transform: translateY(-2px);
	box-shadow: 0 14px 30px -12px rgba(184, 92, 118, .55);
}
.wp-block-button.is-style-pa-light .wp-block-button__link, .pa-btn--light { background: #fff; color: var(--pa-navy); }
.wp-block-button.is-style-pa-light .wp-block-button__link:hover, .pa-btn--light:hover {
	background: var(--pa-rose-soft); color: var(--pa-rose-deep); transform: translateY(-2px);
	box-shadow: 0 14px 30px -14px rgba(0, 0, 0, .45);
}
.wp-block-button.is-style-pa-ghost .wp-block-button__link, .pa-btn--ghost { background: transparent; color: var(--pa-navy); border-color: var(--pa-slate-300); }
.wp-block-button.is-style-pa-ghost .wp-block-button__link:hover, .pa-btn--ghost:hover { border-color: var(--pa-rose); color: var(--pa-rose-deep); background: rgba(255, 255, 255, .6); }
.wp-block-button.is-style-pa-ghost-light .wp-block-button__link { background: rgba(255, 255, 255, .06); color: #fff; border-color: rgba(255, 255, 255, .45); -webkit-backdrop-filter: blur(6px); backdrop-filter: blur(6px); }
.wp-block-button.is-style-pa-ghost-light .wp-block-button__link:hover { background: rgba(255, 255, 255, .12); border-color: var(--pa-rose-light); color: #fff; transform: translateY(-2px); }
.wp-block-button.is-style-pa-ghost-light .wp-block-button__link::after { display: none; }
.wp-block-button.is-style-pa-ghost .wp-block-button__link::after { display: none; }
.pa-btn--block { width: 100%; }
.pa-btn[disabled] { opacity: .6; cursor: wait; transform: none !important; }
.pa-btn svg { width: 16px; height: 16px; flex: none; }

/* Lien fléché « Demander cette prestation » */
.pa-link { margin-top: .75rem !important; }
.pa-link a { display: inline-flex; align-items: center; gap: .5rem; font-size: .875rem; font-weight: 600; color: var(--pa-rose-deep); text-decoration: none; transition: color .2s; }
.pa-link a::after { content: ""; width: 15px; height: 15px; background: currentColor; -webkit-mask: var(--pa-i-arrow-right) center / contain no-repeat; mask: var(--pa-i-arrow-right) center / contain no-repeat; transition: transform .25s var(--pa-ease); }
.pa-link a:hover { color: var(--pa-navy); }
.pa-link a:hover::after { transform: translateX(3px); }

/* ==========================================================================
   6. En-tête
   ========================================================================== */
.pa-header {
	position: fixed; inset: 0 0 auto 0; z-index: 50;
	margin: 0 !important;
	border-bottom: 1px solid rgba(22, 78, 99, .06);
	background: rgba(255, 255, 255, .86);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	transition: box-shadow .3s;
}
.pa-header.is-scrolled { box-shadow: 0 10px 30px -18px rgba(10, 37, 64, .35); }
.admin-bar .pa-header { top: 46px; }
@media (min-width: 783px) { .admin-bar .pa-header { top: 32px; } }

.pa-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; height: var(--pa-header-h); }
.pa-header__inner > * { margin: 0 !important; }
.pa-header__right { display: flex; align-items: center; gap: .25rem; }
.pa-header__right > * { margin: 0 !important; }

.pa-logo { display: flex; align-items: center; gap: .625rem; text-decoration: none; }
.pa-logo__mark { display: flex; align-items: center; justify-content: center; width: 2.25rem; height: 2.25rem; border-radius: .75rem; background: var(--pa-navy); color: var(--pa-cyan-300); }
.pa-logo__name { font-size: 1.125rem; font-weight: 700; letter-spacing: -.025em; color: var(--pa-navy); }
.pa-logo__name span { color: var(--pa-cyan); }
.pa-logo__tag { display: none; margin-top: .25rem; font-size: .6875rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--pa-slate-400); }
@media (min-width: 640px) { .pa-logo__tag { display: block; } }

/* Menu (bloc Navigation) */
.pa-nav { font-size: .875rem; font-weight: 500; }
.pa-nav .wp-block-navigation__container { gap: .25rem; }
.pa-nav .wp-block-navigation-item__content { padding: .5rem 1rem !important; border-radius: 999px; color: var(--pa-slate-600); text-decoration: none; transition: color .2s, background-color .2s; }
.pa-nav .wp-block-navigation-item__content:hover { color: var(--pa-rose-deep); }
.pa-nav .is-active > .wp-block-navigation-item__content { background: var(--pa-cyan-50); color: var(--pa-cyan-700); }
.pa-nav .wp-block-navigation__responsive-container:not(.is-menu-open) .pa-nav-cta { display: none; }
.pa-nav .wp-block-navigation__responsive-container-open {
	width: 2.5rem; height: 2.5rem; align-items: center; justify-content: center;
	border: 1px solid var(--pa-slate-200); border-radius: .75rem; color: var(--pa-slate-700);
}
/* Le menu « burger » s'affiche jusqu'à 1024 px, comme sur le site de référence */
@media (min-width: 600px) and (max-width: 1023px) {
	.pa-header .pa-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.pa-header .pa-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
}
.pa-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem 1.5rem 2rem; background: #fff !important; }
.pa-nav .is-menu-open .wp-block-navigation__responsive-container-content { padding-top: 3.5rem; }
.pa-nav .is-menu-open .wp-block-navigation__container { gap: .5rem; }
.pa-nav .is-menu-open .wp-block-navigation-item__content { font-size: 1.25rem; font-weight: 600; color: var(--pa-navy); padding: .6rem 0 !important; }
.pa-nav .is-menu-open .pa-nav-cta { margin-top: 1rem; }
.pa-nav .is-menu-open .pa-nav-cta .wp-block-navigation-item__content { padding: .9rem 1.6rem !important; background: var(--pa-navy); color: #fff; font-size: 1rem; }

.pa-header__cta { display: none !important; margin-left: .75rem !important; }
.pa-header__cta .wp-block-button__link { padding: .65rem 1.4rem !important; font-size: .875rem !important; }
@media (min-width: 1024px) { .pa-header__cta { display: flex !important; } }

/* ==========================================================================
   7. Héros
   ========================================================================== */
.pa-hero { padding-top: 7rem; padding-bottom: 4rem; }
@media (min-width: 1024px) { .pa-hero { padding-top: 10rem; padding-bottom: 6rem; } }
.pa-page-hero { padding-top: 8rem; padding-bottom: 3.5rem; }
@media (min-width: 1024px) { .pa-page-hero { padding-top: 11rem; padding-bottom: 5rem; } }

.pa-trust { display: flex; flex-wrap: wrap; gap: .75rem 2rem; margin: 2.5rem 0 0 !important; padding: 0; list-style: none; font-size: .875rem; font-weight: 500; color: var(--pa-slate-500); }
.pa-trust li { display: flex; align-items: center; gap: .5rem; }
.pa-trust li::before { content: ""; width: 16px; height: 16px; flex: none; background: var(--pa-cyan-600); -webkit-mask: var(--pa-i-shield-check) center / contain no-repeat; mask: var(--pa-i-shield-check) center / contain no-repeat; }
.pa-trust li:nth-child(2)::before { -webkit-mask-image: var(--pa-i-map-pin); mask-image: var(--pa-i-map-pin); }
.pa-trust li:nth-child(3)::before { -webkit-mask-image: var(--pa-i-droplets); mask-image: var(--pa-i-droplets); }

.pa-media-wrap { position: relative; }
.pa-media-wrap > * { margin: 0 !important; }
.wp-block-image.pa-media { position: relative; margin: 0; overflow: hidden; border-radius: 2rem; box-shadow: var(--pa-shadow-2xl); }
.wp-block-image.pa-media img { display: block; width: 100%; height: 380px; object-fit: cover; }
.wp-block-image.pa-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(35deg, rgba(10, 37, 64, .38), transparent 60%); }
@media (min-width: 1024px) { .wp-block-image.pa-media img { height: 460px; } }
.wp-block-image.pa-media--hero img { height: 420px; transform: scale(1.1) translateY(var(--pa-parallax, 0px)); will-change: transform; }
.wp-block-image.pa-media--hero::after { background: linear-gradient(0deg, rgba(6, 21, 35, .5), transparent 55%); }
@media (min-width: 1024px) { .wp-block-image.pa-media--hero img { height: 520px; } }
.wp-block-image.pa-media--short img { height: 300px; }
@media (min-width: 1024px) { .wp-block-image.pa-media--short img { height: 380px; } }

/* Badge « verre dépoli » posé sur l'image */
.pa-badge {
	position: absolute; left: .75rem; bottom: -1.5rem; z-index: 2;
	padding: 1rem 1.5rem;
	border: 1px solid rgba(255, 255, 255, .55); border-radius: 1rem;
	background: rgba(255, 255, 255, .82);
	-webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
	box-shadow: var(--pa-shadow-xl);
}
@media (min-width: 640px) { .pa-badge { left: -2rem; } }
.pa-badge > * { margin: 0 !important; }
.pa-badge__kicker { display: flex; align-items: center; gap: .45rem; font-size: .6875rem; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--pa-cyan-600); }
.pa-badge__kicker::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--pa-rose); }
.pa-badge__kicker--rose { color: var(--pa-rose-deep); }
.pa-badge__title { margin-top: .25rem !important; font-size: .875rem; font-weight: 700; color: var(--pa-navy); }

.pa-glass-chip {
	position: absolute; left: 1.25rem; bottom: 1.25rem; z-index: 2;
	display: flex; align-items: center; gap: .5rem;
	margin: 0 !important; padding: .5rem 1rem;
	border: 1px solid rgba(255, 255, 255, .4); border-radius: 999px;
	background: rgba(255, 255, 255, .2);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	font-size: .75rem; font-weight: 600; color: #fff;
}
.pa-glass-chip::before { content: ""; width: 13px; height: 13px; background: currentColor; -webkit-mask: var(--pa-i-map-pin) center / contain no-repeat; mask: var(--pa-i-map-pin) center / contain no-repeat; }

/* Héros pleine largeur (accueil) */
.pa-hero-full {
	position: relative; isolation: isolate; overflow: hidden;
	display: flex; align-items: flex-end;
	min-height: clamp(620px, 94svh, 920px); box-sizing: border-box;
	margin: 0 !important; padding: calc(var(--pa-header-h) + 5rem) 0 3.5rem;
	background: var(--pa-deep); color: #fff;
}
@media (min-width: 1024px) { .pa-hero-full { align-items: center; padding: calc(var(--pa-header-h) + 4rem) 0 6rem; } }
.pa-hero-full > * { margin: 0 !important; }
.pa-hero-full > .pa-container { width: 100%; margin-inline: auto !important; }
.wp-block-image.pa-hero-full__bg { position: absolute; inset: 0; z-index: -1; margin: 0 !important; overflow: hidden; }
.wp-block-image.pa-hero-full__bg img {
	display: block; width: 100%; height: 100%; object-fit: cover; object-position: center;
	scale: 1.06; translate: 0 var(--pa-parallax, 0px);
	animation: pa-hero-zoom 2.6s var(--pa-ease) both;
}
@keyframes pa-hero-zoom { from { scale: 1.16; } to { scale: 1.06; } }
.wp-block-image.pa-hero-full__bg::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background:
		linear-gradient(0deg, rgba(6, 21, 35, .9) 8%, rgba(6, 21, 35, .5) 55%, rgba(6, 21, 35, .25) 100%),
		radial-gradient(30rem 22rem at 100% 0%, rgba(217, 132, 155, .16), transparent 70%);
}
@media (min-width: 1024px) {
	.wp-block-image.pa-hero-full__bg::after {
		background:
			linear-gradient(90deg, rgba(6, 21, 35, .86) 0%, rgba(6, 21, 35, .62) 38%, rgba(6, 21, 35, .12) 72%, rgba(6, 21, 35, 0) 100%),
			linear-gradient(0deg, rgba(6, 21, 35, .45), rgba(6, 21, 35, 0) 35%),
			radial-gradient(34rem 26rem at 100% 0%, rgba(217, 132, 155, .14), transparent 70%);
	}
}
.pa-hero-full__content { max-width: 42rem; text-shadow: 0 2px 30px rgba(6, 21, 35, .35); }
.pa-hero-full__content > * { margin-block: 0; }
.pa-hero-full .pa-eyebrow { color: rgba(255, 255, 255, .88); }
.pa-hero-full .pa-eyebrow--pin::before { background: var(--pa-rose-light); }
.pa-hero-full .pa-h1 { color: #fff; text-shadow: none; }
.pa-hero-full .pa-h1 em { color: var(--pa-cyan-300); }
.pa-hero-full .pa-lead { color: rgba(226, 232, 240, .92); }
.pa-hero-full .pa-trust { color: rgba(255, 255, 255, .82); }
.pa-hero-full .pa-trust li::before { background: var(--pa-cyan-300); }
.pa-hero-full .pa-actions .wp-block-button__link { text-shadow: none; }
.pa-hero-full__badge { display: none; }
@media (min-width: 1024px) {
	.pa-hero-full__badge { display: block; left: auto; right: 1.25rem; bottom: -2.5rem; text-shadow: none; }
}
.pa-hero-full .pa-todo { max-width: 42rem; }

/* ==========================================================================
   8. Bandeau défilant
   ========================================================================== */
.pa-marquee { margin: 0 !important; overflow: hidden; padding-block: 1.25rem; background: var(--pa-navy); border-block: 1px solid rgba(34, 211, 238, .1); }
.pa-marquee__list { display: flex; width: max-content; margin: 0 !important; padding: 0; list-style: none; }
.pa-marquee.is-ready .pa-marquee__list { animation: pa-marquee 40s linear infinite; }
.pa-marquee:hover .pa-marquee__list { animation-play-state: paused; }
.pa-marquee__list li { display: flex; align-items: center; gap: 1.5rem; padding-right: 1.5rem; white-space: nowrap; font-size: 1.125rem; font-weight: 600; letter-spacing: .02em; color: rgba(207, 250, 254, .9); }
@media (min-width: 640px) { .pa-marquee__list li { font-size: 1.25rem; } }
.pa-marquee__list li::after { content: ""; width: 14px; height: 14px; flex: none; background: rgba(34, 211, 238, .6); -webkit-mask: var(--pa-i-droplets) center / contain no-repeat; mask: var(--pa-i-droplets) center / contain no-repeat; }
.pa-marquee__list li:nth-child(even)::after { background: rgba(232, 136, 156, .75); }
@keyframes pa-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* ==========================================================================
   9. Cartes
   ========================================================================== */
.pa-icon { display: flex; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem; border-radius: .75rem; background: var(--pa-cyan-50); color: var(--pa-cyan-600); }
.pa-icon--rose { background: var(--pa-rose-soft); color: var(--pa-rose-deep); }
.pa-icon--lg { width: 3rem; height: 3rem; border-radius: 1rem; background: var(--pa-navy); color: var(--pa-cyan-300); }
.pa-icon--lg-rose { width: 3rem; height: 3rem; border-radius: 1rem; background: var(--pa-rose-soft); color: var(--pa-rose-deep); }
.pa-icon--glass { width: 2.75rem; height: 2.75rem; background: rgba(34, 211, 238, .15); color: var(--pa-cyan-300); }
.pa-icon--glass-rose { width: 2.75rem; height: 2.75rem; background: rgba(232, 136, 156, .16); color: #f3b3c1; }
.pa-icon--xl { width: 3rem; height: 3rem; border-radius: 1rem; }
.pa-icon--plain { width: auto; height: auto; background: none; color: var(--pa-cyan-300); }

/* Effet « projecteur » qui suit la souris */
.pa-spot { position: relative; isolation: isolate; }
.pa-spot::before {
	content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
	opacity: 0; transition: opacity .35s;
	background: radial-gradient(22rem circle at var(--mx, 50%) var(--my, 50%), rgba(0, 180, 216, .09), transparent 60%);
}
.pa-spot:hover::before { opacity: 1; }

.pa-card { height: 100%; box-sizing: border-box; padding: 1.75rem; border: 1px solid var(--pa-slate-200); border-radius: 1rem; background: #fff; transition: border-color .3s, transform .3s var(--pa-ease), box-shadow .3s; }
.pa-card:hover { border-color: var(--pa-rose-line); transform: translateY(-3px); box-shadow: 0 18px 40px -24px rgba(10, 37, 64, .35); }
.pa-card > * { margin: 0 !important; }
.pa-card h3 { margin-top: 1.25rem !important; font-size: 1.125rem; }
.pa-card p { margin-top: .625rem !important; font-size: .875rem; line-height: 1.7; color: var(--pa-slate-600); }

/* Panneaux sombres (principes) */
.pa-panels { display: grid; gap: 1px; margin-top: 3.5rem !important; overflow: hidden; border: 1px solid rgba(255, 255, 255, .1); border-radius: 1.5rem; background: rgba(255, 255, 255, .1); }
.pa-panels > * { margin: 0 !important; }
@media (min-width: 1024px) { .pa-panels { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.pa-panel { padding: 2rem; background: var(--pa-navy); transition: background-color .3s; }
@media (min-width: 1024px) { .pa-panel { padding: 2.5rem; } }
.pa-panel:hover { background: var(--pa-navy-2); }
.pa-panel > * { margin: 0 !important; }
.pa-panel h3 { margin-top: 1.5rem !important; font-size: 1.25rem; }
.pa-panel p:not(.pa-num) { margin-top: 1rem !important; font-size: .875rem; line-height: 1.75; color: var(--pa-slate-400); }
.pa-num { font-size: 3rem; font-weight: 700; line-height: 1; letter-spacing: -.03em; color: rgba(34, 211, 238, .25); transition: color .3s; }
.pa-panel:hover .pa-num { color: rgba(34, 211, 238, .6); }

/* Cartes translucides sur fond sombre */
.pa-glass { height: 100%; box-sizing: border-box; padding: 1.75rem; border: 1px solid rgba(255, 255, 255, .1); border-radius: 1rem; background: rgba(255, 255, 255, .05); transition: background-color .3s; }
.pa-glass:hover { background: rgba(255, 255, 255, .1); }
.pa-glass > * { margin: 0 !important; }
.pa-glass h3 { margin-top: 1.5rem !important; font-size: 1.125rem; }
.pa-glass p { margin-top: .625rem !important; font-size: .875rem; line-height: 1.7; color: var(--pa-slate-400); }
.pa-glass--lg { padding: 2rem; border-radius: 1.5rem; }
.pa-glass--lg h3 { margin-top: 1.75rem !important; font-size: 1.25rem; }
.pa-glass--lg p { margin-top: .75rem !important; }
.pa-glass__top { display: flex; align-items: center; justify-content: space-between; }
.pa-glass__top > * { margin: 0 !important; }
.pa-glass .pa-num-sm, .pa-num-sm { font-size: 1.875rem; font-weight: 700; line-height: 1; color: rgba(34, 211, 238, .2); transition: color .3s; }
.pa-glass:hover .pa-num-sm { color: rgba(34, 211, 238, .5); }
.pa-num-sm--rose { color: rgba(232, 136, 156, .3); }
.pa-glass:hover .pa-num-sm--rose { color: rgba(232, 136, 156, .65); }
.pa-glass .pa-num-md { font-size: 2.25rem; }

/* Engagements (icône + texte) */
.pa-commit { display: flex; align-items: flex-start; gap: 1rem; height: 100%; box-sizing: border-box; padding: 1.5rem; border: 1px solid rgba(255, 255, 255, .1); border-radius: 1rem; background: rgba(255, 255, 255, .05); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); }
.pa-commit > * { margin: 0 !important; }
.pa-commit .pa-icon { flex: none; }
.pa-commit h3 { font-size: 1rem; }
.pa-commit p { margin-top: .375rem !important; font-size: .875rem; line-height: 1.7; color: var(--pa-slate-400); }
.pa-commit__body > * { margin: 0; }

/* ==========================================================================
   10. Pastilles (zones)
   ========================================================================== */
.pa-pills { display: flex; flex-wrap: wrap; gap: .625rem; margin: 1.75rem 0 0 !important; padding: 0; list-style: none; }
.pa-pills li { padding: .375rem 1rem; border: 1px solid var(--pa-cyan-200); border-radius: 999px; background: var(--pa-cyan-50); font-size: .875rem; font-weight: 500; color: var(--pa-cyan-800); transition: border-color .2s, background-color .2s; }
.pa-pills li:hover { border-color: var(--pa-cyan-400); background: var(--pa-cyan-100); }
.pa-pills li:nth-child(4n+3) { border-color: var(--pa-rose-line); background: var(--pa-rose-soft); color: var(--pa-rose-deep); }

/* ==========================================================================
   11. Diaporama (bloc Galerie avec la classe pa-slider)
   ========================================================================== */
.pa-slider-wrap { margin-top: 2.5rem !important; }
/* Sans JavaScript : galerie propre en grille */
.wp-block-gallery.pa-slider:not(.is-ready) { gap: 1.25rem; }
.wp-block-gallery.pa-slider:not(.is-ready) figure.wp-block-image:not(#pa) { border-radius: 1.5rem; overflow: hidden; }

.wp-block-gallery.pa-slider.is-ready {
	position: relative; display: block;
	aspect-ratio: 1 / 1; margin: 0; overflow: hidden;
	border-radius: 1.5rem; background: var(--pa-navy);
	box-shadow: var(--pa-shadow-2xl);
	touch-action: pan-y;
}
@media (min-width: 640px) { .wp-block-gallery.pa-slider.is-ready { aspect-ratio: 16 / 9; border-radius: 2rem; } }
@media (min-width: 1024px) { .wp-block-gallery.pa-slider.is-ready { aspect-ratio: 2.2 / 1; } }
.wp-block-gallery.pa-slider.is-ready > figure.wp-block-image:not(#pa) {
	position: absolute; inset: 0; width: 100%; height: 100%; margin: 0;
	opacity: 0; visibility: hidden;
	transition: opacity 1s var(--pa-ease), visibility 0s linear 1s;
}
.wp-block-gallery.pa-slider.is-ready > figure.wp-block-image.is-active:not(#pa) { opacity: 1; visibility: visible; z-index: 1; transition: opacity 1s var(--pa-ease), visibility 0s; }
.wp-block-gallery.pa-slider.is-ready > figure.wp-block-image:not(#pa) img { width: 100%; height: 100%; object-fit: cover; transform: scale(1.08); transition: transform 7s cubic-bezier(.16, .7, .3, 1); }
.wp-block-gallery.pa-slider.is-ready > figure.wp-block-image.is-active:not(#pa) img { transform: scale(1); }
.wp-block-gallery.pa-slider.is-ready > figure.wp-block-image:not(#pa)::after { content: ""; position: absolute; inset: 0; pointer-events: none; background: linear-gradient(0deg, rgba(6, 21, 35, .55), rgba(6, 21, 35, 0) 45%); }
.wp-block-gallery.pa-slider.is-ready > figure.wp-block-image:not(#pa) figcaption { display: none; }

.pa-slider__caption {
	position: absolute; left: .9rem; bottom: 1rem; z-index: 3;
	max-width: calc(100% - 7.6rem); box-sizing: border-box;
	padding: .8rem 1.1rem;
	border: 1px solid rgba(255, 255, 255, .55); border-radius: 1rem;
	background: rgba(255, 255, 255, .84);
	-webkit-backdrop-filter: blur(20px); backdrop-filter: blur(20px);
	box-shadow: var(--pa-shadow-xl);
	transition: opacity .45s var(--pa-ease), transform .45s var(--pa-ease);
}
.pa-slider__caption.is-changing { opacity: 0; transform: translateY(8px); }
@media (min-width: 640px) { .pa-slider__caption { left: 1.75rem; bottom: 1.75rem; padding: 1rem 1.4rem; } }
.pa-slider__count { margin: 0; font-size: .6875rem; font-weight: 600; letter-spacing: .18em; color: var(--pa-rose-deep); font-variant-numeric: tabular-nums; }
.pa-slider__text { margin: .2rem 0 0; font-size: .8125rem; font-weight: 700; line-height: 1.35; color: var(--pa-navy); }
@media (min-width: 640px) { .pa-slider__text { font-size: .9375rem; } }

.pa-slider__nav { position: absolute; right: .9rem; bottom: 1rem; z-index: 3; display: flex; gap: .5rem; }
@media (min-width: 640px) { .pa-slider__nav { right: 1.75rem; bottom: 1.75rem; } }
.pa-slider__btn {
	display: flex; align-items: center; justify-content: center;
	width: 2.5rem; height: 2.5rem; padding: 0;
	border: 1px solid rgba(255, 255, 255, .55); border-radius: 50%;
	background: rgba(255, 255, 255, .8); color: var(--pa-navy);
	-webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
	cursor: pointer; transition: background-color .2s, color .2s, transform .2s var(--pa-ease), box-shadow .2s;
}
@media (min-width: 640px) { .pa-slider__btn { width: 2.9rem; height: 2.9rem; } }
.pa-slider__btn:hover { background: #fff; color: var(--pa-rose-deep); transform: translateY(-2px); box-shadow: 0 0 0 4px rgba(232, 136, 156, .25); }
.pa-slider__btn svg { width: 18px; height: 18px; }

.pa-slider__progress { position: absolute; left: 0; right: 0; bottom: 0; z-index: 3; height: 3px; background: rgba(255, 255, 255, .18); }
.pa-slider__progress span { display: block; width: 100%; height: 100%; background: linear-gradient(90deg, var(--pa-cyan-400), var(--pa-rose)); transform: scaleX(0); transform-origin: left center; }
.pa-slider__progress span.is-running { animation: pa-progress var(--pa-delay, 6s) linear forwards; }
.pa-slider-wrap.is-paused .pa-slider__progress span { animation-play-state: paused; }
@keyframes pa-progress { to { transform: scaleX(1); } }

.pa-slider__dots { display: flex; justify-content: center; gap: .5rem; margin-top: 1.25rem; }
.pa-slider__dot { width: .5rem; height: .5rem; padding: 0; border: 0; border-radius: 999px; background: var(--pa-slate-300); cursor: pointer; transition: width .4s var(--pa-ease), background-color .3s; }
.pa-slider__dot:hover { background: var(--pa-slate-400); }
.pa-slider__dot[aria-current="true"] { width: 1.75rem; background: var(--pa-rose); }
.pa-reviews__dots .pa-slider__dot[aria-current="true"] { width: 1.5rem; }

/* ==========================================================================
   11 bis. Avis clients
   ========================================================================== */
.pa-reviews { position: relative; margin-top: 2.5rem !important; }
.pa-reviews__track {
	display: grid; grid-auto-flow: column; grid-auto-columns: 86%; gap: 1.25rem;
	overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scroll-behavior: smooth;
	margin: 0 !important; padding: .5rem .25rem 1.75rem;
	scrollbar-width: none;
}
.pa-reviews__track::-webkit-scrollbar { display: none; }
.pa-reviews__track > * { margin: 0 !important; }
@media (min-width: 640px) { .pa-reviews__track { grid-auto-columns: calc(50% - .625rem); } }
@media (min-width: 1024px) { .pa-reviews__track { grid-auto-columns: calc((100% - 2.5rem) / 3); } }
@media (prefers-reduced-motion: reduce) { .pa-reviews__track { scroll-behavior: auto; } }

.pa-review {
	position: relative; display: flex; flex-direction: column; box-sizing: border-box;
	scroll-snap-align: start;
	padding: 1.75rem; border: 1px solid var(--pa-slate-200); border-radius: 1.5rem; background: #fff;
	box-shadow: 0 18px 40px -30px rgba(10, 37, 64, .45);
	transition: border-color .3s, transform .3s var(--pa-ease);
}
.pa-review:hover { border-color: var(--pa-rose-line); transform: translateY(-3px); }
.pa-review::before {
	content: "\201C"; position: absolute; top: .6rem; right: 1.4rem;
	font-size: 4.5rem; font-weight: 700; line-height: 1; color: var(--pa-rose-soft);
}
.pa-review > * { margin: 0 !important; position: relative; }
.pa-review__stars { font-size: 1.05rem; letter-spacing: .18em; color: var(--pa-rose); }
.pa-review__text { flex: 1; margin-top: 1rem !important; font-size: .9375rem; line-height: 1.75; color: var(--pa-slate-700); }
.pa-review__meta { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .25rem 1rem; margin-top: 1.5rem !important; padding-top: 1.25rem; border-top: 1px solid var(--pa-slate-200); }
.pa-review__meta > * { margin: 0 !important; }
.pa-review__name { font-size: .9375rem; font-weight: 700; color: var(--pa-navy); }
.pa-review__date { font-size: .8125rem; color: var(--pa-slate-400); }

.pa-reviews__controls { display: flex; align-items: center; justify-content: center; gap: 1rem; margin-top: .5rem; }
.pa-reviews__btn {
	display: flex; align-items: center; justify-content: center;
	width: 2.75rem; height: 2.75rem; padding: 0;
	border: 1px solid var(--pa-slate-200); border-radius: 50%;
	background: #fff; color: var(--pa-navy); cursor: pointer;
	transition: border-color .2s, color .2s, transform .2s var(--pa-ease);
}
.pa-reviews__btn:hover { border-color: var(--pa-rose); color: var(--pa-rose-deep); transform: translateY(-2px); }
.pa-reviews__btn svg { width: 18px; height: 18px; }
.pa-reviews__dots { display: flex; gap: .5rem; }

/* ==========================================================================
   12. Services détaillés, méthode, formules, FAQ
   ========================================================================== */
.pa-details { display: grid; gap: 1.5rem; }
.pa-details > * { margin: 0 !important; }
.pa-detail { padding: 2rem; border: 1px solid var(--pa-slate-200); border-radius: 1.5rem; background: #fff; }
@media (min-width: 1024px) { .pa-detail { padding: 3rem; } }
.pa-detail .wp-block-columns.pa-cols { gap: 2rem; }
@media (min-width: 782px) { .pa-detail--rev .wp-block-columns.pa-cols { flex-direction: row-reverse; } }
.pa-detail h2 { margin-top: 1.5rem !important; font-size: clamp(1.5rem, 1.2rem + 1vw, 1.875rem); }
.pa-detail .pa-text { margin-top: 1rem !important; max-width: none; }

.pa-points { display: grid; gap: .75rem; margin: 0 !important; padding: 0; list-style: none; }
.pa-points li { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.25rem; border-radius: .75rem; background: rgba(236, 254, 255, .7); font-size: .875rem; font-weight: 500; color: var(--pa-slate-700); }
.pa-points li::before { content: ""; width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--pa-cyan-500); }

.pa-plan { display: flex; flex-direction: column; height: 100%; box-sizing: border-box; padding: 2rem; border: 1px solid var(--pa-slate-200); border-radius: 1.5rem; background: #fff; }
.pa-plan > * { margin: 0 !important; }
.pa-plan h3 { font-size: 1.25rem; }
.pa-plan__desc { margin-top: .75rem !important; font-size: .875rem; line-height: 1.7; color: var(--pa-slate-600); }
.pa-plan .pa-features { flex: 1; margin-top: 1.5rem !important; }
.pa-plan__price { margin-top: 2rem !important; font-size: .75rem; letter-spacing: .14em; text-transform: uppercase; color: var(--pa-slate-400); }
.pa-plan .wp-block-buttons { margin-top: 1rem !important; }
.pa-plan--featured { border-color: rgba(34, 211, 238, .4); background: var(--pa-navy); color: #fff; }
.pa-plan--featured h3 { color: #fff; }
.pa-plan--featured .pa-plan__desc { color: rgba(207, 250, 254, .72); }
.pa-plan--featured .pa-features li { color: #e2e8f0; }
.pa-plan--featured .pa-features li::before { background: var(--pa-cyan-300); }
.pa-plan--featured .pa-plan__price { color: rgba(103, 232, 249, .72); }
.pa-plan__badge { align-self: flex-start; margin-bottom: 1rem !important; padding: .3rem .8rem; border: 1px solid rgba(245, 207, 216, .5); border-radius: 999px; background: rgba(232, 136, 156, .16); font-size: .6875rem; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; color: #f6c3cf; }

.pa-features { display: grid; align-content: start; gap: .75rem; margin: 0; padding: 0; list-style: none; }
.pa-features li { display: flex; align-items: flex-start; gap: .75rem; font-size: .875rem; color: var(--pa-slate-700); }
.pa-features li::before { content: ""; width: 6px; height: 6px; flex: none; margin-top: .5rem; border-radius: 50%; background: var(--pa-cyan-500); }

.pa-faqs { margin-top: 2.5rem !important; display: grid; gap: 1rem; }
.pa-faqs > * { margin: 0 !important; }
.wp-block-details.pa-faq { overflow: hidden; border: 1px solid var(--pa-slate-200); border-radius: 1rem; background: #fff; transition: border-color .25s; }
.wp-block-details.pa-faq[open] { border-color: var(--pa-cyan-200); }
.wp-block-details.pa-faq summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.5rem; list-style: none; cursor: pointer; font-weight: 700; color: var(--pa-navy); }
.wp-block-details.pa-faq summary::-webkit-details-marker { display: none; }
.wp-block-details.pa-faq summary::after { content: ""; width: 18px; height: 18px; flex: none; background: var(--pa-cyan-600); -webkit-mask: var(--pa-i-chevron-down) center / contain no-repeat; mask: var(--pa-i-chevron-down) center / contain no-repeat; transition: transform .3s var(--pa-ease), background-color .3s; }
.wp-block-details.pa-faq[open] summary::after { transform: rotate(180deg); background: var(--pa-rose-deep); }
.wp-block-details.pa-faq > p { margin: 0 !important; padding: 0 1.5rem 1.35rem; font-size: .9375rem; line-height: 1.75; color: var(--pa-slate-600); }

/* Compétences */
.pa-skills { display: grid; gap: .75rem; margin: 2rem 0 0 !important; padding: 0; list-style: none; }
@media (min-width: 640px) { .pa-skills { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pa-skills li { display: flex; align-items: center; gap: .75rem; padding: .875rem 1rem; border: 1px solid var(--pa-cyan-100); border-radius: .75rem; background: rgba(236, 254, 255, .6); font-size: .875rem; font-weight: 500; color: var(--pa-slate-700); }
.pa-skills li::before { content: ""; width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--pa-cyan-500); }
.pa-skills li:nth-child(even)::before { background: var(--pa-rose); }

/* Carte « qui sommes-nous » */
.pa-founder { margin-top: 1.75rem !important; padding: 1.25rem 1.4rem; border-left: 3px solid var(--pa-rose); border-radius: 0 1rem 1rem 0; background: #fff; box-shadow: 0 10px 30px -22px rgba(10, 37, 64, .45); }
.pa-founder > * { margin: 0 !important; }
.pa-founder__name { font-weight: 700; color: var(--pa-navy); }
.pa-founder__role { margin-top: .25rem !important; font-size: .875rem; color: var(--pa-slate-500); }

/* ==========================================================================
   13. Calculateur
   ========================================================================== */
.pa-est { display: grid; overflow: hidden; border: 1px solid rgba(34, 211, 238, .15); border-radius: 1.5rem; background: var(--pa-navy); box-shadow: var(--pa-shadow-2xl); }
@media (min-width: 1024px) { .pa-est { grid-template-columns: 3fr 2fr; } }
.pa-est__main { display: grid; gap: 2rem; padding: 1.75rem; }
@media (min-width: 640px) { .pa-est__main { padding: 2.5rem; } }
.pa-est__label { margin: 0; font-size: .75rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: rgba(103, 232, 249, .82); }
.pa-chips { display: flex; flex-wrap: wrap; gap: .625rem; margin-top: 1rem; }
.pa-chip {
	display: inline-flex; align-items: center; gap: .5rem;
	padding: .625rem 1.25rem; border: 1px solid transparent; border-radius: 999px;
	background: rgba(255, 255, 255, .08); color: rgba(207, 250, 254, .8);
	font-family: var(--pa-font); font-size: .875rem; font-weight: 600; cursor: pointer;
	transition: background-color .2s, color .2s, border-color .2s, transform .2s var(--pa-ease);
}
.pa-chip:hover { background: rgba(255, 255, 255, .15); transform: translateY(-2px); }
.pa-chip[aria-pressed="true"] { background: var(--pa-cyan-400); color: var(--pa-deep); }
.pa-chip--toggle { background: transparent; border-color: rgba(255, 255, 255, .15); color: rgba(207, 250, 254, .72); }
.pa-chip--toggle:hover { background: transparent; border-color: rgba(255, 255, 255, .32); }
.pa-chip--toggle::before { content: ""; width: 14px; height: 14px; background: currentColor; -webkit-mask: var(--pa-i-check) center / contain no-repeat; mask: var(--pa-i-check) center / contain no-repeat; display: none; }
.pa-chip--toggle[aria-pressed="true"] { background: rgba(232, 136, 156, .14); border-color: rgba(232, 136, 156, .6); color: #fde2e8; }
.pa-chip--toggle[aria-pressed="true"]::before { display: block; }

.pa-est__result { display: flex; flex-direction: column; justify-content: space-between; padding: 1.75rem; background: linear-gradient(135deg, rgba(6, 182, 212, .15), transparent 55%, rgba(34, 211, 238, .1)); }
@media (min-width: 640px) { .pa-est__result { padding: 2.5rem; } }
.pa-est__kicker { display: flex; align-items: center; gap: .5rem; margin: 0; font-size: .75rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: rgba(103, 232, 249, .8); }
.pa-est__kicker svg { width: 14px; height: 14px; }
.pa-est__price { margin: 1.5rem 0 0; font-size: 2.25rem; font-weight: 700; line-height: 1.1; letter-spacing: -.03em; color: #fff; font-variant-numeric: tabular-nums; transition: opacity .25s, transform .25s var(--pa-ease); }
@media (min-width: 640px) { .pa-est__price { font-size: 3rem; } }
.pa-est__price.is-updating { opacity: .35; transform: translateY(4px); }
.pa-est__suffix { display: block; margin-top: .25rem; font-size: 1rem; font-weight: 500; letter-spacing: 0; color: rgba(165, 243, 252, .7); }
.pa-est__extra { display: flex; align-items: center; gap: .5rem; margin: 1rem 0 0; font-size: .875rem; color: #f6d0d9; }
.pa-est__extra::before { content: ""; width: 6px; height: 6px; flex: none; border-radius: 50%; background: var(--pa-rose); }
.pa-est__extra[hidden] { display: none; }
.pa-est__note { margin: 1.25rem 0 0; font-size: .875rem; line-height: 1.7; color: rgba(207, 250, 254, .6); }
.pa-est__cta { margin-top: 2rem; width: 100%; }

/* ==========================================================================
   14. Formulaire de devis
   ========================================================================== */
.pa-form-wrap { scroll-margin-top: calc(var(--pa-header-h) + 1.5rem); }
.pa-form, .pa-form__success { box-sizing: border-box; padding: 1.5rem 1.25rem; border: 1px solid var(--pa-slate-200); border-radius: 1.5rem; background: #fff; box-shadow: var(--pa-shadow-xl); }
@media (min-width: 640px) { .pa-form, .pa-form__success { padding: 2.5rem; } }
.pa-form__grid { display: grid; gap: 1.25rem; }
@media (min-width: 640px) { .pa-form__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.pa-field--full { grid-column: 1 / -1; }
.pa-form label { display: block; margin-bottom: .375rem; font-size: .875rem; font-weight: 600; color: var(--pa-slate-700); }
.pa-input {
	display: block; width: 100%; box-sizing: border-box;
	padding: .75rem 1rem;
	border: 1px solid var(--pa-slate-200); border-radius: .75rem;
	background: #fff; color: var(--pa-ink);
	font-family: var(--pa-font); font-size: .9375rem; line-height: 1.5;
	transition: border-color .2s, box-shadow .2s;
	appearance: none; -webkit-appearance: none;
}
.pa-input::placeholder { color: var(--pa-slate-400); }
.pa-input:focus { outline: none; border-color: var(--pa-cyan-400); box-shadow: 0 0 0 4px rgba(34, 211, 238, .18); }
.pa-input:user-invalid { border-color: var(--pa-rose); }
select.pa-input { padding-right: 2.5rem; background-image: var(--pa-i-chevron-down-grey); background-repeat: no-repeat; background-position: right .9rem center; background-size: 16px; }
textarea.pa-input { resize: vertical; min-height: 8rem; }

.pa-form__estimate { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-top: 1.25rem; padding: .9rem 1.1rem; border-left: 3px solid var(--pa-rose); border-radius: 0 .75rem .75rem 0; background: var(--pa-cyan-50); font-size: .875rem; line-height: 1.6; color: var(--pa-slate-700); }
.pa-form__estimate[hidden] { display: none; }
.pa-form__estimate strong { display: block; color: var(--pa-navy); }
.pa-form__estimate button { flex: none; padding: 0; border: 0; background: none; font: inherit; font-size: .8125rem; font-weight: 600; color: var(--pa-cyan-700); text-decoration: underline; cursor: pointer; }
.pa-form__error { margin: 1.25rem 0 0; padding: .9rem 1.1rem; border: 1px solid var(--pa-rose-line); border-radius: .75rem; background: var(--pa-rose-soft); font-size: .875rem; color: #9b3b54; }
.pa-form__error[hidden] { display: none; }
.pa-form .pa-btn--primary { margin-top: 1.75rem; }
.pa-form__legal { margin: 1rem 0 0; text-align: center; font-size: .75rem; line-height: 1.6; color: var(--pa-slate-400); }
.pa-form__legal a { color: inherit; }
.pa-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }

.pa-form__success { text-align: center; }
.pa-form__success[hidden] { display: none; }
.pa-form__success:focus { outline: none; }
.pa-form__success svg { width: 3rem; height: 3rem; color: var(--pa-cyan-500); }
.pa-form__success h3 { margin-top: 1rem; font-size: 1.5rem; }
.pa-form__success p { max-width: 28rem; margin: .75rem auto 0; line-height: 1.7; color: var(--pa-slate-600); }

/* Carte coordonnées */
.pa-infocard { padding: 2rem; border-radius: 1.5rem; }
.pa-infocard > * { margin: 0 !important; }
.pa-infocard h2 { font-size: 1.25rem; }
.pa-infocard .pa-infos { margin-top: 1.5rem !important; }
.pa-infos { display: grid; gap: 1.25rem; margin: 0; padding: 0; list-style: none; font-size: .875rem; }
.pa-infos li { display: flex; align-items: flex-start; gap: .875rem; }
.pa-infos svg { width: 18px; height: 18px; flex: none; margin-top: .1rem; color: var(--pa-cyan-300); }
.pa-infos li.pa-infos__hours svg { color: #f3b3c1; }
.pa-infos strong { display: block; font-weight: 600; color: #fff; }
.pa-infos span { display: block; margin-top: .25rem; color: var(--pa-slate-300); line-height: 1.6; }
.pa-infos a { color: inherit; text-decoration: none; }
.pa-infos a:hover { color: var(--pa-rose-light); }

.pa-infos--footer { gap: .75rem; }
.pa-infos--footer li { gap: .75rem; }
.pa-infos--footer svg { width: 16px; height: 16px; color: var(--pa-cyan-400); }
.pa-infos--footer span { margin: 0; color: #cbd5e1; }

.pa-stack { display: grid; gap: 1.5rem; }
.pa-stack > * { margin: 0 !important; }

.pa-map { overflow: hidden; border: 1px solid var(--pa-slate-200); border-radius: 1.5rem; background: #fff; box-shadow: var(--pa-shadow-xl); }
.pa-map iframe { display: block; width: 100%; height: 18rem; border: 0; }
.pa-map p { display: flex; align-items: center; gap: .5rem; margin: 0; padding: .875rem 1.25rem; font-size: .75rem; font-weight: 500; color: var(--pa-slate-500); }
.pa-map p::before { content: ""; width: 13px; height: 13px; background: var(--pa-cyan-600); -webkit-mask: var(--pa-i-map-pin) center / contain no-repeat; mask: var(--pa-i-map-pin) center / contain no-repeat; }

/* ==========================================================================
   15. Pied de page
   ========================================================================== */
.pa-footer { position: relative; overflow: hidden; margin: 0 !important; background: var(--pa-deep); color: #cbd5e1; }
.pa-footer .pa-container { padding-block: 4rem; }
@media (min-width: 1024px) { .pa-footer .pa-container { padding-block: 5rem; } }
.pa-footer__grid { display: grid; gap: 3rem; }
.pa-footer__grid > * { margin: 0 !important; }
@media (min-width: 1024px) { .pa-footer__grid { grid-template-columns: 4fr 2fr 3fr 3fr; } }
.pa-footer__brand > * { margin: 0 !important; }
.pa-footer .pa-logo__mark { background: rgba(34, 211, 238, .1); }
.pa-footer .pa-logo__name { color: #fff; }
.pa-footer .pa-logo__name span { color: var(--pa-cyan-400); }
.pa-footer__about { max-width: 20rem; margin-top: 1.25rem !important; font-size: .875rem; line-height: 1.7; color: var(--pa-slate-400); }
.pa-footer .pa-infos--footer { margin-top: 1.5rem !important; }
.pa-footer__title { margin: 0 !important; font-size: .75rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: rgba(34, 211, 238, .8); }
.pa-footer__col > * { margin: 0 !important; }
.pa-footer__list { display: grid; gap: .75rem; margin-top: 1.25rem !important; padding: 0; list-style: none; font-size: .875rem; color: var(--pa-slate-400); }
.pa-footer__list a { color: #cbd5e1; text-decoration: none; transition: color .2s; }
.pa-footer__list a:hover { color: var(--pa-rose-light); }
.pa-footer__zones { display: flex; flex-wrap: wrap; gap: .5rem; margin-top: 1.25rem !important; padding: 0; list-style: none; }
.pa-footer__zones li { padding: .25rem .75rem; border: 1px solid rgba(34, 211, 238, .15); border-radius: 999px; background: rgba(34, 211, 238, .05); font-size: .75rem; color: #cbd5e1; }
.pa-footer__zones li:nth-child(3n) { border-color: rgba(232, 136, 156, .28); background: rgba(232, 136, 156, .06); }
.pa-footer__bottom { display: flex; flex-direction: column; gap: .75rem; margin-top: 3.5rem !important; padding-top: 1.5rem; border-top: 1px solid rgba(255, 255, 255, .1); font-size: .75rem; color: var(--pa-slate-500); }
.pa-footer__bottom > * { margin: 0 !important; }
.pa-footer__bottom a { color: var(--pa-slate-400); text-decoration: none; }
.pa-footer__bottom a:hover { color: var(--pa-rose-light); }
@media (min-width: 640px) { .pa-footer__bottom { flex-direction: row; align-items: center; justify-content: space-between; } }

/* ==========================================================================
   16. Pages légales & pages simples
   ========================================================================== */
.pa-prose { max-width: 48rem; }
.pa-prose > * + * { margin-top: 1rem; }
.pa-prose h2 { margin-top: 2.5rem !important; font-size: 1.375rem; }
.pa-prose p, .pa-prose li { font-size: 1rem; line-height: 1.8; color: var(--pa-slate-600); }

/* ==========================================================================
   17. Apparition au défilement (uniquement si JavaScript est actif)
   ========================================================================== */
.pa-js .pa-reveal { opacity: 0; transform: translateY(18px); transition: opacity .8s var(--pa-ease), transform .8s var(--pa-ease); }
.pa-js .pa-reveal.is-visible { opacity: 1; transform: none; }
.pa-js .pa-h1 .pa-line > span { transform: translateY(105%); transition: transform .9s var(--pa-ease); }
.pa-js .pa-h1.is-visible .pa-line > span { transform: none; }
.pa-js .pa-h1 .pa-line:nth-child(2) > span { transition-delay: .09s; }
.pa-js .pa-h1 .pa-line:nth-child(3) > span { transition-delay: .18s; }

@media (prefers-reduced-motion: reduce) {
	.pa-js .pa-reveal, .pa-js .pa-h1 .pa-line > span { opacity: 1; transform: none; transition: none; }
	.pa-marquee.is-ready .pa-marquee__list { animation: none; }
	.wp-block-gallery.pa-slider.is-ready > figure.wp-block-image:not(#pa) img { transition: none; transform: none; }
	.wp-block-image.pa-media--hero img { transform: scale(1.04); }
	.wp-block-image.pa-hero-full__bg img { animation: none; translate: none; }
}
