/* ==========================================================================
   Boudigau Social Club — habillage global du site (thème enfant)
   Inspiré de sunmetalon.com : fond sombre chaud, accent bleu vif,
   typographie fine à grande échelle. Polices : alternatives libres
   (Bricolage Grotesque / Inter) auto-hébergées pour le reste du site.
   Bastardo Grotesk : police achetée avec licence, utilisable telle quelle.
   ========================================================================== */

@font-face {
	font-family: 'Bastardo Grotesk';
	src: url('fonts/bastardo-grotesk-semibold.woff2') format('woff2'),
	     url('fonts/bastardo-grotesk-semibold.woff') format('woff');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'BSC Display';
	src: url('fonts/bricolage-300.woff2') format('woff2');
	font-weight: 300;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'BSC Display';
	src: url('fonts/bricolage-600.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'BSC Body';
	src: url('fonts/inter-400.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'BSC Body';
	src: url('fonts/inter-500.woff2') format('woff2');
	font-weight: 500;
	font-style: normal;
	font-display: swap;
}

/* Polices utilisées ponctuellement pour la section "À propos" (maquette) :
   substituts libres de Perfect Romantic / Gilroy. */
@font-face {
	font-family: 'BSC Italiana';
	src: url('fonts/italiana-400.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'BSC Manrope';
	src: url('fonts/manrope-400.woff2') format('woff2');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'Archivo Thin';
	src: url('fonts/archivo-100.woff2') format('woff2');
	font-weight: 100;
	font-style: normal;
	font-display: swap;
}

@font-face {
	font-family: 'BSC Manrope';
	src: url('fonts/manrope-600.woff2') format('woff2');
	font-weight: 600;
	font-style: normal;
	font-display: swap;
}

/* Section "À propos" (maquette) : polices spécifiques, plus précises que la règle globale */
.elementor-element-df4054a .elementor-heading-title,
.elementor-element-df4054a .elementor-heading-title * {
	font-family: 'Bastardo Grotesk', sans-serif !important;
}

.elementor-element-a9e19d2,
.elementor-element-a9e19d2 p,
.elementor-element-1d8bd8d .elementor-heading-title,
.elementor-element-1d8bd8d .elementor-heading-title * {
	font-family: 'Bastardo Grotesk', sans-serif !important;
}

/* Pas de !important sur la taille : le widget "À propos" est un heading, et
   Elementor applique sa taille personnalisée sur ce même sélecteur (avec une
   spécificité plus forte) — laisser gagner cette règle plus spécifique permet
   à l'utilisateur de changer la taille depuis l'éditeur ; sans réglage
   personnalisé, Elementor ne génère aucune règle et celle-ci sert de défaut. */
.elementor-element-1d8bd8d .elementor-heading-title {
	font-size: clamp(15px, 12.71px + 0.611vw, 18px);
}

/* Alignement à gauche d'Adhésion : le réglage "content_width: full" d'Elementor
   se fait régulièrement écraser par un ré-enregistrement de la page. Filet de
   sécurité CSS permanent qui force le même comportement quoi qu'il arrive. */
.elementor-element-5728f6f {
	max-width: none !important;
	width: 100% !important;
}

/* Section "ADHÉSION" : même traitement que "À PROPOS" / "TOURNOI" */
.elementor-element-a7b2c84 .elementor-heading-title,
.elementor-element-a7b2c84 .elementor-heading-title * {
	font-family: 'Bastardo Grotesk', sans-serif !important;
	font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important;
	color: #ece7e2 !important;
	letter-spacing: normal !important;
}

/* Bouton "Adhérer" de la section Adhésion : même taille que celui du hero */
.elementor-element-c6be7f0.elementor-button,
.elementor-element-c6be7f0 .elementor-button {
	font-size: 20px !important;
}

/* Taille posée sur le conteneur (pas sur le <p>) pour laisser l'utilisateur la
   changer depuis l'éditeur — même raison que pour les puces "Tournoi". */
.elementor-element-7ca4fbf,
.elementor-element-7ca4fbf p {
	font-family: 'Bastardo Grotesk', sans-serif !important;
	color: #ece7e2 !important;
}

.elementor-element-7ca4fbf {
	font-size: clamp(15px, 12.71px + 0.611vw, 18px);
}

/* Section "BOUTIQUE" : même traitement que les autres titres */
.elementor-element-8c3f007 .elementor-heading-title,
.elementor-element-8c3f007 .elementor-heading-title * {
	font-family: 'Bastardo Grotesk', sans-serif !important;
	font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important;
	color: #ece7e2 !important;
	letter-spacing: normal !important;
}

.elementor-element-0ad9c32,
.elementor-element-0ad9c32 p {
	font-family: 'Bastardo Grotesk', sans-serif !important;
	color: #ece7e2 !important;
}

.elementor-element-0ad9c32 {
	font-size: clamp(15px, 12.71px + 0.611vw, 18px);
}

/* Mention "(Les commandes seront lancées...)" : plus petite et grisée par
   rapport au reste du texte Boutique. */
.elementor-element-0ad9c32 strong em {
	font-size: 0.75em;
	color: #9a9a9a !important;
}

.elementor-element-38fe7dc.elementor-button,
.elementor-element-38fe7dc .elementor-button {
	font-size: 20px !important;
}

/* Section "DONS" : même traitement que les autres titres */
.elementor-element-bd590da .elementor-heading-title,
.elementor-element-bd590da .elementor-heading-title * {
	font-family: 'Bastardo Grotesk', sans-serif !important;
	font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important;
	color: #ece7e2 !important;
	letter-spacing: normal !important;
}

.elementor-element-360a3f6,
.elementor-element-360a3f6 p {
	font-family: 'Bastardo Grotesk', sans-serif !important;
	color: #ece7e2 !important;
}

.elementor-element-360a3f6 {
	font-size: clamp(15px, 12.71px + 0.611vw, 18px);
}

.elementor-element-d90d206.elementor-button,
.elementor-element-d90d206 .elementor-button {
	font-size: 20px !important;
}

/* Section "BLOG" : même traitement que les autres titres */
.elementor-element-51509f5 .elementor-heading-title,
.elementor-element-51509f5 .elementor-heading-title * {
	font-family: 'Bastardo Grotesk', sans-serif !important;
	font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important;
	color: #ece7e2 !important;
	letter-spacing: normal !important;
}

.elementor-element-0f2297d .elementor-heading-title,
.elementor-element-0f2297d .elementor-heading-title *,
.bsc-tournoi-title .elementor-heading-title,
.bsc-tournoi-title .elementor-heading-title * {
	font-family: 'Bastardo Grotesk', sans-serif !important;
}

/* Même taille que le titre "À PROPOS" (classe stable, résiste aux
   ré-enregistrements Elementor qui changent les ID auto-générés) */
.bsc-tournoi-title .elementor-heading-title {
	font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important;
}

/* Puces de la section Tournoi (maquette). La police reste forcée sur le <p>
   (design voulu, pas de raison que l'utilisateur la change). La TAILLE est
   posée sur le conteneur du widget (id direct) et non sur le <p> lui-même :
   Elementor applique sa taille de Style au conteneur, et une règle directe
   sur le <p> gagnerait toujours contre cet héritage, empêchant l'utilisateur
   de changer la taille depuis l'éditeur. */
.bsc-tournoi-bullet {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	font-family: 'Archivo Thin', sans-serif !important;
	font-weight: 100;
	color: #ece7e2;
	margin: 0 !important;
}

.elementor-element-5be4432,
.elementor-element-77a1cc0,
.elementor-element-a4b7531 {
	font-size: clamp(14px, 12.76px + 0.332vw, 17px);
	line-height: 1.5;
}

/* Rond en ::before (pas un <span> dans le texte éditable) : survit aux
   éditions du texte dans Elementor, qui écrasent le contenu riche du widget.
   Unités em (pas px) pour que le rond suive la taille de police choisie. */
.bsc-tournoi-bullet::before {
	content: '';
	flex: 0 0 auto;
	width: 2em;
	height: 2em;
	margin-top: 0;
	border: 0.05em solid #8a8377;
	border-radius: 50%;
}

/* Blason du hero (maquette) : Elementor n'a pas re-généré la taille custom via l'API,
   on force la taille d'affichage directement en CSS. */
.elementor-element-b4f0872 img {
	max-width: 150px !important;
	width: 150px !important;
	height: auto !important;
}

/* Illustration Kancha (maquette) : plein cadre, bord à bord.
   Structurellement sorti de toute colonne avec padding (voir Elementor),
   cette règle assure juste que l'image remplit sa largeur disponible. */
.elementor-element-6b20f65 img {
	width: 100% !important;
	display: block;
}

/* Séquence d'images animée (remplace l'illustration Kancha statique, test) */
.bsc-frame-sequence {
	display: block;
	width: 100%;
	aspect-ratio: 1200 / 549;
	background: transparent;
}

/* Le conteneur qui entoure l'animation doit se centrer lui-même dans le hero
   (colonne flex) quand on réduit sa largeur dans Elementor, pas seulement
   centrer ce qu'il contient. */
.bsc-hero-sequence-wrap {
	align-self: center !important;
	margin-left: auto !important;
	margin-right: auto !important;
	padding: 0 !important;
}

/* "Un Esprit Sain..." + "(Apéro compris)" fusionnés dans UN SEUL widget/paragraphe
   (au lieu de deux widgets Elementor séparés) pour éliminer tout conflit de
   marge/gap entre éléments frères. */
.bsc-hero-subtitle {
	font-size: clamp(11px, 9.76px + 0.332vw, 14px) !important;
	font-weight: 400 !important;
	color: #9a9488 !important;
	letter-spacing: 0.02em;
	line-height: 1.5;
	margin: 0 !important;
}

.bsc-hero-apero {
	display: inline-block;
	font-size: clamp(8px, 7.17px + 0.221vw, 10px) !important;
	opacity: 0.55;
}

/* Reveal séquencé du hero : titre en fondu-balayage, puis sous-titre, puis "Apéro compris" */
@keyframes bscTitleReveal {
	from {
		opacity: 0;
		clip-path: inset(0 100% 0 0);
	}
	to {
		opacity: 1;
		clip-path: inset(0 0 0 0);
	}
}

@keyframes bscFadeUp {
	from {
		opacity: 0;
		transform: translateY(10px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

.elementor-element-1fc9099 {
	animation: bscTitleReveal 1s cubic-bezier(0.65, 0, 0.35, 1) both;
}

.elementor-element-11bd942 {
	animation: bscFadeUp 0.6s ease both;
	animation-delay: 1s;
}

/* Supprime le fond clair qui apparaissait au survol des titres (À propos,
   Adhésion, Boutique, Dons...) — reliquat de l'ancien design clair, devenu
   une "surexposition" moche sur le thème sombre. */
.elementor-element-df4054a .elementor-heading-title:hover,
.elementor-element-a7b2c84 .elementor-heading-title:hover,
.elementor-element-8c3f007 .elementor-heading-title:hover,
.elementor-element-bd590da .elementor-heading-title:hover,
.elementor-element-51509f5 .elementor-heading-title:hover,
.elementor-element-1dfe3bd .elementor-heading-title:hover {
	background: transparent !important;
}

/* Survol d'une section entière (À propos, Tournoi, Adhésion, Boutique, Dons) :
   fondu vers un fond légèrement plus clair, et fondu inverse à la sortie. */
.elementor-element-568cd07,
.elementor-element-83ec3d6,
.elementor-element-01d0c81,
.elementor-element-19a357f,
.elementor-element-8f71fb4 {
	transition: background-color 1.4s ease !important;
}

body .elementor-element-568cd07:hover,
body .elementor-element-83ec3d6:hover,
body .elementor-element-01d0c81:hover,
body .elementor-element-19a357f:hover,
body .elementor-element-8f71fb4:hover,
body .elementor-element-568cd07.bsc-touch-active,
body .elementor-element-83ec3d6.bsc-touch-active,
body .elementor-element-01d0c81.bsc-touch-active,
body .elementor-element-19a357f.bsc-touch-active,
body .elementor-element-8f71fb4.bsc-touch-active {
	background-color: #1c1c29 !important;
	background-image: none !important;
}

/* Lignes de séparation fines avec × aux extrémités (maquette, section "À propos") */
.bsc-divider {
	display: flex;
	align-items: center;
	gap: 14px;
	max-width: 520px;
	margin: 0 auto;
}

.bsc-divider-line {
	flex: 1 1 auto;
	height: 1px;
	background: rgba(236, 231, 226, 0.22);
}

.bsc-divider-x {
	color: rgba(236, 231, 226, 0.4);
	font-size: 13px;
	line-height: 1;
	flex: 0 0 auto;
}

/* Bouton "Adhérer" du hero : blanc plein comme sur la maquette (exception au bleu global) */
#adherer.elementor-button {
	background-color: #ffffff !important;
	color: #1b170f !important;
	box-shadow: none !important;
}

#adherer.elementor-button:hover {
	background-color: #ece7e2 !important;
	color: #1b170f !important;
}

:root {
	--bsc-dark: #1b170f;
	--bsc-dark-2: #262019;
	--bsc-cream: #ece7e2;
	--bsc-cream-2: #d8d2c8;
	--bsc-ink: #221f1a;
	--bsc-accent: #1863dc;
	--bsc-accent-dark: #0f4bb0;
	--bsc-font-display: 'BSC Display', 'Segoe UI', sans-serif;
	--bsc-font-body: 'BSC Body', 'Segoe UI', sans-serif;
}

/* ---- Fond de page : un seul dégradé continu, sans coupure entre les blocs ----
   Reproduit le dégradé Photoshop : noir -> #12131c (43%) -> noir, vertical.
   Tous les conteneurs Elementor sont transparents (settings nettoyés côté data +
   filet de sécurité CSS ci-dessous) pour laisser ce fond unique visible partout. */
html,
body {
	background: linear-gradient(180deg, #000000 0%, #12131c 43%, #000000 100%) !important;
	color: var(--bsc-cream) !important;
	font-family: var(--bsc-font-body) !important;
}

.e-con,
.elementor-section,
.elementor-container,
.elementor-widget-wrap {
	background: transparent !important;
	background-image: none !important;
}

/* Case blanche réservée à la future animation (section Tournoi, maquette) :
   exception au fond transparent forcé ci-dessus. */
.elementor-element-e47ce67 {
	background: transparent !important;
	overflow: hidden;
	display: flex;
	aspect-ratio: 640 / 382;
	min-height: 0 !important;
	height: auto !important;
}

.elementor-element-e47ce67 .e-con-inner,
.elementor-element-e47ce67 .e-con-inner > *,
.elementor-element-e47ce67 .elementor-widget-container,
.elementor-element-e47ce67 .elementor-shortcode {
	display: flex;
	width: 100%;
	height: 100%;
}

/* Case "affiche" du tournoi à venir (maquette) : format A4 portrait, largeur
   pilotée par le réglage Largeur d'Elementor (onglet Disposition) pour que
   l'utilisateur puisse l'agrandir/réduire lui-même depuis l'éditeur.
   Classe stable (bsc-affiche-box) au lieu de l'ID auto-généré, qui change à
   chaque ré-enregistrement de la page dans Elementor. */
.bsc-affiche-box {
	background: #ece7e2 !important;
	aspect-ratio: 210 / 297;
	min-height: 0 !important;
	height: auto !important;
	flex: 0 0 auto !important;
	margin: 0 !important;
}

/* La colonne "puces + tournoi à venir" (à droite de la pala) était étirée par
   défaut (align-items:stretch) à la hauteur de la case pala à gauche, donc
   tout son contenu se faisait comprimer/chevaucher dès que le texte passait
   sur 2 lignes. On la laisse prendre sa hauteur naturelle. */
.elementor-element-d57264c {
	align-items: flex-start !important;
}

/* Filet de sécurité : ce widget a récupéré une marge du haut de -68px suite à
   une manipulation dans l'éditeur Elementor, le faisant chevaucher la puce
   au-dessus. Forcé à 0 pour empêcher que ça se reproduise silencieusement. */
.elementor-element-5701feb {
	margin: 0 !important;
}

/* Ligne "Tournoi à venir / affiche / Inscrption" : sur grand écran, tout tient
   sur une ligne. Sur mobile, pas assez de place -> on empile proprement. */
.bsc-poster-row {
	flex-wrap: nowrap !important;
	margin-top: 24px !important;
	margin-bottom: 24px !important;
}

@media (max-width: 600px) {
	/* display:block au lieu de flex-direction:column : évite tout calcul de
	   hauteur flex foireux (le conteneur ne "voyait" pas la vraie hauteur de
	   ses enfants et les faisait se chevaucher). Chaque enfant prend sa
	   hauteur naturelle, empilé normalement. */
	.bsc-poster-row {
		display: block !important;
	}

	.bsc-poster-row > .elementor-element {
		display: block !important;
		width: 100% !important;
		flex: none !important;
		margin-bottom: 12px !important;
	}

	.bsc-poster-row > .elementor-element:last-child {
		margin-bottom: 0 !important;
	}
}

.bsc-poster-row > .elementor-element:not(.bsc-affiche-box) {
	width: auto !important;
	flex: 1 1 0 !important;
	min-width: 0 !important;
}

/* Bouton "Inscrption" : fond blanc forcé (le bleu global écrase sinon le réglage Elementor) */
.elementor-element-00093f0.elementor-button,
.elementor-element-00093f0 .elementor-button {
	background-color: #ffffff !important;
	color: #1b170f !important;
}

/* Filet de sécurité : ce widget a récupéré une marge basse de -66px suite à une
   édition dans Elementor, ce qui rétrécissait le conteneur et faisait
   disparaître/rogner le bouton sur mobile. */
.elementor-element-00093f0 {
	margin: 0 !important;
}

.elementor-element-e47ce67 .bsc-frame-sequence {
	display: block;
	width: 100%;
	height: 100%;
}

/* ---- Typographie ---- */
body,
p, li, span, a,
.elementor-widget-text-editor,
.elementor-heading-title,
h1, h2, h3, h4, h5, h6 {
	font-family: var(--bsc-font-body) !important;
}

h1, h2, h3,
.elementor-heading-title,
h1 *, h2 *, h3 *,
.elementor-heading-title * {
	font-family: var(--bsc-font-display) !important;
	letter-spacing: -0.02em;
}

/* ---- Liens ---- */
a {
	color: var(--bsc-accent);
}

a:hover {
	color: var(--bsc-accent-dark);
}

/* ---- Boutons Elementor ---- */
a.elementor-button,
.elementor-button {
	background-color: var(--bsc-accent) !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 14px 30px !important;
	font-weight: 600 !important;
	letter-spacing: 0.01em;
	border: none !important;
	transition: transform 0.15s ease, box-shadow 0.15s ease, background-color 0.15s ease;
	box-shadow: 0 4px 14px rgba(24, 99, 220, 0.3);
}

a.elementor-button:hover,
.elementor-button:hover {
	background-color: var(--bsc-accent-dark) !important;
	color: #fff !important;
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(24, 99, 220, 0.4);
}

/* ---- En-tête ---- */
.site-header {
	background-color: var(--bsc-dark) !important;
	border-bottom: 1px solid rgba(236, 231, 226, 0.08);
}

.site-header,
.site-header .elementor-widget-container,
.site-header .elementor-nav-menu {
	color: var(--bsc-cream);
}

.site-header .menu a,
.site-header nav a,
.site-header .elementor-item {
	color: var(--bsc-cream) !important;
}

.site-header .menu a:hover,
.site-header nav a:hover,
.site-header .elementor-item:hover,
.site-header .elementor-item-active {
	color: var(--bsc-accent) !important;
}

/* Sous-menu déroulant ("Histoire ▾") : fond resté blanc (thème par défaut),
   texte en crème forcé ci-dessus -> quasi invisible. On repasse ce texte en
   noir pour qu'il reste lisible sur ce fond blanc. */
.site-header .menu li ul a,
.site-header .menu-item-has-children ul a {
	color: #1b170f !important;
}

.site-header .menu li ul a:hover,
.site-header .menu-item-has-children ul a:hover {
	color: var(--bsc-accent) !important;
}

/* Menu plein écran mobile (.site-navigation-dropdown) : même souci, en pire —
   ".menu" y est aussi capté par la règle crème ci-dessus, sur un fond resté
   blanc (thème par défaut) -> texte quasi invisible. On repasse en noir,
   sauf sur la page courante (fond sombre du thème, texte clair nécessaire). */
.site-navigation-dropdown ul.menu li a {
	color: #1b170f !important;
}

.site-navigation-dropdown ul.menu li.current-menu-item a {
	color: #ffffff !important;
}

/* ---- Pied de page ---- */
.site-footer {
	background-color: var(--bsc-dark) !important;
	color: var(--bsc-cream-2);
	border-top: 1px solid rgba(236, 231, 226, 0.08);
}

.site-footer,
.site-footer .elementor-widget-container,
.site-footer p,
.site-footer a {
	color: var(--bsc-cream-2) !important;
}

/* Pages "Histoire" (page principale + les 6 sous-pages) : le texte des
   widgets Elementor y est resté en noir (thème d'origine clair), invisible
   sur le fond sombre du site. IDs : 172 (Histoire), 218 (Histoire de la
   pelote basque), 232 (Chistera), 190 (Pala Ancha), 267 (Xare), 285 (Main
   nue), 245 (Pala Larga). */
body.page-id-172 .elementor-widget-text-editor,
body.page-id-172 .elementor-widget-text-editor *,
body.page-id-218 .elementor-widget-text-editor,
body.page-id-218 .elementor-widget-text-editor *,
body.page-id-232 .elementor-widget-text-editor,
body.page-id-232 .elementor-widget-text-editor *,
body.page-id-190 .elementor-widget-text-editor,
body.page-id-190 .elementor-widget-text-editor *,
body.page-id-267 .elementor-widget-text-editor,
body.page-id-267 .elementor-widget-text-editor *,
body.page-id-285 .elementor-widget-text-editor,
body.page-id-285 .elementor-widget-text-editor *,
body.page-id-245 .elementor-widget-text-editor,
body.page-id-245 .elementor-widget-text-editor * {
	color: var(--bsc-cream, #ece7e2) !important;
}

/* L'intro + le premier titre ("Origines" et équivalents) passent sur la
   vague décorative claire en haut de ces pages -> on les repasse en sombre
   pour rester lisibles, contrairement au reste du texte (fond uni sombre).
   Classe posée directement dans le contenu (pas de sélecteur de position :
   la profondeur du HTML diffère légèrement d'une page à l'autre).
   Sur mobile la vague ne s'affiche pas (fond uni sombre comme le reste) :
   on garde donc le texte en crème en dessous de 768px. */
@media (min-width: 768px) {
	.elementor-widget-text-editor .bsc-dark-on-wave.bsc-dark-on-wave,
	.elementor-widget-text-editor .bsc-dark-on-wave.bsc-dark-on-wave * {
		color: #1b170f !important;
	}
}

/* Crédits photo (légende WordPress affichée via Elementor) : tout petit,
   sous chaque photo des pages Histoire. */
.widget-image-caption,
figcaption,
.wp-caption-text {
	font-size: 11px !important;
	color: rgba(236, 231, 226, 0.6) !important;
}


/* Menu "Histoire" du pied de page : même sous-menu déroulant que dans
   l'en-tête (fond resté blanc, thème par défaut), mais la règle de couleur
   du footer forçait un texte crème dessus -> illisible. */
.site-footer .menu li ul a {
	color: #1b170f !important;
}

.site-footer .menu li ul a:hover {
	color: var(--bsc-accent) !important;
}

.site-footer a:hover {
	color: var(--bsc-accent) !important;
}

/* ---- Espacement général des sections Elementor ---- */
.elementor-top-section {
	padding-top: clamp(32px, 6vw, 72px);
	padding-bottom: clamp(32px, 6vw, 72px);
}
/* Typographie fluide : générée automatiquement à partir des tailles
   desktop/mobile existantes de chaque widget, avec clamp() pour un scaling
   continu entre 375px et 1280px de largeur de fenêtre. */
.elementor-element-11bd942 p, .elementor-element-11bd942 { font-size: clamp(12px, 10.76px + 0.331vw, 15px) !important; }
.elementor-element-3ffddec.elementor-button, .elementor-element-3ffddec .elementor-button { font-size: clamp(11px, 7.27px + 0.994vw, 20px) !important; }
.elementor-element-df4054a .elementor-heading-title { font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important; }
.elementor-element-0f2297d .elementor-heading-title { font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important; }
.elementor-element-a7b2c84 .elementor-heading-title { font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important; }
.elementor-element-cddacc1 .elementor-heading-title { font-size: clamp(20px, 13.37px + 1.768vw, 36px) !important; }
.elementor-element-b51c1ff .elementor-heading-title { font-size: clamp(14px, 11.51px + 0.663vw, 20px) !important; }
.elementor-element-c6be7f0.elementor-button, .elementor-element-c6be7f0 .elementor-button { font-size: clamp(11px, 7.27px + 0.994vw, 20px) !important; }
.elementor-element-8c3f007 .elementor-heading-title { font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important; }
.elementor-element-2ee2304 .elementor-heading-title { font-size: clamp(20px, 13.37px + 1.768vw, 36px) !important; }
.elementor-element-1fdf855 .elementor-heading-title { font-size: clamp(14px, 11.51px + 0.663vw, 20px) !important; }
.elementor-element-38fe7dc.elementor-button, .elementor-element-38fe7dc .elementor-button { font-size: clamp(11px, 7.27px + 0.994vw, 20px) !important; }
.elementor-element-bd590da .elementor-heading-title { font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important; }
.elementor-element-df0b636 .elementor-heading-title { font-size: clamp(20px, 13.37px + 1.768vw, 36px) !important; }
.elementor-element-583815b .elementor-heading-title { font-size: clamp(14px, 11.51px + 0.663vw, 20px) !important; }
.elementor-element-d90d206.elementor-button, .elementor-element-d90d206 .elementor-button { font-size: clamp(11px, 7.27px + 0.994vw, 20px) !important; }
.elementor-element-51509f5 .elementor-heading-title { font-size: clamp(40px, 30.06px + 2.652vw, 64px) !important; }
.elementor-element-1dfe3bd .elementor-heading-title { font-size: clamp(34px, 16.18px + 4.751vw, 77px) !important; }

/* 18 règles générées */

/* Effet machine à écrire sur les gros titres de section (voir typewriter.js) */
.bsc-tw-char {
	opacity: 0;
}

.bsc-tw-char.bsc-tw-visible {
	opacity: 1;
}

.bsc-tw-cursor {
	display: inline-block;
	margin-left: 0.05em;
	opacity: 0;
}

.bsc-tw-cursor.bsc-tw-cursor--blink {
	animation: bsc-tw-blink 1s step-end infinite;
}

@keyframes bsc-tw-blink {
	0%, 49% { opacity: 1; }
	50%, 100% { opacity: 0; }
}
