/* ==========================================================================
   Laboratoire Massonnière — styles complémentaires à theme.json
   ========================================================================== */

html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
[id] { scroll-margin-top: 96px; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { height: auto; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }

h1 em, h2 em, h3 em { font-style: italic; font-weight: 400; }
h1, h2 { text-wrap: balance; font-variation-settings: "opsz" 96; }
p { text-wrap: pretty; }

/* ---------- En-tête ---------- */
.mass-entete-wrap {
	position: sticky;
	top: 0;
	z-index: 50;
	transition: box-shadow .3s ease;
}
.admin-bar .mass-entete-wrap { top: 32px; }
@media (max-width: 782px) { .admin-bar .mass-entete-wrap { top: 46px; } }
@media (max-width: 600px) { .admin-bar .mass-entete-wrap { top: 0; } }
.mass-entete-wrap.is-scrolled { box-shadow: 0 10px 30px -18px rgba(14, 46, 18, .45); }
.mass-entete { border-bottom: 1px solid var(--wp--preset--color--ligne); }
.mass-logo { margin: 0; flex-shrink: 0; }
.mass-logo img { display: block; width: clamp(150px, 16vw, 210px) !important; height: auto; }
.mass-entete .wp-block-navigation a { text-decoration: none; position: relative; }
.mass-entete .wp-block-navigation .wp-block-navigation-item__content::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: -4px; height: 2px;
	background: var(--wp--preset--color--vert); transform: scaleX(0); transform-origin: left;
	transition: transform .25s ease;
}
.mass-entete .wp-block-navigation .wp-block-navigation-item__content:hover::after,
.mass-entete .wp-block-navigation .wp-block-navigation-item__content:focus-visible::after { transform: scaleX(1); }
.mass-entete .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.5rem; font-family: var(--wp--preset--font-family--titres); }
.mass-entete__cta .wp-block-button__link { padding: .6rem 1.2rem; font-size: .9rem; white-space: nowrap; }
@media (max-width: 640px) { .mass-entete__cta { display: none; } }

/* ---------- Surtitres ---------- */
.mass-surtitre {
	font-size: .78rem !important;
	font-weight: 700;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--wp--preset--color--vert);
	display: flex;
	align-items: center;
	gap: .75rem;
}
.mass-surtitre::before { content: ""; width: 2.25rem; height: 1px; background: currentColor; opacity: .7; }
.has-text-align-center.mass-surtitre { justify-content: center; }
.mass-section--sombre .mass-surtitre,
.wp-block-cover .mass-surtitre { color: #A9D18E; }

/* ---------- Hero ---------- */
.mass-hero h1 { font-size: clamp(2.3rem, 5.2vw, 4.4rem); line-height: 1.06; }
.mass-hero h1 em { color: #BFE3A5; }
.mass-hero .mass-bouton-clair .wp-block-button__link,
.mass-bouton-clair .wp-block-button__link {
	color: #fff; border: 1.5px solid rgba(255,255,255,.65); background: transparent;
}
.mass-bouton-clair .wp-block-button__link:hover { background: #fff; color: var(--wp--preset--color--foret); }
.mass-hero::after {
	content: ""; position: absolute; left: 50%; bottom: 1.75rem; width: 1px; height: 3.5rem; z-index: 2;
	background: linear-gradient(to bottom, rgba(255,255,255,0), rgba(255,255,255,.8));
	animation: mass-defile 2.2s ease-in-out infinite;
}
@keyframes mass-defile { 0%,100% { transform: translateY(-8px); opacity: .2; } 50% { transform: translateY(6px); opacity: 1; } }

/* ---------- Parallaxe ---------- */
.mass-parallax { overflow: hidden; }
.mass-js .mass-parallax > .wp-block-cover__image-background {
	transform: translate3d(0, var(--mass-py, 0px), 0) scale(1.2);
	will-change: transform;
}
@media (prefers-reduced-motion: reduce) {
	.mass-js .mass-parallax > .wp-block-cover__image-background { transform: none; }
	.mass-hero::after { animation: none; }
}

/* ---------- Chiffres clés ---------- */
.mass-chiffres { border-bottom: 1px solid var(--wp--preset--color--ligne); }
.mass-chiffres__grille { gap: 0 !important; }
.mass-chiffres__grille > .wp-block-column { padding: .5rem clamp(1rem, 2.5vw, 2rem); border-left: 1px solid var(--wp--preset--color--ligne); }
.mass-chiffres__grille > .wp-block-column:first-child { border-left: 0; padding-left: 0; }
.mass-chiffre {
	font-family: var(--wp--preset--font-family--titres);
	font-size: clamp(2.4rem, 4vw, 3.4rem);
	line-height: 1; color: var(--wp--preset--color--vert); margin-bottom: .35rem !important;
	font-variation-settings: "opsz" 144; font-weight: 400;
}
.mass-chiffre span { font-size: .42em; color: var(--wp--preset--color--foret); font-style: italic; }
.mass-chiffres .has-petit-font-size { color: var(--wp--preset--color--gris); margin-top: 0; line-height: 1.45; }
@media (max-width: 781px) {
	.mass-chiffres__grille { display: grid !important; grid-template-columns: 1fr 1fr; row-gap: 1.5rem !important; }
	.mass-chiffres__grille > .wp-block-column { border-left: 0; padding: 0 .5rem; }
}

/* ---------- Cartes spécialités ---------- */
.mass-carte-spe {
	border-radius: var(--wp--custom--radius);
	overflow: hidden;
	padding: 0 0 1.6rem;
	box-shadow: 0 1px 0 var(--wp--preset--color--ligne), var(--wp--custom--ombre);
	transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s ease;
}
.mass-carte-spe > :not(figure) { padding-inline: 1.5rem; }
.mass-carte-spe > figure { margin: 0 0 .5rem !important; overflow: hidden; }
.mass-carte-spe > figure img { width: 100%; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.mass-carte-spe h3 { font-size: 1.4rem; margin-top: 1rem; }
.mass-carte-spe p { font-size: .97rem; color: var(--wp--preset--color--gris); line-height: 1.6; }
.mass-carte-spe:hover { transform: translateY(-6px); box-shadow: 0 1px 0 var(--wp--preset--color--ligne), 0 28px 50px -24px rgba(14,46,18,.45); }
.mass-carte-spe:hover > figure img { transform: scale(1.05); }

/* ---------- Citation (parallaxe) ---------- */
.mass-citation__texte { font-style: italic; font-weight: 300; line-height: 1.3 !important; font-variation-settings: "opsz" 144; }

/* ---------- Le laboratoire ---------- */
.mass-portrait { border-radius: var(--wp--custom--radius); }
.mass-portrait figure { margin: 0; flex-shrink: 0; }
.mass-portrait p { margin: 0; }
.mass-image-decalee { margin: 0; position: relative; }
.mass-image-decalee img { border-radius: var(--wp--custom--radius); box-shadow: 22px 22px 0 var(--wp--preset--color--sauge); width: 100%; }
.mass-valeurs { border-top: 1px solid var(--wp--preset--color--ligne); padding-top: var(--wp--preset--spacing--50); }
.mass-valeurs h3 { display: flex; align-items: center; gap: .6rem; }
.mass-valeurs h3::before { content: ""; width: .55rem; height: .55rem; border-radius: 50%; background: var(--wp--preset--color--vert); }

/* ---------- Systèmes (section sombre) ---------- */
.mass-section--sombre h2, .mass-section--sombre h3 { color: #fff; }
.mass-carte-sys { border-top: 1px solid rgba(255,255,255,.18); padding-top: 1.25rem; }
.mass-carte-sys figure { margin: 0 0 .5rem; overflow: hidden; border-radius: 10px; }
.mass-carte-sys figure img { width: 100%; filter: saturate(.92); transition: transform .6s cubic-bezier(.2,.7,.2,1); }
.mass-carte-sys:hover figure img { transform: scale(1.05); }
.mass-carte-sys p { color: #C9D8C2; line-height: 1.55; }
.mass-galerie figure img { border-radius: 10px; }
.mass-galerie .wp-element-caption { font-weight: 600; letter-spacing: .02em; }
.wp-block-gallery.mass-galerie.has-nested-images figure.wp-block-image figcaption {
	background: linear-gradient(0deg, rgba(14,46,18,.85) 0, rgba(14,46,18,0) 100%);
	border-radius: 0 0 10px 10px; font-size: .95rem; padding: 2.5rem 1rem .9rem;
}

/* ---------- Zone ---------- */
.mass-zone p:not(.mass-surtitre) { line-height: 1.9; }

/* ---------- Contact ---------- */
.mass-carte-coord { border-radius: var(--wp--custom--radius); box-shadow: var(--wp--custom--ombre); position: sticky; top: 110px; }
.mass-carte-coord h3 { margin-bottom: 1.25rem; }
.mass-coord { margin: 0 0 1.5rem; display: grid; gap: 1rem; }
.mass-coord > div { display: grid; grid-template-columns: 6.5rem 1fr; gap: .75rem; border-bottom: 1px solid var(--wp--preset--color--ligne); padding-bottom: .9rem; }
.mass-coord dt { font-size: .75rem; font-weight: 700; text-transform: uppercase; letter-spacing: .12em; color: var(--wp--preset--color--vert); padding-top: .2rem; }
.mass-coord dd { margin: 0; }

.mass-carte {
	position: relative; min-height: var(--mass-carte-h, 420px); border-radius: 12px; overflow: hidden;
	background:
		radial-gradient(circle at 30% 30%, rgba(28,113,0,.12), transparent 55%),
		repeating-linear-gradient(45deg, #EEF3EA 0 14px, #E7EFE2 14px 28px);
	display: flex;
}
.mass-carte iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.mass-carte__voile { margin: auto; padding: 1.5rem; text-align: center; max-width: 22rem; }
.mass-carte__pin { color: var(--wp--preset--color--vert); }
.mass-carte__adresse { margin: .5rem 0 1rem; }
.mass-carte__bouton {
	font: inherit; font-weight: 700; font-size: .95rem; cursor: pointer;
	background: var(--wp--preset--color--vert); color: #fff; border: 0; border-radius: 999px; padding: .75rem 1.5rem;
}
.mass-carte__bouton:hover, .mass-carte__bouton:focus-visible { background: var(--wp--preset--color--foret); }
.mass-carte__note { font-size: .78rem; color: var(--wp--preset--color--gris); margin-top: .9rem; line-height: 1.5; }

/* Formulaire */
.mass-form__grille { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem 1.25rem; }
.mass-champ { margin: 0 !important; display: flex; flex-direction: column; gap: .35rem; }
.mass-champ--large { grid-column: 1 / -1; }
.mass-champ label { font-size: .88rem; font-weight: 600; color: var(--wp--preset--color--foret); }
.mass-champ small { font-weight: 400; color: var(--wp--preset--color--gris); }
.mass-champ input[type="text"], .mass-champ input[type="email"], .mass-champ input[type="tel"], .mass-champ select, .mass-champ textarea {
	font: inherit; font-size: 1rem; width: 100%; box-sizing: border-box;
	padding: .8rem .95rem; border: 1.5px solid var(--wp--preset--color--ligne); border-radius: 10px;
	background: #fff; color: var(--wp--preset--color--encre); transition: border-color .2s, box-shadow .2s;
}
.mass-champ textarea { resize: vertical; min-height: 9rem; }
.mass-champ input:focus, .mass-champ select:focus, .mass-champ textarea:focus {
	outline: none; border-color: var(--wp--preset--color--vert); box-shadow: 0 0 0 4px rgba(28,113,0,.15);
}
.mass-champ--defi input { max-width: 7rem; }
.mass-champ--case { flex-direction: row; align-items: flex-start; gap: .75rem; }
.mass-champ--case input { margin-top: .3rem; width: 1.15rem; height: 1.15rem; accent-color: var(--wp--preset--color--vert); flex-shrink: 0; }
.mass-champ--case label { font-weight: 400; font-size: .85rem; color: var(--wp--preset--color--gris); line-height: 1.5; }
.mass-champ--pot { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.mass-form__pied { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; margin-top: 1.5rem; }
.mass-form__envoyer { cursor: pointer; border: 0; }
.mass-form__obligatoire { font-size: .8rem; color: var(--wp--preset--color--gris); }
.mass-champ.is-invalid input, .mass-champ.is-invalid textarea { border-color: #B3261E; }
.mass-alerte { padding: 1rem 1.25rem; border-radius: 10px; margin-bottom: 1.5rem; font-weight: 600; }
.mass-alerte--ok { background: #E3F2DA; color: #1C5200; border: 1px solid #B9DDA4; }
.mass-alerte--erreur { background: #FBE9E7; color: #8C1D18; border: 1px solid #F2B8B5; }
@media (max-width: 600px) { .mass-form__grille { grid-template-columns: 1fr; } }

/* ---------- Pages intérieures (mentions légales) ---------- */
.mass-bandeau-titre { border-bottom: 1px solid var(--wp--preset--color--ligne); }
.mass-contenu-page h2 { font-size: 1.6rem; margin-top: 2.75rem; padding-top: 1.5rem; border-top: 1px solid var(--wp--preset--color--ligne); }
.mass-contenu-page h3 { font-size: 1.15rem; margin-top: 1.75rem; font-family: var(--wp--preset--font-family--texte); font-weight: 700; }

/* ---------- Pied de page ---------- */
.mass-pied a { text-decoration: none; }
.mass-pied a:hover { text-decoration: underline; }
.mass-pied__icone img { filter: brightness(0) invert(1); opacity: .9; }
.mass-pied__liens { list-style: none; padding: 0; margin: 0; }
.mass-pied__liens li { margin-bottom: .35rem; }

/* ---------- Apparition au défilement ---------- */
.mass-js .mass-reveal { opacity: 0; transform: translateY(28px); transition: opacity .8s ease, transform .8s cubic-bezier(.2,.7,.2,1); }
.mass-js .mass-reveal.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .mass-js .mass-reveal { opacity: 1; transform: none; transition: none; } }

/* Accessibilité : focus visible */
a:focus-visible, button:focus-visible, .wp-element-button:focus-visible { outline: 3px solid #7DBE4F; outline-offset: 3px; }
