/*
Theme Name: J.E.L Nettoyage — jel-child
Theme URI: https://jelnettoyage.fr/
Description: Theme enfant de GeneratePress pour J.E.L Nettoyage. Charte vert sapin et or, direction A.
Author: SACEA Digital
Template: generatepress
Version: 1.0.0
Text Domain: jel-child
*/

/* ==========================================================================
   Couche « direction A ». Les classes sont prefixees .ma- : aucune ne croise
   celles de assets/base.css, donc les pages internes gardent leur rendu.
   ========================================================================== */

:root {
	--green-deep: #0a3a1f;
	--green-dark: #0c4524;
	--green-mid: #1a5a3a;
	--gold: #d4a72c;
	--gold-soft: #e6c25f;
	--gold-dark: #846619;
	--cream: #faf6ea;
	--ink: #0a1a12;
	--muted: #5a6a5e;
	--line: #e5ebe7;
}

/* ---------- en-tete ---------- */
.site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	background: var(--green-deep);
	border-bottom: 1px solid rgba(212, 167, 44, .28);
}
.site-header .main-title,
.site-header .main-title a {
	font-family: Georgia, 'Times New Roman', serif;
	color: var(--gold);
	letter-spacing: .06em;
	text-decoration: none;
}
/* « J.E.L Nettoyage » sur une seule ligne. .inside-header est une rangee flex :
   sans ces deux regles le menu prend la place et comprime le titre a 166 px,
   ce qui le coupe en deux. */
.site-header .site-branding {
	flex-shrink: 0;
}
.site-header .main-title {
	white-space: nowrap;
}
.main-navigation,
.main-navigation .inside-navigation {
	background: transparent;
}
.main-navigation a {
	color: rgba(250, 246, 234, .82);
}
.main-navigation a:hover,
.main-navigation .current-menu-item > a {
	color: var(--gold);
}
/* Accueil, Methode, Conseils, A propos : retires de la barre sur ordinateur
   seulement. Sous 1024 px c'est le menu deroulant qui s'affiche, il a la place
   et garde ses dix entrees. Le logo reste le lien vers l'accueil. */
@media (min-width: 1024px) {
	.main-navigation .main-nav li.jel-nav-pied {
		display: none;
	}
}
/* Palier etroit de l'ordinateur. A 1024 px la rangee pese 756 px pour 751 px
   disponibles : ramener la marge interne des liens de 16 a 11 px rend 60 px et
   la fait tenir. Au-dela de 1180 px la marge pleine revient. */
@media (min-width: 1024px) and (max-width: 1180px) {
	.main-navigation .main-nav ul li a {
		padding-left: 11px;
		padding-right: 11px;
	}
}
.ma-nav-tel > a {
	color: var(--cream) !important;
	font-weight: 600;
	white-space: nowrap;
}
.ma-nav-tel > a:hover {
	color: var(--gold) !important;
}

/* ---------- pied ---------- */
.site-footer .site-info,
.site-info {
	background: #031a0f;
	color: rgba(250, 246, 234, .6);
	font-size: 13px;
	padding: 26px 0;
	text-align: center;
}
.site-info a {
	color: rgba(250, 246, 234, .78);
}

/* ---------- accueil : les sections sortent du conteneur GeneratePress ----------
   GeneratePress enferme le contenu dans .grid-container (1200 px) + .inside-article.
   La maquette A veut des bandes pleine largeur : on neutralise ces boites sur
   l'accueil seulement, les pages internes gardent la mise en page du theme. */
.home .site.grid-container {
	max-width: 100%;
	padding: 0;
}
.home .site-content,
.home .content-area,
.home .site-main {
	padding: 0;
	margin: 0;
}
.home .inside-article {
	padding: 0;
}
.home .entry-content {
	margin: 0;
}

/* ---------- utilitaires ---------- */
.ma-container {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}
.ma-gold {
	color: var(--gold);
}
.ma-it {
	font-style: italic;
	color: var(--gold-dark);
}
.ma-ic {
	width: 17px;
	height: 17px;
	flex: 0 0 auto;
	display: block;
}
/* Pour les boutons qui ne sont pas en flex (hero des pages de service). */
.ma-ic-inline {
	display: inline-block;
	vertical-align: -3px;
	margin-right: 5px;
}
/* Pastille ronde du bloc « Contact direct » : l'icone occupe le centre. */
.ma-contact-ico .ma-ic {
	width: 17px;
	height: 17px;
}
/* Pastille des gages de confiance du hero. */
.ma-check .ma-ic {
	width: 11px;
	height: 11px;
	stroke-width: 3;
}

/* ---------- hero : grande photo en haut ---------- */
.ma-hero {
	position: relative;
	background: var(--green-deep);
	color: #fff;
	overflow: hidden;
}
.ma-hero-media {
	position: relative;
	height: 62vh;
	min-height: 360px;
	max-height: 520px;
}
.ma-hero-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: 50% 38%;
	display: block;
}
.ma-hero-media::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(10, 58, 31, .14) 0%, rgba(10, 58, 31, .38) 40%, rgba(10, 58, 31, .96) 100%);
}
.ma-hero-body {
	position: relative;
	margin-top: -92px;
	padding: 0 20px 44px;
}
.ma-hero-eyebrow {
	margin: 0;
	display: inline-block;
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gold-soft);
	padding-bottom: 12px;
}
.ma-hero h1 {
	font-family: Georgia, 'Times New Roman', serif;
	font-weight: 400;
	font-size: clamp(30px, 8vw, 46px);
	line-height: 1.14;
	margin: 0 0 16px;
	color: #fff;
}
.ma-hero h1 .ma-gold {
	color: var(--gold);
}
.ma-hero-lead {
	color: rgba(250, 246, 234, .86);
	font-size: 16px;
	max-width: 620px;
	margin: 0;
}
.ma-hero-rule {
	width: 54px;
	height: 2px;
	background: var(--gold);
	margin: 22px 0;
}
.ma-trust-row {
	display: flex;
	flex-direction: column;
	gap: 9px;
	margin-top: 24px;
}
.ma-trust-item {
	display: flex;
	align-items: center;
	gap: 9px;
	font-size: 14px;
	color: rgba(250, 246, 234, .9);
}
.ma-check {
	display: grid;
	place-items: center;
	width: 19px;
	height: 19px;
	border-radius: 50%;
	background: rgba(212, 167, 44, .17);
	color: var(--gold);
	font-size: 11px;
	flex: 0 0 auto;
}

/* ---------- boutons ---------- */
.ma-ctas {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 26px;
}
.ma-btn {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	padding: 15px 22px;
	border-radius: 3px;
	font-size: 15px;
	font-weight: 600;
	text-decoration: none;
	border: 1px solid transparent;
	transition: .18s;
}
/* Le selecteur de type « a » est indispensable : pages.css pose
   .entry-content a { color:#846619 } (0,1,1). Sans lui, ces regles sont
   a (0,1,0) et perdent la couleur du texte — contraste tombe a 2,4:1. */
a.ma-btn-call {
	background: var(--gold);
	color: var(--ink);
	border-color: var(--gold);
}
a.ma-btn-call:hover {
	background: var(--gold-soft);
	color: var(--ink);
}
a.ma-btn-quote {
	background: transparent;
	color: var(--cream);
	border-color: rgba(250, 246, 234, .45);
}
a.ma-btn-quote:hover {
	border-color: var(--gold);
	color: var(--gold-soft);
}
.ma-btn-wa {
	background: #1f9d55;
	color: #fff;
	border-color: #1f9d55;
}
/* « Nous écrire » : troisieme niveau de hierarchie, plus discret que le devis.
   Le selecteur de type « a » est indispensable face a .entry-content a (0,1,1). */
/* Liens du site deplaces dans le pied de page : un cran plus lisibles que les
   liens legaux, ce sont des pages de contenu et non des mentions. */
.jel-footer-nav {
	margin-bottom: 10px;
	font-size: 14px;
	color: rgba(250, 246, 234, .55);
}
.jel-footer-nav a {
	color: rgba(250, 246, 234, .9);
	text-decoration: none;
}
.jel-footer-nav a:hover {
	color: var(--gold-soft);
	text-decoration: underline;
}

a.ma-btn-write {
	background: transparent;
	color: rgba(250, 246, 234, .82);
	/* .36 et pas moins : en dessous le contour tombe sous les 3:1 exiges pour
	   un element d'interface (WCAG 1.4.11). Reste en retrait du .45 du devis. */
	border-color: rgba(250, 246, 234, .36);
}
a.ma-btn-write:hover {
	border-color: var(--gold);
	color: var(--gold-soft);
}
a.ma-see-more {
	display: inline-block;
	margin-top: 18px;
	font-size: 14px;
	color: var(--gold-soft);
	text-decoration: none;
	border-bottom: 1px solid rgba(212, 167, 44, .4);
	padding-bottom: 2px;
}

/* ---------- carte contact ---------- */
.ma-hero-card {
	background: rgba(255, 255, 255, .055);
	border: 1px solid rgba(212, 167, 44, .3);
	border-radius: 4px;
	padding: 22px;
	margin-top: 30px;
}
.ma-hero-card-title {
	font-size: 10px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gold);
	margin-bottom: 10px;
}
.ma-hero-card-h {
	font-family: Georgia, serif;
	font-size: 18px;
	line-height: 1.35;
	color: var(--cream);
	margin-bottom: 18px;
}
.ma-contact-row {
	display: flex;
	gap: 13px;
	align-items: center;
	padding: 11px 0;
	border-top: 1px solid rgba(250, 246, 234, .12);
}
.ma-contact-ico {
	display: grid;
	place-items: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(212, 167, 44, .14);
	color: var(--gold);
	flex: 0 0 auto;
}
.ma-contact-row .ma-label {
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: rgba(250, 246, 234, .55);
}
.ma-contact-row .ma-value {
	font-size: 15px;
	font-weight: 600;
	color: var(--cream);
}

/* ---------- sections ---------- */
.ma-section {
	padding: 56px 0;
}
.ma-section-title {
	margin-bottom: 30px;
}
.ma-section-eyebrow {
	margin: 0;
	display: inline-block;
	font-size: 11px;
	letter-spacing: .2em;
	text-transform: uppercase;
	color: var(--gold-dark);
	padding-bottom: 10px;
}
.ma-section-title h2 {
	font-family: Georgia, 'Times New Roman', serif;
	font-weight: 400;
	font-size: clamp(24px, 6.4vw, 34px);
	line-height: 1.2;
	margin: 0;
	color: var(--ink);
}
.ma-section-sub {
	color: var(--muted);
	margin: 12px 0 0;
	font-size: 15px;
	max-width: 620px;
}

.ma-why-grid,
.ma-services-grid,
.ma-process-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
.ma-why-card {
	border: 1px solid var(--line);
	border-left: 3px solid var(--gold);
	border-radius: 3px;
	padding: 22px;
	background: #fff;
}
.ma-why-num {
	font-family: Georgia, serif;
	font-size: 15px;
	letter-spacing: .1em;
	color: var(--gold-dark);
	margin-bottom: 10px;
}
.ma-why-card h3 {
	font-size: 17px;
	margin: 0 0 8px;
}
.ma-why-card p {
	color: var(--muted);
	font-size: 14.5px;
	margin: 0;
}

.ma-services-bg {
	background: var(--cream);
	padding: 56px 0;
}
.ma-service-card {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 3px;
	padding: 22px;
	position: relative;
}
.ma-service-num {
	font-family: Georgia, serif;
	font-size: 13px;
	color: var(--gold-dark);
	letter-spacing: .12em;
	margin-bottom: 10px;
}
.ma-service-card h3 {
	font-size: 16.5px;
	line-height: 1.3;
	margin: 0 0 9px;
}
.ma-service-card p {
	color: var(--muted);
	font-size: 14.5px;
	margin: 0;
}
.ma-service-card .ma-meta {
	margin-top: 13px;
	padding-top: 11px;
	border-top: 1px solid var(--line);
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--gold-dark);
}
.ma-cta-card {
	background: var(--green-deep);
	border-color: var(--green-deep);
	color: #fff;
	grid-column: 1 / -1;
}
.ma-cta-card h3 {
	color: var(--gold);
	font-size: 18px;
	margin: 0 0 9px;
}
.ma-cta-card p {
	color: rgba(250, 246, 234, .82);
	margin: 0;
}
.ma-cta-card a {
	display: inline-block;
	margin-top: 14px;
	color: var(--gold-soft);
	font-weight: 600;
	font-size: 14.5px;
	text-decoration: none;
	border-bottom: 1px solid rgba(212, 167, 44, .45);
	padding-bottom: 2px;
}

/* ---------- avant / apres ---------- */
.ma-ba-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
}
.ma-ba {
	position: relative;
	border-radius: 3px;
	overflow: hidden;
	border: 1px solid var(--line);
	background: #eee;
	aspect-ratio: 3 / 4;
	touch-action: pan-y;
}
.ma-ba img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	user-select: none;
	-webkit-user-drag: none;
	margin: 0;
}
.ma-ba .ma-after-wrap {
	position: absolute;
	inset: 0;
	clip-path: inset(0 0 0 50%);
}
.ma-ba-handle {
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 2px;
	background: var(--gold);
	transform: translateX(-1px);
	pointer-events: none;
}
.ma-ba-handle::after {
	content: "\2194";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: var(--gold);
	color: var(--ink);
	display: grid;
	place-items: center;
	font-size: 17px;
	box-shadow: 0 2px 10px rgba(0, 0, 0, .3);
}
.ma-ba-tag {
	position: absolute;
	bottom: 10px;
	font-size: 10px;
	letter-spacing: .16em;
	text-transform: uppercase;
	background: rgba(10, 26, 18, .76);
	color: var(--cream);
	padding: 5px 9px;
	border-radius: 2px;
	pointer-events: none;
	z-index: 2;
}
.ma-ba-tag.ma-l {
	left: 10px;
}
.ma-ba-tag.ma-r {
	right: 10px;
	background: rgba(212, 167, 44, .9);
	color: var(--ink);
}
.ma-ba-range {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	opacity: 0;
	cursor: ew-resize;
	margin: 0;
	z-index: 3;
}
.ma-ph {
	background: repeating-linear-gradient(45deg, #e7e7e4, #e7e7e4 10px, #dedede 10px, #dedede 20px);
	border: 1px dashed #b9b9b4;
	display: grid;
	place-items: center;
	text-align: center;
	color: #75756f;
	font-size: 12px;
	letter-spacing: .06em;
	padding: 18px;
	border-radius: 3px;
	aspect-ratio: 3 / 4;
}

/* ---------- methode ---------- */
.ma-process {
	background: var(--green-deep);
	color: #fff;
	padding: 56px 0;
}
.ma-process .ma-section-eyebrow {
	margin: 0;
	color: var(--gold-soft);
}
.ma-process .ma-section-title h2 {
	color: #fff;
}
.ma-process .ma-section-sub {
	color: rgba(250, 246, 234, .78);
}
.ma-process .ma-it {
	color: var(--gold-soft);
}
.ma-process-step {
	border-top: 1px solid rgba(212, 167, 44, .32);
	padding-top: 18px;
}
.ma-process-num {
	font-family: Georgia, serif;
	font-size: 30px;
	color: var(--gold);
	line-height: 1;
	margin-bottom: 12px;
}
.ma-process-step h3 {
	font-size: 17px;
	margin: 0 0 8px;
	color: var(--cream);
}
.ma-process-step p {
	color: rgba(250, 246, 234, .76);
	font-size: 14.5px;
	margin: 0;
}

/* ---------- zones ---------- */
.ma-zones-bg {
	background: var(--cream);
	padding: 56px 0;
}
.ma-zones-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 11px;
}
.ma-zone-pill {
	background: #fff;
	border: 1px solid var(--line);
	border-radius: 3px;
	padding: 14px;
}
.ma-zone-name {
	font-weight: 600;
	font-size: 14.5px;
}
.ma-zone-meta {
	font-size: 11.5px;
	color: var(--muted);
	margin-top: 3px;
}

/* ---------- CTA bas ---------- */
.ma-cta-block {
	background: var(--ink);
	color: #fff;
	padding: 56px 0;
	text-align: center;
}
.ma-cta-block h2 {
	font-family: Georgia, 'Times New Roman', serif;
	font-weight: 400;
	font-size: clamp(24px, 6.4vw, 34px);
	margin: 0 0 14px;
	color: #fff;
}
.ma-cta-block p {
	color: rgba(250, 246, 234, .78);
	max-width: 600px;
	margin: 0 auto;
	font-size: 15px;
}
.ma-cta-block .ma-ctas {
	/* 3 boutons depuis l'ajout de « Nous écrire » : un peu plus large qu'en
	   maquette (380 px pour 2) pour eviter une ligne orpheline sur grand ecran. */
	max-width: 560px;
	margin: 26px auto 0;
}

/* ---------- ordinateur ---------- */
@media (min-width: 900px) {
	.ma-hero-media {
		height: 72vh;
		min-height: 520px;
		max-height: 640px;
	}
	.ma-hero-body {
		margin-top: -300px;
		padding-bottom: 64px;
		padding-left: 0;
		padding-right: 0;
	}
	.ma-hero-inner {
		max-width: 1200px;
		margin: 0 auto;
		display: grid;
		grid-template-columns: 1.25fr .75fr;
		gap: 48px;
		align-items: end;
		padding: 0 20px;
	}
	.ma-hero h1 {
		font-size: 50px;
	}
	.ma-hero-lead {
		font-size: 17.5px;
	}
	.ma-ctas {
		flex-direction: row;
		flex-wrap: wrap;
	}
	.ma-btn {
		flex: 0 0 auto;
	}
	.ma-hero-card {
		margin-top: 0;
	}
	.ma-trust-row {
		flex-direction: row;
		gap: 22px;
	}
	.ma-section,
	.ma-services-bg,
	.ma-process,
	.ma-zones-bg,
	.ma-cta-block {
		padding: 84px 0;
	}
	.ma-section-title {
		margin-bottom: 44px;
	}
	.ma-why-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 22px;
	}
	.ma-services-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 22px;
	}
	.ma-cta-card {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 30px;
		flex-wrap: wrap;
	}
	.ma-cta-card > div {
		flex: 1 1 320px;
	}
	.ma-process-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 32px;
	}
	.ma-zones-grid {
		grid-template-columns: repeat(4, 1fr);
		gap: 14px;
	}
	.ma-ba-grid {
		/* 2 paires seulement : on garde la largeur de tuile de la maquette (3 colonnes
		   sur 1200 px) en bornant la grille, sinon les portraits deviennent enormes. */
		grid-template-columns: repeat(2, 1fr);
		gap: 22px;
		max-width: 766px;
		margin-inline: auto;
	}
}
