/* ==========================================================================
   PACA Fermetures — feuille de style principale
   Transposition du design system de la maquette (tokens, composants, pages).
   ========================================================================== */

@font-face {
	font-family: 'Merta Sans';
	src: url('../fonts/MertaSansDemo-Bold.ttf') format('truetype');
	font-weight: 700;
	font-style: normal;
	font-display: swap;
}

/* --------------------------------------------------------------- Tokens -- */
:root {
	--ink-990: #0A0C0B; --ink-950: #0D0F0F; --ink-900: #17191A; --ink-800: #202324; --ink-700: #2C3031;
	--ink-600: #414647; --ink-500: #5C6263; --ink-400: #838A8B; --ink-300: #AEB4B4; --ink-200: #D3D7D6;
	--ink-100: #E7E9E7; --ink-50: #F2F2EE;
	--cream-100: #FBFAF7; --cream-200: #F5F3EE; --cream-300: #EAE7DF; --cream-400: #DAD6CB;
	--white: #FFFFFF;
	--azur-800: #082946; --azur-700: #0B3A63; --azur-600: #0F4C81; --azur-500: #1A639F; --azur-400: #4E8CBE;
	--green-600: #3D6B4A; --green-100: #E2EBE4; --red-600: #A32E2E; --red-100: #F3E0E0;
	--white-a08: rgba(255,255,255,.08); --white-a14: rgba(255,255,255,.14);
	--ink-a12: rgba(13,15,15,.12);

	--panel: #171A1A;
	--text-strong: var(--ink-950); --text-body: var(--ink-700); --text-muted: var(--ink-500); --text-faint: var(--ink-400);
	--text-invert: var(--cream-100); --text-invert-muted: rgba(245,243,238,.62); --text-invert-soft: rgba(245,243,238,.72);
	--border-subtle: var(--cream-400); --border-strong: var(--ink-200); --border-inverse: var(--white-a14);
	--focus-ring: 0 0 0 2px var(--cream-100), 0 0 0 4px var(--azur-500);

	--font-sans: 'Manrope', Helvetica, Arial, sans-serif;
	--font-display: 'Merta Sans', 'Manrope', Helvetica, Arial, sans-serif;
	--font-mono: 'JetBrains Mono', ui-monospace, monospace;

	--ease-out: cubic-bezier(.2,.7,.2,1);
	--gutter-x: 32px;
	--admin-bar: var(--wp-admin--admin-bar--height, 0px);
}

/* ----------------------------------------------------------------- Base -- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; scroll-padding-top: 110px; }
body {
	margin: 0;
	font-family: var(--font-sans);
	font-size: 15px;
	line-height: 1.55;
	font-weight: 400;
	color: var(--text-body);
	background: var(--ink-950);
}
h1, h2, h3, h4 { margin: 0; color: var(--text-strong); letter-spacing: -0.018em; line-height: 1.16; font-weight: 700; }
p { margin: 0; text-wrap: pretty; }
ul, ol { margin: 0; padding: 0; }
:where(a) { color: var(--azur-600); text-decoration: none; transition: color 140ms var(--ease-out); }
:where(a):hover { color: #0D4270; }
button, input, select, textarea { font: inherit; color: inherit; }
:focus-visible { outline: none; box-shadow: var(--focus-ring); border-radius: 4px; }
img { display: block; max-width: 100%; height: auto; }
.pf-icon { display: inline-flex; flex: 0 0 auto; color: currentColor; }
.pf-icon svg { display: block; width: 100%; height: 100%; }

.pf-skip { position: absolute; left: -9999px; top: 8px; z-index: 200; padding: 10px 16px; background: var(--cream-100); color: var(--ink-950); border-radius: 999px; }
.pf-skip:focus { left: 16px; }
.pf-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pf-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

.pf-main { background: var(--ink-950); }
.pf-container { max-width: 1280px; margin: 0 auto; }
.pf-section { padding-left: var(--gutter-x); padding-right: var(--gutter-x); }
.pf-section--ink { background: var(--ink-950); }
.pf-section--cream { background: var(--cream-200); }
.pf-section--white { background: var(--cream-100); }

/* Typographie */
.pf-display { font-family: var(--font-display); font-weight: 700; letter-spacing: -0.005em; }
.pf-h2 { font-family: var(--font-display); font-size: 34px; font-weight: 700; letter-spacing: -0.005em; line-height: 1.1; color: var(--ink-950); }
.pf-h2--32 { font-size: 32px; }
.pf-h2--30 { font-size: 30px; }
.pf-h2--29 { font-size: 29px; line-height: 1.2; }
.pf-h2--24 { font-size: 24px; line-height: 1.15; }
.pf-h2--fluid { font-size: clamp(26px, 2.6vw, 36px); letter-spacing: -0.01em; line-height: 1.12; text-wrap: pretty; }
.pf-invert { color: var(--cream-100); }
.pf-mt-14 { margin-top: 14px; }
.pf-mt-16 { margin-top: 16px; }
.pf-text { font-size: 15px; line-height: 1.55; color: var(--text-muted); }
.pf-text--invert { color: var(--text-invert-soft); }

.pf-label {
	display: inline-block;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
}
.pf-label--dark { color: var(--text-invert-muted); }

/* Titre de section : surtitre + h2 à gauche, texte ou bouton à droite */
.pf-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.pf-head__text { margin: 0; max-width: 420px; font-size: 15px; line-height: 1.55; color: var(--text-muted); }
.pf-head__text--400 { max-width: 400px; }
.pf-section--ink .pf-head__text { color: var(--text-invert-soft); }

/* ============================================================== En-tête == */
.pf-header {
	position: fixed;
	top: var(--admin-bar);
	left: 0;
	right: 0;
	z-index: 80;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 20px 40px;
	background: transparent;
	border-bottom: 1px solid transparent;
	transition: background 220ms var(--ease-out), border-color 220ms var(--ease-out);
}
.pf-header.is-scrolled {
	background: rgba(23,25,26,.62);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	border-bottom-color: var(--border-inverse);
}
.pf-header__logo { display: block; flex: 0 0 auto; }
.pf-header__logo img { height: 48px; width: auto; display: block; }

.pf-nav { display: flex; align-items: center; gap: 34px; }
.pf-nav__link {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 0;
	border: 0;
	background: none;
	color: rgba(245,243,238,.85);
	font-size: 17.5px;
	font-weight: 700;
	line-height: 1.55;
	padding-block: 6px;
	text-decoration: none;
	cursor: pointer;
	transition: color 140ms var(--ease-out);
}
.pf-nav__link::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: 0;
	height: 2px;
	background: currentColor;
	transform: scaleX(0);
	transition: transform 200ms var(--ease-out);
}
.pf-nav__link:hover::before,
.pf-nav__link:focus-visible::before,
.pf-nav__link.is-current::before,
.pf-nav__item.is-open > .pf-nav__link::before { transform: scaleX(1); }
.pf-nav__icon { display: inline-flex; flex-shrink: 0; }
.pf-mnav__link .pf-nav__icon { margin-right: 10px; vertical-align: -3px; }
.pf-nav__toggle { cursor: default; }
.pf-nav__toggle svg { opacity: .7; }
.pf-nav__link:hover, .pf-nav__link.is-current { color: var(--cream-100); }
.pf-nav__item { position: relative; display: flex; align-items: center; }
.pf-dropdown {
	position: absolute;
	top: 100%;
	left: -20px;
	padding-top: 16px;
	opacity: 0;
	visibility: hidden;
	transition: opacity 140ms var(--ease-out), visibility 140ms;
}
.pf-nav__item:hover .pf-dropdown,
.pf-nav__item.is-open .pf-dropdown,
.pf-nav__item:focus-within .pf-dropdown { opacity: 1; visibility: visible; }
.pf-dropdown__panel {
	padding: 20px 24px;
	background: var(--panel);
	border: 1px solid var(--border-inverse);
	border-radius: 14px;
	box-shadow: 0 18px 40px rgba(0,0,0,.45);
}
.pf-dropdown__grid { display: grid; grid-template-columns: minmax(190px, 1fr); gap: 2px 26px; }
.pf-dropdown__grid--2 { grid-template-columns: repeat(2, minmax(190px, 1fr)); }
.pf-dropdown__grid--narrow.pf-dropdown__grid--2 { grid-template-columns: repeat(2, minmax(170px, 1fr)); }
.pf-dropdown__link {
	padding: 7px 0;
	color: rgba(245,243,238,.8);
	font-size: 14.5px;
	font-weight: 600;
	white-space: nowrap;
}
.pf-dropdown__link:hover { color: var(--cream-100); }
.pf-dropdown__link.is-current { color: var(--cream-100); font-weight: 600; }
.pf-dropdown__featured {
	display: block;
	padding: 0 0 12px;
	margin-bottom: 10px;
	border-bottom: 1px solid var(--border-inverse);
	color: var(--cream-100);
	font-size: 13.5px;
	font-weight: 600;
	white-space: nowrap;
}
.pf-dropdown__featured:hover { color: var(--cream-100); }

.pf-header__actions { display: flex; align-items: center; gap: 16px; }
.pf-header__phone { font-size: 15.5px; font-weight: 700; color: var(--cream-100); white-space: nowrap; }
.pf-header__phone:hover { color: var(--cream-100); }
.pf-socials { display: flex; align-items: center; gap: 6px; }
.pf-social { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 999px; border: 1px solid var(--border-inverse); color: var(--cream-100); transition: background 140ms var(--ease-out); }
.pf-social:hover { background: var(--white-a08); color: var(--cream-100); }
.pf-burger {
	display: none;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	border: 1px solid var(--border-inverse);
	border-radius: 999px;
	background: transparent;
	color: var(--cream-100);
	cursor: pointer;
}

/* Menu mobile */
.pf-mnav {
	position: fixed;
	inset: var(--admin-bar) 0 0 0;
	z-index: 79;
	padding: 100px 24px 32px;
	background: var(--ink-950);
	overflow-y: auto;
}
.pf-mnav[hidden] { display: none; }
.pf-mnav__nav { display: flex; flex-direction: column; }
.pf-mnav__link {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 16px 0;
	border-bottom: 1px solid var(--border-inverse);
	color: var(--cream-100);
	font-family: var(--font-display);
	font-size: 24px;
	font-weight: 700;
	cursor: pointer;
	list-style: none;
}
.pf-mnav__link::-webkit-details-marker { display: none; }
.pf-mnav__link:hover { color: var(--cream-100); }
.pf-mnav__group[open] > .pf-mnav__link { border-bottom-color: transparent; }
.pf-mnav__sub { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; padding: 0 0 16px; border-bottom: 1px solid var(--border-inverse); }
.pf-mnav__sub a { padding: 8px 0; color: rgba(245,243,238,.78); font-size: 15px; }
.pf-mnav__foot { display: flex; flex-direction: column; gap: 14px; margin-top: 28px; }
.pf-mnav__foot .pf-header__phone { font-size: 17px; }
body.pf-menu-open { overflow: hidden; }

/* ============================================================== Boutons == */
.pf-btn {
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	border: 1px solid transparent;
	border-radius: 999px;
	font-family: var(--font-sans);
	font-weight: 500;
	letter-spacing: -0.005em;
	white-space: nowrap;
	text-decoration: none;
	cursor: pointer;
	transition: background 220ms var(--ease-out), transform 140ms var(--ease-out), color 220ms var(--ease-out);
}
.pf-btn:active { transform: scale(.985); }
.pf-btn__label { display: inline-flex; align-items: center; gap: 8px; }
.pf-btn__dot { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; transition: transform 220ms var(--ease-out); }
.pf-btn:hover .pf-btn__dot { transform: translateX(2px); }
.pf-btn--full { display: flex; width: 100%; }

.pf-btn--sm { height: 36px; padding: 0 16px; font-size: 13.5px; gap: 10px; }
.pf-btn--sm.has-arrow { padding: 0 5.6px 0 16px; }
.pf-btn--sm .pf-btn__dot { width: 22px; height: 22px; }
.pf-btn--md { height: 44px; padding: 0 20px; font-size: 15px; gap: 12px; }
.pf-btn--md.has-arrow { padding: 0 7px 0 20px; }
.pf-btn--md .pf-btn__dot { width: 26px; height: 26px; }
.pf-btn--lg { height: 54px; padding: 0 26px; font-size: 17px; gap: 16px; }
.pf-btn--lg.has-arrow { padding: 0 9.1px 0 26px; }
.pf-btn--lg .pf-btn__dot { width: 32px; height: 32px; }

.pf-btn--primary, .pf-btn--ghost-inverse { background: var(--ink-950); color: var(--cream-100); }
.pf-btn--primary:hover, .pf-btn--ghost-inverse:hover { background: var(--ink-800); color: var(--cream-100); }
.pf-btn--primary .pf-btn__dot, .pf-btn--ghost-inverse .pf-btn__dot { background: var(--white-a14); }
.pf-btn--invert { background: var(--cream-100); color: var(--ink-950); }
.pf-btn--invert:hover { background: var(--white); color: var(--ink-950); }
.pf-btn--invert .pf-btn__dot { background: var(--ink-a12); }
.pf-btn--accent { background: var(--azur-600); color: var(--cream-100); }
.pf-btn--accent:hover { background: var(--azur-700); color: var(--cream-100); }
.pf-btn--accent .pf-btn__dot { background: var(--white-a14); }
.pf-btn--outline { background: transparent; color: var(--ink-950); border-color: var(--border-strong); }
.pf-btn--outline:hover { background: var(--ink-a12); color: var(--ink-950); }
.pf-btn--outline .pf-btn__dot { background: var(--ink-a12); }
.pf-btn--outline-invert { background: transparent; color: var(--cream-100); border-color: var(--border-inverse); }
.pf-btn--outline-invert:hover { background: var(--white-a08); color: var(--cream-100); }
.pf-btn--outline-invert .pf-btn__dot { background: var(--white-a14); }

.pf-actions { display: flex; gap: 12px; flex-wrap: wrap; }

/* ======================================================= Petits composants */
.pf-crumbs {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-invert-muted);
}
.pf-crumbs a { color: var(--text-invert-muted); }
.pf-crumbs a:hover { color: var(--cream-100); }
.pf-crumbs__sep { opacity: .5; }
.pf-crumbs__current { color: var(--cream-100); }

/* Tuile (FeatureTile) */
.pf-tile {
	display: flex;
	flex-direction: column;
	gap: 14px;
	min-height: 168px;
	padding: 22px;
	border-radius: 14px;
	transition: background 220ms var(--ease-out);
}
.pf-tile__title { font-size: 18px; font-weight: 700; letter-spacing: -0.018em; }
.pf-tile__text { font-size: 13.5px; line-height: 1.55; }
.pf-tile--dark { background: var(--ink-800); border: 1px solid var(--border-inverse); }
.pf-tile--dark:hover { background: var(--ink-700); }
.pf-tile--dark .pf-tile__icon, .pf-tile--dark .pf-tile__title { color: var(--cream-100); }
.pf-tile--dark .pf-tile__text { color: var(--text-invert-muted); }
.pf-tile--light { background: var(--cream-100); border: 1px solid var(--border-subtle); }
.pf-tile--light:hover { background: var(--white); }
.pf-tile--light .pf-tile__icon, .pf-tile--light .pf-tile__title { color: var(--ink-950); }
.pf-tile--light .pf-tile__text { color: var(--text-muted); }

/* Rangée de 4 tuiles séparées par un filet */
.pf-tiles-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.pf-tiles-row > div { display: flex; }
.pf-tiles-row .pf-tile { flex: 1; }

/* Chiffre (StatBlock) */
.pf-stat { display: flex; align-items: center; gap: 16px; }
.pf-stat__icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; flex: 0 0 auto; border-radius: 10px; }
.pf-stat__body { display: flex; flex-direction: column; gap: 2px; }
.pf-stat__value { font-size: 32px; font-weight: 800; letter-spacing: -0.03em; line-height: 1; }
.pf-stat__label { font-size: 12px; line-height: 1.35; }
.pf-stat--dark .pf-stat__icon { background: var(--white-a08); color: var(--cream-100); }
.pf-stat--dark .pf-stat__value { color: var(--cream-100); }
.pf-stat--dark .pf-stat__label { color: var(--text-invert-muted); }
.pf-stat--light .pf-stat__icon { background: var(--cream-300); color: var(--ink-950); }
.pf-stat--light .pf-stat__value { color: var(--ink-950); }
.pf-stat--light .pf-stat__label { color: var(--text-muted); }

/* Étape (StepItem) */
.pf-step {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 16px;
	min-height: 150px;
	background: var(--cream-100);
	border: 1px solid var(--border-subtle);
	border-radius: 10px;
}
.pf-step__index { font-size: 10.5px; font-weight: 600; letter-spacing: 0.14em; color: var(--text-faint); }
.pf-step__head { display: flex; align-items: flex-start; gap: 9px; }
.pf-step__icon { margin-top: 2px; color: var(--ink-950); }
.pf-step__title { font-size: 13.5px; font-weight: 700; line-height: 1.3; letter-spacing: -0.018em; color: var(--ink-950); }
.pf-step__text { font-size: 12px; line-height: 1.5; color: var(--text-muted); }

/* Cadre photo (MediaFrame) */
.pf-media { position: relative; overflow: hidden; border-radius: 14px; background: var(--ink-900); }
.pf-media img { width: 100%; height: 100%; object-fit: cover; }
.pf-media--empty { background: var(--ink-800); border: 1px dashed var(--white-a14); }
.pf-media__placeholder {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	color: var(--text-invert-muted);
}
.pf-media__placeholder span { font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; }

/* Liste à coches */
.pf-checklist { list-style: none; padding: 0; margin: 26px 0 0; }
.pf-checklist li {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 0;
	border-top: 1px solid var(--border-subtle);
	font-size: 14px;
	color: var(--ink-700);
}
.pf-checklist li:last-child { border-bottom: 1px solid var(--border-subtle); }

/* ================================================================ Cartes == */
.pf-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 14px;
	text-decoration: none;
	transition: transform 220ms var(--ease-out);
}
.pf-card:hover { transform: translateY(-2px); }
.pf-card__media { overflow: hidden; }
.pf-card__media--cover { aspect-ratio: 16 / 11; background: var(--white); }
.pf-card__media--cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.pf-card__media--contain {
	aspect-ratio: 16 / 11;
	background: var(--cream-200);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 16px;
}
.pf-card__media--43 { aspect-ratio: 4 / 3; }
.pf-card__media--contain img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; }
.pf-card__body { display: flex; flex-direction: column; gap: 8px; padding: 20px; }
.pf-card__title { font-family: var(--font-display); font-size: 22px; font-weight: 700; letter-spacing: -0.005em; line-height: 1.15; color: var(--ink-950); }
.pf-card__text { font-size: 13.5px; line-height: 1.5; color: var(--text-muted); }
.pf-card__name { font-size: 15px; font-weight: 800; letter-spacing: 0.01em; text-transform: uppercase; color: var(--ink-950); }

.pf-card--family, .pf-card--product, .pf-card--link, .pf-card--real { background: var(--white); border: 1px solid var(--border-subtle); }

.pf-card--category { background: var(--panel); border: 1px solid var(--border-inverse); }
.pf-card--category .pf-card__title { font-size: 21px; color: var(--cream-100); letter-spacing: 0; line-height: 1.55; }
.pf-card--category .pf-card__text { color: var(--text-invert-muted); }

.pf-card__body--product { padding: 16px 18px; }

.pf-card--link { flex-direction: row; align-items: center; justify-content: space-between; gap: 20px; padding: 18px 20px; }
.pf-card--link .pf-label { white-space: nowrap; }

.pf-card--real .pf-media--ink { background: var(--ink-950); }
.pf-card--real .pf-media--empty { background: var(--ink-800); }
.pf-card__body--real { gap: 10px; padding: 22px; }
.pf-meta-line {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	font-size: 10.5px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--text-muted);
}
.pf-meta-line__sep { opacity: .5; }
.pf-card__headline { font-family: var(--font-display); font-size: 20px; font-weight: 700; letter-spacing: -0.005em; line-height: 1.22; color: var(--ink-950); }
.pf-card__headline--sm { font-size: 19px; line-height: 1.25; }
.pf-card__excerpt { font-size: 14px; line-height: 1.55; color: var(--text-muted); }
.pf-card__foot { margin-top: 6px; padding-top: 14px; border-top: 1px solid var(--border-subtle); font-size: 12px; color: var(--text-muted); }
.pf-card__foot--sm { margin-top: 4px; }

.pf-card--real-dark { background: var(--panel); border: 1px solid var(--border-inverse); }
.pf-card__body--real-dark { padding: 18px 20px 20px; }
.pf-card__lead { font-size: 15px; font-weight: 600; line-height: 1.4; color: var(--cream-100); }

.pf-grid { display: grid; gap: 20px; }
.pf-grid--2 { grid-template-columns: repeat(2, 1fr); }
.pf-grid--3 { grid-template-columns: repeat(3, 1fr); }
.pf-grid--4 { grid-template-columns: repeat(4, 1fr); }
.pf-grid--6 { grid-template-columns: repeat(6, 1fr); }

/* ========================================================== Formulaires == */
.pf-form { display: flex; flex-direction: column; gap: 14px; }
.pf-form__row { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.pf-form__row--160 { grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }
.pf-form__foot { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.pf-form__notice { padding: 14px 16px; border-radius: 10px; font-size: 14px; line-height: 1.5; }
.pf-form__notice--ok { background: rgba(61,107,74,.22); color: #D8EADD; border: 1px solid rgba(61,107,74,.6); }
.pf-form__notice--error { background: rgba(163,46,46,.2); color: #F3D6D6; border: 1px solid rgba(163,46,46,.55); }

.pf-input { display: flex; flex-direction: column; gap: 7px; width: 100%; }
.pf-input > label { font-size: 12px; font-weight: 500; color: var(--text-invert-muted); }
.pf-input__box {
	display: flex;
	align-items: center;
	gap: 10px;
	height: 50px;
	padding: 0 16px;
	background: var(--white-a08);
	border: 1px solid var(--border-inverse);
	border-radius: 10px;
	color: var(--text-invert-muted);
	transition: border-color 220ms var(--ease-out);
}
.pf-input__box:focus-within { border-color: var(--azur-400); }
.pf-input input, .pf-input textarea, .pf-select select { color: var(--cream-100); }
.pf-input input {
	flex: 1;
	min-width: 0;
	height: 100%;
	border: none;
	background: transparent;
	outline: none;
	font-size: 15px;
}
.pf-input input:focus-visible, .pf-input textarea:focus-visible, .pf-select select:focus-visible { box-shadow: none; }
.pf-input ::placeholder { color: rgba(245,243,238,.42); opacity: 1; }
.pf-input textarea {
	padding: 14px 16px;
	background: var(--white-a08);
	border: 1px solid var(--border-inverse);
	border-radius: 10px;
	outline: none;
	resize: vertical;
	font-size: 15px;
	line-height: 1.55;
	transition: border-color 220ms var(--ease-out);
}
.pf-input textarea:focus { border-color: var(--azur-400); }
.pf-select { position: relative; display: flex; align-items: center; }
.pf-select select {
	width: 100%;
	height: 50px;
	padding: 0 42px 0 16px;
	-webkit-appearance: none;
	appearance: none;
	background: var(--white-a08);
	border: 1px solid var(--border-inverse);
	border-radius: 10px;
	outline: none;
	font-size: 15px;
	cursor: pointer;
	transition: border-color 220ms var(--ease-out);
}
.pf-select select:focus { border-color: var(--azur-400); }
.pf-select option { color: var(--ink-950); background: var(--cream-100); }
.pf-select .pf-icon { position: absolute; right: 15px; pointer-events: none; color: var(--text-invert-muted); }

.pf-check { position: relative; display: inline-flex; align-items: flex-start; gap: 11px; cursor: pointer; font-size: 13.5px; color: var(--cream-100); }
.pf-check input { position: absolute; opacity: 0; width: 19px; height: 19px; margin: 1px 0 0; cursor: pointer; }
.pf-check__box {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 19px;
	height: 19px;
	margin-top: 1px;
	flex: 0 0 auto;
	border-radius: 4px;
	background: var(--white-a08);
	border: 1px solid var(--border-inverse);
	color: var(--ink-950);
	transition: all 220ms var(--ease-out);
}
.pf-check__box .pf-icon { opacity: 0; }
.pf-check input:checked + .pf-check__box { background: var(--cream-100); border-color: transparent; }
.pf-check input:checked + .pf-check__box .pf-icon { opacity: 1; }
.pf-check input:focus-visible + .pf-check__box { box-shadow: 0 0 0 2px var(--ink-950), 0 0 0 4px var(--azur-400); }
.pf-check__label { line-height: 1.3; }
.pf-check__label a { color: var(--cream-100); text-decoration: underline; text-decoration-color: rgba(245,243,238,.35); text-underline-offset: 3px; }
.pf-check__label a:hover { color: var(--cream-100); text-decoration: underline; }

/* Sections image + texte */
.pf-msec { padding-top: 0; padding-bottom: 104px; }
.pf-section--ink.pf-msec { padding-top: 104px; margin-bottom: 104px; }
.pf-msec .pf-h2 { margin-top: 16px; }
.pf-msec__body p { margin: 14px 0 0; max-width: 480px; font-size: 15px; line-height: 1.6; color: var(--text-muted); }
.pf-section--ink .pf-msec__body p { color: var(--text-invert-soft); }
.pf-msec__body a { font-weight: 600; }
.pf-section--ink .pf-msec__body a { color: var(--cream-100); text-decoration: underline; }
.pf-msec .pf-btn { margin-top: 28px; }
.pf-msec--left .pf-split { grid-template-columns: 1fr 1.1fr; }
.pf-msec--left .pf-msec__text { order: 2; }
@media (max-width: 1024px) { .pf-msec--left .pf-split { grid-template-columns: 1fr; } .pf-msec--left .pf-msec__text { order: 0; } }

/* Contact Form 7 */
.pf-form--cf7 .wpcf7-form-control-wrap { display: block; flex: 1; min-width: 0; }
.pf-form--cf7 .pf-input__box .wpcf7-form-control-wrap { height: 100%; display: flex; align-items: center; }
.pf-form--cf7 .pf-input__box input { width: 100%; }
.pf-form--cf7 .pf-select .wpcf7-form-control-wrap { width: 100%; }
.pf-form--cf7 textarea { width: 100%; display: block; }
.pf-form--cf7 .pf-input__box:has(.wpcf7-not-valid), .pf-form--cf7 textarea.wpcf7-not-valid, .pf-form--cf7 select.wpcf7-not-valid { border-color: #C75A5A; }
.pf-form--cf7 .wpcf7-not-valid-tip { display: block; margin-top: 6px; font-size: 12px; color: #F0A8A8; }
.pf-form--cf7 .pf-input__box .wpcf7-not-valid-tip { position: absolute; margin: 0; transform: translateY(34px); }
.pf-form--cf7 .pf-input__box { position: relative; }
.pf-form--cf7 .pf-input { margin-bottom: 0; }
.pf-form--cf7 p { margin: 0; }
.pf-form--cf7 br { display: none; }
.pf-check--cf7 .wpcf7-list-item { margin: 0; }
.pf-check--cf7 label { position: relative; display: inline-flex; align-items: flex-start; gap: 11px; cursor: pointer; font-size: 13.5px; line-height: 1.3; color: var(--cream-100); }
.pf-check--cf7 input[type=checkbox] { position: absolute; opacity: 0; width: 19px; height: 19px; margin: 1px 0 0; cursor: pointer; }
.pf-check--cf7 .wpcf7-list-item-label::before {
	content: ''; display: inline-block; vertical-align: -4px; width: 19px; height: 19px; margin-right: 11px; border-radius: 4px;
	background: var(--white-a08) no-repeat center / 13px; border: 1px solid var(--border-inverse); transition: all 220ms var(--ease-out);
}
.pf-check--cf7 input:checked + .wpcf7-list-item-label::before {
	background-color: var(--cream-100); border-color: transparent;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230D0F0F' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
.pf-check--cf7 input:focus-visible + .wpcf7-list-item-label::before { box-shadow: 0 0 0 2px var(--ink-950), 0 0 0 4px var(--azur-400); }
.pf-check--cf7 a { color: var(--cream-100); text-decoration: underline; text-decoration-color: rgba(245,243,238,.35); text-underline-offset: 3px; }
.pf-form--cf7 .wpcf7-spinner { margin: 0 0 0 12px; }
.pf-form--cf7 .pf-form__foot { position: relative; }
.pf-form--cf7 .wpcf7-response-output { margin: 4px 0 0 !important; padding: 14px 16px !important; border-radius: 10px; font-size: 14px; line-height: 1.5; color: var(--cream-100); border: 1px solid var(--border-inverse) !important; }
.pf-form--cf7.sent .wpcf7-response-output { background: rgba(61,107,74,.22); border-color: rgba(61,107,74,.6) !important; color: #D8EADD; }
.pf-form--cf7.invalid .wpcf7-response-output, .pf-form--cf7.failed .wpcf7-response-output, .pf-form--cf7.unaccepted .wpcf7-response-output { background: rgba(163,46,46,.2); border-color: rgba(163,46,46,.55) !important; color: #F3D6D6; }
.pf-form--cf7 .pf-btn[disabled] { opacity: .5; cursor: not-allowed; }

/* ======================================================== Pied de page == */
.pf-footer { background: var(--ink-950); padding: 40px 32px 28px; border-top: 1px solid var(--border-inverse); }
.pf-footer__grid { max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: 1.3fr 1fr 1.1fr 1fr 1fr; gap: 32px; }
.pf-footer__brand { display: inline-flex; flex-direction: column; line-height: 1; color: var(--cream-100); }
.pf-footer__brand:hover { color: var(--cream-100); }
.pf-footer__brand img { height: 48px; width: auto; display: block; }
.pf-footer__about { margin: 16px 0 0; max-width: 240px; font-size: 13.5px; line-height: 1.55; color: var(--text-invert-muted); }
.pf-footer__title { font-size: 10.5px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-invert-muted); }
.pf-footer__list { list-style: none; padding: 0; margin: 14px 0 0; display: flex; flex-direction: column; gap: 9px; }
.pf-footer__list a { font-size: 13.5px; color: var(--cream-100); opacity: .82; }
.pf-footer__list a:hover { opacity: 1; color: var(--cream-100); }
.pf-footer__list--contact li { font-size: 13.5px; color: var(--cream-100); opacity: .82; }
.pf-footer__list--contact a { font-size: inherit; opacity: 1; }
.pf-footer__bottom {
	max-width: 1280px;
	margin: 28px auto 0;
	padding-top: 16px;
	border-top: 1px solid var(--border-inverse);
	display: flex;
	justify-content: space-between;
	gap: 16px;
	font-size: 12px;
	color: var(--text-invert-muted);
}

.pf-footer__legal { display: flex; flex-wrap: wrap; gap: 6px 20px; }
.pf-footer__legal a { color: var(--text-invert-muted); }
.pf-footer__legal a:hover { color: var(--cream-100); }

/* =================================================== Accueil — Hero ===== */
@keyframes pfHintDown { 0%, 100% { transform: translateY(0); opacity: .5; } 50% { transform: translateY(7px); opacity: 1; } }
@keyframes pfLevitate {
	0%, 100% { transform: translate(-50%, -50%) translateY(calc(var(--fl, 12px) * -1)); }
	50% { transform: translate(-50%, -50%) translateY(var(--fl, 12px)); }
}
/* Hero d'accueil */
.pf-hero-home { position: relative; min-height: 100vh; min-height: 100svh; display: flex; align-items: center; justify-content: center; overflow: hidden; background: var(--ink-950); color: var(--cream-100); }
.pf-hero-home__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.pf-hero-home__video { width: 100%; height: 100%; object-fit: cover; display: block; }
.pf-hero-home__scrim { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,12,11,.55) 0%, rgba(10,12,11,.45) 45%, rgba(10,12,11,.75) 100%); }
.pf-hero-home__content { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; max-width: 1000px; padding: 140px var(--gutter-x) 80px; }
.pf-hero-home__badge { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 20px; padding: 6px 16px; border: 1px solid rgba(255,255,255,.2); border-radius: 999px; background: rgba(255,255,255,.1); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); font-size: 14px; font-weight: 600; color: var(--text-invert-soft); }
.pf-hero-home__title { margin: 0 0 24px; font-family: var(--font-display); font-size: clamp(32px, 4.2vw, 58px); font-weight: 700; line-height: 1.1; letter-spacing: -.015em; word-spacing: -.05em; text-wrap: balance; color: var(--cream-100); }
.pf-hero-home__grad { background: linear-gradient(90deg, #fff, rgba(255,255,255,.6)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.pf-hero-home__text { margin: 0 0 32px; max-width: 640px; font-size: 18px; line-height: 1.6; color: var(--text-invert-soft); }
.pf-hero-home .pf-actions { justify-content: center; }
.pf-hero-home__stats { display: flex; align-items: center; gap: 32px; margin-top: 48px; font-size: 14px; color: var(--text-invert-muted); }
.pf-hero-home__value { font-size: 26px; font-weight: 700; color: var(--cream-100); }
.pf-hero-home__sep { width: 1px; height: 34px; background: var(--border-inverse); }
.pf-hero-home__in { opacity: 0; animation: pf-hero-in 500ms ease-out forwards; }
.pf-hero-home__in:nth-child(1) { animation-delay: 100ms; }
.pf-hero-home__in:nth-child(2) { animation-delay: 250ms; }
.pf-hero-home__in:nth-child(3) { animation-delay: 400ms; }
.pf-hero-home__in:nth-child(4) { animation-delay: 550ms; }
.pf-hero-home__in:nth-child(5) { animation-delay: 700ms; }
@keyframes pf-hero-in { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .pf-hero-home__in { animation: none; opacity: 1; } }
@media (max-width: 600px) {
	.pf-hero-home__content { padding: 120px 16px 56px; }
	.pf-hero-home__text { font-size: 16px; }
	.pf-hero-home__stats { gap: 16px; }
	.pf-hero-home__value { font-size: 21px; }
}

.pf-window { position: relative; background: var(--ink-950); }
.pf-window__sticky { position: sticky; top: 0; height: 100vh; overflow: hidden; background: var(--ink-950); }
.pf-window__zoom { position: absolute; inset: 0; will-change: transform; transform-origin: 50% 50%; }
.pf-window__land {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 114vw;
	height: 114vh;
	will-change: transform;
	background-size: cover;
	background-position: center;
}
.pf-window__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pf-window__opening {
	position: absolute;
	left: 50%;
	top: 50%;
	width: min(460px, 70vw);
	height: min(580px, 62vh);
	transform: translate(-50%, -50%);
	animation: pfLevitate 6.5s ease-in-out infinite;
	box-shadow: 0 0 0 300vmax var(--ink-950);
}
/* Fenêtre 3D (modèle fournisseur) : ouverture aux proportions du tableau réel, châssis CSS masqué une fois le modèle chargé. */
.pf-window[data-model] .pf-window__opening { width: min(560px, 76vw, calc(60vh * 1.157)); height: auto; aspect-ratio: 1476 / 1276; }
.pf-window.is-3d .pf-window__opening > :not(.pf-window__3d) { display: none; }
.pf-window__3d { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); pointer-events: none; }
.pf-window__intro { position: absolute; inset: 0; pointer-events: none; }
/* Zoom terminé : fenêtre masquée (hors champ), photo re-rendue sans couche GPU réduite. */
.pf-window.is-zoomed .pf-window__opening { visibility: hidden; }
.pf-window.is-zoomed .pf-window__zoom, .pf-window.is-zoomed .pf-window__land { will-change: auto; }
.pf-window__word {
	position: absolute;
	top: calc(9vh + 62px);
	left: 32px;
	right: 32px;
	font-family: var(--font-display);
	font-weight: 700;
	font-size: clamp(56px, 9.5vw, 150px);
	letter-spacing: -0.005em;
	line-height: .92;
	color: var(--cream-100);
}
.pf-window__hint { position: absolute; bottom: 51px; left: 0; right: 0; display: flex; flex-direction: column; align-items: center; gap: 10px; }
.pf-window__cta {
	pointer-events: auto;
	display: inline-flex;
	align-items: center;
	gap: 12px;
	height: 52px;
	padding: 0 8px 0 24px;
	border: 1px solid var(--border-inverse);
	border-radius: 999px;
	background: rgba(23,25,26,.62);
	-webkit-backdrop-filter: blur(14px);
	backdrop-filter: blur(14px);
	color: var(--cream-100);
	font-family: var(--font-sans);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background 220ms var(--ease-out), border-color 220ms var(--ease-out), transform 140ms var(--ease-out);
}
.pf-window__cta:hover { background: rgba(32,35,36,.85); border-color: rgba(255,255,255,.3); }
.pf-window__cta:active { transform: scale(.985); }
.pf-window__cta .pf-window__chev { display: inline-flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 999px; background: var(--cream-100); color: var(--ink-950); }
.pf-window__chev { display: inline-flex; color: var(--cream-100); }
.pf-window__chev .pf-icon { animation: pfHintDown 1.8s ease-in-out infinite; }
.pf-window__final { position: absolute; inset: 0; opacity: 0; pointer-events: none; }
.pf-window__scrim {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 62vh;
	background: linear-gradient(to top, rgba(10,12,11,.92) 0%, rgba(10,12,11,.55) 45%, rgba(10,12,11,0) 100%);
}
.pf-window__content { position: absolute; left: 32px; right: 32px; bottom: 48px; max-width: 620px; }
.pf-window__title {
	margin: 0;
	font-family: var(--font-display);
	font-size: clamp(30px, 3.5vw, 46px);
	font-weight: 700;
	letter-spacing: -0.005em;
	line-height: 1.04;
	color: var(--cream-100);
}
.pf-window__text { margin: 16px 0 0; max-width: 440px; font-size: 15px; line-height: 1.55; color: var(--text-invert-soft); }
.pf-window__content .pf-actions { margin-top: 26px; }

/* ================================================== Accueil — sections == */
.pf-home-services { padding-top: 64px; padding-bottom: 64px; }
.pf-home-catalog { padding-top: 40px; padding-bottom: 104px; }
.pf-home-catalog .pf-grid { margin-top: 36px; }

.pf-band { position: relative; height: 64vh; min-height: 420px; overflow: hidden; }
.pf-band__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.pf-band__scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(10,12,11,.88) 0%, rgba(10,12,11,.35) 40%, rgba(10,12,11,0) 75%); }
.pf-band__content { position: absolute; left: 32px; right: 32px; bottom: 40px; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; flex-wrap: wrap; }
.pf-band__title { font-family: var(--font-display); font-size: 24px; font-weight: 700; letter-spacing: -0.005em; color: var(--cream-100); }

.pf-split { display: grid; gap: 56px; align-items: center; }
.pf-split--about { grid-template-columns: 1.1fr 1fr; }
.pf-home-about { padding-top: 104px; padding-bottom: 104px; }
.pf-home-about .pf-h2 { margin-top: 16px; }
.pf-home-about .pf-text { margin-top: 14px; max-width: 420px; }
.pf-home-about .pf-btn { margin-top: 28px; }

.pf-statbar { display: grid; grid-template-columns: repeat(4, 1fr); background: var(--ink-950); border-radius: 20px; padding: 30px 8px; }
.pf-statbar > div { padding: 0 26px; }
.pf-statbar > div + div { border-left: 1px solid var(--border-inverse); }

.pf-home-steps { padding-top: 64px; padding-bottom: 104px; }
.pf-home-steps .pf-h2 { margin: 0 0 28px; }

.pf-home-contact { padding-bottom: 104px; }
.pf-contact-box {
	background: var(--ink-950);
	border-radius: 20px;
	padding: 32px;
	display: grid;
	grid-template-columns: minmax(240px, 1fr) minmax(0, 1.5fr);
	gap: 32px;
}
.pf-contact-box__text { margin: 14px 0 0; font-size: 13.5px; line-height: 1.55; color: var(--text-invert-muted); }
.pf-contact-box__phone { display: inline-block; margin-top: 22px; font-size: 15px; font-weight: 600; color: var(--cream-100); }
.pf-contact-box__phone:hover { color: var(--cream-100); }
.pf-contact-box__hours { font-size: 12px; color: var(--text-invert-muted); }
.pf-contact-box--panel { background: var(--panel); border: 1px solid var(--border-inverse); grid-template-columns: minmax(240px, 1fr) minmax(0, 1.6fr); gap: 40px; }

.pf-faq { padding-bottom: 104px; }
.pf-faq__grid {
	padding-top: 88px;
	border-top: 1px solid var(--border-subtle);
	display: grid;
	grid-template-columns: minmax(260px, .8fr) 1.6fr;
	gap: 64px;
	align-items: start;
}
.pf-sticky { position: sticky; top: calc(96px + var(--admin-bar)); }
.pf-faq__intro { margin: 14px 0 0; max-width: 300px; font-size: 15px; line-height: 1.55; color: var(--text-muted); }
.pf-faq__list { border-top: 1px solid var(--border-subtle); }
.pf-faq__item { border-bottom: 1px solid var(--border-subtle); }
.pf-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 22px 8px;
	cursor: pointer;
	list-style: none;
}
.pf-faq__q::-webkit-details-marker { display: none; }
.pf-faq__q span:first-child { font-family: var(--font-display); font-size: 19px; font-weight: 700; letter-spacing: -0.005em; line-height: 1.3; color: var(--ink-950); }
.pf-faq__icon { flex: 0 0 auto; display: inline-flex; color: var(--ink-950); transition: transform 220ms var(--ease-out); }
.pf-faq__item[open] .pf-faq__icon { transform: rotate(45deg); }
.pf-faq__a { padding: 0 64px 24px 8px; }
.pf-faq__a p { margin: 0; max-width: 720px; font-size: 15px; line-height: 1.6; color: var(--text-muted); }

/* ================================================ Héros des pages internes */
.pf-hero-photo { position: relative; overflow: hidden; background: var(--ink-950); }
.pf-hero-photo__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.pf-hero-photo__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pf-hero-photo__scrim { position: absolute; inset: 0; }

/* Famille / catégorie */
.pf-hero-family { height: 70vh; min-height: 520px; }
.pf-hero-family .pf-hero-photo__scrim { background: linear-gradient(to top, rgba(10,12,11,.92) 0%, rgba(10,12,11,.45) 45%, rgba(10,12,11,.25) 100%); }
.pf-hero-family__content { position: absolute; left: 32px; right: 32px; bottom: 96px; max-width: 900px; }
.pf-hero-family h1 {
	margin: 16px 0 0;
	font-family: var(--font-display);
	font-size: clamp(38px, 6vw, 84px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: .94;
	color: var(--cream-100);
}
.pf-hero-family__text { margin: 18px 0 0; max-width: 520px; font-size: 15px; line-height: 1.55; color: var(--text-invert-soft); }
.pf-hero-family .pf-actions { margin-top: 26px; }

.pf-family-cats { position: relative; z-index: 1; padding-bottom: 80px; }
.pf-family-cats__grid { max-width: 1280px; margin: -52px auto 0; }
.pf-family-cats__stats { max-width: 1280px; margin: 56px auto 0; }
.pf-family-cats--flat { padding-top: 64px; }
.pf-family-cats--flat .pf-family-cats__stats { margin-top: 0; }

.pf-cat-section { padding-top: 72px; padding-bottom: 72px; border-top: 1px solid var(--border-subtle); }
.pf-cat-section .pf-h2 { margin-top: 14px; }
.pf-cat-section .pf-grid { margin-top: 32px; }

/* Produit */
.pf-hero-product { min-height: 86vh; }
.pf-hero-product .pf-hero-photo__scrim { background: linear-gradient(to top, rgba(10,12,11,.95) 0%, rgba(10,12,11,.55) 50%, rgba(10,12,11,.3) 100%); }
.pf-hero-inner { position: relative; max-width: 1280px; margin: 0 auto; padding: 150px 32px 64px; }
.pf-hero-title {
	margin: 18px 0 0;
	font-family: var(--font-display);
	font-size: clamp(40px, 6.5vw, 92px);
	font-weight: 700;
	letter-spacing: -0.025em;
	line-height: .94;
	color: var(--cream-100);
}
.pf-hero-lead { margin: 14px 0 0; max-width: 560px; font-size: 17px; line-height: 1.5; color: rgba(245,243,238,.82); }
.pf-hero-inner .pf-actions { margin-top: 28px; }
.pf-specs { display: grid; grid-template-columns: repeat(6, 1fr); gap: 14px; margin-top: 52px; }
.pf-spec { display: flex; flex-direction: column; gap: 8px; padding: 22px; background: var(--panel); border: 1px solid var(--border-inverse); border-radius: 14px; }
.pf-spec__value { font-family: var(--font-display); font-size: 25px; font-weight: 700; letter-spacing: -0.01em; color: var(--cream-100); }
.pf-spec__label { font-size: 10.5px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; line-height: 1.5; color: var(--text-invert-muted); }

.pf-product-desc { padding-top: 96px; padding-bottom: 96px; }
.pf-split--desc { grid-template-columns: 1fr 1.15fr; gap: 64px; align-items: start; }
.pf-product-desc .pf-h2 { margin-top: 14px; }
.pf-product-desc__text p { margin: 14px 0 0; font-size: 15px; line-height: 1.6; color: var(--text-muted); }
.pf-product-desc__text p:first-child { margin-top: 18px; }
.pf-product-desc .pf-btn { margin-top: 28px; }
.pf-equip { list-style: none; padding: 0; margin: 16px 0 0; border-top: 1px solid var(--border-subtle); }
.pf-equip li { display: flex; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--border-subtle); }
.pf-equip__icon { flex: 0 0 auto; margin-top: 3px; color: var(--azur-600); }
.pf-equip__icon .pf-icon { display: inline-flex; }
.pf-equip span:last-child { font-size: 15px; line-height: 1.5; color: var(--ink-950); }
.pf-gallery { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 36px; }
.pf-gallery__item { aspect-ratio: 4 / 3; background: var(--cream-200); display: flex; align-items: center; justify-content: center; padding: 16px; overflow: hidden; }
.pf-gallery__item img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; mix-blend-mode: multiply; }

.pf-finishes { padding-bottom: 96px; }
.pf-finishes .pf-head { padding-top: 32px; border-top: 1px solid var(--border-subtle); }
.pf-swatches { display: grid; grid-template-columns: repeat(6, 1fr); gap: 20px; margin-top: 32px; }
.pf-swatch { display: flex; flex-direction: column; gap: 8px; }
.pf-swatch__chip { height: 76px; border-radius: 10px; border: 1px solid var(--border-subtle); background-size: cover; background-position: center; }
.pf-swatch__name { font-size: 13.5px; font-weight: 600; color: var(--ink-950); }
.pf-swatch__code { font-size: 12px; color: var(--text-muted); }
.pf-swatch.is-extra { display: none; }
.pf-swatches.is-expanded .pf-swatch.is-extra { display: flex; }
.pf-finishes__more { margin-top: 28px; }
.pf-finishes + .pf-models { padding-top: 0; }
.pf-model__img { aspect-ratio: 3 / 4; border-radius: 10px; border: 1px solid var(--border-subtle); background: var(--white); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.pf-model__img img { width: 100%; height: 100%; object-fit: contain; display: block; }

.pf-care { padding-top: 96px; padding-bottom: 96px; }
.pf-care .pf-grid, .pf-compare .pf-grid { margin-top: 32px; }
.pf-compare { padding-top: 96px; padding-bottom: 96px; }
.pf-compare .pf-h2 { margin-top: 14px; }

.pf-cta-band__grid { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
.pf-cta-band__text { margin: 14px 0 0; max-width: 440px; font-size: 15px; line-height: 1.55; color: var(--text-invert-soft); }
.pf-cta-band__phone { display: inline-block; margin-top: 22px; font-size: 15px; font-weight: 600; color: var(--cream-100); }
.pf-cta-band__phone:hover { color: var(--cream-100); }
.pf-cta-band__actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; }

/* Héros sombres simples (Contact, Réalisations, pages) */
.pf-hero-plain { padding-top: 150px; padding-bottom: 72px; }
/* Hero produit : contenu centré en bas de la vidéo, chiffres encadrés (façon Drutex) */
.pf-hero-product { min-height: 100vh; min-height: 100svh; display: flex; align-items: flex-end; }
.pf-hero-product .pf-hero-photo__scrim { background: linear-gradient(to top, rgba(10,12,11,.88) 0%, rgba(10,12,11,.45) 40%, rgba(10,12,11,.15) 100%); }
.pf-hero-product .pf-hero-inner { width: 100%; max-width: 1100px; padding-top: 140px; padding-bottom: 56px; display: flex; flex-direction: column; align-items: center; text-align: center; }
.pf-hero-product .pf-hero-lead { margin-inline: auto; max-width: 640px; }
.pf-hero-product .pf-actions, .pf-hero-product .pf-crumbs { justify-content: center; }
.pf-hero-product .pf-specs { display: flex; flex-wrap: wrap; justify-content: center; gap: 28px 24px; margin-top: 44px; }
.pf-hero-product .pf-spec { align-items: center; gap: 12px; padding: 0; background: none; border: 0; border-radius: 0; min-width: 0; }
.pf-hero-product .pf-spec__value { display: inline-flex; align-items: center; justify-content: center; min-width: 88px; padding: 12px 20px; border: 1px solid rgba(255,255,255,.4); border-radius: 10px; font-size: 22px; white-space: nowrap; }
.pf-hero-product .pf-spec__label { max-width: 160px; }
@media (max-width: 600px) {
	.pf-hero-product .pf-specs { gap: 20px 12px; }
	.pf-hero-product .pf-spec__value { min-width: 0; padding: 10px 14px; font-size: 18px; }
}
.pf-hero-plain .pf-hero-lead { margin-top: 16px; }

/* À propos */
.pf-hero-about { min-height: 76vh; }
.pf-hero-about .pf-hero-photo__scrim { background: linear-gradient(to top, rgba(10,12,11,.94) 0%, rgba(10,12,11,.5) 50%, rgba(10,12,11,.28) 100%); }
.pf-hero-about .pf-hero-inner { padding: 150px 32px 72px; }
.pf-hero-about .pf-hero-lead { margin-top: 16px; }
.pf-about-who { padding-top: 96px; padding-bottom: 96px; }
.pf-about-who .pf-h2 { margin-top: 14px; }
.pf-about-who__lead { font-size: 17px; line-height: 1.6; color: var(--ink-950); }
.pf-about-who__text p { margin: 16px 0 0; font-size: 15px; line-height: 1.6; color: var(--text-muted); }
.pf-about-tiles { padding-bottom: 96px; }
.pf-about-tiles .pf-tiles-row { padding-top: 32px; border-top: 1px solid var(--border-subtle); }
.pf-about-method { padding-top: 96px; padding-bottom: 96px; }
.pf-about-method .pf-h2 { margin-top: 14px; }
.pf-about-method__text p { margin: 14px 0 0; max-width: 460px; font-size: 15px; line-height: 1.6; color: var(--text-invert-soft); }
.pf-about-method__text p:first-child { margin-top: 16px; }
.pf-about-method .pf-btn { margin-top: 26px; }
.pf-about-stats { padding-bottom: 96px; }
.pf-about-zone { padding-top: 96px; padding-bottom: 96px; }
.pf-about-zone .pf-h2 { margin-top: 14px; }
.pf-about-zone__text { margin: 14px 0 0; max-width: 320px; font-size: 15px; line-height: 1.55; color: var(--text-muted); }
.pf-about-zone .pf-btn { margin-top: 24px; }
.pf-about-zone__text p { margin: 0 0 12px; }
.pf-about-zone__text { max-width: 380px; }
.pf-hero-subtitle { margin: 12px 0 0; max-width: 640px; font-family: var(--font-display); font-size: 22px; font-weight: 700; line-height: 1.3; color: var(--cream-100); }
.pf-about-text { padding-top: 96px; padding-bottom: 96px; }
.pf-about-text .pf-h2 { margin-top: 14px; }
.pf-about-text__body p, .pf-about-text__outro p { margin: 0 0 16px; font-size: 15px; line-height: 1.65; color: var(--text-muted); }
.pf-about-text__body p:first-child { font-size: 17px; line-height: 1.6; color: var(--ink-950); }
.pf-about-text__body .pf-media { margin-top: 12px; }
.pf-about-text__cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 48px; }
.pf-about-text__cards > div { display: flex; }
.pf-about-text__cards .pf-tile { flex: 1; }
.pf-about-text__outro { margin-top: 32px; max-width: 760px; }
.pf-bullets { margin: 0 0 16px; padding: 0; list-style: none; }
.pf-bullets li { position: relative; padding: 10px 0 10px 22px; border-top: 1px solid var(--border-subtle); font-size: 15px; line-height: 1.55; color: var(--text-muted); }
.pf-bullets li:last-child { border-bottom: 1px solid var(--border-subtle); }
.pf-bullets li::before { content: ""; position: absolute; left: 2px; top: 19px; width: 7px; height: 7px; border-radius: 50%; background: var(--azur-600); }
.pf-bullets strong { color: var(--ink-950); }
.pf-bullets a, .pf-about-text a, .pf-about-zone__text a { color: var(--azur-600); font-weight: 600; }
.pf-cta-band__infos { margin: 16px 0 0; padding: 0; list-style: none; font-size: 14px; line-height: 1.8; color: var(--text-invert-soft); }
.pf-citylist { border-top: 1px solid var(--border-subtle); }
.pf-citylist a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 16px 8px;
	border-bottom: 1px solid var(--border-subtle);
	transition: background 140ms var(--ease-out);
}
.pf-citylist a:hover { background: var(--white); }
.pf-citylist a > span:first-child { font-size: 15px; font-weight: 600; color: var(--ink-950); }
.pf-citylist .pf-label { white-space: nowrap; }

/* Contact */
.pf-contact-form-section { padding-bottom: 96px; }
.pf-contact-cards { padding-top: 96px; padding-bottom: 96px; }
.pf-contact-cards .pf-h2 { margin-top: 14px; }
.pf-contact-cards .pf-grid, .pf-next .pf-grid { margin-top: 32px; }
.pf-ccard { display: flex; flex-direction: column; gap: 12px; padding: 24px; background: var(--white); border: 1px solid var(--border-subtle); border-radius: 14px; }
.pf-ccard > .pf-icon { color: var(--ink-950); }
.pf-ccard__value { font-size: 17px; font-weight: 600; line-height: 1.35; color: var(--ink-950); word-break: break-word; }
.pf-ccard__value a { color: inherit; }
.pf-ccard__note { font-size: 13.5px; line-height: 1.5; color: var(--text-muted); }
.pf-next { padding-top: 96px; padding-bottom: 96px; }
.pf-ncard { display: flex; flex-direction: column; gap: 10px; padding: 22px; background: var(--panel); border: 1px solid var(--border-inverse); border-radius: 14px; }
.pf-ncard__index { font-family: var(--font-display); font-size: 21px; font-weight: 700; color: var(--text-invert-muted); }
.pf-ncard__title { font-size: 15px; font-weight: 600; color: var(--cream-100); }
.pf-ncard__text { font-size: 13.5px; line-height: 1.5; color: var(--text-invert-muted); }

/* Réalisations */
.pf-real-top { padding-top: 64px; }
.pf-filters { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding-bottom: 28px; border-bottom: 1px solid var(--border-subtle); }
.pf-pill {
	padding: 9px 16px;
	border-radius: 999px;
	border: 1px solid var(--border-subtle);
	background: transparent;
	color: var(--ink-950);
	font-size: 13px;
	font-weight: 600;
	white-space: nowrap;
	transition: background 140ms var(--ease-out);
}
.pf-pill:hover { background: var(--white); color: var(--ink-950); }
.pf-pill.is-active { background: var(--ink-950); color: var(--cream-100); border-color: transparent; }
.pf-pill.is-active:hover { background: var(--panel); color: var(--cream-100); }
.pf-featured {
	display: grid;
	grid-template-columns: 1.35fr 1fr;
	overflow: hidden;
	background: var(--white);
	border: 1px solid var(--border-subtle);
	border-radius: 14px;
	margin-top: 32px;
	transition: transform 220ms var(--ease-out);
}
.pf-featured:hover { transform: translateY(-2px); }
.pf-featured__media { min-height: 380px; overflow: hidden; background: var(--ink-950); }
.pf-featured__media img { width: 100%; height: 100%; object-fit: cover; }
.pf-featured__media .pf-media { height: 100%; border-radius: 0; }
.pf-featured__body { display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: 40px; }
.pf-featured__title { font-family: var(--font-display); font-size: 32px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.12; color: var(--ink-950); }
.pf-featured__excerpt { font-size: 15px; line-height: 1.6; color: var(--text-muted); }
.pf-featured__foot { margin-top: 8px; font-size: 12px; color: var(--text-muted); }
.pf-real-grid { padding-top: 56px; padding-bottom: 96px; }
.pf-pager { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; margin-top: 48px; padding-top: 24px; border-top: 1px solid var(--border-subtle); }
.pf-pager__info { font-size: 13.5px; color: var(--text-muted); }
.pf-pager__links { display: flex; align-items: center; gap: 8px; }
.pf-empty { padding: 48px 0; font-size: 15px; color: var(--text-muted); }

/* Article de réalisation */
.pf-article-hero { padding-top: 150px; padding-bottom: 56px; }
.pf-article-hero__inner { max-width: 860px; margin: 0 auto; }
.pf-article-hero h1 {
	margin: 20px 0 0;
	font-family: var(--font-display);
	font-size: clamp(32px, 4.6vw, 58px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.04;
	color: var(--cream-100);
}
.pf-article-hero__lead { margin: 20px 0 0; font-size: 17px; line-height: 1.6; color: rgba(245,243,238,.82); }
.pf-article-hero__meta {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	margin-top: 28px;
	padding-top: 20px;
	border-top: 1px solid var(--border-inverse);
	font-size: 12px;
	color: var(--text-invert-muted);
}
.pf-article-hero__meta .sep { opacity: .5; }
.pf-article-photo { position: relative; z-index: 1; }
.pf-article-photo__frame { max-width: 1280px; margin: 0 auto; aspect-ratio: 16 / 7; overflow: hidden; border-radius: 20px; background: var(--panel); }
.pf-article-photo__frame img { width: 100%; height: 100%; object-fit: cover; }
.pf-article-body { padding-top: 88px; padding-bottom: 96px; margin-top: -64px; }
.pf-article-body__grid { max-width: 1280px; margin: 0 auto; padding-top: 64px; display: grid; grid-template-columns: minmax(0, 1.9fr) minmax(260px, .9fr); gap: 64px; align-items: start; }

.pf-prose > * { margin: 0 0 20px; }
.pf-prose p, .pf-prose li { font-size: 17px; line-height: 1.7; color: var(--ink-950); }
.pf-prose ul, .pf-prose ol { padding-left: 1.2em; }
.pf-prose h2 { margin: 44px 0 16px; font-family: var(--font-display); font-size: 26px; font-weight: 700; letter-spacing: -0.005em; line-height: 1.2; color: var(--ink-950); }
.pf-prose h3 { margin: 32px 0 12px; font-size: 20px; font-weight: 700; color: var(--ink-950); }
.pf-prose > :first-child { margin-top: 0; }
.pf-prose > :last-child { margin-bottom: 0; }
.pf-prose a { color: var(--azur-600); font-weight: 600; }
.pf-prose blockquote, .pf-prose .wp-block-quote {
	margin: 36px 0;
	padding: 28px;
	background: var(--white);
	border: 1px solid var(--border-subtle);
	border-radius: 14px;
}
.pf-prose blockquote p { margin: 0; font-family: var(--font-display); font-size: 21px; font-weight: 700; line-height: 1.35; color: var(--ink-950); }
.pf-prose blockquote cite { display: block; margin: 12px 0 0; font-size: 13px; font-style: normal; color: var(--text-muted); }
.pf-prose .wp-block-gallery, .pf-prose .pf-duo { display: grid !important; grid-template-columns: 1fr 1fr; gap: 20px; margin-top: 8px; }
.pf-prose .wp-block-gallery figure, .pf-prose .pf-duo figure { margin: 0 !important; width: auto !important; aspect-ratio: 4 / 3; overflow: hidden; border-radius: 14px; background: var(--panel); }
.pf-prose .wp-block-gallery img, .pf-prose .pf-duo img { width: 100% !important; height: 100% !important; object-fit: cover; }
.pf-prose .wp-block-image img { border-radius: 14px; }
.pf-prose figcaption { font-size: 13px; color: var(--text-muted); margin-top: 8px; }

.pf-aside { display: flex; flex-direction: column; gap: 24px; }
.pf-fiche { padding: 24px; background: var(--white); border: 1px solid var(--border-subtle); border-radius: 14px; }
.pf-fiche__rows { margin-top: 14px; }
.pf-fiche__row { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-bottom: 1px solid var(--border-subtle); font-size: 13px; }
.pf-fiche__row span:first-child { color: var(--text-muted); }
.pf-fiche__row span:last-child { font-weight: 600; text-align: right; color: var(--ink-950); }
.pf-gammes-box { padding: 24px; background: var(--ink-950); border: 1px solid var(--border-inverse); border-radius: 14px; }
.pf-gammes-box__list { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }
.pf-gammes-box__list a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; background: var(--panel); border: 1px solid var(--border-inverse); border-radius: 10px; transition: background 140ms var(--ease-out); }
.pf-gammes-box__list a:hover { background: #1F2323; }
.pf-gammes-box__list a span:first-child { font-size: 13.5px; font-weight: 700; letter-spacing: 0.01em; text-transform: uppercase; color: var(--cream-100); }
.pf-gammes-box__text { margin: 16px 0 0; font-size: 13px; line-height: 1.55; color: var(--text-invert-muted); }
.pf-gammes-box .pf-btn { margin-top: 16px; }
.pf-related { padding-bottom: 96px; }
.pf-related__inner { padding-top: 40px; border-top: 1px solid var(--border-subtle); }
.pf-related .pf-grid { margin-top: 32px; }

/* ======================================================== Pages locales == */
.pf-local-hero { position: relative; padding-top: 150px; }
.pf-local-hero__grid { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 56px; align-items: end; }
.pf-local-hero__text { padding-bottom: 64px; }
.pf-local-hero h1 {
	margin: 22px 0 0;
	font-family: var(--font-display);
	font-size: clamp(34px, 4.4vw, 60px);
	font-weight: 700;
	letter-spacing: -0.02em;
	line-height: 1.02;
	color: var(--cream-100);
	text-wrap: pretty;
}
.pf-local-hero__lead { margin: 22px 0 0; max-width: 600px; font-size: 17px; line-height: 1.6; color: rgba(245,243,238,.82); }
.pf-local-hero .pf-actions { gap: 14px; margin-top: 30px; align-items: center; }
.pf-local-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin-top: 44px; padding-top: 24px; border-top: 1px solid var(--border-inverse); }
.pf-local-stats__value { font-family: var(--font-display); font-size: 30px; font-weight: 700; letter-spacing: -0.02em; color: var(--cream-100); }
.pf-local-stats__label { margin-top: 6px; font-size: 13px; line-height: 1.45; color: var(--text-invert-muted); }
.pf-local-hero__photo { aspect-ratio: 4 / 5; overflow: hidden; border-radius: 20px 20px 0 0; background: var(--panel); }
.pf-local-hero__photo img { width: 100%; height: 100%; object-fit: cover; }

.pf-local-why { padding-top: 88px; padding-bottom: 88px; }
.pf-split--local { grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr); gap: 64px; align-items: start; }
.pf-local-why .pf-h2, .pf-local-zone .pf-h2, .pf-local-devis .pf-h2, .pf-local-products .pf-h2, .pf-local-real .pf-h2, .pf-local-gar .pf-h2 { margin-top: 14px; }
.pf-local-why__text { display: flex; flex-direction: column; gap: 18px; font-size: 17px; line-height: 1.7; color: var(--ink-950); }

.pf-local-products { padding-bottom: 104px; }
.pf-local-products__inner { padding-top: 64px; border-top: 1px solid var(--border-subtle); }
.pf-local-products .pf-h2 { max-width: 720px; }
.pf-local-products .pf-grid { margin-top: 40px; }
.pf-pcard { padding: 26px; background: var(--cream-100); border: 1px solid var(--border-subtle); border-radius: 14px; }
.pf-pcard > .pf-icon { color: var(--ink-950); }
.pf-pcard h3 { margin: 18px 0 0; font-size: 19px; font-weight: 700; letter-spacing: -0.005em; color: var(--ink-950); }
.pf-pcard p { margin: 12px 0 0; font-size: 15px; line-height: 1.6; color: #3A3F40; }
.pf-pcard p a { color: var(--azur-600); font-weight: 600; }
.pf-pcard__rows { margin-top: 14px; display: flex; flex-direction: column; }
.pf-pcard__row { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid var(--border-subtle); font-size: 14px; }
.pf-pcard__row:last-child { border-bottom: 1px solid var(--border-subtle); }
.pf-pcard__row span:first-child { color: var(--text-muted); }
.pf-pcard__row span:last-child { font-family: var(--font-mono); font-weight: 600; color: var(--ink-950); text-align: right; }
.pf-local-products__foot { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-top: 28px; }
.pf-local-products__foot p { margin: 0; font-size: 15px; color: var(--text-muted); }

.pf-local-real { padding-top: 104px; padding-bottom: 104px; }
.pf-local-real .pf-grid { margin-top: 40px; }

.pf-local-zone { padding-top: 104px; padding-bottom: 104px; }
.pf-local-zone__text { margin: 18px 0 0; font-size: 16px; line-height: 1.65; color: #3A3F40; }
.pf-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.pf-chip { padding: 7px 13px; border: 1px solid var(--border-subtle); border-radius: 999px; font-size: 13px; font-weight: 500; color: var(--ink-950); background: var(--cream-100); }
.pf-map { aspect-ratio: 16 / 11; overflow: hidden; border-radius: 14px; border: 1px solid var(--border-subtle); background: #E9E6DE; }
.pf-map iframe { width: 100%; height: 100%; border: 0; display: block; filter: grayscale(1) contrast(1.05); }
.pf-communes { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 0 24px; margin-top: 8px; }
.pf-communes > * { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--border-subtle); font-size: 14px; color: var(--ink-950); }
.pf-communes a:hover { color: var(--azur-600); }
.pf-communes span:first-child { font-weight: 600; }
.pf-mono { font-family: var(--font-mono); font-size: 12.5px; color: var(--text-muted); white-space: nowrap; }

.pf-local-gar { padding-top: 104px; padding-bottom: 104px; }
.pf-local-gar .pf-grid { margin-top: 40px; }
.pf-gcard { padding: 24px; background: var(--panel); border: 1px solid var(--border-inverse); border-radius: 14px; box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
.pf-gcard__icon { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 10px; background: var(--white-a08); color: var(--cream-100); }
.pf-gcard h3 { margin: 18px 0 0; font-size: 17px; font-weight: 700; color: var(--cream-100); }
.pf-gcard p { margin: 10px 0 0; font-size: 14px; line-height: 1.6; color: var(--text-invert-soft); }

.pf-local-devis { padding-top: 104px; padding-bottom: 104px; }
.pf-local-devis__text { margin: 18px 0 0; font-size: 16px; line-height: 1.65; color: #3A3F40; }
.pf-local-devis__lines { display: flex; flex-direction: column; gap: 12px; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--border-subtle); }
.pf-local-devis__line { display: flex; align-items: center; gap: 12px; font-size: 15px; color: var(--ink-950); flex-wrap: wrap; }
.pf-local-devis__line strong { font-weight: 600; white-space: nowrap; }
.pf-local-devis__line a { color: inherit; }
.pf-local-devis__line .muted { color: var(--text-muted); }
.pf-formbox { padding: 32px; background: var(--ink-950); border: 1px solid var(--border-inverse); border-radius: 20px; }
.pf-ctabox { padding: 40px; background: var(--ink-950); border: 1px solid var(--border-inverse); border-radius: 20px; display: flex; flex-direction: column; gap: 20px; align-items: flex-start; }
.pf-ctabox p { margin: 0; font-family: var(--font-display); font-size: 26px; font-weight: 700; line-height: 1.2; color: var(--cream-100); text-wrap: pretty; }

.pf-local-mesh { padding-bottom: 104px; }
.pf-local-mesh__grid { padding-top: 64px; border-top: 1px solid var(--border-subtle); display: grid; grid-template-columns: 1fr 1fr; gap: 64px; }
.pf-local-mesh .pf-h2 { margin-top: 14px; }
.pf-mesh { display: flex; flex-direction: column; margin-top: 20px; }
.pf-mesh a { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 13px 0; border-bottom: 1px solid var(--border-subtle); font-size: 15px; color: var(--ink-950); }
.pf-mesh a:hover { color: var(--azur-600); }
.pf-mesh a > span:first-child { font-weight: 600; }
.pf-mesh a.pf-mesh__all { border-bottom: 0; font-weight: 600; color: var(--azur-600); }

/* Pages de contenu libre */
.pf-page-body { padding-top: 88px; padding-bottom: 104px; }
.pf-page-body__inner { max-width: 860px; margin: 0 auto; }

/* ================================================================ 404 == */
.pf-404 { padding-top: 180px; padding-bottom: 140px; min-height: 70vh; }
.pf-404 .pf-actions { margin-top: 28px; }

/* ========================================================== Responsive == */
@media (max-width: 1180px) {
	.pf-nav { gap: 18px; }
	.pf-header__phone { display: none; }
	.pf-grid--6, .pf-specs, .pf-swatches { grid-template-columns: repeat(3, 1fr); }
	.pf-home-steps .pf-grid--6 { grid-template-columns: repeat(3, 1fr); }
	.pf-footer__grid { grid-template-columns: repeat(3, 1fr); }
	.pf-footer__grid > :first-child { grid-column: 1 / -1; }
}

@media (max-width: 1024px) {
	.pf-about-text__cards { grid-template-columns: repeat(2, 1fr); }
	.pf-nav, .pf-header__actions .pf-btn { display: none; }
	.pf-burger { display: inline-flex; }
	.pf-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.pf-tiles-row { grid-template-columns: repeat(2, 1fr); }
	.pf-statbar { grid-template-columns: repeat(2, 1fr); row-gap: 24px; }
	.pf-statbar > div:nth-child(3) { border-left: 0; }
	.pf-split--about, .pf-split--desc, .pf-split--local, .pf-cta-band__grid, .pf-contact-box, .pf-contact-box--panel,
	.pf-faq__grid, .pf-article-body__grid, .pf-local-hero__grid, .pf-local-mesh__grid, .pf-featured { grid-template-columns: 1fr; }
	.pf-split { gap: 40px; }
	.pf-cta-band__actions { justify-content: flex-start; }
	.pf-sticky { position: static; }
	.pf-faq__grid { gap: 32px; }
	.pf-local-hero__text { padding-bottom: 0; }
	.pf-local-hero__photo { aspect-ratio: 16 / 11; border-radius: 20px 20px 0 0; }
	.pf-featured__media { min-height: 260px; }
}

@media (max-width: 720px) {
	.pf-about-text__cards { grid-template-columns: 1fr; }
	.pf-about-text { padding-top: 64px; padding-bottom: 64px; }
	.pf-hero-subtitle { font-size: 18px; }
	:root { --gutter-x: 16px; }
	.pf-header { padding: 14px 16px; }
	.pf-header__logo img { height: 38px; }
	.pf-grid--2, .pf-grid--3, .pf-grid--4, .pf-grid--6, .pf-gallery { grid-template-columns: 1fr; }
	.pf-specs, .pf-swatches, .pf-home-steps .pf-grid--6 { grid-template-columns: repeat(2, 1fr); }
	.pf-tiles-row { grid-template-columns: 1fr; }
	.pf-statbar { grid-template-columns: 1fr; padding: 24px 8px; }
	.pf-statbar > div + div { border-left: 0; }
	.pf-local-stats { grid-template-columns: 1fr 1fr; }
	.pf-footer { padding: 40px 16px 28px; }
	.pf-footer__grid { grid-template-columns: 1fr 1fr; }
	.pf-footer__bottom { flex-direction: column; }
	.pf-h2 { font-size: 28px; }
	.pf-h2--24 { font-size: 22px; }
	.pf-window__word { left: 16px; right: 16px; }
	.pf-window__content { left: 16px; right: 16px; bottom: 32px; }
	.pf-band__content { left: 16px; right: 16px; }
	.pf-hero-family__content { left: 16px; right: 16px; bottom: 72px; }
	.pf-hero-inner, .pf-hero-about .pf-hero-inner { padding-left: 16px; padding-right: 16px; padding-top: 120px; }
	.pf-hero-plain, .pf-article-hero, .pf-local-hero { padding-top: 120px; }
	.pf-contact-box, .pf-formbox { padding: 22px; }
	.pf-ctabox { padding: 26px; }
	.pf-featured__body { padding: 24px; }
	.pf-featured__title { font-size: 26px; }
	.pf-faq__a { padding-right: 8px; }
	.pf-faq__q span:first-child { font-size: 17px; }
	.pf-article-photo__frame { aspect-ratio: 4 / 3; border-radius: 14px; }
	.pf-prose .wp-block-gallery, .pf-prose .pf-duo { grid-template-columns: 1fr; }
	.pf-btn--lg { height: 50px; font-size: 16px; }
	.pf-mnav__sub { grid-template-columns: 1fr; }
	.pf-pager { flex-direction: column; align-items: flex-start; }
}

@media (prefers-reduced-motion: reduce) {
	.pf-window__opening, .pf-window__chev { animation: none; }
	.pf-card, .pf-btn, .pf-featured { transition: none; }
}

/* Pages locales : texte libre (éditeur WordPress / API). */
.pf-local-content__prose { max-width: 760px; }
.pf-prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
.pf-prose th, .pf-prose td { padding: 10px 12px; border-bottom: 1px solid rgba(0, 0, 0, 0.12); text-align: left; vertical-align: top; }
.pf-prose th { font-weight: 700; color: var(--ink-950); }
@media (max-width: 640px) { .pf-prose table { display: block; overflow-x: auto; } }
