/*
Theme Name: ACMSE
Theme URI: https://acmse.fr
Author: ACMSE
Description: Thème bloc de la Mosquée d'Étampes Nord (Association Cultuelle Musulmane du Sud de l'Essonne). Charte « Émeraude et sable », variation « Café et olive ».
Requires at least: 6.6
Tested up to: 7.1
Requires PHP: 8.2
Version: 0.6.6
License: GPL-2.0-or-later
Text Domain: acmse
*/

/* ---------- Base ---------- */
:root {
	--acmse-radius: 12px;
	--acmse-radius-sm: 8px;
}

body {
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary-600);
	outline-offset: 3px;
}

.acmse-arabic,
.has-arabic-font-family {
	font-family: var(--wp--preset--font-family--arabic);
	direction: rtl;
	unicode-bidi: isolate;
	line-height: 1.8;
}

.acmse-tabular {
	font-variant-numeric: tabular-nums;
}

.acmse-skip-link {
	position: absolute;
	left: -9999px;
}

.acmse-skip-link:focus {
	left: 1rem;
	top: 1rem;
	z-index: 100;
	background: var(--wp--preset--color--surface);
	padding: 0.5rem 1rem;
	border-radius: var(--acmse-radius-sm);
}

/* Les zones du site (en-tête, contenu, pied de page) se touchent : pas d'espace entre elles. */
.wp-site-blocks > * {
	margin-block-start: 0;
}

.wp-block-post-content > .alignfull:first-child {
	margin-top: 0;
}

/* ---------- En-tête ---------- */
.acmse-header {
	background: var(--wp--preset--color--primary-900);
	color: var(--wp--preset--color--on-dark);
}

.acmse-header .acmse-logo,
.acmse-header .wp-block-navigation a {
	color: var(--wp--preset--color--on-dark);
	text-decoration: none;
}

/* Sous-menus (ordinateur ; sur téléphone, ils sont dépliés dans le menu plein écran) :
   panneau vert foncé sous l'entrée, liens clairs, survol doré. */
@media (min-width: 600px) {
	.acmse-header .wp-block-navigation .wp-block-navigation__submenu-container {
		min-width: 15rem;
		padding: 0.5rem 0;
		border: 1px solid rgb(246 241 230 / 20%);
		border-radius: var(--acmse-radius-sm, 8px);
		box-shadow: 0 12px 28px rgb(0 0 0 / 28%);
		background: var(--wp--preset--color--primary-900);
		color: var(--wp--preset--color--on-dark);
	}

	.acmse-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		padding: 0.5rem 1rem;
	}
}

.acmse-header .wp-block-navigation .wp-block-navigation__submenu-icon {
	margin-left: 0.25rem;
	color: var(--wp--preset--color--gold);
}

.acmse-header .wp-block-navigation a:hover {
	color: var(--wp--preset--color--gold);
}

/* Logo à gauche ; menu et boutons à droite, sur la même ligne quand la largeur le permet.
   Si la ligne déborde, les boutons passent dessous, alignés à droite. */
.acmse-header__bar > .acmse-logo {
	margin-right: auto;
}

.acmse-header__bar > .wp-block-buttons {
	margin-left: auto;
	flex-wrap: nowrap;
}

.acmse-header .acmse-logo {
	display: flex;
	align-items: center;
	gap: 0.75rem;
}

.acmse-header .acmse-logo svg,
.acmse-header .acmse-logo img {
	height: 40px;
	width: auto;
	display: block;
}

/* Nom du site à côté du mot « acmse » (vrai texte : net et lisible à petite taille). */
.acmse-logo__nom {
	max-width: 11.5em;
	padding-left: 0.75rem;
	border-left: 1px solid rgb(246 241 230 / 35%);
	font-size: 0.72rem;
	font-weight: 600;
	line-height: 1.3;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.acmse-logo-play .acmse-logo__nom {
	animation: acmse-nom 0.8s 2.4s both;
}

@keyframes acmse-nom {
	from {
		opacity: 0;
		transform: translateX(-6px);
	}
}

.acmse-header .wp-block-navigation {
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
}

.acmse-header .wp-block-button.is-style-outline .wp-block-button__link {
	color: var(--wp--preset--color--on-dark);
	border-color: currentColor;
}

/* ---------- Boutons ---------- */
.wp-block-button.is-style-outline .wp-block-button__link {
	background: transparent;
	color: var(--wp--preset--color--primary-600);
	border: 1.5px solid currentColor;
}

.wp-block-button.is-style-outline .wp-block-button__link:hover {
	background: var(--wp--preset--color--primary-100);
}

/* ---------- Cartes ---------- */
.acmse-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--acmse-radius);
	padding: clamp(1rem, 3vw, 1.5rem);
}

.acmse-card > :first-child {
	margin-top: 0;
}

.acmse-badge {
	display: inline-block;
	font-size: 0.8125rem;
	font-weight: 600;
	padding: 0.2rem 0.6rem;
	border-radius: 999px;
	background: var(--wp--preset--color--primary-100);
	color: var(--wp--preset--color--primary-700);
}

/* ---------- Carte des horaires ---------- */
.acmse-prayer-card {
	background: var(--wp--preset--color--surface);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--acmse-radius);
	overflow: hidden;
}

.acmse-prayer-card__head {
	background: var(--wp--preset--color--primary-900);
	color: var(--wp--preset--color--on-dark);
	padding: 1rem 1.25rem;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 0.25rem 1rem;
	align-items: baseline;
}

.acmse-prayer-card__next {
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--gold);
}

.acmse-prayer-card ul {
	list-style: none;
	margin: 0;
	padding: 0.5rem;
}

.acmse-prayer-card li {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 1rem;
	padding: 0.6rem 0.75rem;
	border-radius: var(--acmse-radius-sm);
	font-variant-numeric: tabular-nums;
}

.acmse-prayer-card li + li {
	border-top: 1px solid var(--wp--preset--color--border);
}

.acmse-prayer-card li.is-next {
	background: var(--wp--preset--color--primary-100);
	border-top-color: transparent;
	font-weight: 600;
}

.acmse-prayer-card li.is-next + li {
	border-top-color: transparent;
}

.acmse-prayer-card .iqama {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
}

/* ---------- Bandeau d'annonce ---------- */
.acmse-announce {
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent-ink);
	text-align: center;
	font-size: var(--wp--preset--font-size--small);
	font-weight: 500;
	padding: 0.6rem 1rem;
}

.acmse-announce a {
	color: inherit;
	font-weight: 700;
}

/* Texte réservé aux lecteurs d'écran (ex. titre principal de l'accueil). */
.acmse-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ---------- Section d'accueil (photo + voile) ---------- */
.acmse-hero.wp-block-cover {
	min-height: min(78vh, 620px);
}

.acmse-hero .acmse-hero__intro {
	max-width: 46rem;
	margin-inline: auto;
	line-height: 1.6;
	text-wrap: pretty;
}

.acmse-hero .acmse-hero__bismillah {
	color: var(--wp--preset--color--gold);
	font-family: var(--wp--preset--font-family--arabic);
	font-size: clamp(2.2rem, 6vw, 3.6rem);
	line-height: 1.5;
}

/* ---------- Séparateurs ornementaux ---------- */
.acmse-ornament {
	display: flex;
	align-items: center;
	gap: 1rem;
	color: var(--wp--preset--color--accent);
	margin-block: var(--wp--preset--spacing--50);
}

.acmse-ornament::before,
.acmse-ornament::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--wp--preset--color--border);
}

.acmse-ornament svg {
	width: 36px;
	height: 44px;
	flex: none;
}

.acmse-pattern-bg {
	position: relative;
	isolation: isolate;
}

.acmse-pattern-bg::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	opacity: 0.06;
	background-image: url("assets/images/motif-etoile.svg");
	background-size: 64px 64px;
}

/* ---------- Charte graphique ---------- */
.acmse-swatches {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 0.75rem;
}

.acmse-swatch {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--acmse-radius-sm);
	overflow: hidden;
	background: var(--wp--preset--color--surface);
	font-size: 0.8125rem;
}

.acmse-swatch__color {
	height: 64px;
}

.acmse-swatch__label {
	padding: 0.5rem 0.6rem;
}

.acmse-swatch__label code {
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
}

.acmse-logo-row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 0.75rem;
}

.acmse-logo-row figure {
	margin: 0;
	border-radius: var(--acmse-radius-sm);
	border: 1px solid var(--wp--preset--color--border);
	padding: 1.5rem;
	display: grid;
	place-items: center;
	min-height: 150px;
}

.acmse-logo-row img {
	max-height: 110px;
	width: auto;
}

.acmse-schemes {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1rem;
}

.acmse-scheme {
	border-radius: var(--acmse-radius);
	overflow: hidden;
	border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.acmse-scheme__head {
	background: var(--wp--preset--color--primary-900);
	color: var(--wp--preset--color--on-dark);
	padding: 1rem;
}

.acmse-scheme__head .acmse-arabic {
	color: var(--wp--preset--color--gold);
	font-size: 1.25rem;
}

.acmse-scheme__head strong {
	display: block;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.25rem;
	font-weight: 560;
}

.acmse-scheme__body {
	padding: 1rem;
	display: grid;
	gap: 0.75rem;
}

.acmse-scheme__body a {
	color: var(--wp--preset--color--primary-600);
}

.acmse-scheme__btn {
	display: inline-block;
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--accent-ink);
	border-radius: 10px;
	padding: 0.5rem 1rem;
	font-weight: 600;
	font-size: 0.9375rem;
}

.acmse-scheme__muted {
	color: var(--wp--preset--color--muted);
	font-size: 0.875rem;
}

/* Schémas forcés pour les aperçus (et futur sélecteur éventuel) */
.acmse-scheme--emeraude-light {
	--wp--preset--color--base: #FAF6EE; --wp--preset--color--surface: #FFFFFF; --wp--preset--color--contrast: #1F2A24; --wp--preset--color--muted: #5B6B62; --wp--preset--color--border: #E6DCC6; --wp--preset--color--primary-900: #0F3D2E; --wp--preset--color--primary-700: #14573F; --wp--preset--color--primary-600: #1B6B4E; --wp--preset--color--primary-100: #DCEFE5; --wp--preset--color--accent: #C9A24D; --wp--preset--color--accent-ink: #1E1A10; --wp--preset--color--on-dark: #F6F1E6; --wp--preset--color--gold: #D9B25F;
}

.acmse-scheme--emeraude-dark {
	--wp--preset--color--base: #0D1A14; --wp--preset--color--surface: #15251E; --wp--preset--color--contrast: #E9EFEA; --wp--preset--color--muted: #A9BBB1; --wp--preset--color--border: #284236; --wp--preset--color--primary-900: #07120D; --wp--preset--color--primary-700: #7CCBA6; --wp--preset--color--primary-600: #4FB387; --wp--preset--color--primary-100: #1C3A2D; --wp--preset--color--accent: #D9B25F; --wp--preset--color--accent-ink: #1E1A10; --wp--preset--color--on-dark: #E9EFEA; --wp--preset--color--gold: #D9B25F;
}

.acmse-scheme--cafe-light {
	--wp--preset--color--base: #F7F1E8; --wp--preset--color--surface: #FFFDF9; --wp--preset--color--contrast: #2E2119; --wp--preset--color--muted: #6E5A4A; --wp--preset--color--border: #E4D6C2; --wp--preset--color--primary-900: #3B2A20; --wp--preset--color--primary-700: #5A3E2B; --wp--preset--color--primary-600: #8B6245; --wp--preset--color--primary-100: #EFE3D3; --wp--preset--color--accent: #556E34; --wp--preset--color--accent-ink: #F7F1E8; --wp--preset--color--on-dark: #F7F1E8; --wp--preset--color--gold: #D4AE6A;
}

.acmse-scheme--cafe-dark {
	--wp--preset--color--base: #1A1410; --wp--preset--color--surface: #251C16; --wp--preset--color--contrast: #F1E8DC; --wp--preset--color--muted: #C2B09C; --wp--preset--color--border: #3F3128; --wp--preset--color--primary-900: #100B08; --wp--preset--color--primary-700: #E0C9A8; --wp--preset--color--primary-600: #C8A882; --wp--preset--color--primary-100: #3A2C22; --wp--preset--color--accent: #D9B25F; --wp--preset--color--accent-ink: #1E1A10; --wp--preset--color--on-dark: #F1E8DC; --wp--preset--color--gold: #D4AE6A;
}

/* ---------- Grilles, métadonnées, fiches ---------- */
.acmse-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
	gap: 1rem;
}

.acmse-dons {
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
}

.acmse-card__title {
	font-size: var(--wp--preset--font-size--large);
	margin: 0.5rem 0 0.25rem;
}

.acmse-card__title a {
	color: inherit;
	text-decoration: none;
}

.acmse-card__title a:hover {
	text-decoration: underline;
}

.acmse-meta {
	color: var(--wp--preset--color--muted);
	font-size: var(--wp--preset--font-size--small);
	margin: 0.25rem 0 0;
}

.acmse-empty {
	color: var(--wp--preset--color--muted);
	margin: 0;
}

.acmse-facts {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 0.35rem 1rem;
	margin: 0.75rem 0 0;
	font-size: var(--wp--preset--font-size--small);
}

.acmse-facts dt {
	font-weight: 600;
	color: var(--wp--preset--color--muted);
}

.acmse-facts dd {
	margin: 0;
	overflow-wrap: anywhere;
}

.acmse-copy {
	font: inherit;
	font-size: 0.8125rem;
	padding: 0.1rem 0.5rem;
	margin-left: 0.25rem;
	border-radius: 6px;
	border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--surface);
	color: var(--wp--preset--color--primary-600);
	cursor: pointer;
}

.acmse-iban {
	font-size: 0.875rem;
	white-space: nowrap;
}

.acmse-admin-notice,
.acmse-todo {
	border: 1.5px dashed var(--wp--preset--color--accent);
	border-radius: var(--acmse-radius-sm);
	padding: 0.5rem 0.75rem;
	font-size: var(--wp--preset--font-size--small);
	background: color-mix(in srgb, var(--wp--preset--color--accent) 10%, transparent);
}

/* Bureau connecté sur une page masquée aux visiteurs (Réglages ACMSE → Version du site). */
.acmse-masque-bandeau {
	margin: 0;
	padding: 0.5rem 1rem;
	text-align: center;
	font-size: var(--wp--preset--font-size--small);
	background: var(--wp--preset--color--accent);
	color: var(--wp--preset--color--primary-900);
}

/* ---------- Khutbas et rappels : verset, hadith, « À retenir » ---------- */
.wp-block-quote.is-style-acmse-verset,
.wp-block-quote.is-style-acmse-hadith {
	margin-block: var(--wp--preset--spacing--40);
	padding: 1.25rem 1.5rem;
	border-radius: var(--acmse-radius-sm);
}
.wp-block-quote.is-style-acmse-verset {
	text-align: center;
	border: 0;
	border-block: 2px solid var(--wp--preset--color--accent);
	background: var(--wp--preset--color--primary-100);
}
.wp-block-quote.is-style-acmse-hadith {
	border: 0;
	border-inline-start: 4px solid var(--wp--preset--color--accent);
	background: var(--wp--preset--color--surface);
}
.wp-block-quote.is-style-acmse-verset .acmse-arabic,
.wp-block-quote.is-style-acmse-hadith .acmse-arabic {
	font-size: var(--wp--preset--font-size--x-large);
	color: var(--wp--preset--color--primary-900);
	margin-block: 0 0.75rem;
}
.wp-block-quote.is-style-acmse-hadith .acmse-arabic {
	font-size: var(--wp--preset--font-size--large);
	text-align: right;
}
.wp-block-quote.is-style-acmse-verset p:not(.acmse-arabic),
.wp-block-quote.is-style-acmse-hadith p:not(.acmse-arabic) {
	font-style: italic;
	margin-block: 0;
}
.wp-block-quote.is-style-acmse-verset cite,
.wp-block-quote.is-style-acmse-hadith cite {
	display: block;
	margin-top: 0.75rem;
	font-size: var(--wp--preset--font-size--small);
	font-style: normal;
	color: var(--wp--preset--color--muted);
}
.wp-block-group.is-style-acmse-retenir {
	margin-block: var(--wp--preset--spacing--40);
	padding: 1.25rem 1.5rem;
	border-radius: var(--acmse-radius-sm);
	background: var(--wp--preset--color--primary-900);
	color: var(--wp--preset--color--on-dark);
}
.wp-block-group.is-style-acmse-retenir :where(h2, h3) {
	margin-top: 0;
	color: var(--wp--preset--color--accent);
}
.wp-block-group.is-style-acmse-retenir ul {
	margin-bottom: 0;
}
.wp-block-group.is-style-acmse-retenir a {
	color: inherit;
}

/* ---------- Horaires (Mawaqit) ---------- */
.acmse-horaires__title {
	font-size: var(--wp--preset--font-size--medium);
	color: var(--wp--preset--color--on-dark);
	margin: 0;
}

.acmse-horaires__frame {
	display: block;
	width: 100%;
	border: 0;
	background: var(--wp--preset--color--surface);
}

.acmse-horaires__empty,
.acmse-horaires__foot {
	padding: 1rem 1.25rem;
	margin: 0;
}

.acmse-horaires__foot {
	border-top: 1px solid var(--wp--preset--color--border);
	font-size: var(--wp--preset--font-size--small);
}

/* ---------- Horaires : dates, extras, tableau du mois ---------- */
.acmse-horaires__dates {
	margin: 0.15rem 0 0;
	font-size: var(--wp--preset--font-size--small);
	color: var(--wp--preset--color--on-dark);
}

.acmse-horaires__dates span {
	color: var(--wp--preset--color--gold);
}

.acmse-prayer-card__head {
	align-items: center;
}

.acmse-horaires__extra {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem 1.5rem;
	margin: 0;
	padding: 0.75rem 1.25rem;
	border-top: 1px solid var(--wp--preset--color--border);
	font-size: var(--wp--preset--font-size--small);
	font-variant-numeric: tabular-nums;
}

.acmse-horaires__extra div {
	display: flex;
	gap: 0.4rem;
}

.acmse-horaires__extra dt {
	color: var(--wp--preset--color--muted);
}

.acmse-horaires__extra dd {
	margin: 0;
	font-weight: 600;
}

.acmse-horaires__month {
	padding: 0 1.25rem 1rem;
	border-top: 1px solid var(--wp--preset--color--border);
}

.acmse-horaires__month h3 {
	font-size: var(--wp--preset--font-size--medium);
	margin: 1rem 0 0.5rem;
}

.acmse-table-scroll {
	overflow-x: auto;
}

.acmse-horaires__month table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--wp--preset--font-size--small);
	font-variant-numeric: tabular-nums;
	min-width: 520px;
}

.acmse-horaires__month th,
.acmse-horaires__month td {
	padding: 0.35rem 0.5rem;
	text-align: left;
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.acmse-horaires__month thead th {
	color: var(--wp--preset--color--muted);
	font-weight: 600;
}

.acmse-horaires__month tbody th {
	font-weight: 500;
	text-transform: capitalize;
}

.acmse-horaires__month tr.is-today {
	background: var(--wp--preset--color--primary-100);
	font-weight: 700;
}

/* ---------- Médias des khutbas ---------- */
.acmse-media audio {
	width: 100%;
}

.acmse-media iframe {
	width: 100%;
	aspect-ratio: 16 / 9;
	height: auto;
	border: 0;
	border-radius: var(--acmse-radius);
}

/* ---------- Titres de page ---------- */
.acmse-page-head {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.acmse-lead {
	font-size: var(--wp--preset--font-size--large);
	color: var(--wp--preset--color--muted);
	line-height: 1.5;
}

/* ---------- Formulaires ---------- */
.acmse-form form {
	display: grid;
	gap: 0.25rem;
}

.acmse-form__field {
	display: grid;
	gap: 0.35rem;
	margin: 0 0 0.75rem;
}

.acmse-form__field label {
	font-weight: 600;
	font-size: var(--wp--preset--font-size--small);
}

.acmse-form input:not([type="checkbox"]),
.acmse-form select,
.acmse-form textarea,
.acmse-sim input,
.acmse-sim select {
	font: inherit;
	width: 100%;
	box-sizing: border-box;
	padding: 0.65rem 0.8rem;
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--acmse-radius-sm);
	background: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
}

.acmse-form input:focus-visible,
.acmse-form select:focus-visible,
.acmse-form textarea:focus-visible,
.acmse-sim input:focus-visible,
.acmse-sim select:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary-600);
	outline-offset: 1px;
}

.acmse-form__check {
	display: flex;
	gap: 0.6rem;
	align-items: flex-start;
	font-size: var(--wp--preset--font-size--small);
	margin: 0 0 0.75rem;
}

.acmse-form__check input {
	width: 1.15rem;
	height: 1.15rem;
	margin-top: 0.2rem;
	accent-color: var(--wp--preset--color--primary-600);
	flex: none;
}

.acmse-form__trap {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

.acmse-form__actions {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
	margin: 0.5rem 0 0;
}

.acmse-form__notice {
	border-radius: var(--acmse-radius-sm);
	padding: 0.75rem 1rem;
	font-weight: 500;
}

.acmse-form__notice.is-success {
	background: var(--wp--preset--color--primary-100);
	color: var(--wp--preset--color--contrast);
}

.acmse-form__notice.is-error {
	background: color-mix(in srgb, #B3261E 12%, var(--wp--preset--color--surface));
	color: var(--wp--preset--color--contrast);
	border: 1px solid #B3261E;
}

/* ---------- Simulateur ---------- */
.acmse-sim__inputs {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr));
	gap: 0 1rem;
}

.acmse-sim__result {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(min(100%, 180px), 1fr));
	gap: 1rem;
	background: var(--wp--preset--color--primary-100);
	border-radius: var(--acmse-radius-sm);
	padding: 1rem 1.25rem;
	margin: 0.5rem 0 1rem;
}

.acmse-sim__result p {
	margin: 0;
	display: grid;
}

.acmse-sim__result strong {
	font-family: var(--wp--preset--font-family--heading);
	font-size: var(--wp--preset--font-size--x-large);
	color: var(--wp--preset--color--contrast);
	font-variant-numeric: tabular-nums;
}

/* ---------- HelloAsso et carte ---------- */
.acmse-helloasso iframe {
	width: 100%;
	min-height: 760px;
	border: 0;
	border-radius: var(--acmse-radius);
	background: #fff;
}

.acmse-map {
	margin: 0 0 1rem;
}

.acmse-map img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: var(--acmse-radius);
	border: 1px solid var(--wp--preset--color--border);
}

.acmse-map figcaption {
	font-size: 0.75rem;
	color: var(--wp--preset--color--muted);
	margin-top: 0.35rem;
}

/* ---------- Tableaux ---------- */
.wp-block-table.is-style-stripes {
	border-bottom-color: var(--wp--preset--color--border);
}

.wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background-color: var(--wp--preset--color--primary-100);
}

.wp-block-table thead {
	border-bottom-color: var(--wp--preset--color--primary-600);
}

.wp-block-table th {
	text-align: left;
}

/* ---------- FAQ ---------- */
.wp-block-details {
	border: 1px solid var(--wp--preset--color--border);
	border-radius: var(--acmse-radius-sm);
	padding: 0.75rem 1rem;
	background: var(--wp--preset--color--surface);
}

.wp-block-details summary {
	font-weight: 600;
	cursor: pointer;
}

.wp-block-details + .wp-block-details {
	margin-top: 0.5rem;
}

/* ---------- Pied de page ---------- */
.acmse-footer {
	background: var(--wp--preset--color--primary-900);
	color: var(--wp--preset--color--on-dark);
}

.acmse-footer a {
	color: var(--wp--preset--color--on-dark);
}

.acmse-footer-links {
	list-style: none;
	padding-left: 0;
}

.acmse-footer .acmse-logo img {
	height: 84px;
	width: auto;
}

/* ---------- Projet d'extension : places financées ---------- */
.acmse-places {
	display: grid;
	gap: 1rem;
	padding: clamp(1rem, 3vw, 2rem);
	border-radius: var(--acmse-radius, 12px);
	background: var(--wp--preset--color--primary-900);
	color: var(--wp--preset--color--on-dark);
}

.acmse-places p {
	margin: 0;
}

.acmse-places__head {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	justify-content: space-between;
	gap: 0.5rem 2rem;
}

.acmse-places__count {
	font-family: var(--wp--preset--font-family--heading);
	font-size: clamp(1.4rem, 3vw, 2rem);
}

.acmse-places__count strong,
.acmse-places__money strong {
	color: var(--wp--preset--color--gold);
}

.acmse-places__count strong {
	font-size: 1.6em;
}

.acmse-places__bar {
	width: 100%;
	height: 0.9rem;
	border: 0;
	border-radius: 99px;
	overflow: hidden;
	appearance: none;
	background: rgb(246 241 230 / 14%);
}

.acmse-places__bar::-webkit-progress-bar {
	background: rgb(246 241 230 / 14%);
}

.acmse-places__bar::-webkit-progress-value {
	background: var(--wp--preset--color--gold);
	border-radius: 99px;
}

.acmse-places__bar::-moz-progress-bar {
	background: var(--wp--preset--color--gold);
	border-radius: 99px;
}

/* Une place = un tapis de prière : rectangle (3 × 5) au sommet en arc. */
.acmse-places__grid {
	display: grid;
	grid-template-columns: repeat(50, 1fr);
	gap: 5px 3px;
}

@media (max-width: 900px) {
	.acmse-places__grid {
		grid-template-columns: repeat(30, 1fr);
	}
}

@media (max-width: 600px) {
	.acmse-places__grid {
		grid-template-columns: repeat(25, 1fr);
		gap: 4px 2px;
	}
}

.acmse-places__grid span,
.acmse-places__key {
	aspect-ratio: 3 / 5;
	border: 1px solid rgb(246 241 230 / 32%);
	border-radius: 45% 45% 2px 2px / 26% 26% 2px 2px;
}

.acmse-places__grid span.is-filled,
.acmse-places__key.is-filled {
	border-color: var(--wp--preset--color--gold);
	background: var(--wp--preset--color--gold);
	box-shadow: inset 0 0 0 2px var(--wp--preset--color--primary-900), inset 0 0 0 3px var(--wp--preset--color--gold);
}

.acmse-places__legend {
	font-size: var(--wp--preset--font-size--small);
}

.acmse-places__key {
	display: inline-block;
	width: 0.7em;
	margin: 0 0.3em 0 0.6em;
	vertical-align: -0.1em;
}

.acmse-places__key:first-child {
	margin-left: 0;
}

.acmse-places .acmse-places__thanks {
	margin: 0.5rem 0 0;
	color: var(--wp--preset--color--gold);
	font-size: var(--wp--preset--font-size--large);
}

.acmse-places__names {
	display: flex;
	flex-wrap: wrap;
	gap: 0.4rem 1.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.acmse-places__names span {
	opacity: 0.75;
	font-size: var(--wp--preset--font-size--small);
}

/* ---------- Logo animé du Ramadan (bloc hilal) ---------- */
.acmse-hilal-anim {
	max-width: 520px;
	margin-inline: auto;
}

.acmse-hilal-anim svg {
	display: block;
	width: 100%;
	height: auto;
}

/* ---------- Réseaux sociaux ---------- */
.acmse-reseaux__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.acmse-reseaux__list a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-width: 44px;
	min-height: 44px;
	border-radius: 999px;
	color: inherit;
	text-decoration: none;
}

.acmse-reseaux__list svg {
	flex: none;
	width: 24px;
	height: 24px;
}

.acmse-reseaux--libelles .acmse-reseaux__list a {
	padding: 0.25rem 1rem 0.25rem 0.75rem;
	border: 1px solid currentColor;
	color: var(--wp--preset--color--primary-600);
}

.acmse-reseaux__list a:hover span {
	text-decoration: underline;
}

.acmse-footer .acmse-reseaux__list {
	margin-left: -10px; /* icône alignée sur le texte au-dessus */
}

.acmse-footer .acmse-reseaux__list a:hover {
	color: var(--wp--preset--color--gold);
}

@media (prefers-reduced-motion: reduce) {
	* {
		animation: none !important;
		transition: none !important;
	}
}
