/*
Theme Name: Agence des Langues
Theme URI: https://www.agencedeslangues.com
Author: Lucas Firmin
Description: Thème bloc (FSE) sur mesure pour l'Agence des Langues.
Requires at least: 7.0
Requires PHP: 8.3
Version: 1.0.0
License: GPL-2.0-or-later
Text Domain: agencedeslangues
*/

/* ---------- Base ---------- */
html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
img { height: auto; }
:where(a):focus-visible,
:where(button, input, textarea, select):focus-visible {
	outline: 3px solid var(--wp--preset--color--accent);
	outline-offset: 2px;
}
.wp-site-blocks > * + * { margin-block-start: 0; }
main > .entry-content > *:first-child { margin-top: 0; }
main > .entry-content > *:last-child { margin-bottom: 0; }

/* ---------- En-tête ---------- */
.adl-site-header {
	position: sticky;
	top: 0;
	z-index: 50;
	transition: box-shadow .25s ease;
}
/* Fond flouté porté par un pseudo-élément : un backdrop-filter sur l'en-tête
   lui-même enfermerait le menu mobile (position: fixed) dans sa hauteur. */
.adl-site-header::before {
	content: "";
	position: absolute; inset: 0; z-index: -1;
	background: rgba(255, 255, 255, .92);
	-webkit-backdrop-filter: saturate(160%) blur(10px);
	backdrop-filter: saturate(160%) blur(10px);
}
.admin-bar .adl-site-header { top: var(--wp-admin--admin-bar--height, 0); }
.adl-site-header .adl-header { background: transparent !important; transition: padding .25s ease; }
.adl-site-header.is-scrolled { box-shadow: 0 6px 24px rgba(15, 74, 93, .10); }
.adl-site-header.is-scrolled .adl-header { padding-top: .4rem !important; padding-bottom: .4rem !important; }
.adl-logo { display: inline-flex; line-height: 0; }
.adl-logo img { width: clamp(120px, 14vw, 160px); transition: width .25s ease; }
.adl-site-header.is-scrolled .adl-logo img { width: clamp(110px, 12vw, 136px); }
.adl-logo--footer img { width: 180px; }

/* Menu : soulignement animé + page courante */
.adl-nav .wp-block-navigation__container { gap: clamp(.25rem, 1.6vw, 1.75rem); }
.adl-nav .wp-block-navigation-item__content {
	position: relative;
	padding: .5rem .15rem;
	text-decoration: none;
	color: var(--wp--preset--color--contrast);
	transition: color .2s ease;
}
.adl-nav .wp-block-navigation-item__content::after {
	content: "";
	position: absolute; left: 0; right: 0; bottom: .15rem;
	height: 2px; border-radius: 2px;
	background: var(--wp--preset--color--accent);
	transform: scaleX(0); transform-origin: left;
	transition: transform .25s ease;
}
.adl-nav .wp-block-navigation-item__content:hover,
.adl-nav .wp-block-navigation-item__content[aria-current="page"] { color: var(--wp--preset--color--primary); }
.adl-nav .wp-block-navigation-item__content:hover::after,
.adl-nav .wp-block-navigation-item__content[aria-current="page"]::after { transform: scaleX(1); }
.adl-nav .wp-block-navigation-item__content[aria-current="page"] { font-weight: 700; }

/* Menu mobile (plein écran) */
.adl-nav .wp-block-navigation__responsive-container.is-menu-open {
	padding: 1.25rem clamp(1.25rem, 6vw, 2rem) 2rem;
	background:
		radial-gradient(120% 60% at 100% 100%, var(--wp--preset--color--accent-soft) 0%, transparent 60%),
		var(--wp--preset--color--base) !important;
	animation: adl-menu-in .25s ease;
}
@keyframes adl-menu-in { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
.adl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
	align-items: stretch !important;
	padding-top: 3.5rem;
}
.adl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
	align-items: stretch !important;
	gap: 0 !important;
	width: 100%;
}
.adl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
	border-bottom: 1px solid rgba(15, 74, 93, .12);
	width: 100%;
}
.adl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	width: 100%;
	padding: 1.1rem 0 !important;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.5rem !important;
	font-weight: 700;
	color: var(--wp--preset--color--primary-dark);
}
.adl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content::after {
	content: "→";
	position: static; height: auto; background: none; transform: none;
	color: var(--wp--preset--color--accent);
	font-family: var(--wp--preset--font-family--body);
}
.adl-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content[aria-current="page"] {
	color: var(--wp--preset--color--accent);
}
.adl-nav .wp-block-navigation__responsive-container-open svg,
.adl-nav .wp-block-navigation__responsive-container-close svg { width: 30px; height: 30px; }
.adl-nav .wp-block-navigation__responsive-container-close { top: 1.25rem; right: clamp(1.25rem, 6vw, 2rem); }

.adl-btn-phone .wp-block-button__link { white-space: nowrap; padding: .6em 1.2em; }
.adl-btn-phone .wp-block-button__link::before { content: "☎"; margin-right: .5em; }
@media (max-width: 781px) {
	.adl-site-header .wp-block-buttons.adl-header-cta { display: none; }
}

/* Barre d'appel fixe (mobile) */
.adl-mobile-call { display: none; }
@media (max-width: 781px) {
	.adl-mobile-call {
		position: fixed; z-index: 60;
		left: 12px; right: 12px; bottom: calc(12px + env(safe-area-inset-bottom, 0px));
		display: flex; align-items: center; justify-content: center; gap: .6rem;
		padding: .95rem 1.25rem; border-radius: 999px;
		background: var(--wp--preset--color--accent); color: #fff !important;
		font-weight: 700; text-decoration: none !important;
		box-shadow: 0 10px 30px rgba(15, 74, 93, .35);
		transition: transform .25s ease, opacity .25s ease;
	}
	.adl-mobile-call:active { transform: scale(.98); }
	.adl-mobile-call__icon {
		display: grid; place-items: center;
		width: 1.9rem; height: 1.9rem; border-radius: 50%;
		background: rgba(255, 255, 255, .2);
	}
	.adl-mobile-call.is-hidden { transform: translateY(150%); opacity: 0; pointer-events: none; }
	/* La barre se masque à l'arrivée sur le pied de page : pas d'espace réservé en bas. */
	body:has(.is-menu-open) .adl-mobile-call { display: none; }
}

/* ---------- Sections ---------- */
.adl-section { padding-block: var(--wp--preset--spacing--60); }
.adl-section--surface { background: var(--wp--preset--color--surface); }
.adl-eyebrow {
	display: inline-block;
	font-weight: 700;
	font-size: .8rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
	margin-bottom: .25rem;
}
.adl-lead { font-size: var(--wp--preset--font-size--large); line-height: 1.6; }

/* ---------- Hero ---------- */
.adl-hero.wp-block-cover { min-height: min(86vh, 760px); padding-block: var(--wp--preset--spacing--60); }
.adl-hero .wp-block-cover__background { background: linear-gradient(110deg, rgba(15, 74, 93, .94) 0%, rgba(23, 107, 134, .82) 50%, rgba(37, 171, 214, .35) 100%) !important; opacity: 1 !important; }
.adl-hero h1, .adl-hero h2, .adl-hero h3 { color: #fff; }
.adl-hero .adl-eyebrow { color: #9fe1f5; }
.adl-hero__lead { font-family: var(--wp--preset--font-family--heading); font-size: var(--wp--preset--font-size--large); font-weight: 400; line-height: 1.55; max-width: 44rem; opacity: .95; }
.adl-page-hero.wp-block-cover { min-height: 340px; padding-block: var(--wp--preset--spacing--60); }
.adl-page-hero .wp-block-cover__background { background: linear-gradient(110deg, rgba(15, 74, 93, .95) 0%, rgba(23, 107, 134, .85) 60%, rgba(37, 171, 214, .55) 100%) !important; opacity: 1 !important; }
.adl-page-hero h1, .adl-page-hero p { color: #fff; }

/* Boutons secondaires */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	border: 2px solid currentColor;
	color: inherit;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: rgba(255, 255, 255, .12); color: inherit; }
.adl-section .wp-block-button.is-style-outline .wp-block-button__link { color: var(--wp--preset--color--primary); }
.adl-section .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wp--preset--color--accent-soft); }

/* ---------- Cartes ---------- */
.adl-card {
	background: var(--wp--preset--color--base);
	border-radius: 18px;
	box-shadow: var(--wp--preset--shadow--card);
	padding: clamp(1.25rem, 3vw, 2rem);
	height: 100%;
	transition: transform .2s ease, box-shadow .2s ease;
}
.adl-card:hover { transform: translateY(-3px); box-shadow: 0 2px 4px rgba(15, 74, 93, .06), 0 16px 40px rgba(15, 74, 93, .12); }
.adl-card--media { padding: 0; overflow: hidden; display: flex; flex-direction: column; }
.adl-card--media > .wp-block-image { margin: 0; }
.adl-card--media > .wp-block-image img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; display: block; }
.adl-card--media > .wp-block-group { padding: clamp(1.25rem, 3vw, 1.75rem); flex: 1; display: flex; flex-direction: column; }
.adl-card--media .wp-block-buttons { margin-top: auto; padding-top: 1rem; }
.adl-card h3 { margin-top: 0; }
.adl-card .adl-card__kicker { color: var(--wp--preset--color--accent); font-weight: 700; font-size: .85rem; text-transform: uppercase; letter-spacing: .08em; margin: 0; }
.wp-block-columns.adl-grid { gap: clamp(1rem, 3vw, 2rem); }
.wp-block-columns.adl-grid > .wp-block-column { display: flex; flex-direction: column; }

/* Étapes numérotées */
.adl-steps { counter-reset: step; }
.adl-step { position: relative; padding-top: 3.5rem !important; }
.adl-step::before {
	counter-increment: step;
	content: counter(step);
	position: absolute; top: 1.5rem; left: clamp(1.25rem, 3vw, 2rem);
	width: 2.25rem; height: 2.25rem; border-radius: 50%;
	display: grid; place-items: center;
	background: var(--wp--preset--color--accent-soft); color: var(--wp--preset--color--primary);
	font-weight: 800;
}
.adl-step h3 { margin-top: .75rem; }

/* Citation */
.adl-quote {
	position: relative;
	background: var(--wp--preset--gradient--brand);
	color: #fff;
	border-radius: 24px;
	padding: clamp(1.75rem, 4vw, 3rem);
	overflow: hidden;
}
.adl-quote::before {
	content: "“";
	position: absolute; right: 1.5rem; top: -1.5rem;
	font-family: Georgia, serif; font-size: 12rem; line-height: 1;
	color: rgba(255, 255, 255, .12);
}
.adl-quote h2 { color: #fff; font-size: var(--wp--preset--font-size--x-large); }
.adl-quote p, .adl-quote h2 + h2 { color: rgba(255, 255, 255, .85); font-size: var(--wp--preset--font-size--medium); font-weight: 400; font-family: var(--wp--preset--font-family--body); }

/* Logos partenaires */
.adl-logos { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem !important; align-items: stretch; }
.adl-logos .wp-block-image { margin: 0; background: #fff; border-radius: 14px; box-shadow: var(--wp--preset--shadow--card); padding: .9rem; display: flex; flex-direction: column; align-items: center; justify-content: center; height: clamp(120px, 13vw, 160px); box-sizing: border-box; overflow: hidden; transition: transform .2s ease; }
.adl-logos .wp-block-image:hover { transform: translateY(-3px); }
.adl-logos .wp-block-image { min-width: 0; }
.adl-logos .wp-block-image a { display: flex; align-items: center; justify-content: center; width: 100%; flex: 1; min-height: 0; }
.adl-logos .wp-block-image img { max-height: 100%; max-width: 100%; width: auto; height: auto; object-fit: contain; min-height: 0; }
.adl-logos .wp-block-image > img { flex: 1; }
.adl-logos figcaption { font-size: .75rem; line-height: 1.3; color: var(--wp--preset--color--muted); text-align: center; margin: .4rem 0 0; flex: none; }

/* Bandeau certification */
.adl-cert img { border-radius: 14px; box-shadow: var(--wp--preset--shadow--card); }
.adl-small { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--muted); }

/* Indicateurs */
.adl-kpis { list-style: none; padding: 0; display: grid; gap: .75rem; }
.adl-kpis li { background: var(--wp--preset--color--base); border-radius: 14px; padding: 1rem 1.25rem 1rem 3.25rem; position: relative; box-shadow: var(--wp--preset--shadow--card); }
.adl-kpis li::before { content: "✓"; position: absolute; left: 1.1rem; top: 1rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; background: var(--wp--preset--color--accent); color: #fff; display: grid; place-items: center; font-size: .8rem; font-weight: 800; }

/* CTA */
.adl-cta { border-radius: 24px; background: var(--wp--preset--gradient--brand); color: #fff; padding: clamp(2rem, 5vw, 3.5rem); }
.adl-cta h2, .adl-cta p { color: #fff; }
.adl-cta .wp-block-button__link { background: #fff; color: var(--wp--preset--color--primary-dark); }
.adl-cta .wp-block-button__link:hover { background: var(--wp--preset--color--accent); color: #fff; }

/* ---------- Formulaire de contact ---------- */
.adl-form { display: grid; gap: 1.1rem; grid-template-columns: 1fr 1fr; }
.adl-form .adl-field--full, .adl-form .adl-form__actions, .adl-form .adl-form__notice { grid-column: 1 / -1; }
.adl-form label { display: block; font-weight: 600; margin-bottom: .35rem; font-size: .95rem; }
.adl-form input[type="text"], .adl-form input[type="email"], .adl-form input[type="tel"], .adl-form textarea {
	width: 100%; box-sizing: border-box;
	padding: .8rem 1rem; border: 1.5px solid #d5e2e8; border-radius: 12px;
	font: inherit; color: inherit; background: #fff;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.adl-form input:focus, .adl-form textarea:focus { border-color: var(--wp--preset--color--accent); box-shadow: 0 0 0 4px var(--wp--preset--color--accent-soft); outline: none; }
.adl-form textarea { min-height: 160px; resize: vertical; }
.adl-form button {
	cursor: pointer; border: 0; border-radius: 999px;
	padding: .9em 2em; font: inherit; font-weight: 700;
	background: var(--wp--preset--color--accent); color: #fff;
	transition: background-color .15s ease;
}
.adl-form button:hover { background: var(--wp--preset--color--primary); }
.adl-form__hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; overflow: hidden; }
.adl-form__notice { font-size: .85rem; color: var(--wp--preset--color--muted); }
.adl-alert { border-radius: 12px; padding: 1rem 1.25rem; font-weight: 600; margin-bottom: 1.25rem; }
.adl-alert--ok { background: #e6f6ee; color: #11643a; }
.adl-alert--error { background: #fdecec; color: #9b1c1c; }
@media (max-width: 600px) { .adl-form { grid-template-columns: 1fr; } }

/* ---------- Pied de page ---------- */
.adl-footer a { text-decoration: none; }
.adl-footer a:hover { text-decoration: underline; color: #9fe1f5 !important; }
.adl-footer__title { font-size: 1rem !important; text-transform: uppercase; letter-spacing: .1em; font-family: var(--wp--preset--font-family--body) !important; opacity: .7; }
.adl-footer__links { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; }
.adl-footer__muted { opacity: .75; }
.adl-footer__sep { opacity: .5; margin-block: var(--wp--preset--spacing--50) var(--wp--preset--spacing--30) !important; }

/* ---------- Animations d'apparition ---------- */
@media (prefers-reduced-motion: no-preference) {
	.js .adl-reveal { opacity: 0; transform: translateY(18px); transition: opacity .6s ease, transform .6s ease; }
	.js .adl-reveal.is-visible { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	.adl-card, .adl-logos .wp-block-image { transition: none; }
}

/* ---------- Ajustements ---------- */
h1 a, h2 a, h3 a { text-decoration: none; }
h1 a:hover, h2 a:hover, h3 a:hover { text-decoration: underline; }
.adl-cta a:not(.wp-block-button__link) { color: #fff; }
.adl-cta .wp-block-button__link, .adl-hero .wp-block-button__link { white-space: nowrap; }
.adl-footer .wp-block-column { min-width: 0; }
.adl-footer__contact a { overflow-wrap: anywhere; }
.adl-footer__title { margin-bottom: .75rem !important; }
@media (max-width: 781px) {
	.adl-hero.wp-block-cover { min-height: 0; }
	.adl-cta .wp-block-button__link, .adl-hero .wp-block-button__link { white-space: normal; }
}
.adl-social { flex-wrap: nowrap; }
@media (min-width: 782px) { .adl-footer .adl-social { justify-content: flex-end; } }

/* Titres de secteurs : majuscule initiale */
.adl-capitalize::first-letter { text-transform: uppercase; }

/* Groupes de logos avec intitulé */
.adl-logos-label {
	font-size: .8rem; font-weight: 700; letter-spacing: .12em; text-transform: uppercase;
	color: var(--wp--preset--color--muted); margin: 0 0 .75rem;
}
@media (max-width: 781px) {
	.adl-logos { gap: .6rem !important; }
	.adl-logos .wp-block-image { padding: .6rem; border-radius: 12px; }
	.adl-logos .wp-block-image { height: 110px; }
}
