/* ========================================================================
   Salam Muslim Custom — main.css
   Sections : 0) Nuclear reset cards · 1) Fonts · 2) Tokens · 3) Reset
              4) Typography · 5) Components · 6) Layout · 7) LP Hijri
   Enqueue : priorité 999 → charge APRÈS tous les styles Elementor Pro.
   ======================================================================== */

/* 1) FONTS ------------------------------------------------------------- */
/* Stack définitif : Fraunces (display), Manrope (body), Amiri (arabe).
   Figtree et DM Serif Display ont été retirés (charte v2026). */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300..700;1,9..144,300..700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300..700&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Amiri:wght@400;700&display=swap');

/* ========================================================================
   0) NUCLEAR RESET — cards cross-sell & CTA voyage
   Tue l'héritage Elementor Pro (--e-global-color-accent = #B1623E)
   qui colore tout le texte dans nos <a> en terra-cotta/orangé.
   ======================================================================== */

/* Reset brutal sur les cards elles-mêmes, tous états confondus.
   NB : pas de reset box-shadow ici — la card cross-sell en a besoin pour son effet encadré. */
.smc-crosssell__card,
.smc-crosssell__card:link,
.smc-crosssell__card:visited,
.smc-crosssell__card:hover,
.smc-crosssell__card:active,
.smc-crosssell__card:focus,
.smc-cta-voyage__card,
.smc-cta-voyage__card:link,
.smc-cta-voyage__card:visited,
.smc-cta-voyage__card:hover,
.smc-cta-voyage__card:active,
.smc-cta-voyage__card:focus {
	text-decoration: none !important;
	color: inherit !important;
}

/* Reset sur TOUS les descendants texte — ils héritent de la couleur du parent card.
   La couleur exacte sera redéfinie explicitement sur chaque sous-élément plus bas. */
.smc-crosssell__card *,
.smc-cta-voyage__card * {
	color: inherit !important;
	text-decoration: none !important;
}

/* Couleur-parente pour chaque type de card (point de départ de l'héritage) */
.smc-crosssell__card { color: var(--encre) !important; }
.smc-cta-voyage__card { color: var(--cream) !important; }

/* --- REDÉFINITIONS EXPLICITES : CROSS-SELL (fond cream-soft) --- */
.smc-crosssell__card .smc-crosssell__card-title {
	color: var(--bleu) !important;           /* #1C2E4A */
	font-family: var(--font-display), 'Fraunces', Georgia, serif !important;
	font-weight: 500 !important;
	font-size: 20px !important;
	line-height: 1.25 !important;
	letter-spacing: -0.01em !important;
	margin: 0 0 10px !important;
}

.smc-crosssell__card .smc-crosssell__card-desc {
	color: var(--soft) !important;           /* #5C6578 */
	font-family: var(--font-body), 'Manrope', -apple-system, sans-serif !important;
	font-size: 14.5px !important;
	line-height: 1.55 !important;
	margin: 0 0 20px !important;
}

.smc-crosssell__card .smc-crosssell__button {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	background: var(--olive) !important;     /* #6B7F3F */
	color: var(--cream) !important;          /* #F7F1E3 */
	padding: 12px 20px !important;
	border-radius: 10px !important;
	font-family: var(--font-body), 'Manrope', sans-serif !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	letter-spacing: 0.02em !important;
	text-align: center !important;
	width: 100% !important;
	margin-top: auto !important;
	border: 0 !important;
}
.smc-crosssell__card .smc-crosssell__button::after {
	content: '→' !important;
	font-size: 16px !important;
	color: var(--cream) !important;
	line-height: 1 !important;
}
.smc-crosssell__card:hover .smc-crosssell__button {
	background: var(--bleu) !important;      /* au hover bouton devient bleu */
	gap: 14px !important;
}

/* --- REDÉFINITIONS EXPLICITES : CTA VOYAGE (fond bleu nuit, textes cream/or) --- */
.smc-cta-voyage__card .smc-cta-voyage__card-title {
	color: var(--cream) !important;          /* #F7F1E3 */
	font-family: var(--font-display), 'Fraunces', Georgia, serif !important;
	font-weight: 500 !important;
	font-size: 21px !important;
	line-height: 1.2 !important;
	margin: 0 !important;
}

.smc-cta-voyage__card .smc-cta-voyage__card-desc {
	color: rgba(247, 241, 227, 0.7) !important;
	font-family: var(--font-body), 'Manrope', sans-serif !important;
	font-size: 14.5px !important;
	line-height: 1.55 !important;
	margin: 0 !important;
	flex-grow: 1 !important;
}

.smc-cta-voyage__card .smc-cta-voyage__card-arrow {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	color: var(--or-light) !important;       /* #D4B27E au repos */
	font-family: var(--font-body), 'Manrope', sans-serif !important;
	font-size: 13px !important;
	letter-spacing: 0.1em !important;
	text-transform: uppercase !important;
	font-weight: 600 !important;
	margin-top: auto !important;
	padding-top: 12px !important;
}
.smc-cta-voyage__card .smc-cta-voyage__card-arrow::after {
	content: '→' !important;
	font-size: 16px !important;
	color: inherit !important;
}
.smc-cta-voyage__card:hover .smc-cta-voyage__card-arrow {
	color: var(--cream) !important;          /* au hover devient cream */
	gap: 10px !important;
}

/* L'icône reste visible (emoji) mais le wrapper carré conserve son fond gradient
   (redéfini dans la section composants plus bas). */

/* 2) TOKENS ------------------------------------------------------------ */
:root {
	/* COULEURS ---------------------------------------------------------- */
	--bleu:        #1C2E4A;
	--bleu-deep:   #14223A;
	--bleu-soft:   #2E4166;

	--cream:       #F7F1E3;
	--cream-soft:  #FBF5E6;
	--peau:        #E8D9BE;

	--olive:       #6B7F3F;
	--olive-deep:  #4D5E2B;
	--olive-light: #8FA34F;

	--or:          #B8935C;
	--or-light:    #D4B27E;

	--encre:       #1A1F2E;
	--soft:        #5C6578;
	--line:        #D9CFB8;

	--terra:       #A0522D;
	--terra-soft:  #F5E6DC;

	/* Alias de rétro-compat (anciennes occurrences dans composants/widgets) */
	--or-deep:     #8F6F3C; /* @deprecated, à migrer vers --or-light selon contexte */
	--terra-deep:  #7A3E20; /* @deprecated, à migrer vers --terra selon contexte */

	/* TYPOGRAPHIE ------------------------------------------------------- */
	--font-display: 'Fraunces', Georgia, serif;                              /* H1, H2, H3 */
	--font-body:    'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
	--font-arabic:  'Amiri', 'Traditional Arabic', serif;

	/* Alias de rétro-compat (à purger progressivement dans les composants) */
	--font-title:   var(--font-display);
	--font-serif:   var(--font-display);

	/* ESPACEMENTS ------------------------------------------------------- */
	--space-1:  4px;
	--space-2:  8px;
	--space-3:  12px;
	--space-4:  16px;
	--space-5:  24px;
	--space-6:  32px;
	--space-8:  48px;
	--space-10: 64px;
	--space-12: 80px;

	/* RADIUS ------------------------------------------------------------ */
	--radius-sm:  8px;
	--radius-md:  12px;
	--radius-lg:  16px;
	--radius-xl:  24px;

	/* SHADOWS ----------------------------------------------------------- */
	--shadow-sm:  0 2px 8px  rgba(28, 46, 74, 0.06);
	--shadow-md:  0 4px 16px rgba(28, 46, 74, 0.08);
	--shadow-lg:  0 16px 40px rgba(28, 46, 74, 0.12);
	--shadow-xl:  0 20px 60px rgba(28, 46, 74, 0.15);

	/* Alias rétro-compat shadows (composants existants) */
	--shadow-soft: var(--shadow-sm);
	--shadow-card: var(--shadow-md);
	--shadow-warm: var(--shadow-md);

	/* LAYOUT ------------------------------------------------------------ */
	--container:    1200px;
	--gap:          var(--space-5);

	/* TAILLES TEXTE (inchangées) ---------------------------------------- */
	--fs-xs:  0.8125rem;
	--fs-sm:  0.9375rem;
	--fs-md:  1.0625rem;
	--fs-lg:  1.25rem;
	--fs-xl:  1.75rem;
	--fs-2xl: 2.25rem;
	--fs-3xl: 3.25rem;
}

/* Smooth scroll global (ancres internes fluides) */
html { scroll-behavior: smooth; }

/* Neutralisation liens visités (pas de magenta/violet hors charte) */
.smc-lp a:visited,
.smc-lp a:visited * { color: inherit; }

/* 3) RESET ------------------------------------------------------------- */
.smc-lp *,
.smc-lp *::before,
.smc-lp *::after {
	box-sizing: border-box;
}

.smc-lp {
	background: var(--cream);
	color: var(--bleu);
	font-family: var(--font-body);
	font-size: var(--fs-md);
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.smc-lp img {
	max-width: 100%;
	height: auto;
	display: block;
}

.smc-lp a {
	color: var(--olive);
	text-decoration: none;
	transition: color .15s ease;
}

.smc-lp a:hover {
	color: var(--olive-deep);
	text-decoration: underline;
}

/* Neutralise le violet navigateur sur liens visités (sinon les cards
   cross-sell prennent la couleur visited #551A8B qui détonne). */
.smc-lp a:visited { color: var(--olive); }
.smc-lp a:visited:hover { color: var(--olive-deep); }

/* 4) TYPOGRAPHY -------------------------------------------------------- */
.smc-lp h1, .smc-lp h2, .smc-lp h3, .smc-lp h4 {
	font-family: var(--font-title);
	color: var(--bleu);
	font-weight: 600;
	letter-spacing: -0.01em;
	line-height: 1.2;
	margin: 0 0 .75em;
}

.smc-lp h1 { font-size: var(--fs-3xl); font-weight: 500; letter-spacing: -0.015em; }
.smc-lp h2 { font-size: var(--fs-2xl); }
.smc-lp h3 { font-size: var(--fs-xl); font-family: var(--font-serif); font-weight: 400; }
.smc-lp h4 { font-size: var(--fs-lg); }

.smc-lp p { margin: 0 0 1.1em; }

.smc-lp .smc-arabic {
	font-family: var(--font-arabic);
	direction: rtl;
	unicode-bidi: embed;
	color: var(--or);
}

.smc-lp ul, .smc-lp ol { margin: 0 0 1.1em 1.25em; padding: 0; }
.smc-lp li { margin-bottom: .35em; }

/* 5) COMPONENTS -------------------------------------------------------- */
.smc-container {
	width: 100%;
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 1.25rem;
}

/* Button — higher specificity (.smc-lp .smc-btn) to beat the `.smc-lp a` color rule. */
.smc-lp .smc-btn,
.smc-lp a.smc-btn,
.smc-lp span.smc-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .5rem;
	padding: .95rem 1.75rem;
	background: var(--olive);
	color: var(--cream);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: var(--fs-md);
	letter-spacing: 0.01em;
	border: 2px solid var(--olive);
	border-radius: var(--radius-sm);
	cursor: pointer;
	text-decoration: none;
	transition: background .15s ease, border-color .15s ease, transform .1s ease;
}

.smc-lp .smc-btn:hover,
.smc-lp a.smc-btn:hover,
.smc-lp span.smc-btn:hover {
	background: var(--olive-deep);
	border-color: var(--olive-deep);
	color: var(--cream);
	text-decoration: none;
}

.smc-lp .smc-btn:active { transform: translateY(1px); }

.smc-lp .smc-btn--ghost {
	background: transparent;
	color: var(--bleu);
	border-color: var(--bleu);
}

.smc-lp .smc-btn--ghost:hover {
	background: var(--bleu);
	color: var(--cream);
}

.smc-lp .smc-btn--sm {
	padding: .55rem 1.1rem;
	font-size: var(--fs-sm);
}

/* Tip-box éditorial v2026 (astuce / savoir / saviez) — voir maquette 2.
   Grille 2 colonnes, icône carrée 44×44 fond couleur plein,
   titre serif display, corps Manrope body, bordure gauche 4px. */
.smc-tip {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 20px;
	align-items: start;
	padding: 24px 28px;
	border-radius: var(--radius-lg);
	margin: 28px 0;
	border-left: 4px solid transparent;
}
.smc-tip__icon {
	width: 44px;
	height: 44px;
	border-radius: var(--radius-md);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	line-height: 1;
	flex-shrink: 0;
}
.smc-tip__body { min-width: 0; }
.smc-tip__body h4 {
	font-family: var(--font-display);
	font-size: 17px;
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 6px;
}
.smc-tip__body p {
	margin: 0;
	font-family: var(--font-body);
	font-size: 15.5px;
	line-height: 1.6;
	color: var(--encre);
}
.smc-tip__body p:not(:last-child) { margin-bottom: 10px; }
.smc-tip__body strong { color: var(--bleu); font-weight: 700; }
.smc-tip__body a { color: var(--olive-deep); text-decoration: underline; text-decoration-color: rgba(107,127,63,0.3); text-underline-offset: 2px; }
.smc-tip__body a:hover { text-decoration-color: var(--olive); }

/* Variante Astuce (olive) */
.smc-tip--astuce {
	background: linear-gradient(135deg, rgba(107, 127, 63, 0.08) 0%, rgba(107, 127, 63, 0.03) 100%);
	border-left-color: var(--olive);
}
.smc-tip--astuce .smc-tip__icon { background: var(--olive); color: var(--cream); }
.smc-tip--astuce .smc-tip__body h4 { color: var(--olive-deep); }

/* Variante À savoir (terra) */
.smc-tip--savoir {
	background: linear-gradient(135deg, rgba(160, 82, 45, 0.07) 0%, rgba(160, 82, 45, 0.02) 100%);
	border-left-color: var(--terra);
}
.smc-tip--savoir .smc-tip__icon { background: var(--terra); color: var(--cream); }
.smc-tip--savoir .smc-tip__body h4 { color: var(--terra); }

/* Variante Le saviez-vous ? (bleu) */
.smc-tip--saviez {
	background: linear-gradient(135deg, rgba(28, 46, 74, 0.06) 0%, rgba(28, 46, 74, 0.02) 100%);
	border-left-color: var(--bleu);
}
.smc-tip--saviez .smc-tip__icon { background: var(--bleu); color: var(--or-light); }
.smc-tip--saviez .smc-tip__body h4 { color: var(--bleu); }

@media (max-width: 640px) {
	.smc-tip { padding: 20px; grid-template-columns: 1fr; }
}

/* Intermediate + outro CTA blocks */
.smc-cta-block {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .85rem;
	padding: 1.75rem 1.5rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	margin: 2.5rem 0 .5rem;
	text-align: center;
}

.smc-cta-block__lead {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	color: var(--bleu);
	margin: 0;
}

.smc-cta-block--outro {
	background: transparent;
	border: 0;
	padding: .5rem 0;
	margin: 1.25rem 0 0;
}

.smc-cta-outro { text-align: center; }
.smc-cta-outro p { max-width: 620px; margin-left: auto; margin-right: auto; }
/* Override via spécificité accrue (ancien !important retiré). */
.smc-cta-outro p.smc-cta-outro__action {
	max-width: none;
	margin: 1.75rem auto 0;
}

.smc-input {
	width: 100%;
	padding: .85rem 1rem;
	font-family: var(--font-body);
	font-size: var(--fs-md);
	color: var(--bleu);
	background: var(--cream-soft);
	border: 1.5px solid var(--line);
	border-radius: var(--radius-sm);
	transition: border-color .15s ease, box-shadow .15s ease;
}

.smc-input:focus {
	outline: none;
	border-color: var(--olive);
	box-shadow: 0 0 0 3px rgba(107, 127, 63, 0.15);
}

.smc-ornament {
	display: block;
	text-align: center;
	color: var(--or);
	font-size: 1.25rem;
	letter-spacing: .5em;
	margin: 2.5rem 0;
	opacity: .8;
}

/* Accordion (FAQ) — cards avec ombre douce pour détacher du fond */
.smc-accordion {
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	box-shadow: var(--shadow-warm);
	padding: 0 1.5rem;
}

.smc-accordion__item { border-bottom: 1px solid var(--line); }
.smc-accordion__item:last-child { border-bottom: 0; }

.smc-accordion__trigger {
	width: 100%;
	padding: 1.25rem 0;
	background: transparent;
	border: 0;
	text-align: left;
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	color: var(--bleu);
	cursor: pointer;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 1rem;
}

.smc-accordion__trigger::after {
	content: '＋';
	color: var(--olive);
	font-size: 1.4rem;
	transition: transform .2s ease;
	flex-shrink: 0;
}

.smc-accordion__item[open] .smc-accordion__trigger::after {
	content: '−';
}

.smc-accordion__panel {
	padding: 0 0 1.25rem;
	color: var(--bleu-soft);
}

.smc-accordion__panel p:last-child { margin-bottom: 0; }

/* Cross-sell premium v2026 — voir maquette 3.
   Eyebrow + H2 italique surligné or + 4 cards cream-soft
   avec icône carrée, bouton olive plein, hover premium. */
.smc-crosssell {
	max-width: var(--container);
	margin: 0 auto;
	padding: 0 24px;
}
.smc-crosssell__head {
	text-align: center;
	margin: 60px 0 50px;
}
.smc-crosssell__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-body);
	font-size: 12px;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--olive-deep);
	font-weight: 600;
	margin-bottom: 16px;
}
.smc-crosssell__eyebrow::before,
.smc-crosssell__eyebrow::after {
	content: '';
	width: 32px;
	height: 1px;
	background: var(--olive);
}
.smc-crosssell h2 {
	font-family: var(--font-display);
	font-size: 42px;
	color: var(--bleu);
	letter-spacing: -0.02em;
	font-weight: 500;
	line-height: 1.15;
	margin: 0;
}

/* Grille 4 colonnes (cards) */
.smc-crosssell__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}

/* Card = lien <a> : sélecteur renforcé (a.smc-crosssell__card) pour vaincre
   la cascade Elementor/Hello qui applique ses styles globaux sur les <a>.
   Tous les états (link/visited/hover/focus) + text-decoration en !important. */
.smc-lp a.smc-crosssell__card,
.smc-lp a.smc-crosssell__card:link,
.smc-lp a.smc-crosssell__card:visited,
.smc-lp a.smc-crosssell__card:hover,
.smc-lp a.smc-crosssell__card:focus,
.smc-lp a.smc-crosssell__card:active {
	background: #FDFBF4 !important;
	border: 1.5px solid rgba(184, 147, 92, 0.55) !important;
	border-radius: 18px;
	padding: 32px 24px 24px;
	color: var(--encre) !important;
	text-decoration: none !important;
	box-shadow:
		0 2px 4px rgba(28, 46, 74, 0.06),
		0 12px 28px rgba(28, 46, 74, 0.14),
		inset 0 1px 0 rgba(255, 255, 255, 0.55) !important;
	display: flex;
	flex-direction: column;
	align-items: center !important;      /* centrage horizontal icône + contenu */
	text-align: center !important;       /* titre + description centrés */
	transition: all 0.4s cubic-bezier(.2,.7,.2,1);
	position: relative;
	overflow: hidden;
}
.smc-lp a.smc-crosssell__card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 4px;
	background: linear-gradient(90deg, var(--olive) 0%, var(--or) 100%);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.4s ease;
}
.smc-lp a.smc-crosssell__card:hover {
	transform: translateY(-6px);
	box-shadow:
		0 2px 4px rgba(28, 46, 74, 0.06),
		0 16px 36px rgba(28, 46, 74, 0.12) !important;
	border-color: var(--or) !important;
	background: var(--cream) !important;
}
.smc-lp a.smc-crosssell__card:hover::before { transform: scaleX(1); }

/* Descendants de la card — forcés contre l'héritage de couleur Elementor/theme parent.
   Le <h3>, <p>, <span> enfants d'un <a> héritent normalement de color:inherit,
   donc forcer les couleurs explicitement sur les éléments internes est crucial. */

/* Icône carrée 52×52 — contient un SVG inline 26px stroke currentColor.
   Couleur olive-deep au repos → cream au hover. Gradient peau→cream
   au repos → gradient olive au hover. */
.smc-lp a.smc-crosssell__card .smc-crosssell__icon {
	width: 52px;
	height: 52px;
	border-radius: 12px;
	background: linear-gradient(135deg, var(--peau) 0%, var(--cream-soft) 100%) !important;
	border: 1px solid var(--line);
	display: flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	margin-bottom: 20px;
	transition: all 0.35s ease;
	color: var(--olive-deep) !important;
	box-shadow: 0 2px 6px rgba(77, 94, 43, 0.08);
}
.smc-lp a.smc-crosssell__card .smc-crosssell__icon svg {
	width: 26px;
	height: 26px;
	stroke: currentColor;
	fill: none;
	transition: stroke 0.3s ease;
	display: block;
}
.smc-lp a.smc-crosssell__card:hover .smc-crosssell__icon {
	background: linear-gradient(135deg, var(--olive) 0%, var(--olive-deep) 100%) !important;
	border-color: var(--olive);
	transform: rotate(-3deg) scale(1.06);
	color: var(--cream) !important;
	box-shadow: 0 6px 14px rgba(77, 94, 43, 0.28);
}

/* Titre card — bleu Fraunces, JAMAIS rose (même via :visited hérité) */
.smc-lp a.smc-crosssell__card .smc-crosssell__card-title,
.smc-lp a.smc-crosssell__card:visited .smc-crosssell__card-title,
.smc-lp a.smc-crosssell__card:hover .smc-crosssell__card-title {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 500;
	color: var(--bleu) !important;
	line-height: 1.25;
	margin: 0 0 10px;
	letter-spacing: -0.01em;
	text-decoration: none !important;
}

/* Description card — gris soft Manrope */
.smc-lp a.smc-crosssell__card .smc-crosssell__card-desc,
.smc-lp a.smc-crosssell__card:visited .smc-crosssell__card-desc,
.smc-lp a.smc-crosssell__card:hover .smc-crosssell__card-desc {
	font-family: var(--font-body);
	font-size: 14.5px;
	line-height: 1.55;
	color: var(--soft) !important;
	margin: 0 0 20px;
	flex-grow: 1;
	text-decoration: none !important;
}

/* Bouton plein olive — vrai bouton, JAMAIS un lien stylé */
.smc-lp a.smc-crosssell__card .smc-crosssell__button,
.smc-lp a.smc-crosssell__card:visited .smc-crosssell__button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	background: var(--olive) !important;
	color: var(--cream) !important;
	padding: 12px 20px !important;
	border-radius: 10px !important;
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.02em;
	transition: all 0.3s ease;
	text-align: center;
	width: 100%;
	text-decoration: none !important;
	border: 0;
	margin-top: auto; /* pousse le bouton en bas, alignement horizontal parfait */
}
.smc-lp a.smc-crosssell__card .smc-crosssell__button::after {
	content: '→';
	font-size: 16px;
	line-height: 1;
	transition: transform 0.3s ease;
	color: var(--cream) !important;
}
.smc-lp a.smc-crosssell__card:hover .smc-crosssell__button {
	background: var(--bleu) !important;
	gap: 14px;
	color: var(--cream) !important;
}
.smc-lp a.smc-crosssell__card:hover .smc-crosssell__button::after {
	transform: translateX(4px);
}

@media (max-width: 960px) {
	.smc-crosssell__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 540px) {
	.smc-crosssell__grid { grid-template-columns: 1fr; }
	.smc-crosssell h2 { font-size: 32px; }
}

/* 6) LAYOUT ------------------------------------------------------------ */
/* Header & footer du site (Elementor Pro) : rendus nativement, aucune surcharge. */

/* Breadcrumb */
.smc-breadcrumb {
	background: var(--cream-soft);
	border-bottom: 1px solid var(--line);
	padding: .75rem 0;
	font-size: var(--fs-sm);
}

.smc-breadcrumb ol {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: .35rem .5rem;
	color: var(--soft);
}

.smc-breadcrumb li + li::before {
	content: '›';
	color: var(--or);
	margin-right: .5rem;
}

.smc-breadcrumb a { color: var(--olive); }
.smc-breadcrumb [aria-current] { color: var(--bleu); }

/* Hub grid */
.smc-hub__section-title {
	text-align: center;
	margin-bottom: 2rem;
	font-family: var(--font-serif);
	font-weight: 400;
}

.smc-hubgrid {
	display: grid;
	gap: var(--gap);
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}

.smc-hubgrid__card {
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	padding: 1.75rem 1.5rem;
	display: flex;
	flex-direction: column;
	gap: .6rem;
	transition: transform .15s ease, box-shadow .2s ease, border-color .15s ease;
	color: var(--bleu);
}

a.smc-hubgrid__card:hover {
	transform: translateY(-3px);
	box-shadow: var(--shadow-card);
	border-color: var(--or);
	text-decoration: none;
	color: var(--bleu);
}

.smc-hubgrid__card--soon {
	opacity: .6;
	cursor: default;
}

.smc-hubgrid__icon {
	font-size: 2rem;
	line-height: 1;
	margin-bottom: .25rem;
}

.smc-hubgrid__title {
	font-family: var(--font-title);
	font-size: var(--fs-lg);
	font-weight: 600;
	margin: 0;
	color: var(--bleu);
}

.smc-hubgrid__desc {
	margin: 0;
	color: var(--soft);
	font-size: var(--fs-sm);
	line-height: 1.55;
}

.smc-hubgrid__cta {
	color: var(--olive);
	font-weight: 600;
	font-size: var(--fs-sm);
	margin-top: auto;
	padding-top: .5rem;
}

.smc-hubgrid__badge {
	display: inline-block;
	align-self: flex-start;
	background: var(--peau);
	color: var(--bleu-soft);
	font-size: var(--fs-xs);
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	padding: .2rem .6rem;
	border-radius: 100px;
	margin-top: auto;
}

/* Tasbih */
.smc-tasbih {
	max-width: 520px;
	margin: -1.5rem auto 0;
	padding: 2.25rem 2rem 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	text-align: center;
	position: relative;
	z-index: 2;
}

.smc-tasbih__current {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	margin-bottom: 1.5rem;
}

.smc-tasbih__current-label {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 500;
}

.smc-tasbih__current-fr {
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	color: var(--bleu);
}

.smc-tasbih__current-ar {
	font-family: var(--font-arabic);
	font-size: 1.75rem;
	color: var(--or);
	line-height: 1.2;
}

.smc-tasbih__counter {
	display: inline-flex;
	align-items: baseline;
	gap: .5rem;
	margin-bottom: .75rem;
}

.smc-tasbih__count {
	font-family: var(--font-title);
	font-size: 4.5rem;
	font-weight: 500;
	color: var(--bleu);
	line-height: 1;
	letter-spacing: -0.02em;
}

.smc-tasbih__target {
	font-family: var(--font-body);
	font-size: var(--fs-lg);
	color: var(--soft);
}

.smc-tasbih__progress {
	height: 6px;
	background: var(--line);
	border-radius: 100px;
	overflow: hidden;
	margin-bottom: 1.75rem;
}

.smc-tasbih__progress-bar {
	display: block;
	height: 100%;
	width: 0%;
	background: var(--olive);
	transition: width .2s ease;
}

.smc-tasbih__tap {
	width: 100%;
	max-width: 320px;
	aspect-ratio: 1 / 1;
	margin: 0 auto 1.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--olive);
	color: var(--cream);
	border: 0;
	border-radius: 50%;
	font-family: var(--font-body);
	font-size: var(--fs-lg);
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	cursor: pointer;
	box-shadow: 0 8px 24px rgba(107, 127, 63, 0.3);
	transition: transform .08s ease, background .15s ease, box-shadow .15s ease;
	user-select: none;
	-webkit-tap-highlight-color: transparent;
}

.smc-tasbih__tap:active {
	transform: scale(0.97);
	background: var(--olive-deep);
	box-shadow: 0 4px 14px rgba(107, 127, 63, 0.4);
}

.smc-tasbih__tap.is-complete {
	background: var(--or);
	box-shadow: 0 0 0 12px rgba(184, 147, 92, 0.15);
}

.smc-tasbih__tap:focus-visible {
	outline: 3px solid var(--bleu);
	outline-offset: 4px;
}

.smc-tasbih__presets {
	display: flex;
	gap: .5rem;
	justify-content: center;
	margin-bottom: 1.5rem;
	flex-wrap: wrap;
}

.smc-tasbih__preset {
	min-width: 56px;
	padding: .6rem 1rem;
	background: var(--cream);
	border: 1.5px solid var(--line);
	color: var(--bleu);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: var(--fs-md);
	border-radius: var(--radius-sm);
	cursor: pointer;
	transition: all .15s ease;
}

.smc-tasbih__preset:hover {
	border-color: var(--olive);
	color: var(--olive);
}

.smc-tasbih__preset.is-active {
	background: var(--bleu);
	color: var(--cream);
	border-color: var(--bleu);
}

.smc-tasbih__meta {
	display: flex;
	justify-content: center;
	align-items: baseline;
	gap: .5rem;
	margin-bottom: 1.25rem;
	font-size: var(--fs-sm);
	color: var(--soft);
}

.smc-tasbih__total {
	color: var(--bleu);
	font-weight: 600;
	font-size: var(--fs-lg);
}

.smc-tasbih__actions {
	display: flex;
	gap: .75rem;
	justify-content: center;
	margin-bottom: 1.75rem;
	flex-wrap: wrap;
}

.smc-tasbih__reset-all {
	background: transparent;
	border: 0;
	color: var(--soft);
	font-size: var(--fs-xs);
	text-decoration: underline;
	cursor: pointer;
	padding: .4rem .8rem;
}

.smc-tasbih__reset-all:hover { color: var(--olive-deep); }

.smc-tasbih__dhikrs {
	border-top: 1px solid var(--line);
	padding-top: 1.5rem;
}

.smc-tasbih__dhikrs-label {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 500;
	margin-bottom: .75rem;
}

.smc-tasbih__dhikrs-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: .5rem;
}

.smc-tasbih__dhikr {
	padding: .75rem .5rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	cursor: pointer;
	display: flex;
	flex-direction: column;
	gap: .15rem;
	transition: all .15s ease;
	text-align: center;
}

.smc-tasbih__dhikr:hover {
	border-color: var(--olive);
}

.smc-tasbih__dhikr.is-active {
	background: var(--peau);
	border-color: var(--or);
}

.smc-tasbih__dhikr-fr {
	font-family: var(--font-body);
	font-size: var(--fs-sm);
	font-weight: 600;
	color: var(--bleu);
}

.smc-tasbih__dhikr-ar {
	font-family: var(--font-arabic);
	font-size: 1.05rem;
	color: var(--or);
	line-height: 1.1;
}

/* Qibla */
.smc-qibla {
	max-width: 560px;
	margin: -1.5rem auto 0;
	padding: 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	position: relative;
	z-index: 2;
}

.smc-qibla__controls {
	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
	align-items: center;
	justify-content: center;
	margin-bottom: 1.5rem;
}

.smc-qibla__or {
	font-size: var(--fs-sm);
	color: var(--soft);
	padding: 0 .25rem;
}

.smc-qibla__select-label {
	display: flex;
	flex-direction: column;
	gap: .25rem;
}

.smc-qibla__select-label-text {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 500;
}

.smc-qibla__error {
	background: rgba(160, 82, 45, 0.08);
	border: 1px solid rgba(160, 82, 45, 0.25);
	color: var(--terra-deep);
	padding: .75rem 1rem;
	border-radius: var(--radius-sm);
	font-size: var(--fs-sm);
	margin-bottom: 1.25rem;
	text-align: center;
}

.smc-qibla__compass {
	position: relative;
	width: 280px;
	height: 280px;
	margin: 1rem auto 1.5rem;
	border-radius: 50%;
	background: radial-gradient(circle at 50% 50%, var(--cream) 0%, var(--cream-soft) 65%, var(--peau) 100%);
	border: 2px solid var(--or);
	box-shadow: inset 0 0 0 6px var(--cream-soft), 0 8px 24px rgba(28, 46, 74, 0.1);
}

.smc-qibla__compass-ring {
	position: absolute;
	inset: 0;
}

.smc-qibla__cardinal {
	position: absolute;
	font-family: var(--font-title);
	font-weight: 600;
	font-size: var(--fs-md);
	color: var(--bleu);
}

.smc-qibla__cardinal--n { top: 10px;  left: 50%; transform: translateX(-50%); }
.smc-qibla__cardinal--e { right: 14px; top: 50%; transform: translateY(-50%); }
.smc-qibla__cardinal--s { bottom: 10px;left: 50%; transform: translateX(-50%); }
.smc-qibla__cardinal--w { left: 14px;  top: 50%; transform: translateY(-50%); }

.smc-qibla__arrow {
	position: absolute;
	inset: 0;
	display: flex;
	justify-content: center;
	align-items: flex-start;
	padding-top: 28px;
	transition: transform .3s cubic-bezier(0.2, 0.7, 0.3, 1);
	transform-origin: 50% 50%;
	pointer-events: none;
}

.smc-qibla__arrow-tip {
	font-size: 2.5rem;
	line-height: 1;
	filter: drop-shadow(0 2px 4px rgba(0,0,0,.15));
}

.smc-qibla__center {
	position: absolute;
	width: 14px;
	height: 14px;
	background: var(--bleu);
	border-radius: 50%;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	box-shadow: 0 0 0 4px var(--cream-soft);
}

.smc-qibla__live-hint {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-align: center;
	margin: 0 auto 1.25rem;
	max-width: 360px;
	line-height: 1.5;
	font-style: italic;
}

.smc-qibla__stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(130px, 1fr));
	gap: 1rem;
	margin: 0;
	padding: 1rem;
	background: var(--cream-soft);
	border-radius: var(--radius-md);
	border: 1px solid var(--line);
}

.smc-qibla__stats > div {
	display: flex;
	flex-direction: column;
	gap: .15rem;
	text-align: center;
}

.smc-qibla__stats dt {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 500;
	margin: 0;
}

.smc-qibla__stats dd {
	margin: 0;
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	color: var(--bleu);
}

.smc-qibla__stats dd strong {
	font-weight: 600;
	color: var(--olive);
}

/* Calculators — shared layout (Mahr, Zakat, Héritage) */
.smc-calc {
	max-width: 760px;
	margin: -1.5rem auto 0;
	padding: 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	position: relative;
	z-index: 2;
}

.smc-calc__title {
	text-align: center;
	font-family: var(--font-serif);
	margin: 0 0 1.25rem;
	font-size: var(--fs-xl);
}

.smc-calc__note {
	text-align: center;
	color: var(--soft);
	font-size: var(--fs-sm);
	margin: 0 0 1.5rem;
}

.smc-calc__section {
	border-top: 1px solid var(--line);
	padding-top: 1.25rem;
	margin-top: 1.25rem;
}

.smc-calc__section:first-of-type { border-top: 0; padding-top: 0; margin-top: 0; }

.smc-calc__section-title {
	font-family: var(--font-title);
	font-size: var(--fs-md);
	color: var(--bleu);
	margin: 0 0 .75rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
}

.smc-calc__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 1rem;
}

.smc-calc__field {
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.smc-calc__field--span { grid-column: 1 / -1; }

.smc-calc__label {
	font-size: var(--fs-sm);
	font-weight: 600;
	color: var(--bleu);
}

.smc-calc__help {
	font-size: var(--fs-xs);
	color: var(--soft);
	margin-top: .25rem;
	line-height: 1.4;
}

.smc-calc__radios {
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.smc-calc__radios label {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: var(--fs-sm);
}

.smc-calc__run {
	width: 100%;
	margin-top: 1.5rem;
}

.smc-calc__result {
	margin-top: 1.75rem;
	padding: 1.5rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
}

.smc-calc__result-label {
	font-size: var(--fs-sm);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 500;
	text-align: center;
	margin: 0 0 1rem;
}

.smc-calc__result-values {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	text-align: center;
	margin-bottom: 1rem;
}

.smc-calc__result-values > div {
	padding: .75rem;
	background: var(--cream-soft);
	border-radius: var(--radius-sm);
	border: 1px solid var(--line);
	display: flex;
	flex-direction: column;
	gap: .25rem;
}

.smc-calc__result-values .smc-calc__result-central {
	background: var(--peau);
	border-color: var(--or);
}

.smc-calc__result-tag {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 500;
}

.smc-calc__result-values strong {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	color: var(--bleu);
}

.smc-calc__result-lines {
	display: flex;
	flex-direction: column;
	gap: .4rem;
	margin-bottom: 1rem;
}

.smc-calc__result-lines > div {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	padding: .4rem 0;
	border-bottom: 1px dashed var(--line);
	color: var(--bleu-soft);
	font-size: var(--fs-sm);
}

.smc-calc__result-lines strong { color: var(--bleu); font-family: var(--font-serif); font-size: var(--fs-md); }

/* Override via spécificité accrue (ancien !important retiré). */
.smc-calc__result-lines > div.smc-calc__result-net {
	border-bottom: 0;
	padding-top: .75rem;
	border-top: 1px solid var(--line);
	font-weight: 600;
	color: var(--bleu);
}

.smc-calc__status {
	text-align: center;
	font-size: var(--fs-sm);
	padding: .75rem 1rem;
	border-radius: var(--radius-sm);
	margin-bottom: 1rem;
}

.smc-calc__status--due {
	background: rgba(107, 127, 63, 0.12);
	color: var(--olive-deep);
	border: 1px solid rgba(107, 127, 63, 0.25);
}

.smc-calc__status--not-due {
	background: rgba(28, 46, 74, 0.06);
	color: var(--bleu-soft);
	border: 1px solid var(--line);
}

.smc-calc__status--warning {
	background: rgba(184, 147, 92, 0.12);
	color: var(--olive-deep);
	border: 1px solid var(--or);
}

.smc-calc__zakat-amount {
	text-align: center;
	padding: 1rem;
	background: var(--cream-soft);
	border: 2px solid var(--olive);
	border-radius: var(--radius-md);
	display: flex;
	flex-direction: column;
	gap: .25rem;
	margin-bottom: 1rem;
}

.smc-calc__zakat-label {
	font-size: var(--fs-sm);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.smc-calc__zakat-amount strong {
	font-family: var(--font-title);
	font-size: 2rem;
	color: var(--olive-deep);
}

.smc-calc__breakdown {
	margin: 1rem 0;
	padding: .75rem 1rem;
	background: var(--cream-soft);
	border-radius: var(--radius-sm);
	border: 1px solid var(--line);
	font-size: var(--fs-sm);
}

.smc-calc__breakdown summary {
	cursor: pointer;
	color: var(--olive);
	font-weight: 600;
}

.smc-calc__breakdown dl {
	margin: .75rem 0 0;
	display: flex;
	flex-direction: column;
	gap: .3rem;
}

.smc-calc__breakdown dl > div {
	display: flex;
	justify-content: space-between;
	padding: .2rem 0;
	border-bottom: 1px dashed var(--line);
}

.smc-calc__breakdown dt { color: var(--bleu-soft); margin: 0; }
.smc-calc__breakdown dd { color: var(--bleu); margin: 0; font-weight: 500; }

.smc-calc__disclaimer {
	font-size: var(--fs-xs);
	color: var(--soft);
	line-height: 1.5;
	margin: 1rem 0 0;
}

.smc-calc__result-mode,
.smc-calc__result-advice {
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	margin: .75rem 0;
	line-height: 1.55;
}

/* Heritage list */
.smc-heritage__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: .75rem;
}

.smc-heritage__list li {
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-left: 3px solid var(--olive);
	border-radius: var(--radius-sm);
	padding: .85rem 1rem;
	display: flex;
	flex-direction: column;
	gap: .3rem;
}

.smc-heritage__role {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: .5rem;
	flex-wrap: wrap;
}

.smc-heritage__type {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.smc-heritage__amount {
	font-family: var(--font-serif);
	color: var(--bleu);
}

.smc-heritage__amount span {
	color: var(--or);
	padding: .1rem .4rem;
	background: rgba(184, 147, 92, 0.12);
	border-radius: 4px;
	font-size: var(--fs-sm);
	margin-right: .25rem;
}

.smc-heritage__perhead {
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
}

.smc-heritage__rule {
	font-size: var(--fs-xs);
	color: var(--soft);
	line-height: 1.5;
	padding-top: .25rem;
	border-top: 1px dashed var(--line);
}

/* Additifs */
.smc-additifs {
	max-width: 900px;
	margin: -1.5rem auto 0;
	padding: 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	position: relative;
	z-index: 2;
}

.smc-additifs__controls {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.smc-additifs__search {
	width: 100%;
}

.smc-additifs__filters {
	border: 0;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 1.25rem;
	flex-wrap: wrap;
}

.smc-additifs__filters label {
	display: flex;
	align-items: center;
	gap: .4rem;
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	cursor: pointer;
}

.smc-additifs__count {
	text-align: center;
	font-size: var(--fs-sm);
	color: var(--soft);
	margin: 0 0 1rem;
}

.smc-additifs__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
	gap: .85rem;
}

.smc-additifs__item {
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	padding: .85rem 1rem;
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.smc-additifs__item--halal    { border-left: 4px solid var(--olive); }
.smc-additifs__item--doubtful { border-left: 4px solid var(--or); }
.smc-additifs__item--haram    { border-left: 4px solid var(--terra); background: rgba(160, 82, 45, 0.05); }

.smc-additifs__item header {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: .5rem;
}

.smc-additifs__code {
	font-family: var(--font-title);
	font-weight: 700;
	color: var(--bleu);
	font-size: var(--fs-md);
}

.smc-additifs__status {
	font-size: var(--fs-xs);
	padding: .15rem .55rem;
	border-radius: 100px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
}

.smc-additifs__item--halal    .smc-additifs__status { background: rgba(107, 127, 63, 0.15); color: var(--olive-deep); }
.smc-additifs__item--doubtful .smc-additifs__status { background: rgba(184, 147, 92, 0.18); color: var(--or); }
.smc-additifs__item--haram    .smc-additifs__status { background: rgba(160, 82, 45, 0.15); color: var(--terra-deep); }

.smc-additifs__name {
	font-family: var(--font-serif);
	font-size: var(--fs-md);
	color: var(--bleu);
	margin: 0;
	font-weight: 400;
}

.smc-additifs__origin,
.smc-additifs__use {
	font-size: var(--fs-xs);
	color: var(--bleu-soft);
	margin: 0;
	line-height: 1.5;
}

.smc-additifs__empty {
	grid-column: 1 / -1;
	text-align: center;
	padding: 2rem;
	color: var(--soft);
	font-style: italic;
}

.smc-visually-hidden {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0);
	white-space: nowrap; border: 0;
}

/* Date Hijri aujourd'hui */
.smc-hijri-today {
	max-width: 640px;
	margin: -1.5rem auto 0;
	padding: 2.5rem 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	text-align: center;
	position: relative;
	z-index: 2;
}

.smc-hijri-today__big { margin-bottom: 1.25rem; }

.smc-hijri-today__tag {
	display: inline-block;
	font-size: var(--fs-xs);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 600;
	padding: .25rem .75rem;
	border-radius: 100px;
	background: var(--peau);
	color: var(--bleu);
	margin-bottom: .75rem;
}

.smc-hijri-today__tag--sacred { background: var(--or); color: var(--cream); }

.smc-hijri-today__label {
	font-size: var(--fs-sm);
	color: var(--soft);
	margin: 0;
	text-transform: uppercase;
	letter-spacing: 0.1em;
}

.smc-hijri-today__date {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	margin: .5rem 0;
}

.smc-hijri-today__day-num {
	font-family: var(--font-title);
	font-size: 4.5rem;
	font-weight: 500;
	color: var(--bleu);
	line-height: 1;
}

.smc-hijri-today__month-name {
	font-family: var(--font-serif);
	font-size: var(--fs-2xl);
	color: var(--olive);
}

.smc-hijri-today__year {
	font-family: var(--font-body);
	font-size: var(--fs-lg);
	color: var(--soft);
}

.smc-hijri-today__ar {
	font-family: var(--font-arabic);
	font-size: 2rem;
	color: var(--or);
	margin: .5rem 0;
	direction: rtl;
}

.smc-hijri-today__greg {
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	margin: .5rem 0 1.5rem;
	text-transform: capitalize;
}

.smc-hijri-today__context {
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	padding: 1rem 1.25rem;
	margin: 1.5rem 0;
	line-height: 1.55;
}

.smc-hijri-today__next-days {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: .6rem;
}

.smc-hijri-today__day {
	display: grid;
	grid-template-columns: 1.5fr 1.2fr 1fr auto;
	gap: 1rem;
	align-items: center;
	padding: .85rem 1rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	font-size: var(--fs-sm);
}

.smc-hijri-today__day-greg { color: var(--bleu-soft); text-transform: capitalize; }
.smc-hijri-today__day-hijri strong { color: var(--bleu); }
.smc-hijri-today__day-ar { font-family: var(--font-arabic); color: var(--or); direction: rtl; }

.smc-hijri-today__badge {
	font-size: var(--fs-xs);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	padding: .15rem .55rem;
	border-radius: 100px;
	background: rgba(107, 127, 63, 0.12);
	color: var(--olive-deep);
}

.smc-hijri-today__badge--white {
	background: rgba(184, 147, 92, 0.18);
	color: var(--or);
}

/* Countdown Ramadan */
.smc-countdown {
	max-width: 700px;
	margin: -1.5rem auto 0;
	padding: 2.5rem 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	text-align: center;
	position: relative;
	z-index: 2;
}

.smc-countdown__label {
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	color: var(--bleu);
	margin: 0 0 1.5rem;
}

.smc-countdown__grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: .75rem;
	margin-bottom: 1.5rem;
}

.smc-countdown__unit {
	background: var(--cream);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	padding: 1.25rem .5rem;
	display: flex;
	flex-direction: column;
	gap: .25rem;
}

.smc-countdown__num {
	font-family: var(--font-title);
	font-size: 3rem;
	font-weight: 500;
	color: var(--olive);
	line-height: 1;
	letter-spacing: -0.02em;
	font-variant-numeric: tabular-nums;
}

.smc-countdown__label-sm {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.smc-countdown__target {
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	margin: 0 0 1.25rem;
	line-height: 1.55;
}

/* Calendrier événements */
.smc-calendar {
	max-width: 900px;
	margin: -1.5rem auto 0;
	padding: 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	position: relative;
	z-index: 2;
}

.smc-calendar__next {
	background: linear-gradient(135deg, var(--peau) 0%, var(--cream-soft) 100%);
	border: 1px solid var(--or);
	border-radius: var(--radius-md);
	padding: 1.25rem 1.5rem;
	margin-bottom: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: .25rem;
}

.smc-calendar__next:empty { display: none; }

.smc-calendar__next-label {
	font-size: var(--fs-xs);
	color: var(--olive-deep);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
}

.smc-calendar__next strong {
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	color: var(--bleu);
}

.smc-calendar__next-date {
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
}

.smc-calendar__filters {
	border: 0;
	padding: 0;
	margin: 0 0 1.5rem;
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
}

.smc-calendar__filters legend {
	font-size: var(--fs-sm);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	margin-right: 1rem;
}

.smc-calendar__filters label {
	display: flex;
	gap: .4rem;
	align-items: center;
	font-size: var(--fs-sm);
	color: var(--bleu);
	cursor: pointer;
}

.smc-calendar__year {
	font-family: var(--font-title);
	font-size: var(--fs-xl);
	color: var(--bleu);
	margin: 2rem 0 1rem;
	padding-bottom: .5rem;
	border-bottom: 2px solid var(--or);
}

.smc-calendar__year-block {
	display: grid;
	gap: .75rem;
}

.smc-calendar__event {
	display: grid;
	grid-template-columns: 80px 1fr;
	gap: 1rem;
	padding: 1rem 1.25rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
}

.smc-calendar__event--major { border-left: 4px solid var(--olive); }
.smc-calendar__event--minor { border-left: 4px solid var(--or); }
.smc-calendar__event.is-past { opacity: .5; }

.smc-calendar__event-date {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	background: var(--cream-soft);
	border-radius: var(--radius-sm);
	padding: .5rem;
	border: 1px solid var(--line);
}

.smc-calendar__event-day {
	font-family: var(--font-title);
	font-size: 1.75rem;
	font-weight: 600;
	color: var(--bleu);
	line-height: 1;
}

.smc-calendar__event-month {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.smc-calendar__event-body h4 {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	color: var(--bleu);
	margin: 0 0 .25rem;
}

.smc-calendar__event-hijri {
	font-size: var(--fs-xs);
	color: var(--or);
	margin: 0 0 .35rem;
	text-transform: capitalize;
}

.smc-calendar__event-desc {
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	margin: 0 0 .5rem;
	line-height: 1.55;
}

.smc-calendar__event-ics {
	font-size: var(--fs-xs);
	font-weight: 600;
	color: var(--olive);
	text-decoration: none;
}

.smc-calendar__event-ics:hover { color: var(--olive-deep); }

/* Prénoms — filtres enrichis + actions + highlight */
.smc-prenoms__filters-legend {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	padding: 0;
	margin-bottom: .35rem;
}

.smc-prenoms__actions {
	display: flex;
	gap: .75rem;
	flex-wrap: wrap;
}

.smc-prenoms__highlight-inner {
	background: linear-gradient(135deg, var(--peau) 0%, var(--cream-soft) 100%);
	border: 1px solid var(--or);
	border-radius: var(--radius-md);
	padding: 1.25rem;
	margin: 1rem 0 1.5rem;
}

.smc-prenoms__highlight-label {
	font-size: var(--fs-xs);
	color: var(--olive-deep);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	margin: 0 0 .75rem;
}

/* Calendrier Ramadan */
.smc-cal-ram {
	max-width: 820px;
	margin: -1.5rem auto 0;
	padding: 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	position: relative;
	z-index: 2;
}

.smc-cal-ram__controls {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	align-items: center;
	margin-bottom: 1rem;
}

.smc-cal-ram__city-label {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	flex: 1;
	min-width: 200px;
}

.smc-cal-ram__city-label span { font-size: var(--fs-xs); color: var(--soft); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; }

.smc-cal-ram__city-hint {
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	margin: 0 0 1.25rem;
	text-align: center;
}

.smc-cal-ram__table {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--fs-sm);
	background: var(--cream-soft);
	border-radius: var(--radius-md);
	overflow: hidden;
}

.smc-cal-ram__table th,
.smc-cal-ram__table td {
	padding: .55rem .6rem;
	border-bottom: 1px solid var(--line);
	text-align: center;
	vertical-align: middle;
}

.smc-cal-ram__table th {
	background: var(--bleu);
	color: var(--cream);
	font-family: var(--font-title);
	font-size: var(--fs-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
	font-weight: 600;
}
.smc-cal-ram__table th small { font-size: 0.7rem; font-weight: 400; opacity: .7; }
.smc-cal-ram__table tr.is-friday { background: rgba(184, 147, 92, 0.1); font-weight: 600; }
.smc-cal-ram__day-num { font-family: var(--font-title); font-weight: 600; color: var(--olive); font-size: var(--fs-md); }
.smc-cal-ram__sehri, .smc-cal-ram__iftar, .smc-cal-ram__tarawih {
	font-variant-numeric: tabular-nums;
	font-family: var(--font-title);
	font-weight: 500;
	color: var(--bleu);
}

@media print {
	body * { visibility: hidden; }
	.smc-cal-ram, .smc-cal-ram * { visibility: visible; }
	.smc-cal-ram { position: absolute; left: 0; top: 0; box-shadow: none; border: 0; padding: 1rem; }
	.smc-cal-ram__controls { display: none; }
}

/* Cours or & argent */
.smc-metals {
	max-width: 820px;
	margin: -1.5rem auto 0;
	padding: 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	position: relative;
	z-index: 2;
}

.smc-metals__grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 1rem;
	margin-bottom: 1.5rem;
}

.smc-metals__card {
	padding: 1.25rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	display: flex;
	flex-direction: column;
	gap: .25rem;
	text-align: center;
}

.smc-metals__card--gold { border-left: 4px solid var(--or); }
.smc-metals__card--silver { border-left: 4px solid var(--soft); }

.smc-metals__card-label {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
}

.smc-metals__card strong {
	font-family: var(--font-title);
	font-size: 1.75rem;
	color: var(--bleu);
	font-variant-numeric: tabular-nums;
}

.smc-metals__card-unit { font-size: var(--fs-xs); color: var(--soft); }

.smc-metals__nisab {
	padding: 1.25rem;
	background: var(--peau);
	border: 1px solid var(--or);
	border-radius: var(--radius-md);
	margin-bottom: 1rem;
}

.smc-metals__nisab h3 {
	margin: 0 0 .75rem;
	font-family: var(--font-title);
	color: var(--bleu);
	font-size: var(--fs-md);
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

.smc-metals__nisab dl {
	margin: 0;
	display: grid;
	gap: .4rem;
}

.smc-metals__nisab dl > div {
	display: flex;
	justify-content: space-between;
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
}

.smc-metals__nisab dd { margin: 0; font-weight: 600; color: var(--bleu); }
.smc-metals__nisab-ref { border-top: 1px solid var(--or); padding-top: .4rem; margin-top: .4rem; }
.smc-metals__nisab-ref dd { color: var(--olive-deep); }
.smc-metals__nisab-note { font-size: var(--fs-xs); color: var(--soft); margin: .5rem 0 0; font-style: italic; }

.smc-metals__source {
	display: inline-block;
	font-size: var(--fs-xs);
	padding: .2rem .75rem;
	border-radius: 100px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	background: var(--cream-soft);
	color: var(--soft);
}

.smc-metals__source.is-live { background: rgba(107, 127, 63, 0.15); color: var(--olive-deep); }
.smc-metals__source.is-fallback { background: rgba(184, 147, 92, 0.18); color: var(--or); }

.smc-metals__updated { font-size: var(--fs-xs); color: var(--soft); margin: .35rem 0 0; }

/* Convertisseur SAR-EUR */
.smc-fx {
	max-width: 640px;
	margin: -1.5rem auto 0;
	padding: 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	position: relative;
	z-index: 2;
}

.smc-fx__row {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	gap: .75rem;
	align-items: end;
	margin-bottom: 1rem;
}

.smc-fx__field {
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.smc-fx__label {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
}

.smc-fx__swap {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 2px solid var(--olive);
	background: var(--cream-soft);
	color: var(--olive);
	font-size: 1.5rem;
	font-weight: 600;
	cursor: pointer;
	transition: background .15s ease, color .15s ease;
}

.smc-fx__swap:hover { background: var(--olive); color: var(--cream); }

.smc-fx__rate {
	text-align: center;
	font-family: var(--font-title);
	font-size: var(--fs-md);
	color: var(--bleu);
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	padding: .75rem;
	margin: 0 0 1rem;
}

.smc-fx__source {
	display: inline-block;
	font-size: var(--fs-xs);
	padding: .2rem .75rem;
	border-radius: 100px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	background: var(--cream-soft);
	color: var(--soft);
}

.smc-fx__source.is-live { background: rgba(107, 127, 63, 0.15); color: var(--olive-deep); }
.smc-fx__source.is-fallback { background: rgba(184, 147, 92, 0.18); color: var(--or); }

.smc-fx__updated { font-size: var(--fs-xs); color: var(--soft); margin: .35rem 0 0; }

/* Bloc @media (max-width: 640px) fusionné : rassemble tous les overrides mobile
   widgets + calc grids dans un seul bloc. (Il y en avait 2 auparavant, fusionnés.) */
@media (max-width: 640px) {
	.smc-calc__grid { grid-template-columns: 1fr; }
	.smc-calc__result-values { grid-template-columns: 1fr; }
	.smc-countdown__grid { grid-template-columns: repeat(2, 1fr); }
	.smc-countdown__num { font-size: 2.25rem; }
	.smc-hijri-today__day { grid-template-columns: 1fr; gap: .35rem; }
	.smc-calendar__event { grid-template-columns: 60px 1fr; }
	.smc-fx__row { grid-template-columns: 1fr; }
	.smc-fx__swap { width: 100%; height: 44px; border-radius: var(--radius-sm); }
	.smc-cal-ram__table { font-size: var(--fs-xs); }
	.smc-cal-ram__table th, .smc-cal-ram__table td { padding: .4rem .3rem; }
}

/* Prénoms — ré-utilise le pattern additifs avec couleurs distinctives */
.smc-prenoms {
	max-width: 900px;
	margin: -1.5rem auto 0;
	padding: 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	position: relative;
	z-index: 2;
}

.smc-prenoms__controls {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	margin-bottom: 1.25rem;
}

.smc-prenoms__filters {
	border: 0;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 1.25rem;
	flex-wrap: wrap;
}

.smc-prenoms__filters label {
	display: flex;
	align-items: center;
	gap: .4rem;
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	cursor: pointer;
}

.smc-prenoms__count {
	text-align: center;
	font-size: var(--fs-sm);
	color: var(--soft);
	margin: 0 0 1rem;
}

.smc-prenoms__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: .85rem;
}

.smc-prenoms__item {
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	padding: 1rem 1.1rem;
	display: flex;
	flex-direction: column;
	gap: .25rem;
}

.smc-prenoms__item--garcon { border-left: 4px solid var(--bleu); }
.smc-prenoms__item--fille  { border-left: 4px solid var(--or); }

.smc-prenoms__item header {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-size: var(--fs-xs);
}

.smc-prenoms__icon { font-size: 1.1rem; }

.smc-prenoms__gender {
	font-size: var(--fs-xs);
	padding: .1rem .55rem;
	border-radius: 100px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	background: var(--peau);
	color: var(--bleu);
}

.smc-prenoms__name {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	color: var(--bleu);
	margin: .1rem 0 0;
	font-weight: 400;
}

.smc-prenoms__ar {
	font-family: var(--font-arabic);
	font-size: 1.5rem;
	color: var(--or);
	margin: 0;
	line-height: 1.2;
}

.smc-prenoms__meaning {
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	margin: .25rem 0 0;
	line-height: 1.5;
}

.smc-prenoms__origin {
	font-size: var(--fs-xs);
	color: var(--soft);
	margin: .25rem 0 0;
}

.smc-prenoms__origin span {
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
	margin-right: .4rem;
}

.smc-prenoms__empty {
	grid-column: 1 / -1;
	text-align: center;
	padding: 2rem;
	color: var(--soft);
	font-style: italic;
}

/* ============================================================
   7) LAYOUT GLOBAL LP — UNE SEULE SOURCE DE VÉRITÉ
   Hero peau · sections alternance auto · trait doré H2 · cross-sell
   ============================================================ */

.smc-lp-main > .smc-hero {
	background: var(--peau);
	padding: 5rem 0 3rem;
	text-align: center;
}

.smc-lp-main > .smc-hero h1 {
	max-width: 720px;
	margin-left: auto;
	margin-right: auto;
}

.smc-lp-main > .smc-hero .smc-hero__subtitle {
	max-width: 640px;
	margin: .5rem auto 2rem;
	font-family: var(--font-title);
	font-style: italic;
	font-weight: 400;
	font-size: var(--fs-xl);
	color: var(--olive-deep);
	line-height: 1.45;
}

.smc-lp-main > .smc-hero .smc-hero__intro {
	max-width: 680px;
	margin: 0 auto 2rem;
	text-align: left;
	color: var(--bleu-soft);
	font-family: var(--font-body);
	font-size: var(--fs-md);
	line-height: 1.75;
}

.smc-lp-main > .smc-hero .smc-hero__intro p { margin: 0 0 1em; }
.smc-lp-main > .smc-hero .smc-hero__intro p:last-child { margin-bottom: 0; }

.smc-lp-main > .smc-hero .smc-hero__today {
	display: inline-block;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	padding: .85rem 1.75rem;
	border-radius: var(--radius-lg);
	font-size: var(--fs-sm);
	color: var(--bleu);
	box-shadow: var(--shadow-soft);
}

.smc-lp-main > .smc-hero .smc-hero__today-hijri { color: var(--olive); }
.smc-lp-main > .smc-hero .smc-hero__today .smc-arabic { margin-left: .35rem; }

.smc-tool {
	max-width: 720px;
	margin: -1.5rem auto 0;
	padding: 2.25rem 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-card);
	position: relative;
	z-index: 2;
}

.smc-tool__title {
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	margin-bottom: 1.25rem;
	text-align: center;
}

.smc-tool__direction {
	display: flex;
	background: var(--cream);
	border-radius: var(--radius-sm);
	padding: 4px;
	margin-bottom: 1.5rem;
	border: 1px solid var(--line);
}

.smc-tool__direction label {
	flex: 1;
	padding: .65rem .75rem;
	text-align: center;
	cursor: pointer;
	font-weight: 600;
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	border-radius: 4px;
	transition: background .15s ease, color .15s ease;
}

.smc-tool__direction input[type="radio"] { display: none; }
.smc-tool__direction input[type="radio"]:checked + span {
	background: var(--bleu);
	color: var(--cream);
	display: block;
	padding: .65rem .75rem;
	border-radius: 4px;
	margin: -0.65rem -0.75rem;
}

.smc-tool__fields {
	display: grid;
	grid-template-columns: 1fr 1fr 1.2fr;
	gap: .75rem;
	margin-bottom: 1.25rem;
}

.smc-tool__convert {
	width: 100%;
	margin-bottom: 1.25rem;
}

.smc-tool__result {
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	padding: 1.25rem 1.5rem;
	min-height: 64px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.smc-tool__result [data-smc-result] {
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	color: var(--bleu);
	margin: 0;
}

.smc-tool__result [data-smc-result-ar] {
	margin-top: .35rem;
	font-family: var(--font-arabic);
	font-size: 1.5rem;
	color: var(--or);
	direction: rtl;
}

.smc-tool__result [data-smc-result].is-error {
	font-family: var(--font-body);
	font-size: var(--fs-md);
	color: var(--terra-deep);
}

/* Section par défaut — toujours un fond explicite, jamais transparent.
   Padding réduit à 4.5rem pour plus de cohésion (était 6rem). */
.smc-lp-main > .smc-section {
	padding: 4.5rem 0;
	background: var(--cream);
}

/* Alternance automatique via nth-child. Hero est nth-child(1), smc-container
   (tool wrapper) est nth-child(2), donc le premier .smc-section de contenu
   se trouve nth-child(3) → odd → cream-soft. Alternance propre sans toucher
   aux templates. */
.smc-lp-main > .smc-section:nth-child(odd) {
	background: var(--cream-soft);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.smc-lp-main > .smc-section:nth-child(even) {
	background: var(--cream);
}

/* Classes manuelles d'override (--alt force cream-soft, --peau force peau) */
.smc-lp-main > .smc-section.smc-section--alt {
	background: var(--cream-soft);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

.smc-lp-main > .smc-section.smc-section--peau {
	background: var(--peau);
	border-top: 1px solid var(--line);
	border-bottom: 1px solid var(--line);
}

/* Ornement arabe ٭ ٭ ٭ avant la dernière section de contenu (typiquement la FAQ).
   Positionnement : nth-last-child(2) = l'avant-dernier enfant de <main>
   (la crosssell-section étant last-child). Ajoute de la respiration visuelle
   à un point charnière, sans toucher les templates. */
.smc-lp-main > .smc-section:nth-last-child(2)::before {
	content: '٭ ٭ ٭';
	display: block;
	text-align: center;
	color: var(--or);
	letter-spacing: .5em;
	opacity: .7;
	font-size: 1.25rem;
	margin: -1.5rem 0 2.5rem;
}

.smc-lp-main > .smc-crosssell-section {
	padding: 4.5rem 0;
	/* Fond --cream (plus foncé) pour que les cards cream-soft/blanc cassé
	   ressortent visuellement avec leur bordure or + ombre. */
	background: var(--cream);
	border-top: 1px solid var(--line);
	text-align: center;
}

/* Prose : largeur lisible, Manrope body, respirations renforcées v2026.
   Titres en bleu --bleu, corps en --encre (gris-bleu sombre). */
.smc-lp .smc-prose {
	max-width: 720px;
	margin: 0 auto;
	color: var(--encre);
	font-family: var(--font-body);
	font-size: 16.5px;
	line-height: 1.7;
}

.smc-lp .smc-prose p {
	margin: 0 0 1.5rem;
	line-height: 1.7;
}
.smc-lp .smc-prose p:last-child { margin-bottom: 0; }
.smc-lp .smc-prose p strong { color: var(--bleu); font-weight: 700; }
.smc-lp .smc-prose p a { color: var(--olive-deep); text-decoration: underline; text-decoration-color: rgba(107,127,63,0.3); text-underline-offset: 3px; }
.smc-lp .smc-prose p a:hover { text-decoration-color: var(--olive); }

/* H2 signature — refactoring v2026.
   Serif display, trait or en dégradé, pas d'ornement ◆ (trop chargé).
   Visible dans la maquette 2 (encadrés éditoriaux). */
.smc-lp .smc-prose h2 {
	font-family: var(--font-display);
	font-size: 32px;
	color: var(--bleu);
	font-weight: 500;
	letter-spacing: -0.015em;
	line-height: 1.2;
	position: relative;
	padding-bottom: 14px;
	margin: 60px 0 12px;
}

.smc-lp .smc-prose h2:first-child { margin-top: 0; }

.smc-lp .smc-prose h2::after {
	content: '';
	display: block;
	position: absolute;
	bottom: 0;
	left: 0;
	width: 56px;
	height: 3px;
	background: linear-gradient(90deg, var(--or) 0%, var(--or-light) 100%);
	border-radius: 2px;
}

/* Variante "eyebrow italique" pour les H2 typo magazine (cross-sell, CTA voyage).
   Applique l'italique or sur un <em> interne et un surlignage or-light translucide. */
.smc-lp .smc-prose h2 em,
.smc-crosssell h2 em,
.smc-cta-voyage__title em {
	font-style: italic;
	font-weight: 400;
	color: var(--olive-deep);
	position: relative;
}
.smc-crosssell h2 em::after {
	content: '';
	position: absolute;
	left: 0;
	bottom: 2px;
	width: 100%;
	height: 8px;
	background: linear-gradient(180deg, transparent 60%, rgba(184, 147, 92, 0.25) 60%);
	z-index: -1;
}

/* H1 dans prose rares mais couvrons le cas — serif bleu. */
.smc-lp .smc-prose h1 {
	font-family: var(--font-display);
	font-size: 40px;
	color: var(--bleu);
	font-weight: 500;
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin: 0 0 20px;
}

/* H3 : serif bleu, plus léger que H2. */
.smc-lp .smc-prose h3 {
	font-family: var(--font-display);
	font-size: 22px;
	font-weight: 500;
	color: var(--bleu);
	letter-spacing: -0.01em;
	line-height: 1.3;
	margin: 2.25rem 0 .75rem;
}

/* Listes respirantes : line-height 1.7, air entre items */
.smc-lp .smc-prose ul,
.smc-lp .smc-prose ol {
	padding-left: 1.5rem;
	margin: 0 0 1.5rem;
}
.smc-lp .smc-prose ul li,
.smc-lp .smc-prose ol li {
	margin-bottom: .75rem;
	line-height: 1.7;
	padding-left: .25rem;
}
.smc-lp .smc-prose ul li:last-child,
.smc-lp .smc-prose ol li:last-child { margin-bottom: 0; }
.smc-lp .smc-prose ul li::marker { color: var(--olive); }
.smc-lp .smc-prose ol li::marker { color: var(--or); font-weight: 700; }
.smc-lp .smc-prose ul li strong,
.smc-lp .smc-prose ol li strong { color: var(--bleu); }

/* Steps list (.smc-steps) — variante numérotée premium pour la section "Comment utiliser".
   Espace renforcé entre les steps et avant l'outro. */
.smc-lp .smc-prose .smc-steps {
	counter-reset: step;
	list-style: none;
	padding-left: 0;
	margin: 2rem 0 2.5rem;
}
.smc-lp .smc-prose .smc-steps > li {
	position: relative;
	padding-left: 3rem;
	margin-bottom: 1.25rem;
	min-height: 2rem;
	line-height: 1.7;
}
.smc-lp .smc-prose .smc-steps > li::before {
	counter-increment: step;
	content: counter(step);
	position: absolute;
	left: 0;
	top: 0;
	width: 2rem;
	height: 2rem;
	border-radius: 50%;
	background: linear-gradient(135deg, var(--or) 0%, var(--or-light) 100%);
	color: var(--cream);
	font-family: var(--font-display);
	font-weight: 600;
	font-size: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: var(--shadow-sm);
}
.smc-lp .smc-prose .smc-steps > li::marker { content: none; }

/* Paragraphe outro de "Comment utiliser" (fallback sans tip-box) :
   espace marqué avant + léger encadré olive pâle pour le distinguer des steps. */
.smc-lp .smc-prose .smc-htu__outro {
	margin-top: 2rem;
	padding: 1.25rem 1.5rem;
	background: var(--cream-soft);
	border-left: 3px solid var(--olive);
	border-radius: var(--radius-sm);
	font-size: 15.5px;
	line-height: 1.65;
}

.smc-months-table {
	width: 100%;
	border-collapse: collapse;
	margin: 2rem 0;
	font-size: var(--fs-sm);
	background: var(--cream-soft);
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: var(--shadow-soft);
}

.smc-months-table th,
.smc-months-table td {
	padding: .75rem 1rem;
	text-align: left;
	border-bottom: 1px solid var(--line);
	vertical-align: top;
}

.smc-months-table th {
	background: var(--bleu);
	color: var(--cream);
	font-family: var(--font-title);
	font-weight: 600;
	font-size: var(--fs-xs);
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.smc-months-table tr:last-child td { border-bottom: 0; }

.smc-months-table .smc-arabic {
	display: block;
	font-size: 1.05rem;
	margin-top: 2px;
}

.smc-months-table .smc-sacred {
	background: rgba(184, 147, 92, 0.08);
}

.smc-months-table .smc-sacred td:first-child {
	border-left: 3px solid var(--or);
}

.smc-lp-main > .smc-crosssell-section h2 {
	margin-bottom: 2.5rem;
}

@media (max-width: 768px) {
	:root {
		--fs-3xl: 2.25rem;
		--fs-2xl: 1.75rem;
		--fs-xl: 1.4rem;
		--fs-lg: 1.125rem;
	}

	.smc-tool { padding: 1.75rem 1.25rem; margin: -1rem 1rem 0; }
	.smc-tool__fields { grid-template-columns: 1fr 1fr; }
	.smc-tool__fields > :last-child { grid-column: span 2; }
	.smc-lp-main > .smc-hero { padding: 3rem 0 2rem; }
	.smc-lp-main > .smc-section,
	.smc-lp-main > .smc-crosssell-section { padding: 3.25rem 0; }
	.smc-lp .smc-prose h2::after { width: 60px; height: 3px; }
	.smc-lp-main > .smc-section:nth-last-child(2)::before { margin-top: -0.5rem; margin-bottom: 1.75rem; }
	.smc-accordion { padding: 0 1rem; }
	.smc-months-table { font-size: var(--fs-xs); }
	.smc-months-table th,
	.smc-months-table td { padding: .6rem .5rem; }
}

/* ============================================================
   8) COMPOSANTS PREMIUM (pour les LP de niveau produit fini)
   ============================================================ */

/* Hero pattern décoratif — SVG en fond, opacité 5%, non-cliquable */
.smc-lp-main > .smc-hero { position: relative; overflow: hidden; }
.smc-hero__pattern {
	position: absolute;
	inset: 0;
	z-index: 0;
	pointer-events: none;
	color: var(--or);
	opacity: 0.05;
}
.smc-hero__pattern-svg {
	width: 100%;
	height: 100%;
	display: block;
}
.smc-lp-main > .smc-hero > .smc-container { position: relative; z-index: 1; }

/* Icône ornementale or en coin supérieur du hero (optionnelle) */
.smc-hero__icon {
	position: absolute;
	top: 1.5rem;
	right: 1.5rem;
	width: 48px;
	height: 48px;
	color: var(--or);
	opacity: 0.65;
	z-index: 1;
}

/* Bloc outil / calculateur PREMIUM — radius 24, shadow 8/32/8 */
.smc-lp .smc-calc--premium,
.smc-lp .smc-tool--premium {
	max-width: 760px;
	margin: -1.5rem auto 0;
	padding: 2.5rem 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: 24px;
	box-shadow: 0 8px 32px rgba(28, 46, 74, 0.08);
	position: relative;
	z-index: 2;
}

.smc-calc__header {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-bottom: 1.5rem;
	padding-bottom: 1.25rem;
	border-bottom: 1px solid var(--line);
}

.smc-calc__header-icon {
	font-size: 1.75rem;
	line-height: 1;
	color: var(--or);
	flex-shrink: 0;
}

.smc-calc__header-title {
	margin: 0;
	font-family: var(--font-serif);
	font-size: var(--fs-xl);
	color: var(--bleu);
	line-height: 1.2;
}

.smc-calc__header-subtitle {
	margin: .25rem 0 0;
	font-size: var(--fs-sm);
	color: var(--soft);
}

/* Inputs premium : padding généreux, focus smooth */
.smc-lp .smc-input {
	padding: 1rem;
	border-width: 1.5px;
	transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.smc-lp .smc-input:focus {
	border-color: var(--olive);
	box-shadow: 0 0 0 4px rgba(107, 127, 63, 0.12);
	background: var(--cream-soft);
	outline: 0;
}

/* Bouton submit premium avec lift au hover */
.smc-lp .smc-btn--submit {
	padding: 1rem 2.5rem;
	border-radius: 12px;
	font-size: var(--fs-md);
	transition: transform .15s ease, background .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.smc-lp .smc-btn--submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 20px rgba(107, 127, 63, 0.25);
}
.smc-lp .smc-btn--submit:active { transform: translateY(0); }

/* Zone résultat premium avec animation fadeIn */
.smc-calc__result {
	margin-top: 1.75rem;
	padding: 1.5rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-left: 4px solid var(--or);
	border-radius: var(--radius-md);
	animation: smcFadeIn .4s ease forwards;
}
@keyframes smcFadeIn {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* FAQ accordion : rotation fluide + → × (via pseudo-element) */
.smc-lp .smc-accordion__trigger::after {
	transition: transform .3s ease;
}
.smc-lp .smc-accordion__item[open] .smc-accordion__trigger::after {
	transform: rotate(45deg);
	content: '＋';
}

/* Tableaux stylisés premium (header bleu, alternance, bordures or) */
.smc-lp .smc-table {
	width: 100%;
	border-collapse: collapse;
	margin: 1.5rem 0;
	border-radius: var(--radius-md);
	overflow: hidden;
	box-shadow: var(--shadow-warm);
	background: var(--cream-soft);
	font-size: var(--fs-sm);
}
.smc-lp .smc-table thead {
	background: var(--bleu);
	color: var(--cream);
}
.smc-lp .smc-table th {
	padding: .9rem 1rem;
	text-align: left;
	font-family: var(--font-title);
	font-size: var(--fs-xs);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	border-bottom: 2px solid var(--or);
}
.smc-lp .smc-table td {
	padding: .85rem 1rem;
	border-bottom: 1px solid var(--line);
	color: var(--bleu-soft);
	vertical-align: top;
}
.smc-lp .smc-table tbody tr:nth-child(even) { background: var(--cream-soft); }
.smc-lp .smc-table tbody tr:last-child td { border-bottom: 0; }
.smc-lp .smc-table strong { color: var(--bleu); }

/* Quote-block éditorial v2026 (hadith / verset / parole de savant).
   Arabe RTL séparé + traduction italique + source uppercase olive.
   Guillemet décoratif géant or en haut-droite (opacity 0.15).
   Voir maquette 2. */
.smc-lp .smc-quote {
	margin: 40px 0;
	padding: 40px 48px;
	background: linear-gradient(135deg, var(--cream-soft) 0%, var(--peau) 100%);
	border-left: 5px solid var(--or);
	border-radius: var(--radius-xl);
	position: relative;
	overflow: hidden;
}
.smc-lp .smc-quote::before {
	content: '"';
	position: absolute;
	top: -20px;
	right: 24px;
	font-family: var(--font-display);
	font-size: 140px;
	line-height: 1;
	color: var(--or);
	opacity: 0.15;
	font-weight: 700;
	pointer-events: none;
}
.smc-lp .smc-quote__arabic {
	font-family: var(--font-arabic);
	font-size: 26px;
	line-height: 1.8;
	color: var(--bleu);
	text-align: right;
	margin: 0 0 16px;
	direction: rtl;
	position: relative;
	z-index: 1;
}
.smc-lp .smc-quote__translation {
	font-family: var(--font-display);
	font-size: 20px;
	line-height: 1.5;
	color: var(--bleu);
	font-style: italic;
	font-weight: 400;
	margin: 0 0 16px;
	position: relative;
	z-index: 1;
}
.smc-lp .smc-quote__source {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-family: var(--font-body);
	font-size: 13px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--olive-deep);
	font-weight: 600;
	font-style: normal;
	position: relative;
	z-index: 1;
}
.smc-lp .smc-quote__source::before {
	content: '';
	width: 24px;
	height: 1px;
	background: var(--olive);
}

@media (max-width: 640px) {
	.smc-lp .smc-quote { padding: 28px 24px; }
	.smc-lp .smc-quote__arabic { font-size: 22px; }
	.smc-lp .smc-quote__translation { font-size: 17px; }
}

/* Note : l'ancien bloc .smc-tip-box a été remplacé par .smc-tip
   (section composants premium plus haut dans ce fichier, v2026). */

/* Note : l'ancien bloc .smc-crosssell--premium et la règle séparée
   .smc-crosssell__icon (2.75rem) ont été remplacés par le composant
   .smc-crosssell unifié en v2026 (voir plus haut dans ce fichier). */

/* ============================================================
   CTA VOYAGE — v2026 (voir maquette 1)
   Bloc bleu nuit récurrent sur chaque LP entre "À quoi ça sert"
   et la pédagogie longue. Fond gradient bleu, pattern étoiles or,
   3 cards glassmorphism, icône gradient or, CTA texte or.
   ============================================================ */
.smc-cta-voyage {
	max-width: var(--container);
	margin: 80px auto;
	padding: 0 24px;
}
.smc-cta-voyage__inner {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, var(--bleu-deep) 0%, var(--bleu) 100%);
	border-radius: var(--radius-xl);
	padding: 64px 56px;
	box-shadow: var(--shadow-xl);
}
/* Pattern étoiles dorées, très discret, en haut-droite */
.smc-cta-voyage__inner::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -20%;
	width: 70%;
	height: 200%;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><defs><pattern id='star' x='0' y='0' width='20' height='20' patternUnits='userSpaceOnUse'><path d='M10,2 L12,8 L18,10 L12,12 L10,18 L8,12 L2,10 L8,8 Z' fill='%23B8935C' opacity='0.08'/></pattern></defs><rect width='100' height='100' fill='url(%23star)'/></svg>");
	background-size: 80px 80px;
	opacity: 0.6;
	pointer-events: none;
}

/* Header centré : eyebrow + titre + sous-titre */
.smc-lp .smc-cta-voyage__header {
	position: relative;
	z-index: 2;
	text-align: center !important;
	margin-bottom: 48px;
}
.smc-lp .smc-cta-voyage__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	font-family: var(--font-body);
	font-size: 12px;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color: var(--or-light) !important;
	font-weight: 600;
	margin-bottom: 20px;
}
.smc-lp .smc-cta-voyage__eyebrow::before,
.smc-lp .smc-cta-voyage__eyebrow::after {
	content: '';
	width: 32px;
	height: 1px;
	background: var(--or);
}
.smc-lp .smc-cta-voyage__title {
	font-family: var(--font-display) !important;
	font-size: 38px;
	line-height: 1.15;
	font-weight: 500;
	color: var(--cream) !important;
	letter-spacing: -0.02em;
	margin: 0 0 16px;
	text-align: center !important;
}
.smc-lp .smc-cta-voyage__title em {
	font-style: italic;
	color: var(--or-light) !important;
	font-weight: 400;
}
.smc-lp .smc-cta-voyage__subtitle {
	font-family: var(--font-body);
	font-size: 17px;
	color: rgba(247, 241, 227, 0.75) !important;
	line-height: 1.5;
	max-width: 580px;
	margin: 0 auto !important;
	text-align: center !important;
}

/* Grille 3 cards */
.smc-cta-voyage__grid {
	position: relative;
	z-index: 2;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
}

/* Card glassmorphism */
/* Card CTA voyage — spécificité renforcée sur <a> pour vaincre la cascade
   Elementor/Hello qui override la couleur des liens. */
.smc-lp a.smc-cta-voyage__card,
.smc-lp a.smc-cta-voyage__card:link,
.smc-lp a.smc-cta-voyage__card:visited,
.smc-lp a.smc-cta-voyage__card:hover,
.smc-lp a.smc-cta-voyage__card:focus,
.smc-lp a.smc-cta-voyage__card:active {
	background: rgba(247, 241, 227, 0.06);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	border: 1px solid rgba(184, 147, 92, 0.25);
	border-radius: var(--radius-lg);
	padding: 36px 28px 28px;
	text-decoration: none !important;
	color: var(--cream) !important;
	transition: all 0.4s cubic-bezier(.2,.7,.2,1);
	display: flex;
	flex-direction: column;
	align-items: center !important;      /* centrage horizontal (icône, titre, desc) */
	text-align: center !important;
	gap: 14px;
}

/* Respiration spécifique sous l'icône : !important pour vaincre tout override
   Elementor. Espace visible entre icône et titre (maquette 1). */
.smc-lp .smc-cta-voyage__card .smc-cta-voyage__icon,
.smc-cta-voyage__card .smc-cta-voyage__icon {
	margin-bottom: 28px !important;
	margin-top: -4px !important;
}
.smc-lp a.smc-cta-voyage__card:hover {
	background: rgba(184, 147, 92, 0.12);
	border-color: var(--or);
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
}

/* Icône carrée 56×56 gradient or→or-light */
.smc-cta-voyage__icon {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: linear-gradient(135deg, var(--or) 0%, var(--or-light) 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 28px;
	line-height: 1;
	box-shadow: 0 6px 16px rgba(184, 147, 92, 0.3);
}
.smc-lp .smc-cta-voyage__card-title {
	font-family: var(--font-display);
	font-size: 21px;
	font-weight: 500;
	color: var(--cream) !important;
	line-height: 1.2;
	margin: 0;
}
.smc-lp .smc-cta-voyage__card-desc {
	font-family: var(--font-body);
	font-size: 14.5px;
	color: rgba(247, 241, 227, 0.7) !important;
	line-height: 1.55;
	margin: 0;
	flex-grow: 1; /* occupe l'espace dispo → pousse le CTA en bas (alignement uniforme des 3 cards) */
}

/* CTA en texte uppercase or — margin-top: auto garantit alignement horizontal
   des 3 boutons, peu importe les hauteurs variables de .__card-desc. */
.smc-lp .smc-cta-voyage__card-arrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-family: var(--font-body);
	font-size: 13px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--or-light) !important;
	font-weight: 600;
	margin-top: auto;
	padding-top: 12px;
	transition: color 0.3s ease, gap 0.3s ease;
}
.smc-lp .smc-cta-voyage__card-arrow::after {
	content: '→';
	font-size: 16px;
	transition: transform 0.3s ease;
	color: inherit;
}
.smc-lp a.smc-cta-voyage__card:hover .smc-cta-voyage__card-arrow { color: var(--cream) !important; gap: 10px; }
.smc-lp a.smc-cta-voyage__card:hover .smc-cta-voyage__card-arrow::after { transform: translateX(6px); }

@media (max-width: 768px) {
	.smc-cta-voyage { margin: 56px auto; }
	.smc-cta-voyage__inner { padding: 48px 32px; border-radius: 20px; }
	.smc-cta-voyage__title { font-size: 28px; }
	.smc-cta-voyage__grid { grid-template-columns: 1fr; gap: 16px; }
}

/* Sticky CTA mobile (barre fixe bas de l'écran sur mobile uniquement) */
.smc-sticky-cta {
	display: none;
}
@media (max-width: 768px) {
	.smc-sticky-cta {
		display: flex;
		position: fixed;
		bottom: 0.75rem;
		left: 0.75rem;
		right: 0.75rem;
		z-index: 1000;
		justify-content: center;
		box-shadow: 0 8px 24px rgba(28, 46, 74, 0.25);
		padding: .85rem 1.25rem;
		border-radius: 14px;
		background: var(--olive);
		color: var(--cream);
		font-weight: 600;
		font-size: var(--fs-sm);
		text-decoration: none;
		transition: background .15s ease, transform .12s ease;
	}
	.smc-sticky-cta:hover { background: var(--olive-deep); color: var(--cream); }
	.smc-sticky-cta:active { transform: translateY(1px); }
}

/* Dictionnaire arabe : card entrée */
.smc-dict {
	max-width: 960px;
	margin: -1.5rem auto 0;
	padding: 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: 24px;
	box-shadow: 0 8px 32px rgba(28, 46, 74, 0.08);
	position: relative;
	z-index: 2;
}
.smc-dict__controls {
	display: grid;
	gap: 1rem;
	margin-bottom: 1.5rem;
}
.smc-dict__filters {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}
.smc-dict__filter {
	padding: .45rem 1rem;
	background: var(--cream-soft);
	border: 1.5px solid var(--line);
	border-radius: 100px;
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	cursor: pointer;
	transition: all .15s ease;
}
.smc-dict__filter.is-active {
	background: var(--bleu);
	color: var(--cream);
	border-color: var(--bleu);
}
.smc-dict__filter:hover:not(.is-active) {
	border-color: var(--olive);
	color: var(--olive);
}
.smc-dict__count {
	text-align: center;
	font-size: var(--fs-sm);
	color: var(--soft);
	margin: 0 0 1rem;
}
.smc-dict__list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 1rem;
}
.smc-dict__entry {
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-left: 4px solid var(--or);
	border-radius: var(--radius-md);
	padding: 1.25rem 1.25rem 1rem;
	display: flex;
	flex-direction: column;
	gap: .25rem;
	transition: transform .15s ease, box-shadow .2s ease;
}
.smc-dict__entry:hover {
	transform: translateY(-2px);
	box-shadow: var(--shadow-warm);
}
.smc-dict__entry-ar {
	font-family: var(--font-arabic);
	font-size: 1.85rem;
	color: var(--or-deep);
	direction: rtl;
	line-height: 1.2;
	margin: 0;
}
.smc-dict__entry-fr {
	font-family: var(--font-serif);
	font-size: var(--fs-lg);
	color: var(--bleu);
	margin: 0;
	font-weight: 400;
}
.smc-dict__entry-trans {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
}
.smc-dict__entry-def {
	font-size: var(--fs-sm);
	color: var(--bleu-soft);
	margin: .3rem 0 0;
	line-height: 1.55;
}
.smc-dict__entry-cat {
	display: inline-block;
	margin-top: .5rem;
	padding: .15rem .6rem;
	background: var(--peau);
	color: var(--bleu);
	font-size: var(--fs-xs);
	border-radius: 100px;
	font-weight: 600;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	align-self: flex-start;
}
.smc-dict__highlight {
	background: linear-gradient(135deg, var(--peau) 0%, var(--cream-soft) 100%);
	border: 1px solid var(--or);
	border-radius: var(--radius-md);
	padding: 1.5rem;
	margin-bottom: 1.25rem;
}
.smc-dict__highlight-label {
	font-size: var(--fs-xs);
	color: var(--or-deep);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	font-weight: 700;
	margin: 0 0 .5rem;
}
.smc-dict__highlight .smc-dict__entry {
	border-left: 4px solid var(--olive);
	background: var(--cream-soft);
}

/* Grossesse Hijri : timeline trimestres */
.smc-pregnancy {
	max-width: 760px;
	margin: -1.5rem auto 0;
	padding: 2.5rem 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: 24px;
	box-shadow: 0 8px 32px rgba(28, 46, 74, 0.08);
	position: relative;
	z-index: 2;
}
.smc-pregnancy__week-display {
	text-align: center;
	padding: 1.5rem;
	background: var(--cream-soft);
	border-radius: var(--radius-md);
	margin-bottom: 1.5rem;
}
.smc-pregnancy__week-num {
	font-family: var(--font-title);
	font-size: 3.5rem;
	font-weight: 500;
	color: var(--olive);
	line-height: 1;
}
.smc-pregnancy__week-label {
	font-size: var(--fs-sm);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-top: .25rem;
}
.smc-pregnancy__timeline {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: .5rem;
	margin: 1.5rem 0;
}
.smc-pregnancy__trimester {
	padding: 1rem;
	background: var(--cream);
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
	text-align: center;
	font-size: var(--fs-sm);
}
.smc-pregnancy__trimester.is-active {
	background: var(--peau);
	border-color: var(--or);
	font-weight: 600;
}
.smc-pregnancy__trimester strong { display: block; font-family: var(--font-title); color: var(--bleu); margin-bottom: .25rem; }
.smc-pregnancy__trimester span { font-size: var(--fs-xs); color: var(--soft); }

/* Âge Hijri : grand affichage */
.smc-age {
	max-width: 640px;
	margin: -1.5rem auto 0;
	padding: 2.5rem 2rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: 24px;
	box-shadow: 0 8px 32px rgba(28, 46, 74, 0.08);
	position: relative;
	z-index: 2;
	text-align: center;
}
.smc-age__result {
	padding: 2rem 1rem;
	background: var(--cream-soft);
	border-radius: var(--radius-md);
	margin: 1.5rem 0;
}
.smc-age__years {
	font-family: var(--font-title);
	font-size: 4rem;
	line-height: 1;
	color: var(--olive);
	font-weight: 500;
	letter-spacing: -0.02em;
}
.smc-age__label { font-size: var(--fs-md); color: var(--bleu-soft); margin-top: .25rem; }
.smc-age__details {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
	margin-top: 1rem;
}
.smc-age__detail {
	padding: .85rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-sm);
}
.smc-age__detail-num { font-family: var(--font-serif); color: var(--bleu); font-size: var(--fs-lg); }
.smc-age__detail-label { font-size: var(--fs-xs); color: var(--soft); text-transform: uppercase; letter-spacing: 0.08em; }

/* Crédit halal : comparatif mourabaha/ijara */
.smc-credit__modes {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: .5rem;
	margin-bottom: 1.5rem;
	background: var(--cream);
	padding: .4rem;
	border-radius: var(--radius-sm);
	border: 1px solid var(--line);
}
.smc-credit__mode-btn {
	padding: .75rem 1rem;
	background: transparent;
	border: 0;
	border-radius: 6px;
	color: var(--bleu-soft);
	font-family: var(--font-body);
	font-weight: 600;
	font-size: var(--fs-sm);
	cursor: pointer;
	transition: all .15s ease;
}
.smc-credit__mode-btn.is-active {
	background: var(--bleu);
	color: var(--cream);
}
.smc-credit__result-big {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	margin: 1.5rem 0;
}
.smc-credit__result-cell {
	padding: 1.25rem;
	background: var(--cream-soft);
	border: 1px solid var(--line);
	border-radius: var(--radius-md);
	text-align: center;
}
.smc-credit__result-cell.is-highlight {
	background: var(--peau);
	border-color: var(--or);
}
.smc-credit__result-label {
	font-size: var(--fs-xs);
	color: var(--soft);
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-weight: 600;
}
.smc-credit__result-value {
	font-family: var(--font-title);
	font-size: 1.75rem;
	color: var(--bleu);
	font-weight: 500;
	margin-top: .25rem;
	font-variant-numeric: tabular-nums;
}

@media (max-width: 640px) {
	.smc-credit__modes { grid-template-columns: 1fr; }
	.smc-credit__result-big { grid-template-columns: 1fr; }
	.smc-pregnancy__timeline { grid-template-columns: 1fr; }
	.smc-age__details { grid-template-columns: 1fr; }
	.smc-hero__icon { width: 36px; height: 36px; top: 1rem; right: 1rem; }
}


/* ============================================================
   Menu icons — remplacement emojis catégorie par SVG inline
   + spacing propre autour des drapeaux pays
   Pilote 2026-04-22
   ============================================================ */

/* Icône catégorie (niveau 1 : Omra/Voyage/Outils/Blog + niveau 2 : sous-cats Outils) */
.smc-menu-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	margin-right: 10px; /* ESPACE entre icone et texte */
	vertical-align: middle;
	flex-shrink: 0;
	color: currentColor;
	opacity: 0.9;
	transition: opacity 0.2s ease, transform 0.2s ease;
}
.smc-menu-icon .smc-menu-svg {
	width: 100%;
	height: 100%;
	display: block;
}

/* Hover : icone s'anime legerement */
.elementor-nav-menu a:hover .smc-menu-icon,
.elementor-nav-menu a:focus .smc-menu-icon,
a:hover > .smc-menu-icon,
a:focus > .smc-menu-icon {
	opacity: 1;
	transform: translateY(-1px);
}

/* Drapeau pays (sous-menus Voyage) : espace garanti apres le drapeau */
.smc-menu-flag {
	display: inline-block;
	margin-right: 8px; /* ESPACE entre drapeau et texte */
	vertical-align: baseline;
	font-size: 1.05em;
	line-height: 1;
}

/* Label menu : ecriture propre */
.smc-menu-label {
	display: inline;
	vertical-align: middle;
}

/* Dans les sous-menus (dropdowns Elementor), garantir alignement vertical */
.elementor-nav-menu--dropdown .smc-menu-icon,
.elementor-nav-menu .sub-menu .smc-menu-icon {
	width: 18px;
	height: 18px;
	margin-right: 8px;
}

/* Accessibilite : focus visible */
.smc-menu-icon:focus-visible,
.smc-menu-flag:focus-visible {
	outline: 2px solid var(--or, #B8935C);
	outline-offset: 2px;
}
