/*!
 * Jimmy & Fils – design
 * ---------------------------------------------------------------
 * Tout est préfixé « jfd- » : aucun conflit avec le thème.
 * Pour changer le look, modifiez uniquement les VARIABLES ci-dessous.
 * Les textes, liens et images se modifient dans l'éditeur de blocs.
 */

/* ============ 1. VARIABLES ============ */
.jfd-section {
	/* Fonds sombres : vert forêt très profond (fait ressortir sauge et terracotta) */
	--jfd-night: #16201c;
	--jfd-slate: #1f2b26;
	--jfd-slate-2: #2a3832;
	/* Fonds clairs */
	--jfd-paper: #f0eee9;       /* Cloud Dancer – Pantone 11-4201 */
	--jfd-sage-soft: #e3e7df;   /* sauge très pâle, fond de section alterné */
	/* Couleurs de marque */
	--jfd-terra: #c86f58;       /* terracotta : gros titres, boutons, décors */
	--jfd-terra-hover: #d4806a;
	--jfd-terra-deep: #9e4b36;  /* terracotta pour PETIT texte sur fond clair (AA) */
	--jfd-terra-light: #e58f77; /* terracotta pour PETIT texte sur fond sombre (AA) */
	--jfd-sage: #8a9c8b;        /* sauge : puces, numéros, filets */
	/* Texte */
	--jfd-ink: #1f2824;
	--jfd-text: #f0eee9;
	--jfd-muted: rgba(240, 238, 233, 0.74);
	--jfd-line: rgba(240, 238, 233, 0.16);
	--jfd-glass: rgba(240, 238, 233, 0.07);
	--jfd-accent: var(--jfd-terra-light);
	/* Formes & typo */
	--jfd-radius: 22px;
	--jfd-radius-sm: 14px;
	--jfd-gap: 20px;           /* espacement unique entre cartes, photos et champs */
	--jfd-space: clamp(72px, 9vw, 132px);
	--jfd-pad: clamp(20px, 4vw, 48px);  /* marge latérale commune : sections, menu et pied de page restent alignés */
	--jfd-font: "Manrope", "Helvetica Neue", Helvetica, Arial, system-ui, sans-serif;
}

.jfd-section--light {
	--jfd-text: #1f2824;
	--jfd-muted: rgba(31, 40, 36, 0.74);
	--jfd-line: rgba(95, 116, 97, 0.32);
	--jfd-glass: rgba(31, 40, 36, 0.04);
	--jfd-accent: var(--jfd-terra-deep);
}

/* Police auto-hébergée (Manrope, licence OFL) : aucun appel à Google Fonts. */
@font-face {
	font-family: "Manrope";
	src: url("fonts/manrope-latin-ext-wght-normal.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: "Manrope";
	src: url("fonts/manrope-latin-wght-normal.woff2") format("woff2");
	font-weight: 200 800;
	font-style: normal;
	font-display: swap;
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ============ 2. BASE ============ */
.jfd-section {
	box-sizing: border-box;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: var(--jfd-space);
	background: var(--jfd-slate);
	color: var(--jfd-text);
	font-family: var(--jfd-font);
	font-size: 1.0625rem;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}
.jfd-section--light { background: var(--jfd-paper); }

.jfd-section *,
.jfd-section *::before,
.jfd-section *::after { box-sizing: border-box; }

/* Certains thèmes (Kadence…) enveloppent le contenu des Groupes dans une div
   « wp-block-group__inner-container » : on la retire de la mise en page pour que
   grilles et flex voient directement les vrais enfants. Sans effet sinon. */
.jfd-section .wp-block-group__inner-container { display: contents; }

/* Neutralise les marges verticales du thème : l'espacement passe par « gap ».
   !important : certains thèmes imposent une marge basse sur tous les groupes pleine largeur. */
body .jfd-section { margin-block: 0 !important; }
body .jfd-section :is(.wp-block-group, .wp-block-columns, .wp-block-column, .wp-block-buttons,
	.wp-block-button, .wp-block-heading, .wp-block-list, p, figure) { margin-block: 0; }

.jfd-section :is(h1, h2, h3) {
	font-family: var(--jfd-font);
	font-weight: 300;
	line-height: 1.08;
	letter-spacing: -0.015em;
	color: inherit;
}
.jfd-section h2 { font-size: clamp(2rem, 4.2vw, 3.4rem); }
.jfd-section h3 { font-size: 1.35rem; font-weight: 400; line-height: 1.25; letter-spacing: -0.005em; }
.jfd-section a:not(.wp-element-button) { color: inherit; text-decoration: none; }
.jfd-section p a:not(.wp-element-button) {
	text-decoration: underline;
	text-decoration-color: var(--jfd-accent);
	text-underline-offset: 0.25em;
}
.jfd-section a:focus-visible { outline: 2px solid var(--jfd-accent); outline-offset: 3px; border-radius: 4px; }

.jfd-section .jfd-eyebrow {
	font-size: 0.76rem;
	font-weight: 500;
	line-height: 1.4;
	letter-spacing: 0.24em;
	text-transform: uppercase;
	color: var(--jfd-accent);
}

.jfd-container {
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: var(--jfd-pad);
}
.jfd-stack { display: flex; flex-direction: column; gap: clamp(48px, 7vw, 88px); }
.jfd-head { display: flex; flex-direction: column; align-items: flex-start; gap: 1.1rem; max-width: 46rem; }
.jfd-head p:not(.jfd-eyebrow) { color: var(--jfd-muted); }

.jfd-grid { display: grid; gap: 20px; }
.jfd-grid--3 { grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: clamp(24px, 4vw, 48px); }
.jfd-grid--services { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.jfd-section .jfd-grid > * { margin: 0; }

/* Pages utilisant ces sections : on retire les marges du conteneur de contenu du thème. */
body.jfd-has-design .content-area { margin-block: 0; }
body.jfd-has-design .entry-content-wrap { padding: 0; }
body.jfd-has-design .entry-content.single-content { margin-block: 0; }
/* Kadence : décalage de 2rem entre #inner-wrap et le contenu (mesuré sur le site). */
body.jfd-has-design #primary { margin-top: -2rem; }
/* One-page : le menu et le pied de page sont dans la page (modifiables dans l'éditeur). */
body.jfd-has-design :is(#masthead, #colophon, .site-footer, .site-header) { display: none !important; }
html:has(body.jfd-has-design) { scroll-behavior: smooth; }
.jfd-section[id] { scroll-margin-top: 92px; }

/* ============ 3. BOUTONS ============ */
.jfd-section .wp-block-buttons { gap: 14px; }
.jfd-section .wp-block-button__link {
	display: inline-flex;
	align-items: center;
	border: 1px solid transparent;
	border-radius: var(--jfd-radius-sm);
	padding: 0.95rem 1.6rem;
	font-family: var(--jfd-font);
	font-size: 0.95rem;
	font-weight: 500;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 0.25s ease, border-color 0.25s ease, transform 0.25s ease;
}
.jfd-section .wp-block-button__link:focus-visible { outline: 2px solid var(--jfd-accent); outline-offset: 3px; }
.jfd-section .jfd-btn--primary .wp-block-button__link { background: var(--jfd-terra); color: var(--jfd-night); }
.jfd-section .jfd-btn--primary .wp-block-button__link:hover { background: var(--jfd-terra-hover); transform: translateY(-1px); }
.jfd-section .jfd-btn--primary .wp-block-button__link::after {
	content: "→";
	content: "→" / "";
	margin-left: 0.7em;
}
.jfd-section .jfd-btn--ghost .wp-block-button__link { background: transparent; color: var(--jfd-text); border-color: var(--jfd-line); }
.jfd-section .jfd-btn--ghost .wp-block-button__link:hover { border-color: var(--jfd-accent); }

/* ============ 4. HERO ============ */
.jfd-section.jfd-hero {
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	gap: clamp(48px, 8vw, 96px);
	min-height: min(92vh, 880px);
	padding-top: clamp(120px, 16vw, 200px);
	padding-bottom: clamp(32px, 4vw, 56px);
	background: var(--jfd-night);
}
.jfd-section .jfd-hero__bg { position: absolute; inset: 0; z-index: -2; margin: 0; }
.jfd-hero__bg img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: 60% 50%; }
.jfd-hero::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background:
		linear-gradient(90deg, rgba(22, 32, 28, 0.94) 0%, rgba(22, 32, 28, 0.72) 42%, rgba(22, 32, 28, 0.22) 100%),
		linear-gradient(0deg, rgba(22, 32, 28, 0.85) 0%, rgba(22, 32, 28, 0) 42%);
}
.jfd-hero__inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(260px, 340px);
	gap: clamp(24px, 5vw, 72px);
	align-items: end;
}
.jfd-hero__main { display: flex; flex-direction: column; align-items: flex-start; gap: 1.5rem; max-width: 46rem; }
.jfd-section .jfd-hero__title {
	font-size: clamp(2.3rem, 5.2vw, 4.7rem);
	line-height: 1.05;
	letter-spacing: 0.005em;
	text-transform: uppercase;
	text-wrap: balance;
}
.jfd-hero__lead { max-width: 36rem; color: var(--jfd-muted); }
.jfd-hero__main .wp-block-buttons { margin-top: 0.5rem; }

.jfd-glass {
	background: var(--jfd-glass);
	border: 1px solid var(--jfd-line);
	border-radius: var(--jfd-radius);
	-webkit-backdrop-filter: blur(14px) saturate(120%);
	backdrop-filter: blur(14px) saturate(120%);
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.jfd-glass { background: rgba(22, 32, 28, 0.72); }
}
.jfd-hero__card { display: flex; flex-direction: column; gap: 0.9rem; padding: 28px; }
.jfd-card__title { font-size: 1.25rem; font-weight: 300; line-height: 1.35; }
.jfd-card__link a { display: inline-flex; align-items: center; font-size: 0.9rem; text-decoration: none; }
.jfd-card__link a::after {
	content: "→";
	content: "→" / "";
	display: inline-grid;
	place-items: center;
	width: 2.3rem;
	height: 2.3rem;
	margin-left: 0.8rem;
	border: 1px solid var(--jfd-line);
	border-radius: 50%;
	transition: background-color 0.25s ease, color 0.25s ease;
}
.jfd-card__link a:hover::after { background: var(--jfd-terra); color: var(--jfd-night); border-color: var(--jfd-terra); }

.jfd-hero__stats {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 24px;
	padding-top: 28px;
	border-top: 1px solid var(--jfd-line);
}
.jfd-stat__num { font-size: clamp(1.8rem, 3.6vw, 3rem); font-weight: 300; line-height: 1; letter-spacing: -0.02em; }
.jfd-section .jfd-stat__label {
	margin-top: 0.7rem;
	font-size: 0.72rem;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: var(--jfd-muted);
}

/* ============ 5. À PROPOS ============ */
.jfd-section .jfd-split { gap: clamp(32px, 6vw, 96px); align-items: center; }
.jfd-split > .wp-block-column:first-child { flex-grow: 1.2; }

.jfd-card--dark {
	--jfd-accent: var(--jfd-terra-light);
	--jfd-muted: rgba(240, 238, 233, 0.74);
	--jfd-line: rgba(240, 238, 233, 0.16);
	display: flex;
	flex-direction: column;
	gap: 1.4rem;
	padding: clamp(28px, 4vw, 44px);
	border-radius: var(--jfd-radius);
	background: var(--jfd-slate);
	color: #f0eee9;
}
.jfd-section .jfd-checklist { display: flex; flex-direction: column; gap: 1rem; padding: 0; list-style: none; }
.jfd-checklist li { position: relative; padding-left: 2.2rem; }
.jfd-checklist li::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.3em;
	width: 1.25rem;
	height: 1.25rem;
	border: 1px solid var(--jfd-sage);
	border-radius: 50%;
	background: radial-gradient(circle, var(--jfd-terra) 0 3px, transparent 4px);
}
.jfd-card__note { padding-top: 1.4rem; border-top: 1px solid var(--jfd-line); color: var(--jfd-muted); font-size: 0.97rem; }

.jfd-pillar { display: flex; flex-direction: column; gap: 0.6rem; padding-top: 1.5rem; border-top: 1px solid var(--jfd-line); }
.jfd-pillar p { color: var(--jfd-muted); }

/* ============ 6. SERVICES ============ */
.jfd-service {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 0.9rem;
	min-height: 250px;
	padding: 28px;
	border: 1px solid var(--jfd-line);
	border-radius: var(--jfd-radius);
	background: linear-gradient(160deg, rgba(255, 255, 255, 0.07), rgba(255, 255, 255, 0.015));
	transition: transform 0.35s ease, border-color 0.35s ease;
}
.jfd-service:hover,
.jfd-service:focus-within { transform: translateY(-4px); border-color: var(--jfd-terra); }
.jfd-service:focus-within { outline: 2px solid var(--jfd-accent); outline-offset: 3px; }
.jfd-service a:focus-visible { outline: none; }
.jfd-service__num { font-size: 0.85rem; letter-spacing: 0.2em; color: var(--jfd-sage); }
.jfd-service__title a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; } /* carte entièrement cliquable */
.jfd-service__text { color: var(--jfd-muted); }
.jfd-service::after {
	content: "Demander un devis  →";
	content: "Demander un devis  →" / "";
	margin-top: auto;
	padding-top: 1rem;
	font-size: 0.78rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--jfd-accent);
}

/* ============ 7. MÉTHODE ============ */
.jfd-section.jfd-method { background: var(--jfd-sage-soft); }
.jfd-step { position: relative; display: flex; flex-direction: column; gap: 0.7rem; padding-top: 2rem; border-top: 1px solid var(--jfd-line); }
.jfd-step::before {
	content: "";
	position: absolute;
	top: -5px;
	left: 0;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--jfd-terra);
}
.jfd-section .jfd-step__label { font-size: 0.76rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--jfd-accent); }
.jfd-step p:not(.jfd-step__label) { color: var(--jfd-muted); }


/* ============ 7b. RÉALISATIONS ============ */
.jfd-gallery { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 16px; }
.jfd-section .jfd-shot { margin: 0; overflow: hidden; border-radius: var(--jfd-radius); }
.jfd-shot img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; transition: transform 0.6s ease; }
.jfd-shot:hover img { transform: scale(1.04); }
.jfd-showcase .wp-block-buttons { margin-top: 0; }

/* ============ 7c. CONTACT ============ */
.jfd-section.jfd-contact { background: linear-gradient(135deg, var(--jfd-slate-2), var(--jfd-night)); }
.jfd-contact::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: radial-gradient(60% 80% at 90% 0%, rgba(200, 111, 88, 0.2), transparent 60%);
}
.jfd-contact .jfd-head .wp-block-buttons { margin-top: 0.8rem; }
.jfd-info { display: flex; flex-direction: column; gap: 0.4rem; padding: 22px 24px; border: 1px solid var(--jfd-line); border-radius: var(--jfd-radius); background: var(--jfd-glass); }
.jfd-section .jfd-info__label { font-size: 0.72rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--jfd-sage); }
.jfd-info__value { font-size: 1.05rem; }


/* ============ 7d. CONTACT (grille + formulaire) ============ */
.jfd-contact__grid { display: grid; grid-template-columns: 1fr 1.05fr; gap: clamp(32px, 5vw, 72px); align-items: start; }
.jfd-contact__intro { display: flex; flex-direction: column; gap: 2.5rem; }
.jfd-contact__infos { display: flex; flex-direction: column; gap: 14px; }
.jfd-formcard { display: flex; flex-direction: column; gap: 1.2rem; padding: clamp(24px, 3vw, 40px); border: 1px solid var(--jfd-line); border-radius: var(--jfd-radius); background: var(--jfd-glass); backdrop-filter: blur(10px); }

/* ============ 7e. MENU FLOTTANT ============ */
.jfd-section.jfd-header {
	position: fixed;
	top: 16px;
	left: 12px;
	right: 12px;
	z-index: 999;
	width: auto;
	max-width: 1216px; /* = conteneur (1240) − 2 × 12 : le logo et le bouton s'alignent sur le texte des sections */
	margin-inline: auto !important;
	padding: 0;
	overflow: visible;
	isolation: auto;
	background: transparent;
	border-radius: 20px;
	font-size: 0.95rem;
}
/* Le flou est sur un pseudo-élément : un backdrop-filter ou un transform sur le parent
   emprisonnerait le menu mobile plein écran (position: fixed) dans la barre. */
.jfd-section.jfd-header::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	border: 1px solid var(--jfd-line);
	border-radius: 20px;
	background: rgba(22, 32, 28, 0.66);
	-webkit-backdrop-filter: blur(16px);
	backdrop-filter: blur(16px);
	box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
}
body.admin-bar .jfd-section.jfd-header { top: 48px; }
@media (max-width: 782px) { body.admin-bar .jfd-section.jfd-header { top: 62px; } }
.jfd-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 10px max(14px, calc(var(--jfd-pad) - 12px)); }
.jfd-section .jfd-logo { font-size: 1.15rem; font-weight: 600; letter-spacing: -0.01em; white-space: nowrap; }
.jfd-logo a::before {
	content: "J";
	display: inline-grid;
	place-items: center;
	width: 30px;
	height: 30px;
	margin-right: 0.6rem;
	border-radius: 8px;
	background: var(--jfd-terra);
	color: var(--jfd-night);
	font-size: 0.95rem;
	font-weight: 700;
	vertical-align: middle;
}
.jfd-header .jfd-nav { flex: 1; justify-content: center; font-family: var(--jfd-font); }
.jfd-header .jfd-nav .wp-block-navigation__container { gap: clamp(14px, 2.2vw, 34px); }
.jfd-header .jfd-nav .wp-block-navigation-item__content { padding: 6px 2px; color: var(--jfd-muted); font-size: 0.92rem; transition: color 0.2s ease; }
.jfd-header .jfd-nav .wp-block-navigation-item__content:hover,
.jfd-header .jfd-nav .wp-block-navigation-item__content:focus-visible { color: var(--jfd-text); }
.jfd-header__actions { display: flex; align-items: center; gap: 18px; }
.jfd-header__actions .wp-block-buttons { margin: 0; }
.jfd-section .jfd-header__tel { font-size: 0.9rem; white-space: nowrap; color: var(--jfd-muted); }
.jfd-section .jfd-btn--light .wp-block-button__link { background: var(--jfd-paper); color: var(--jfd-night); padding: 0.7rem 1.4rem; border-radius: 999px; }
.jfd-section .jfd-btn--light .wp-block-button__link:hover { background: #fff; transform: translateY(-1px); }
/* Menu replié (tablette et mobile) */
@media (max-width: 1180px) { .jfd-header__tel { display: none; } }
@media (max-width: 959px) {
	.jfd-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
	.jfd-header .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex !important; }
	.jfd-header .jfd-nav { flex: 0; }
	.jfd-header__bar { order: 0; }
	.jfd-header .jfd-nav { order: 3; }
	.jfd-header__actions { margin-left: auto; }
}
.jfd-header .wp-block-navigation__responsive-container-open { color: var(--jfd-text); }
.jfd-header .wp-block-navigation__responsive-container.is-menu-open { background: var(--jfd-night) !important; color: var(--jfd-text) !important; padding: 28px; }
.jfd-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.6rem; font-weight: 300; color: var(--jfd-text); }
.jfd-header .wp-block-navigation__responsive-container-close { color: var(--jfd-text); }

/* ============ 7f. PIED DE PAGE ============ */
.jfd-section.jfd-footer { background: var(--jfd-night); padding-block: clamp(56px, 7vw, 88px) 28px; font-size: 0.97rem; }
.jfd-grid--4 { grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: clamp(28px, 4vw, 56px); }
.jfd-footer__brand, .jfd-footer__col { display: flex; flex-direction: column; gap: 0.9rem; }
.jfd-footer__brand p:not(.jfd-logo), .jfd-footer__col p { color: var(--jfd-muted); }
.jfd-section .jfd-footer__title { font-size: 0.76rem; font-weight: 500; letter-spacing: 0.2em; text-transform: uppercase; color: var(--jfd-sage); }
.jfd-section .jfd-linklist { display: flex; flex-direction: column; gap: 0.55rem; margin: 0; padding: 0; list-style: none; color: var(--jfd-muted); }
.jfd-footer a:hover { color: var(--jfd-accent); }
.jfd-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding-top: 24px; border-top: 1px solid var(--jfd-line); color: var(--jfd-muted); font-size: 0.85rem; }


/* Formulaire de devis (Kadence Blocks Form) */
.jfd-formcard .kb-form { font-family: var(--jfd-font); }
.jfd-formcard .kadence-blocks-form-field { margin-bottom: 18px; }
.jfd-formcard .kb-form label:not(.kadence-verify-label) { display: block; margin-bottom: 6px; color: var(--jfd-muted); font-size: 0.85rem; font-weight: 500; letter-spacing: 0.02em; }
.jfd-formcard .kb-form .required { color: var(--jfd-terra-light); }
.jfd-formcard .kb-form :is(input.kb-field, textarea.kb-field, select.kb-field) {
	width: 100%;
	padding: 0.85rem 1rem;
	border: 1px solid var(--jfd-line);
	border-radius: 12px;
	background: rgba(240, 238, 233, 0.07) !important; /* !important : Kadence Blocks génère un style en ligne très spécifique */
	color: var(--jfd-text) !important;
	border-color: var(--jfd-line) !important;
	font: inherit;
	font-size: 1rem;
	color-scheme: dark;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}
.jfd-formcard .kb-form input.kb-field { height: 3.4rem; }
.jfd-formcard .kb-form textarea.kb-field { min-height: 130px; resize: vertical; }
.jfd-formcard .kb-form .kadence-blocks-form-field { vertical-align: top; align-self: flex-start; }
.jfd-formcard .kb-form :is(input.kb-field, textarea.kb-field, select.kb-field):focus { outline: 2px solid var(--jfd-terra-light); outline-offset: 1px; border-color: var(--jfd-terra) !important; background: rgba(240, 238, 233, 0.11) !important; }
.jfd-formcard .kb-form ::placeholder { color: rgba(240, 238, 233, 0.5); }
.jfd-formcard .kb-form .kb-forms-submit {
	width: 100%;
	padding: 1rem 1.6rem;
	border: 0;
	border-radius: 14px;
	background: var(--jfd-terra) !important;
	color: var(--jfd-night) !important;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.25s ease, transform 0.25s ease;
}

.jfd-formcard .kb-form .kb-forms-submit:hover { background: var(--jfd-terra-hover) !important; transform: translateY(-1px); }
.jfd-formcard .kb-form .kb-forms-submit:focus-visible { outline: 2px solid var(--jfd-text); outline-offset: 3px; }
.jfd-formcard .kb-form-error-msg, .jfd-formcard .kadence-blocks-form-message { color: var(--jfd-terra-light); font-size: 0.9rem; }
.jfd-logo a, .jfd-header__tel a, .jfd-footer a, .jfd-section .jfd-info__value a { text-decoration: none !important; }
.jfd-section .jfd-footer__bottom a, .jfd-footer .jfd-footer__col a { text-decoration: none !important; }


/* ============ 9. HARMONISATION (formes, tailles, espacements, texte justifié) ============ */
/* Un seul rayon pour tous les boutons et champs ; un seul rayon pour toutes les cartes. */
.jfd-section.jfd-header, .jfd-section.jfd-header::before { border-radius: var(--jfd-radius); }
.jfd-section.jfd-header::before { background: rgba(22, 32, 28, 0.84); }
.jfd-section .jfd-btn--light .wp-block-button__link { border-radius: var(--jfd-radius-sm); padding: 0.7rem 1.3rem; }
.jfd-section .jfd-btn--light .wp-block-button__link::after { content: "→"; content: "→" / ""; margin-left: 0.6em; }

.jfd-formcard .kb-form .kb-forms-submit {
	min-height: 3.2rem;
	padding: 0.95rem 1.6rem !important;
	border-radius: var(--jfd-radius-sm) !important;
	font-size: 0.95rem !important;
	font-weight: 500 !important;
	line-height: 1.2 !important;
}
.jfd-formcard .kb-form .kb-forms-submit::after { content: "→"; content: "→" / ""; margin-left: 0.7em; }
.jfd-formcard .kb-form :is(input.kb-field, textarea.kb-field, select.kb-field) {
	padding: 0.85rem 1rem !important;
	border-radius: var(--jfd-radius-sm) !important;
	font-size: 1rem !important;
	line-height: 1.4 !important;
}
.jfd-formcard .kb-form :is(input.kb-field, textarea.kb-field, select.kb-field) { box-sizing: border-box; }
.jfd-formcard .kb-form input.kb-field { height: 3.2rem; min-height: 3.2rem !important; } /* Kadence impose 60 px (taille « large ») */

/* Espacements : même intervalle partout. */
.jfd-grid, .jfd-grid--services, .jfd-gallery, .jfd-contact__infos { gap: var(--jfd-gap); }
.jfd-gallery .wp-block-image, .jfd-gallery figure { margin: 0 !important; }
.jfd-formcard .kadence-blocks-form-field { margin-bottom: var(--jfd-gap); }
.jfd-formcard .kb-form .kb-submit-field { margin-bottom: 0; }
.jfd-card__link a { text-decoration: none !important; }

/* Textes justifiés : paragraphes courants seulement (pas les titres, étiquettes, boutons ni coordonnées). */
.jfd-section p {
	text-align: justify;
	text-justify: inter-word;
	hyphens: auto;
	-webkit-hyphens: auto;
	overflow-wrap: break-word;
}
.jfd-section :is(.jfd-eyebrow, .jfd-logo, .jfd-header__tel, .jfd-stat__num, .jfd-stat__label,
	.jfd-service__num, .jfd-step__label, .jfd-info__label, .jfd-info__value, .jfd-card__title,
	.jfd-card__link, .jfd-footer__bottom p, .jfd-footer__col p, .jfd-formslot) { text-align: left; hyphens: manual; }
.jfd-section .jfd-checklist li { text-align: justify; hyphens: auto; }


/* ============ 9b. SERVICES DÉTAILLÉS, FAQ, APPEL MOBILE, PAGE LÉGALE ============ */
.jfd-service { justify-content: flex-start; }
.jfd-section .jfd-service__list { display: flex; flex-direction: column; gap: 0.35rem; margin: 0.4rem 0 0; padding: 0; list-style: none; font-size: 0.93rem; color: var(--jfd-muted); }
.jfd-service__list li { position: relative; padding-left: 1.2rem; text-align: left; }
.jfd-service__list li::before { content: ""; position: absolute; left: 0; top: 0.62em; width: 6px; height: 6px; border-radius: 50%; background: var(--jfd-terra); }

.jfd-faq__grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: clamp(32px, 5vw, 72px); align-items: start; }
.jfd-faq__list { display: flex; flex-direction: column; gap: 12px; }
.jfd-faq .wp-block-details { margin: 0; padding: 0; border: 1px solid var(--jfd-line); border-radius: var(--jfd-radius); background: var(--jfd-glass); transition: border-color 0.25s ease; }
.jfd-faq .wp-block-details[open] { border-color: var(--jfd-terra); }
.jfd-faq .wp-block-details summary { position: relative; padding: 20px 56px 20px 24px; font-size: 1.05rem; font-weight: 500; line-height: 1.4; cursor: pointer; list-style: none; }
.jfd-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.jfd-faq .wp-block-details summary::after { content: "+"; position: absolute; right: 24px; top: 50%; transform: translateY(-50%); font-size: 1.5rem; font-weight: 300; color: var(--jfd-accent); transition: transform 0.25s ease; }
.jfd-faq .wp-block-details[open] summary::after { content: "–"; }
.jfd-faq .wp-block-details summary:focus-visible { outline: 2px solid var(--jfd-accent); outline-offset: 2px; border-radius: var(--jfd-radius); }
.jfd-faq .wp-block-details p { margin: 0; padding: 0 24px 22px; color: var(--jfd-muted); }

.jfd-section .jfd-formnote { font-size: 0.85rem; color: var(--jfd-muted); text-align: left; }
.jfd-section .jfd-formnote a { text-decoration: underline !important; text-decoration-color: var(--jfd-accent); text-underline-offset: 0.2em; }
.jfd-formcard .kb-form .kb-checkbox-style, .jfd-formcard .kb-form .kb-field[type="checkbox"] { width: auto; height: auto; min-height: 0 !important; accent-color: var(--jfd-terra); }
.jfd-formcard .kb-form .kb-radio-check-item label { display: inline; margin: 0; color: var(--jfd-muted); font-size: 0.88rem; }

/* Menu : section en cours */
.jfd-header .jfd-nav .wp-block-navigation-item__content[aria-current="true"] { color: var(--jfd-text); box-shadow: inset 0 -2px 0 var(--jfd-terra); }

/* Barre d'appel mobile */
.jfd-section.jfd-callbar { display: none; }
@media (max-width: 959px) {
	.jfd-section.jfd-callbar {
		position: fixed;
		left: 12px;
		right: 12px;
		bottom: 12px;
		z-index: 998;
		display: flex;
		gap: 10px;
		padding: 0;
		overflow: visible;
		background: transparent;
	}
	.jfd-callbar p { flex: 1; margin: 0; text-align: center; }
	.jfd-section.jfd-callbar a { display: flex; align-items: center; justify-content: center; min-height: 50px; padding: 0.7rem 1rem; border-radius: var(--jfd-radius-sm); font-size: 0.95rem; font-weight: 500; line-height: 1.2; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.3); }
	.jfd-section.jfd-callbar .jfd-callbar__call a { background: var(--jfd-terra); color: var(--jfd-night); }
	.jfd-section.jfd-callbar .jfd-callbar__quote a { background: var(--jfd-paper); color: var(--jfd-night); }
	.jfd-section.jfd-footer { padding-bottom: 104px; }
}

/* Page légale (politique de confidentialité) */
.jfd-legal .jfd-container { display: flex; flex-direction: column; gap: 1rem; }
.jfd-section.jfd-legal h2 { padding-top: 1.4rem; font-size: 1.45rem; font-weight: 500; letter-spacing: 0; }
.jfd-section.jfd-legal ul { padding-left: 1.3rem; display: flex; flex-direction: column; gap: 0.5rem; }
.jfd-section.jfd-legal { padding-top: clamp(120px, 14vw, 170px); }
.jfd-legal .jfd-container { max-width: 860px; }
.jfd-legal :is(h1, h2, h3) { margin-top: 2rem; }
.jfd-legal h1 { font-size: clamp(2.2rem, 5vw, 3.6rem); margin-top: 0; }
.jfd-legal :is(p, li) { text-align: left; color: var(--jfd-text); }
.jfd-legal a { text-decoration: underline; text-decoration-color: var(--jfd-accent); text-underline-offset: 0.2em; }

/* ============ 8. RESPONSIVE & ACCESSIBILITÉ ============ */
@media (max-width: 900px) {
	.jfd-faq__grid { grid-template-columns: 1fr; }
	.jfd-contact__grid { grid-template-columns: 1fr; }
	.jfd-grid--4 { grid-template-columns: 1fr 1fr; }
	.jfd-hero__inner { grid-template-columns: 1fr; }
	.jfd-hero__card { max-width: 420px; }
}
@media (max-width: 600px) {
	.jfd-section p, .jfd-section .jfd-checklist li { text-align: left; hyphens: manual; -webkit-hyphens: manual; }
}
@media (max-width: 560px) {
	.jfd-grid--4 { grid-template-columns: 1fr; }
	.jfd-hero__stats { grid-template-columns: 1fr; gap: 16px; }
	.jfd-stat { display: flex; align-items: baseline; gap: 1rem; }
	.jfd-section .jfd-stat__label { margin-top: 0; }
}
@media (prefers-reduced-motion: reduce) {
	html:has(body.jfd-has-design) { scroll-behavior: auto; }
	.jfd-shot:hover img { transform: none; }
	.jfd-section *,
	.jfd-section *::before,
	.jfd-section *::after { transition: none !important; }
	.jfd-service:hover,
	.jfd-service:focus-within { transform: none; }
}

/* 10. Zones tactiles confortables (>= 44px) sur écrans tactiles / petits écrans */
@media (max-width: 959px), (pointer: coarse) {
	.jfd-header .wp-block-navigation__responsive-container-open { min-width: 44px; min-height: 44px; align-items: center; justify-content: center; }
	.jfd-footer .jfd-footer__col a { display: inline-flex; align-items: center; min-height: 44px; }
	.jfd-footer .jfd-footer__bottom a { display: inline-block; padding-block: 0.7rem; }
	.jfd-footer .jfd-footer__col { gap: 0; }
	.jfd-section .jfd-service__title a, .jfd-section .jfd-card__link a, .jfd-section .jfd-info__value a { display: inline-flex; align-items: center; min-height: 44px; }
	.jfd-formcard .kb-form .kb-checkbox-item { display: flex; align-items: flex-start; gap: 0.7rem; padding-block: 0.4rem; }
	.jfd-formcard .kb-form .kb-checkbox-item input { flex: none; margin: 0.15rem 0 0 !important; }
	.jfd-formcard .kb-form .kb-checkbox-item label { flex: 1; margin: 0 !important; padding: 0 !important; line-height: 1.5; }
	.jfd-formcard .kb-form .kb-checkbox-style { width: 1.35rem !important; height: 1.35rem !important; }
}

/* Bouton « Devis » de l'en-tête : jamais de retour à la ligne */
.jfd-header .wp-block-button__link { white-space: nowrap; }
@media (max-width: 480px) {
	.jfd-header .wp-block-button .wp-block-button__link { padding-inline: 1rem; min-height: 44px; }
}

.jfd-section.jfd-callbar a { text-decoration: none !important; }
