/*
Theme Name: LOCAX
Theme URI: https://locax.fr
Description: Thème enfant de locax.fr (parent : Hello Elementor). Les pages éditoriales vivent dans Elementor ; ce thème ne porte que les réglages propres à LOCAX.
Author: Fanny Le Brun
Author URI: https://fannylebrun.fr
Template: hello-elementor
Version: 0.2.0
Requires at least: 6.4
Requires PHP: 8.3
Text Domain: locax-child
License: Propriétaire — LOCAX SAS
*/

/*
 * Repères : 12.APP/03.DESIGN/DESIGN-SYSTEM (lcx.css) et CREATION/10 § 5.
 * Anis jamais en texte sur blanc ; ni dégradé ni ombre ; texte courant ≥ 16 px.
 * Les blocs Elementor portent les classes locax-bloc--* posées par outils/vitrine/generer.py.
 */

/* ---------- Polices locales ---------- */

@font-face {
	font-family: "Barlow";
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url("polices/barlow-latin-400-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Barlow";
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url("polices/barlow-latin-600-normal.woff2") format("woff2");
}

@font-face {
	font-family: "Barlow Condensed";
	font-style: italic;
	font-weight: 800;
	font-display: swap;
	src: url("polices/barlow-condensed-latin-800-italic.woff2") format("woff2");
}

@font-face {
	font-family: "Barlow Condensed";
	font-style: normal;
	font-weight: 900;
	font-display: swap;
	src: url("polices/barlow-condensed-latin-900-normal.woff2") format("woff2");
}

/* ---------- Jetons ---------- */

:root {
	--locax-bleu: #2440e0;
	--locax-bleu-appui: #1b32b8;
	--locax-anis: #c4f000;
	--locax-anis-fonce: #5e7300;
	--locax-nuit: #1b1f3a;
	--locax-glacier: #eef0fa;
	--locax-glacier-25: #f7f8fd;
	--locax-filet: #d9dcea;
	--locax-texte: #1b1f3a;
	--locax-texte-2: #545a72;
	--locax-blanc: #fff;
	--locax-vert: #5cb85c;
	--locax-gamme-bleu: #2f8fd6;
	--locax-rouge: #d9534f;
	--locax-titre: "Barlow Condensed", "Arial Narrow", sans-serif;
	--locax-corps: "Barlow", system-ui, sans-serif;
	--locax-r: 12px;
	--locax-r-bouton: 999px;
	--locax-largeur: 1200px;
	--locax-gouttiere: 16px;
}

/* ---------- Base ---------- */

html {
	scroll-padding-top: 80px;
}

body {
	margin: 0;
	background: var(--locax-blanc);
	color: var(--locax-texte);
	font-family: var(--locax-corps);
	font-size: 17px;
	line-height: 1.55;
	overflow-wrap: break-word;
}

h1,
h2,
.elementor-widget-heading .elementor-heading-title {
	font-family: var(--locax-titre);
	font-weight: 900;
	font-style: normal;
	line-height: 1.05;
	letter-spacing: -0.01em;
	color: inherit;
}

h1,
.elementor-widget-heading h1.elementor-heading-title {
	font-size: clamp(2.5rem, 9vw, 4.5rem);
	text-transform: uppercase;
}

h2,
.elementor-widget-heading h2.elementor-heading-title {
	font-size: clamp(1.9rem, 5.5vw, 2.8rem);
}

h3,
.elementor-widget-heading h3.elementor-heading-title {
	font-family: var(--locax-titre);
	font-size: 1.5rem;
	font-style: italic;
	font-weight: 800;
	line-height: 1.15;
}

a {
	color: var(--locax-bleu);
}

a:hover,
a:focus-visible {
	color: var(--locax-bleu-appui);
}

:focus-visible {
	outline: 2px solid var(--locax-bleu);
	outline-offset: 2px;
}

img {
	max-width: 100%;
	height: auto;
}

.skip-link:focus {
	z-index: 1000;
	padding: 8px 16px;
	background: var(--locax-blanc);
}

/* ---------- Bascule V-04 (inc/bascule.php) ---------- */

.locax-tunnel-ferme .locax-si-tunnel,
.locax-tunnel-ouvert .locax-sans-tunnel {
	display: none !important;
}

/* ---------- Boutons ---------- */

.locax-bouton,
.locax-btn .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	padding: 10px 22px;
	border: 2px solid transparent;
	border-radius: var(--locax-r-bouton);
	font-family: var(--locax-corps);
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: background-color 160ms, color 160ms, border-color 160ms;
}

.locax-bouton--anis,
.locax-btn--anis .elementor-button {
	background: var(--locax-anis);
	color: var(--locax-nuit);
}

.locax-bouton--anis:hover,
.locax-bouton--anis:focus-visible,
.locax-btn--anis .elementor-button:hover,
.locax-btn--anis .elementor-button:focus-visible {
	background: #ddf55c;
	color: var(--locax-nuit);
}

.locax-bouton--contour,
.locax-btn--contour .elementor-button {
	background: transparent;
	border-color: currentcolor;
	color: var(--locax-nuit);
}

.locax-bloc--sombre .locax-bouton--contour,
.locax-bloc--sombre .locax-btn--contour .elementor-button,
.locax-pied .locax-bouton--contour {
	color: var(--locax-blanc);
}

.locax-btn--bleu .elementor-button {
	background: var(--locax-bleu);
	color: var(--locax-blanc);
}

.locax-btn--bleu .elementor-button:hover,
.locax-btn--bleu .elementor-button:focus-visible {
	background: var(--locax-bleu-appui);
	color: var(--locax-blanc);
}

.locax-btn--lien .elementor-button {
	min-height: 44px;
	padding: 8px 0;
	background: transparent;
	color: var(--locax-bleu);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.locax-bloc--sombre .locax-btn--lien .elementor-button {
	color: var(--locax-blanc);
}

.locax-actions,
.locax-boutons {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
}

/* ---------- Bandeau de saison et en-tête ---------- */

.locax-saison {
	margin: 0;
	padding: 6px var(--locax-gouttiere);
	background: var(--locax-nuit);
	color: var(--locax-blanc);
	font-size: 0.875rem;
	text-align: center;
}

.locax-entete {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--locax-blanc);
	border-bottom: 1px solid var(--locax-filet);
}

.admin-bar .locax-entete {
	top: 46px;
}

.locax-entete__interieur {
	display: flex;
	flex-wrap: nowrap;
	align-items: center;
	gap: 8px 16px;
	max-width: var(--locax-largeur);
	margin: 0 auto;
	padding: 8px var(--locax-gouttiere);
}

.locax-logo {
	display: block;
	line-height: 0;
}

.locax-logo img {
	width: 58px;
	height: 48px;
}

.locax-menu {
	order: 3;
}

.locax-menu__nav {
	position: absolute;
	top: 100%;
	left: 0;
	right: 0;
	max-height: calc(100vh - 120px);
	overflow-y: auto;
	padding: 0 var(--locax-gouttiere);
	background: var(--locax-blanc);
	border-bottom: 1px solid var(--locax-filet);
}

.locax-menu__bouton {
	display: inline-flex;
	align-items: center;
	min-height: 44px;
	padding: 0 4px;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}

.locax-menu__bouton::-webkit-details-marker {
	display: none;
}

.locax-menu__bouton::before {
	content: "☰";
	margin-right: 8px;
	font-size: 1.2em;
}

.locax-menu[open] .locax-menu__bouton::before {
	content: "✕";
}

.locax-menu__liste {
	margin: 0;
	padding: 0 0 8px;
	list-style: none;
}

.locax-menu__liste a {
	display: block;
	padding: 10px 4px;
	color: var(--locax-nuit);
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px solid var(--locax-filet);
}

.locax-menu__liste .current-menu-item > a {
	color: var(--locax-bleu);
}

.locax-actions--entete {
	margin-left: auto;
	gap: 8px;
}

.locax-actions--entete .locax-bouton {
	min-height: 44px;
	padding: 8px 16px;
}

@media (max-width: 600px) {
	.admin-bar .locax-entete {
		top: 0;
	}

	.locax-actions--entete .locax-bouton--contour {
		display: none;
	}
}

@media (min-width: 1024px) {
	.locax-entete__interieur {
		flex-wrap: nowrap;
	}

	.admin-bar .locax-entete {
		top: 32px;
	}

	.locax-menu {
		order: 0;
		flex: 1 1 auto;
	}

	.locax-menu__nav {
		position: static;
		max-height: none;
		padding: 0;
		border: 0;
	}

	.locax-menu__bouton {
		display: none;
	}

	.locax-menu__liste {
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		gap: 4px 20px;
		padding: 0;
	}

	.locax-menu__liste a {
		padding: 8px 0;
		border: 0;
	}

	.locax-actions--entete {
		margin-left: 0;
	}

	.locax-actions--entete .locax-bouton--contour {
		display: inline-flex;
	}

	.locax-tunnel-ouvert .locax-actions--entete .locax-sans-tunnel {
		display: none;
	}
}

/* ---------- Blocs Elementor ---------- */

.locax-bloc {
	--padding-top: 56px;
	--padding-bottom: 56px;
	--padding-left: var(--locax-gouttiere);
	--padding-right: var(--locax-gouttiere);
}

.locax-bloc--glacier {
	background-color: var(--locax-glacier);
}

.locax-bloc--sombre {
	background-color: var(--locax-nuit);
	color: var(--locax-blanc);
}

.locax-bloc--sombre a:not(.elementor-button) {
	color: var(--locax-anis);
}

.locax-bloc--heros {
	--padding-top: 48px;
	--padding-bottom: 56px;
}

.locax-surtitre {
	margin: 0 0 12px;
	font-size: 0.95rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.locax-bloc--sombre .locax-surtitre {
	color: var(--locax-anis);
}

.locax-chapo {
	font-size: 1.15rem;
}

.locax-puces {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 20px;
	margin: 0;
	padding: 0;
	list-style: none;
	font-weight: 600;
}

.locax-puces li::before {
	content: "✓ ";
	color: var(--locax-anis-fonce);
}

.locax-bloc--sombre .locax-puces li::before {
	color: var(--locax-anis);
}

.elementor-widget-text-editor p:last-child,
.elementor-widget-text-editor ul:last-child,
.elementor-widget-text-editor ol:last-child {
	margin-bottom: 0;
}

/* Cartes (prix d'appel, gammes, preuves, étapes) */

.locax-cartes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
	gap: 16px;
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: etape;
}

.locax-cartes > li {
	padding: 20px;
	background: var(--locax-blanc);
	border: 1px solid var(--locax-filet);
	border-radius: var(--locax-r);
	color: var(--locax-texte);
}

.locax-bloc--glacier .locax-cartes > li {
	border-color: transparent;
}

.locax-cartes strong:first-child {
	display: block;
	margin-bottom: 6px;
	font-family: var(--locax-titre);
	font-size: 1.35rem;
	font-style: italic;
	font-weight: 800;
	line-height: 1.15;
}

.locax-cartes--etapes > li::before {
	counter-increment: etape;
	content: counter(etape);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	margin-bottom: 10px;
	border-radius: 50%;
	background: var(--locax-anis);
	color: var(--locax-nuit);
	font-family: var(--locax-titre);
	font-weight: 900;
}

.locax-prix {
	display: block;
	margin: 4px 0;
	font-family: var(--locax-titre);
	font-size: 1.6rem;
	font-weight: 900;
	color: var(--locax-bleu);
}

.locax-gamme {
	border-left-width: 6px !important;
}

.locax-gamme--vert {
	border-left-color: var(--locax-vert) !important;
}

.locax-gamme--bleu {
	border-left-color: var(--locax-gamme-bleu) !important;
}

.locax-gamme--rouge {
	border-left-color: var(--locax-rouge) !important;
}

.locax-note {
	color: var(--locax-texte-2);
	font-size: 0.95rem;
}

.locax-bloc--sombre .locax-note {
	color: inherit;
}

/* Tableaux (tarifs et tableaux des pages) */

.locax-tableau {
	max-width: 100%;
	margin: 0 0 16px;
	overflow-x: auto;
	border: 1px solid var(--locax-filet);
	border-radius: var(--locax-r);
	background: var(--locax-blanc);
	color: var(--locax-texte);
}

.locax-tableau table {
	width: 100%;
	margin: 0;
	border-collapse: collapse;
	font-size: 0.95rem;
	font-variant-numeric: tabular-nums;
}

.locax-tableau th,
.locax-tableau td {
	padding: 10px 12px;
	border: 0;
	border-bottom: 1px solid var(--locax-filet);
	text-align: left;
	white-space: nowrap;
	vertical-align: top;
}

.locax-tableau td {
	text-align: right;
}

.locax-tableau--texte td {
	text-align: left;
	white-space: normal;
	min-width: 140px;
}

.locax-tableau thead th {
	background: var(--locax-glacier);
	font-weight: 600;
}

.locax-tableau tbody th {
	position: sticky;
	left: 0;
	background: var(--locax-blanc);
	font-weight: 600;
	white-space: normal;
	min-width: 130px;
}

.locax-tableau tr:last-child > * {
	border-bottom: 0;
}

/* Questions fréquentes */

.locax-faq {
	margin: 0 0 24px;
	padding: 0;
	list-style: none;
}

.locax-faq details {
	border-bottom: 1px solid var(--locax-filet);
}

.locax-faq summary {
	padding: 14px 32px 14px 0;
	font-weight: 600;
	cursor: pointer;
	position: relative;
	list-style: none;
}

.locax-faq summary::-webkit-details-marker {
	display: none;
}

.locax-faq summary::after {
	content: "+";
	position: absolute;
	right: 4px;
	top: 10px;
	font-size: 1.4em;
	color: var(--locax-bleu);
}

.locax-faq details[open] summary::after {
	content: "–";
}

.locax-faq details > div {
	padding: 0 0 16px;
}

/* À compléter (crochets laissés visibles exprès, brief 48) */

.locax-a-completer {
	background: #fef3c7;
	padding: 0 4px;
}

/* ---------- Pied de page ---------- */

.locax-pied {
	background: var(--locax-nuit);
	color: var(--locax-blanc);
	font-size: 0.95rem;
}

.locax-pied a {
	color: var(--locax-blanc);
}

.locax-pied__interieur {
	display: grid;
	gap: 24px;
	max-width: var(--locax-largeur);
	margin: 0 auto;
	padding: 40px var(--locax-gouttiere) 24px;
}

.locax-pied__titre {
	font-family: var(--locax-titre);
	font-size: 1.4rem;
	font-weight: 900;
	line-height: 1.15;
}

.locax-pied__liens,
.locax-pied__reseaux {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 0 16px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.locax-pied__liens a,
.locax-pied__reseaux a {
	display: inline-block;
	padding: 8px 0;
	text-decoration: none;
}

.locax-pied__liens a:hover,
.locax-pied__reseaux a:hover {
	text-decoration: underline;
}

.locax-pied__mention {
	margin: 0;
	padding-top: 16px;
	border-top: 1px solid rgba(255, 255, 255, 0.2);
	font-size: 0.875rem;
}

.locax-pied__titre-nav {
	margin: 0 0 4px;
	font-weight: 700;
}

@media (min-width: 900px) {
	.locax-pied__interieur {
		grid-template-columns: 1fr 1.4fr;
	}

	.locax-pied__nav--ax {
		grid-column: 2;
	}

	.locax-pied__reseaux,
	.locax-pied__mention {
		grid-column: 1 / -1;
	}
}
