/* ==========================================================================
   AMAR Concept — compléments au design Elementor
   ---------------------------------------------------------------------------
   La mise en page, les couleurs et les polices sont réglées dans Elementor
   (Réglages du site > Couleurs / Polices globales, et chaque widget).
   Ce fichier ne contient que ce qu'Elementor ne sait pas faire seul ;
   chaque règle s'active par une classe CSS posée dans Elementor
   (onglet Avancé > Classes CSS) :

     amar-trame          fond à trame technique 40 × 40 (24 × 24 sur mobile)
     amar-sec-label      numérotation automatique « § 01 — » des sections
     amar-count-scope    numérotation des éléments d'une boucle (T.01, PL.01, P.01)
     amar-rows           listes en lignes : filet sous la dernière ligne
     amar-projets        grille asymétrique des réalisations (7 + 4 colonnes)
     amar-prose          listes du texte éditorial
     amar-sticky         colonne qui reste visible au défilement
     amar-recherches / amar-link-list   listes de liens sur plusieurs colonnes
   ========================================================================== */

:root {
	--amar-fond: var(--e-global-color-amarfond, #F6F5F1);
	--amar-texte: var(--e-global-color-text, #151515);
	--amar-attenue: var(--e-global-color-secondary, #55544F);
	--amar-accent: var(--e-global-color-accent, #2E5E5B);
	--amar-filet: var(--e-global-color-amarfilet, #151515);
	--amar-trame: var(--e-global-color-amartrame, #E7E4DE);
	--amar-mono: var(--e-global-typography-secondary-font-family, "IBM Plex Mono"), ui-monospace, monospace;
}

body { overflow-x: hidden; }
::selection { background: var(--amar-accent); color: var(--amar-fond); }
:target { scroll-margin-top: 120px; }

/* Angles droits partout (y compris éléments hors Elementor) */
.elementor-button, .elementor-field, .elementor-field-textual, button, input, select, textarea { border-radius: 0 !important; }

:where(a, button, input, select, textarea, .elementor-button):focus-visible { outline: 2px solid var(--amar-accent); outline-offset: 3px; }

/* --------------------------------------------------------------- trame */
.amar-trame {
	background-image:
		linear-gradient(var(--amar-trame) 1px, transparent 1px),
		linear-gradient(90deg, var(--amar-trame) 1px, transparent 1px);
	background-size: 40px 40px;
	background-position: -1px -1px;
}
@media (max-width: 767px) { .amar-trame { background-size: 24px 24px; } }

/* --------------------------------------------------------------- numérotation */
body { counter-reset: amar-sec; }
.amar-sec-label .elementor-heading-title::before {
	counter-increment: amar-sec;
	content: "§ " counter(amar-sec, decimal-leading-zero) " — ";
}
.amar-count-scope { counter-reset: amar; }
.amar-count-scope .e-loop-item { counter-increment: amar; }
.amar-count--num .elementor-heading-title::after { content: counter(amar, decimal-leading-zero); }
.amar-count--pre .elementor-heading-title::before { content: "P." counter(amar, decimal-leading-zero); }

/* Listes en lignes : un filet ferme la dernière ligne */
.amar-rows .elementor-loop-container > .e-loop-item:last-child .amar-row { border-bottom: 1px solid var(--amar-filet); }

/* --------------------------------------------------------------- réalisations : 7 + 4 colonnes */
@media (min-width: 768px) {
	.amar-projets .elementor-loop-container { grid-template-columns: 7fr 1fr 4fr !important; align-items: end; }
	/* « of .e-loop-item » : Elementor insère d'autres éléments dans la grille */
	.amar-projets .e-loop-item:nth-child(odd of .e-loop-item) { grid-column: 1; }
	.amar-projets .e-loop-item:nth-child(even of .e-loop-item) { grid-column: 3; }
	.amar-projets .e-loop-item:nth-child(odd of .e-loop-item) .elementor-widget-image img { height: 600px !important; }
	.amar-projets--grille .e-loop-item:nth-child(4n+3 of .e-loop-item) { grid-column: 3; }
	.amar-projets--grille .e-loop-item:nth-child(4n+4 of .e-loop-item) { grid-column: 1; }
}
@media (min-width: 768px) and (max-width: 1024px) {
	.amar-projets .e-loop-item:nth-child(odd of .e-loop-item) .elementor-widget-image img { height: 440px !important; }
}

/* --------------------------------------------------------------- texte éditorial */
.amar-prose { max-width: 760px; }
.amar-prose > *:first-child { margin-top: 0; }
.amar-prose h2, .amar-prose h3, .amar-prose h4 { margin: 1.8em 0 .6em; }
.amar-prose ul, .amar-prose ol { margin: 0 0 1.4em; padding: 0; list-style: none; border-top: 1px solid var(--amar-trame); }
.amar-prose li { position: relative; padding: .7em 0 .7em 2.2em; border-bottom: 1px solid var(--amar-trame); }
.amar-prose ul > li::before { content: "—"; position: absolute; left: 0; top: .7em; font-family: var(--amar-mono); color: var(--amar-accent); }
.amar-prose ol { counter-reset: li; }
.amar-prose ol > li::before { counter-increment: li; content: counter(li, decimal-leading-zero); position: absolute; left: 0; top: .9em; font-family: var(--amar-mono); font-size: 11px; color: var(--amar-accent); }
.amar-prose a { text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; overflow-wrap: anywhere; }
.amar-prose, .elementor-widget-text-editor { overflow-wrap: break-word; }
.amar-prose table { width: 100%; border-collapse: collapse; margin: 0 0 1.6em; }
.amar-prose th, .amar-prose td { border-bottom: 1px solid var(--amar-filet); padding: .7em .6em; text-align: left; vertical-align: top; }
@media (max-width: 767px) { .amar-prose table { display: block; overflow-x: auto; } }

/* Sous-titre du H1 (balise d'origine conservée pour le SEO) */
.amar-h1-sub { display: block; margin-top: .4em; font-family: var(--amar-mono); font-size: 12px; font-weight: 400; letter-spacing: .14em; text-transform: uppercase; color: var(--amar-accent); line-height: 1.5; }

/* --------------------------------------------------------------- en-tête / colonne collante */
@media (min-width: 1025px) { .amar-sticky { position: sticky; top: 120px; align-self: start; } }
.amar-header { position: sticky; top: 0; z-index: 100; }
.admin-bar .amar-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .amar-header { top: 0; } }

/* --------------------------------------------------------------- listes de liens */
/* Recherches fréquentes (pied de page) : liste compacte, 12 liens visibles (6 sur mobile) ;
   le bouton « Voir toutes les recherches » (classe amar-more-toggle) déplie le reste. */
.amar-recherches .elementor-loop-container { display: block !important; columns: 3 220px; column-gap: 24px; }
.amar-recherches .elementor-heading-title { font-size: 13px !important; line-height: 1.45 !important; color: var(--amar-attenue) !important; }
.amar-recherches .elementor-heading-title a:hover { color: var(--amar-accent); }
.amar-more:not(.is-open) .amar-recherches .e-loop-item:nth-child(n+13 of .e-loop-item) { display: none; }
@media (max-width: 767px) {
	.amar-recherches .elementor-loop-container { columns: 1; }
	.amar-more:not(.is-open) .amar-recherches .e-loop-item:nth-child(n+7 of .e-loop-item) { display: none; }
}

/* Liens légaux du cartouche */
.amar-legal p { display: flex; flex-wrap: wrap; gap: 4px 10px; margin: 0; }
.amar-legal a { color: inherit; text-decoration: none; }
.amar-legal a:hover { color: var(--amar-accent); }
.amar-link-list .elementor-loop-container { display: block !important; columns: 3 260px; column-gap: 24px; }
.amar-recherches .e-loop-item, .amar-link-list .e-loop-item { break-inside: avoid; }
.amar-link-list .e-loop-item { border-bottom: 1px solid var(--amar-trame); }

/* Logos partenaires : 7 par ligne, 3 sur mobile */
.amar-logos .gallery { display: grid !important; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 24px; align-items: center; }
.amar-logos .gallery-item { width: auto !important; max-width: none !important; margin: 0 !important; padding: 0 !important; }
@media (max-width: 1024px) { .amar-logos .gallery { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 767px) { .amar-logos .gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; } }
.amar-logos img { filter: grayscale(1); opacity: .75; transition: filter .3s, opacity .3s; max-height: 64px; width: auto !important; object-fit: contain; }
.amar-logos img:hover { filter: none; opacity: 1; }

/* --------------------------------------------------------------- éléments générés (hors widgets) */
.amar-breadcrumb ol { display: flex; flex-wrap: wrap; gap: 0 10px; margin: 0; padding: 0; list-style: none; }
.amar-breadcrumb li + li::before { content: "/"; margin-right: 10px; }
.amar-breadcrumb a { color: inherit; }

.amar-hours { width: 100%; border-collapse: collapse; margin: 0; font-size: inherit; }
.amar-hours tbody > tr > th, .amar-hours tbody > tr > td { padding: 6px 0; background: none !important; border: 0; border-bottom: 1px solid var(--amar-trame); font-weight: 400; text-align: left; line-height: 1.5; }
.amar-hours td { text-align: right; font-family: var(--amar-mono); font-size: .85em; }
.amar-hours tr.is-today th, .amar-hours tr.is-today td { font-weight: 600; }
.amar-open-status { display: inline-flex; align-items: center; gap: 8px; }
.amar-open-dot { width: 8px; height: 8px; border-radius: 50%; background: currentColor; opacity: .35; }
.amar-open-status.is-open .amar-open-dot { background: var(--amar-accent); opacity: 1; }

.amar-map { position: relative; width: 100%; aspect-ratio: 4 / 3; border: 1px solid var(--amar-filet); background: var(--amar-trame); }
@media (max-width: 767px) { .amar-map { aspect-ratio: 1; } }
.amar-map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; filter: grayscale(1); }
.amar-map__placeholder { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; text-align: center; }
.amar-map__placeholder p { margin: 0; max-width: 34ch; }

.amar-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 0 22px; cursor: pointer; border: 1px solid var(--amar-texte); background: var(--amar-texte); color: var(--amar-fond); font-family: var(--amar-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.amar-btn:hover { background: var(--amar-accent); border-color: var(--amar-accent); }
.amar-btn--ghost { background: transparent; color: var(--amar-texte); }
.amar-btn--ghost:hover { color: var(--amar-fond); }

.amar-consent { position: fixed; z-index: 9999; left: 24px; bottom: 24px; max-width: 440px; padding: 24px; background: var(--amar-fond); color: var(--amar-texte); border: 1px solid var(--amar-filet); font-size: 14px; line-height: 1.6; }
.amar-consent[hidden] { display: none; }
.amar-consent__title { margin: 0 0 8px; font-family: var(--amar-mono); font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: var(--amar-accent); }
.amar-consent__text { margin: 0 0 18px; }
.amar-consent__text a { color: inherit; }
.amar-consent__actions { display: flex; gap: 10px; }
.amar-consent__actions .amar-btn { flex: 1; }
@media (max-width: 767px) { .amar-consent { left: 12px; right: 12px; bottom: 12px; max-width: none; } }

@media print { .amar-header, .elementor-location-header, .elementor-location-footer, .amar-consent { display: none !important; } }
@media (prefers-reduced-motion: reduce) { * { transition: none !important; animation: none !important; } }

/* Libellés de boutons et d'entrées de menu sur une seule ligne */
.elementor-button-text, .elementor-nav-menu--main .elementor-item { white-space: nowrap; }

/* Cartouche « PL. 01 | ÉCH. 1:100 | … » : chaque <span> est une case */
.amar-strip p { display: inline-flex; flex-wrap: nowrap; margin: 0; border: 1px solid var(--amar-filet); }
.amar-strip span { padding: 8px 14px; white-space: nowrap; }
.amar-strip span + span { border-left: 1px solid var(--amar-filet); }
@media (max-width: 767px) { .amar-strip span { padding: 7px 10px; font-size: 9px; } }
.amar-recherches .e-loop-item > .e-con, .amar-recherches .e-loop-item .e-con-inner { padding: 3px 0 !important; --padding-top: 3px; --padding-bottom: 3px; }
.amar-recherches .e-loop-item { margin: 0 !important; }
