/* ==========================================================================
   YCIB — personnalisation du template cassiopeia_extended
   Fichier chargé automatiquement par Cassiopeia (css/user.css).
   Pour tout annuler : supprimer ce fichier.
   ========================================================================== */

@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&display=swap");

:root {
	--ycib-navy: #12355b;
	--ycib-blue: #1a6ebf;
	--ycib-teal: #1d7989;
	--ycib-accent: #f0a500;
	--ycib-bg: #f3f6fa;
	--ycib-text: #1f2937;
	--ycib-muted: #5b6575;
	--ycib-max: 1200px;
	--ycib-content: calc(var(--ycib-max) + 3em); /* largeur réelle de la colonne principale (4 colonnes + 3 espacements) */
	--ycib-radius: 14px;
	--ycib-shadow: 0 6px 24px rgba(18, 53, 91, .08);
}

/* --- Base ---------------------------------------------------------------- */
body.site {
	background: var(--ycib-bg);
	color: var(--ycib-text);
	line-height: 1.6;
}

h1, h2, h3, h4, h5, h6,
.page-header h1, .page-header h2 {
	font-family: "Poppins", Roboto, sans-serif;
	color: var(--ycib-navy);
	font-weight: 600;
	line-height: 1.25;
}

a { color: var(--ycib-blue); }
a:hover { color: var(--ycib-navy); }

img, iframe, video, table { max-width: 100%; }
img { height: auto; }

/* --- Une seule largeur pour tout le site --------------------------------- */
.site-grid {
	grid-template-columns: [full-start] minmax(0, 1fr) [main-start] repeat(4, minmax(0, calc(var(--ycib-max) / 4))) [main-end] minmax(0, 1fr) [full-end];
}

/* --- Menu (Maximenu CK) : barre pleine largeur, contenu aligné ------------ */
.container-topbar {
	background: linear-gradient(90deg, #12355b 0%, #1d4f7a 60%, #2a6f8f 100%);
	box-shadow: 0 2px 12px rgba(0, 0, 0, .15);
}
.container-topbar .maximenuckh,
.container-topbar nav.maximenuck {
	background: transparent !important;
	box-shadow: none !important;
}
.container-topbar .maximenuckh > ul.maximenuck {
	max-width: var(--ycib-content) !important;
	padding: 0 8px !important;
	margin: 0 auto !important;
	background: transparent !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}
.maximenuckh ul.maximenuck li.maximenuck > a,
.maximenuckh ul.maximenuck li.maximenuck > span.separator {
	font-family: "Poppins", Roboto, sans-serif !important;
	font-size: 14px !important;
	letter-spacing: .01em;
}
@media (min-width: 901px) {
	.maximenuckh ul.maximenuck li.maximenuck.level1 > a {
		padding-left: 11px !important;
		padding-right: 11px !important;
	}
	/* Place pour la flèche des sous-menus */
	.maximenuckh ul.maximenuck li.maximenuck.level1.parent > a {
		padding-right: 22px !important;
	}
}

/* Espace entre la barre de menu et le premier bloc de la page */
.site-grid > .container-top-a:first-child,
.container-banner:has(nav.maximenuck) + .container-top-a,
.container-banner:has(nav.maximenuck) + .container-top-b {
	margin-top: 24px;
}


/* Maximenu (en attendant la bascule vers le menu natif) :
   un élément par ligne dans les sous-menus, intitulés en petites capitales */
.maximenuckh li.maximenuck.level2 {
	float: none !important;
	display: block !important;
	width: 100% !important;
	clear: both !important;
}
.maximenuckh li.maximenuck.headingck.level2 > .nav-header {
	display: block !important;
	padding: 10px 14px 2px !important;
	font-family: "Poppins", Roboto, sans-serif !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ycib-teal) !important;
	cursor: default;
}

/* --- Bandeau / diaporama -------------------------------------------------- */
.container-banner,
.container-banner.full-width {
	width: calc(100% - 32px);
	max-width: var(--ycib-content) !important;
	margin: 24px auto 0 !important;
	border-radius: var(--ycib-radius);
	overflow: hidden;
	box-shadow: var(--ycib-shadow);
	background: #0f2a47;
}
/* Pages où le menu est placé en position « banner » (ex. Le club) :
   même barre que les autres pages, et sous-menus non rognés.
   Remède définitif : publier ce menu en position « topbar ». */
.container-banner:has(nav.maximenuck) {
	width: 100%;
	max-width: none !important;
	margin: 0 !important;
	border-radius: 0;
	overflow: visible;
	background: linear-gradient(90deg, #12355b 0%, #1d4f7a 60%, #2a6f8f 100%);
	box-shadow: 0 2px 12px rgba(0, 0, 0, .15);
	grid-column: full-start / full-end;
}
.container-banner:has(nav.maximenuck) .maximenuckh,
.container-banner:has(nav.maximenuck) nav.maximenuck {
	background: transparent !important;
	box-shadow: none !important;
}
.container-banner:has(nav.maximenuck) .maximenuckh > ul.maximenuck {
	max-width: var(--ycib-content) !important;
	padding: 0 8px !important;
	margin: 0 auto !important;
	background: transparent !important;
	box-shadow: none !important;
	border-radius: 0 !important;
}

/* Diaporama à la largeur du bandeau (Smart Slider le limite sinon à 1100 px) */
.container-banner .n2-section-smartslider,
.container-banner div[id$="-align"] {
	max-width: none !important;
}
/* Texte du diaporama : remonté dans l'image et lisible
   (réglage définitif à faire dans Smart Slider : position du calque) */
.container-banner .n2-ss-layer[data-sstype="layer"]:has(.n2-ss-text) {
	transform: translate(-50%, -50%) !important;
	left: 50% !important;
	top: 72% !important;
}
.n2-ss-text p {
	text-shadow: 0 2px 12px rgba(0, 0, 0, .65);
	font-family: "Poppins", Roboto, sans-serif !important;
	font-weight: 600 !important;
}

/* --- Articles de l'accueil : cartes -------------------------------------- */
.blog-featured .blog-items,
.com-content-category-blog .blog-items {
	gap: 28px;
}
.blog-item,
.blog-items.boxed .blog-item {
	background: #fff;
	border: 0 !important;
	border-top: 4px solid var(--ycib-teal) !important;
	border-radius: var(--ycib-radius);
	box-shadow: var(--ycib-shadow);
	overflow: hidden;
}
.blog-item .item-content {
	padding: 28px 32px;
}

/* Logo du club collé dans les articles : déjà présent dans l'en-tête */
.item-content img[src*="logos_site"],
.com-content-article__body img[src*="logos_site"] {
	display: none !important;
}

/* Blocs de menu collés par erreur dans les articles : masqués s'ils sont vides */
.item-content .navbar-menu:not(:has(img)),
.com-content-article__body .navbar-menu:not(:has(img)) {
	display: none !important;
}

/* Images flottantes : centrées et contenues */
.item-content img[style*="float"],
.com-content-article__body img[style*="float"] {
	float: none !important;
	display: block;
	margin: 0 auto 1rem;
	border-radius: 10px;
	max-height: 340px;
	width: auto;
	object-fit: cover;
}

/* Faux titres (<span style="font-size: 36px">) : style unifié et lisible */
.item-content span[style*="font-size: 36px"],
.com-content-article__body span[style*="font-size: 36px"] {
	font-family: "Poppins", Roboto, sans-serif !important;
	font-size: clamp(1.35rem, 1rem + 1.4vw, 2rem) !important;
	color: var(--ycib-navy) !important;
	line-height: 1.25;
}
.item-content span[style*="font-size: 36px"] span,
.com-content-article__body span[style*="font-size: 36px"] span {
	color: inherit !important;
	font-family: inherit !important;
}

/* Paragraphes : espacements réguliers */
.item-content p,
.com-content-article__body p {
	margin: 0 0 .75rem;
}

/* Cartes « Je m'inscris / Avis de course » écrites en ligne :
   masque les restes de copier-coller (```) et modernise */
.item-content a[style*="border-radius: 10px"],
.com-content-article__body a[style*="border-radius: 10px"] {
	font-size: 0 !important;
	background: #fff !important;
	border: 1px solid #e3e8ef !important;
	box-shadow: 0 2px 10px rgba(18, 53, 91, .06) !important;
	transition: transform .15s ease, box-shadow .15s ease;
}
.item-content a[style*="border-radius: 10px"]:hover,
.com-content-article__body a[style*="border-radius: 10px"]:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(18, 53, 91, .14) !important;
}

/* Bouton « Lire la suite » */
.readmore .btn,
p.readmore a.btn {
	background: var(--ycib-navy);
	border-color: var(--ycib-navy);
	color: #fff;
	border-radius: 999px;
	padding: .5rem 1.25rem;
	font-family: "Poppins", Roboto, sans-serif;
	font-weight: 500;
}
.readmore .btn:hover { background: var(--ycib-teal); border-color: var(--ycib-teal); color: #fff; }

/* --- Page article -------------------------------------------------------- */
/* Carte blanche uniquement si l'article a un contenu (évite les cartes vides) */
.com-content-article:has(.com-content-article__body > *, .page-header) {
	background: #fff;
	border-radius: var(--ycib-radius);
	box-shadow: var(--ycib-shadow);
	padding: 32px 40px;
}

/* --- Modules du bas et pied de page -------------------------------------- */
.container-bottom-a .card,
.container-bottom-b .card,
.container-bottom-a .moduletable,
.container-bottom-b .moduletable {
	border-radius: var(--ycib-radius);
}
.container-footer {
	background: linear-gradient(180deg, #16405f 0%, #12355b 100%);
	margin-top: 48px;
}
.container-footer > .grid-child,
.container-footer .grid-child {
	max-width: var(--ycib-content);
	margin-left: auto;
	margin-right: auto;
}
.container-footer iframe {
	width: 100% !important;
	border-radius: 10px;
}

/* Pagination : passe à la ligne au lieu de déborder sur mobile */
.pagination { flex-wrap: wrap; row-gap: 6px; }

/* --- Mobile -------------------------------------------------------------- */
@media (max-width: 767.98px) {
	.container-banner { margin: 12px 12px 0; border-radius: 10px; }
	.blog-item .item-content { padding: 20px 18px; }
	.com-content-article { padding: 20px 18px; }
	/* Bandeau trop petit sur mobile pour le texte : on garde la photo seule */
	.container-banner .n2-ss-layer[data-sstype="layer"]:has(.n2-ss-text) { display: none !important; }
}

/* --- Menu natif Joomla ---------------------------------------------------
   Module « Menu », disposition « Collapsible Dropdown », position « menu ».
   Logo : réglage du template (onglet Avancé > Logo).
   ------------------------------------------------------------------------- */
.container-header {
	background: linear-gradient(90deg, #12355b 0%, #1d4f7a 60%, #2a6f8f 100%) !important;
	box-shadow: 0 2px 12px rgba(0, 0, 0, .15);
}
.container-header .brand-logo img {
	height: 52px;
	width: auto;
	background: #fff;
	border-radius: 999px;
	padding: 4px 16px;
}
.container-header .metismenu > li > a,
.container-header .metismenu > li > button.mm-toggler-nolink {
	font-family: "Poppins", Roboto, sans-serif;
	font-size: 15px;
	font-weight: 500;
	color: rgba(255, 255, 255, .92);
	text-decoration: none;
	background: transparent;
	border: 0;
}
.container-header .metismenu > li > a:hover,
.container-header .metismenu > li > button.mm-toggler-nolink:hover {
	color: #fff;
}
/* Flèche des sous-menus : chevron fin */
.container-header .metismenu .mm-toggler::after {
	content: "" !important;
	display: inline-block;
	position: static !important;
	width: 7px;
	height: 7px;
	margin-left: 8px;
	border: solid rgba(255, 255, 255, .85) !important;
	border-width: 0 2px 2px 0 !important;
	background: none !important;
	transform: rotate(45deg) translateY(-2px);
	transition: transform .2s ease;
}
.container-header .metismenu li.mm-active > .mm-toggler::after {
	transform: rotate(-135deg) translateY(-2px);
}
.container-header .metismenu .mm-toggler-link {
	background: transparent;
	border: 0;
	padding: 0 4px;
}

.container-header .metismenu a { text-decoration: none !important; }

/* Sous-menus : cartes blanches */
.container-header .metismenu .mm-collapse a,
.container-header .metismenu .mm-collapse .nav-header {
	font-family: "Poppins", Roboto, sans-serif;
	font-size: 14px;
	text-decoration: none;
}
.container-header .metismenu .mm-collapse .nav-header {
	display: block;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--ycib-teal);
}

@media (min-width: 992px) {
	.container-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 24px;
		min-height: 72px;
		padding: 0 max(16px, calc((100% - var(--ycib-content)) / 2));
	}
	.container-header > .grid-child {
		max-width: none;
		margin: 0;
		padding: 0;
		width: auto;
	}
	.container-header .container-nav { flex: 1; justify-content: flex-end; }
	.container-header .navbar { padding: 0; }
	.container-header .metismenu { gap: 2px; align-items: stretch; }
	.container-header .metismenu > li > a,
	.container-header .metismenu > li > button.mm-toggler-nolink {
		display: inline-flex;
		align-items: center;
		padding: 24px 8px 21px;
		border-bottom: 3px solid transparent;
	}
	.container-header .metismenu > li.active > a,
	.container-header .metismenu > li.active > button,
	.container-header .metismenu > li.alias-parent-active > a {
		color: #fff;
		border-bottom-color: var(--ycib-accent);
	}
	.container-header .metismenu > li > ul.mm-collapse {
		background: #fff;
		border: 0;
		border-radius: 12px;
		box-shadow: 0 14px 40px rgba(18, 53, 91, .22);
		padding: 10px;
		min-width: 250px;
		margin-top: 0;
	}
	.container-header .metismenu .mm-collapse li a {
		display: block;
		color: var(--ycib-navy);
		padding: 6px 12px;
		line-height: 1.4;
		border-radius: 8px;
	}
	.container-header .metismenu .mm-collapse li a:hover,
	.container-header .metismenu .mm-collapse li.current > a {
		background: #eaf2f9;
		color: var(--ycib-navy);
	}
	.container-header .metismenu .mm-collapse .nav-header {
		padding: 10px 12px 4px;
	}
	/* Sous-menu contenant des intitulés (ex. Régates) : sur deux colonnes */
	.container-header .metismenu > li.ycib-inutilise > ul {
		columns: 2;
		column-gap: 8px;
		min-width: 520px;
	}
	.container-header .metismenu > li.ycib-inutilise > ul > li {
		break-inside: avoid;
	}
}


/* Menu natif - ordinateur : chevron sur la même ligne, ouverture au survol */
@media (min-width: 992px) {
	.container-header .metismenu > li.parent {
		flex-wrap: nowrap;
		align-items: center;
	}
	.container-header .metismenu > li.parent > a {
		padding-right: 4px;
	}
	.container-header .metismenu > li.parent > button.mm-toggler-link {
		height: auto;
		width: 22px;
		padding: 0;
		margin: 0 8px 0 0;
		align-self: center;
	}
	.container-header .metismenu > li.parent:hover > ul.mm-collapse,
	.container-header .metismenu > li.parent:focus-within > ul.mm-collapse {
		display: block;
		height: auto !important;
		top: 100%;
		left: 0;
		z-index: 1000;
	}
}


/* Menu natif - ordinateur : entrées resserrées
   (Cassiopeia ajoute sinon 17,6 px de chaque côté de chaque entrée) */
@media (min-width: 992px) {
	.container-header .metismenu { gap: 0; }
	.container-header .metismenu > li {
		padding: 0 !important;
		margin: 0 !important;
	}
	.container-header .metismenu > li > a,
	.container-header .metismenu > li > button.mm-toggler-nolink {
		padding: 22px 10px 19px !important;
	}
	.container-header .metismenu > li.parent > a {
		padding-right: 2px !important;
	}
	.container-header .metismenu > li.parent > button.mm-toggler-link {
		width: 16px !important;
		margin: 0 8px 0 0 !important;
	}
}


/* Menu natif : sous-menu groupé (ex. Régates > Inscriptions / Parcours / Résultats / Arbitrage)
   Chaque intitulé et ses pages forment un bloc ; les groupes sont toujours dépliés. */
.container-header .metismenu ul.mm-collapse ul.mm-collapse {
	display: block !important;
	height: auto !important;
	position: static !important;
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
}
.container-header .metismenu ul.mm-collapse > li > button.nav-header {
	display: block;
	width: 100%;
	text-align: left;
	background: transparent;
	border: 0;
	cursor: default;
	pointer-events: none;
}
.container-header .metismenu ul.mm-collapse > li > button.nav-header::after { display: none !important; }

@media (min-width: 992px) {
	.container-header .metismenu { position: relative; }
	.container-header .metismenu > li.item-1869 { position: static !important; }
	.container-header .metismenu > li.item-1869 > ul.mm-collapse {
		columns: auto !important;
		min-width: 0 !important;
		width: max-content;
		max-width: calc(100vw - 32px);
		left: auto !important;
		right: 0;
		padding: 18px 20px !important;
	}
	.container-header .metismenu > li.item-1869:hover > ul.mm-collapse,
	.container-header .metismenu > li.item-1869:focus-within > ul.mm-collapse {
		display: grid !important;
		grid-template-columns: repeat(4, 220px);
		align-items: start;
		height: auto !important;
		max-height: none !important;
		overflow: visible !important;
		gap: 4px 20px;
	}
	.container-header .metismenu > li.item-1869 > ul.mm-collapse > li > button.nav-header {
		padding: 4px 12px 8px !important;
		margin-bottom: 4px;
		border-bottom: 2px solid #e3edf5 !important;
	}
}


/* Panneau groupé : dimensions maîtrisées */
@media (min-width: 992px) {
	.container-header .metismenu > li.item-1869 > ul.mm-collapse {
		width: max-content !important;
		justify-content: start;
		height: auto !important;
	}
	.container-header .metismenu > li.item-1869 > ul.mm-collapse > li {
		padding: 0 !important;
		margin: 0 !important;
		height: auto !important;
	}
	.container-header .metismenu > li.item-1869 > ul.mm-collapse > li > button.nav-header {
		height: auto !important;
		min-height: 0 !important;
		line-height: 1.3 !important;
		position: static !important;
	}
	.container-header .metismenu > li.item-1869 > ul.mm-collapse > li > ul.mm-collapse > li {
		padding: 0 !important;
		margin: 0 !important;
	}
	.container-header .metismenu > li.item-1869 > ul.mm-collapse > li > ul.mm-collapse > li > a {
		white-space: normal;
	}
}

/* Colonnes du panneau groupé : largeur fixe, sans minimum hérité */
@media (min-width: 992px) {
	.container-header .metismenu > li.item-1869 > ul.mm-collapse > li,
	.container-header .metismenu > li.item-1869 > ul.mm-collapse > li > ul.mm-collapse {
		min-width: 0 !important;
		width: auto !important;
	}
}


/* Menu natif - ordinateur : logo à gauche, entrées centrées, icônes de compte à droite */
@media (min-width: 992px) {
	.container-header .container-nav,
	.container-header .navbar,
	.container-header .navbar-collapse { flex: 1; }
	.container-header .metismenu { width: 100%; }
	.container-header .metismenu > li:first-child { margin-left: auto !important; }
	.container-header .metismenu > li.item-1769 + li { margin-left: auto !important; } /* première icône après « Boutique » */
	.container-header .metismenu > li.item-1293 > a, .container-header .metismenu > li.item-1348 > a, .container-header .metismenu > li.item-1315 > a { padding-left: 8px !important; padding-right: 8px !important; }
}
/* Icônes Connexion / Profil / Déconnexion */
.container-header .metismenu .fa-solid {
	padding: 0 !important;
	font-size: 19px;
	line-height: 1;
}
.container-header .metismenu a:hover > .fa-solid { color: var(--ycib-accent); }
/* Sur mobile, le texte reste affiché à côté de l'icône */
@media (max-width: 991.98px) {
	.container-header .metismenu > li.item-1293 > a, .container-header .metismenu > li.item-1348 > a, .container-header .metismenu > li.item-1315 > a { display: flex !important; align-items: center; gap: 10px; }
	.container-header .metismenu a > .fa-solid + .visually-hidden {
		position: static !important;
		width: auto !important;
		height: auto !important;
		margin: 0 !important;
		clip: auto !important;
		clip-path: none !important;
		overflow: visible !important;
		white-space: normal !important;
	}
}

/* Mobile : chevron des intitulés à droite, comme pour les autres entrées */
@media (max-width: 991.98px) {
	.container-header .metismenu > li > button.mm-toggler-nolink {
		display: flex !important;
		width: 100% !important;
		flex: 1 1 100%;
		justify-content: space-between;
		align-items: center;
		padding-right: 31px !important;
	}
}

/* Mobile : logo à gauche, bouton à droite, menu déroulé sous la barre */
@media (max-width: 991.98px) {
	.container-header {
		display: flex;
		align-items: center;
		justify-content: space-between;
		padding: 8px 16px;
	}
	.container-header > .grid-child { margin: 0; padding: 0; max-width: none; width: auto; }
	.container-header .brand-logo img { height: 44px; }
	.container-header .navbar,
	.container-header .container-nav { padding: 0; position: static; }
	.container-header .navbar-collapse {
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		padding: 4px 20px 16px;
		background: linear-gradient(180deg, #16405f 0%, #12355b 100%);
		box-shadow: 0 12px 24px rgba(0, 0, 0, .2);
		max-height: calc(100vh - 70px);
		overflow-y: auto;
	}
	.container-header .metismenu { width: 100%; }
	.container-header .metismenu > li { width: 100%; }
	.container-header .metismenu .mm-collapse {
		position: static !important;
		background: transparent !important;
		box-shadow: none !important;
		border: 0 !important;
		min-width: 0 !important;
		columns: auto !important;
	}
	.container-header .navbar-toggler {
		color: #fff;
		border-color: rgba(255, 255, 255, .5);
	}
	.container-header .metismenu > li > a,
	.container-header .metismenu > li > button.mm-toggler-nolink {
		display: block;
		width: 100%;
		text-align: left;
		padding: 12px 4px;
		border-bottom: 1px solid rgba(255, 255, 255, .12);
	}
	.container-header .metismenu .mm-collapse { padding-left: 14px; }
	.container-header .metismenu .mm-collapse a { color: rgba(255, 255, 255, .9); display: block; padding: 8px 4px; }
	.container-header .metismenu .mm-collapse .nav-header { color: #9fd3dd; padding: 10px 4px 2px; }
}


/* Menu natif : logo jamais écrasé */
.container-header .navbar-brand { flex-shrink: 0; }
.container-header .brand-logo img { max-width: none !important; width: auto !important; }

/* Menu natif - mobile : chevron à droite de son entrée, sous-menu en dessous */
@media (max-width: 991.98px) {
	.container-header .metismenu > li.parent {
		display: flex;
		flex-wrap: wrap;
		align-items: stretch;
	}
	.container-header .metismenu > li.parent > a {
		flex: 1;
		width: auto;
	}
	.container-header .metismenu > li.parent > button.mm-toggler-link {
		flex: 0 0 48px;
		width: 48px;
		height: auto;
		margin: 0;
		padding: 0;
		border-bottom: 1px solid rgba(255, 255, 255, .12);
		position: static;
	}
	.container-header .metismenu > li.parent > ul.mm-collapse { flex-basis: 100%; }
}

/* --- Sous-navigation de section (Photos, Vidéos, Résultats, Pressbook) ----
   Modules Menu en position « top-a », classe de menu « ycib-subnav ».
   ------------------------------------------------------------------------- */
ul.mod-menu.ycib-subnav {
	display: flex;
	flex-direction: row !important;
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	gap: 8px;
	list-style: none;
	margin: 20px 0 0;
	padding: 0;
}
ul.ycib-subnav li { list-style: none; }
ul.ycib-subnav button { display: none !important; }
/* Pas de cadre autour de la sous-navigation : les pastilles suffisent */
.container-top-a .card:has(ul.ycib-subnav),
.container-top-a .moduletable:has(ul.ycib-subnav) { background: transparent; border: 0; box-shadow: none; }
ul.ycib-subnav > li > a,
ul.ycib-subnav > li > span,
ul.ycib-subnav ul a {
	display: inline-block;
	font-family: "Poppins", Roboto, sans-serif;
	font-size: 14px;
	font-weight: 500;
	padding: 6px 16px;
	border-radius: 999px;
	background: #fff;
	color: var(--ycib-navy);
	text-decoration: none;
	box-shadow: 0 2px 8px rgba(18, 53, 91, .08);
	transition: background .15s ease, color .15s ease;
}
ul.ycib-subnav a:hover { background: #eaf2f9; color: var(--ycib-navy); }
ul.ycib-subnav li.current > a,
ul.ycib-subnav li.active > a {
	background: var(--ycib-navy);
	color: #fff;
}
/* Sous-éléments (ex. années d'une période) : petites pastilles à la suite */
ul.ycib-subnav li:has(> ul) {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-wrap: wrap;
}
ul.ycib-subnav ul {
	display: flex;
	flex-wrap: wrap;
	gap: 4px;
	margin: 0;
	padding: 0;
}
ul.ycib-subnav ul a { font-size: 13px; padding: 4px 12px; box-shadow: none; border: 1px solid #dfe6ee; }
/* Liens « Accueil / Le club » déjà présents dans le menu principal */
ul.ycib-subnav .item-1233,
ul.ycib-subnav .item-1316,
ul.ycib-subnav .item-1343,
ul.ycib-subnav .item-1349,
ul.ycib-subnav .item-1350 { display: none; }


/* Menu natif - téléphone : texte lisible et grandes zones de tap */
@media (max-width: 991.98px) {
	.container-header .metismenu > li > a,
	.container-header .metismenu > li > button.mm-toggler-nolink {
		font-size: 16px !important;
		padding-top: 12px !important;
		padding-bottom: 12px !important;
		min-height: 48px;
	}
	.container-header .metismenu > li > button.mm-toggler-nolink {
		display: flex !important;
		width: 100% !important;
		justify-content: space-between;
		align-items: center;
		padding-left: 4px !important;
		padding-right: 18px !important;
		border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
	}
	.container-header .metismenu .mm-collapse a {
		font-size: 15px !important;
		padding: 11px 4px !important;
	}
	.container-header .metismenu .mm-collapse .nav-header,
	.container-header .metismenu ul.mm-collapse > li > button.nav-header {
		font-size: 12px !important;
		padding: 12px 4px 4px !important;
	}
	.container-header .metismenu .mm-toggler::after {
		width: 9px !important;
		height: 9px !important;
	}
	.container-header .navbar-toggler { padding: 8px 12px; font-size: 22px; }
}


/* Section active soulignée pour les intitulés (ignoré par les navigateurs anciens, sans conséquence) */
@media (min-width: 992px) {
	.container-header .metismenu > li:has(li.current, li.active, li.alias-parent-active) > button.mm-toggler-nolink {
		color: #fff;
		border-bottom-color: var(--ycib-accent);
	}
}

/* Menu natif : pas de soulignement des intitulés ; cadre de focus seulement au clavier */
.container-header .metismenu button.mm-toggler-nolink,
.container-header .metismenu button.mm-toggler-nolink:hover,
.container-header .metismenu button.mm-toggler-nolink:focus { text-decoration: none !important; }
.container-header .metismenu button:focus:not(:focus-visible),
.container-header .metismenu a:focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }


/* ==========================================================================
   Téléphone : texte plus grand sur tout le site
   ========================================================================== */
@media (max-width: 767.98px) {
	/* Taille de base 18 px au lieu de 16 px (tout ce qui est exprimé en rem suit) */
	html { font-size: 106.25%; }
	body.site { line-height: 1.6; }

	/* Petites tailles écrites en dur dans les articles (ex. 8pt ≈ 10,7 px) : ramenées au texte normal */
	.com-content-article__body [style*="font-size: 8pt"],
	.com-content-article__body [style*="font-size:8pt"],
	.com-content-article__body [style*="font-size: 9pt"],
	.com-content-article__body [style*="font-size:9pt"],
	.com-content-article__body [style*="font-size: 10pt"],
	.com-content-article__body [style*="font-size:10pt"],
	.com-content-article__body [style*="font-size: 11pt"],
	.com-content-article__body [style*="font-size:11pt"],
	.com-content-article__body [style*="font-size: 10px"],
	.com-content-article__body [style*="font-size:10px"],
	.com-content-article__body [style*="font-size: 11px"],
	.com-content-article__body [style*="font-size:11px"],
	.com-content-article__body [style*="font-size: 12px"],
	.com-content-article__body [style*="font-size:12px"],
	.com-content-article__body [style*="font-size: 13px"],
	.com-content-article__body [style*="font-size:13px"],
	.com-content-article__body [style*="font-size: 14px"],
	.com-content-article__body [style*="font-size:14px"],
	.com-content-article__body [style*="font-size: 0.7em"],
	.com-content-article__body [style*="font-size:0.7em"],
	.com-content-article__body [style*="font-size: 0.8em"],
	.com-content-article__body [style*="font-size:0.8em"],
	.com-content-article__body [style*="font-size: 0.75rem"],
	.com-content-article__body [style*="font-size:0.75rem"],
	.com-content-article__body [style*="font-size: 0.8rem"],
	.com-content-article__body [style*="font-size:0.8rem"],
	.com-content-article__body [style*="font-size: x-small"],
	.com-content-article__body [style*="font-size:x-small"],
	.com-content-article__body [style*="font-size: small"],
	.com-content-article__body [style*="font-size:small"],
	.com-content-article__body [style*="font-size: smaller"],
	.com-content-article__body [style*="font-size:smaller"],
	.item-content [style*="font-size: 8pt"],
	.item-content [style*="font-size:8pt"],
	.item-content [style*="font-size: 9pt"],
	.item-content [style*="font-size:9pt"],
	.item-content [style*="font-size: 10pt"],
	.item-content [style*="font-size:10pt"],
	.item-content [style*="font-size: 11pt"],
	.item-content [style*="font-size:11pt"],
	.item-content [style*="font-size: 10px"],
	.item-content [style*="font-size:10px"],
	.item-content [style*="font-size: 11px"],
	.item-content [style*="font-size:11px"],
	.item-content [style*="font-size: 12px"],
	.item-content [style*="font-size:12px"],
	.item-content [style*="font-size: 13px"],
	.item-content [style*="font-size:13px"],
	.item-content [style*="font-size: 14px"],
	.item-content [style*="font-size:14px"],
	.item-content [style*="font-size: 0.7em"],
	.item-content [style*="font-size:0.7em"],
	.item-content [style*="font-size: 0.8em"],
	.item-content [style*="font-size:0.8em"],
	.item-content [style*="font-size: 0.75rem"],
	.item-content [style*="font-size:0.75rem"],
	.item-content [style*="font-size: 0.8rem"],
	.item-content [style*="font-size:0.8rem"],
	.item-content [style*="font-size: x-small"],
	.item-content [style*="font-size:x-small"],
	.item-content [style*="font-size: small"],
	.item-content [style*="font-size:small"],
	.item-content [style*="font-size: smaller"],
	.item-content [style*="font-size:smaller"],
	.blog-item [style*="font-size: 8pt"],
	.blog-item [style*="font-size:8pt"],
	.blog-item [style*="font-size: 9pt"],
	.blog-item [style*="font-size:9pt"],
	.blog-item [style*="font-size: 10pt"],
	.blog-item [style*="font-size:10pt"],
	.blog-item [style*="font-size: 11pt"],
	.blog-item [style*="font-size:11pt"],
	.blog-item [style*="font-size: 10px"],
	.blog-item [style*="font-size:10px"],
	.blog-item [style*="font-size: 11px"],
	.blog-item [style*="font-size:11px"],
	.blog-item [style*="font-size: 12px"],
	.blog-item [style*="font-size:12px"],
	.blog-item [style*="font-size: 13px"],
	.blog-item [style*="font-size:13px"],
	.blog-item [style*="font-size: 14px"],
	.blog-item [style*="font-size:14px"],
	.blog-item [style*="font-size: 0.7em"],
	.blog-item [style*="font-size:0.7em"],
	.blog-item [style*="font-size: 0.8em"],
	.blog-item [style*="font-size:0.8em"],
	.blog-item [style*="font-size: 0.75rem"],
	.blog-item [style*="font-size:0.75rem"],
	.blog-item [style*="font-size: 0.8rem"],
	.blog-item [style*="font-size:0.8rem"],
	.blog-item [style*="font-size: x-small"],
	.blog-item [style*="font-size:x-small"],
	.blog-item [style*="font-size: small"],
	.blog-item [style*="font-size:small"],
	.blog-item [style*="font-size: smaller"],
	.blog-item [style*="font-size:smaller"],
	.mod-custom [style*="font-size: 8pt"],
	.mod-custom [style*="font-size:8pt"],
	.mod-custom [style*="font-size: 9pt"],
	.mod-custom [style*="font-size:9pt"],
	.mod-custom [style*="font-size: 10pt"],
	.mod-custom [style*="font-size:10pt"],
	.mod-custom [style*="font-size: 11pt"],
	.mod-custom [style*="font-size:11pt"],
	.mod-custom [style*="font-size: 10px"],
	.mod-custom [style*="font-size:10px"],
	.mod-custom [style*="font-size: 11px"],
	.mod-custom [style*="font-size:11px"],
	.mod-custom [style*="font-size: 12px"],
	.mod-custom [style*="font-size:12px"],
	.mod-custom [style*="font-size: 13px"],
	.mod-custom [style*="font-size:13px"],
	.mod-custom [style*="font-size: 14px"],
	.mod-custom [style*="font-size:14px"],
	.mod-custom [style*="font-size: 0.7em"],
	.mod-custom [style*="font-size:0.7em"],
	.mod-custom [style*="font-size: 0.8em"],
	.mod-custom [style*="font-size:0.8em"],
	.mod-custom [style*="font-size: 0.75rem"],
	.mod-custom [style*="font-size:0.75rem"],
	.mod-custom [style*="font-size: 0.8rem"],
	.mod-custom [style*="font-size:0.8rem"],
	.mod-custom [style*="font-size: x-small"],
	.mod-custom [style*="font-size:x-small"],
	.mod-custom [style*="font-size: small"],
	.mod-custom [style*="font-size:small"],
	.mod-custom [style*="font-size: smaller"],
	.mod-custom [style*="font-size:smaller"] {
		font-size: 1rem !important;
		line-height: 1.5 !important;
	}

	/* Barres d'outils et formulaires (ex. Le parcours du jour) : passage à la ligne autorisé */
	.com-content-article__body .header,
	.com-content-article__body .controls,
	.com-content-article__body form[style*="inline-flex"] {
		display: flex !important;
		flex-wrap: wrap !important;
		max-width: 100%;
	}
	.com-content-article__body select,
	.com-content-article__body input,
	.com-content-article__body textarea { max-width: 100%; }

	/* Tableaux larges (classements, résultats) : défilement du tableau seul, la page ne dézoome plus */
	.com-content-article__body table,
	.item-content table {
		display: block;
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}
}

/* Téléphone : tableaux à largeur fixe des modules (partenaires, pied de page) */
@media (max-width: 767.98px) {
	.mod-custom table,
	.moduletable table,
	.com-content-article__body table[style*="width"],
	.item-content table[style*="width"] {
		width: auto !important;
		max-width: 100% !important;
		height: auto !important;
	}
	.mod-custom td,
	.moduletable td,
	.com-content-article__body td,
	.item-content td {
		overflow-wrap: anywhere;
		height: auto !important;
	}
	.mod-custom img,
	.moduletable img { max-width: 100%; height: auto; }
}

/* Téléphone : « Régates » (lien + chevron) — taper n'importe où sur la ligne ouvre le sous-menu.
   Sans effet le jour où l'élément devient un simple intitulé. */
@media (max-width: 991.98px) {
	.container-header .metismenu > li.item-1869 { position: relative; display: block !important; }
	.container-header .metismenu > li.item-1869 > a { display: block !important; width: 100% !important; flex: none !important; }
	.container-header .metismenu > li.item-1869 > ul.mm-collapse { width: 100%; }
	.container-header .metismenu > li.item-1869 > button.mm-toggler-link {
		position: absolute !important;
		top: 0;
		left: 0;
		right: 0;
		width: 100% !important;
		height: 52px !important;
		display: flex !important;
		justify-content: flex-end;
		align-items: center;
		padding: 0 34px 0 0 !important;
		background: transparent !important;
		border: 0 !important;
		z-index: 2;
	}
}


/* Téléphone : menu plus compact (espacements verticaux réduits) */
@media (max-width: 991.98px) {
	.container-header .navbar-collapse { padding-top: 0 !important; padding-bottom: 8px !important; }
	.container-header .metismenu > li { margin: 0 !important; padding: 0 !important; }
	.container-header .metismenu > li > a,
	.container-header .metismenu > li > button.mm-toggler-nolink {
		padding-top: 9px !important;
		padding-bottom: 9px !important;
		min-height: 0 !important;
		line-height: 1.35 !important;
	}
	.container-header .metismenu .mm-collapse { margin: 0 !important; padding-top: 2px !important; padding-bottom: 6px !important; }
	.container-header .metismenu .mm-collapse li { margin: 0 !important; padding: 0 !important; }
	.container-header .metismenu .mm-collapse a {
		padding-top: 6px !important;
		padding-bottom: 6px !important;
		line-height: 1.35 !important;
	}
	.container-header .metismenu .mm-collapse .nav-header,
	.container-header .metismenu ul.mm-collapse > li > button.nav-header {
		padding-top: 8px !important;
		padding-bottom: 2px !important;
		line-height: 1.3 !important;
	}
	/* « Régates » : le lien ne réagit plus au toucher, seul le sous-menu s'ouvre */
	.container-header .metismenu > li.item-1869 > a { pointer-events: none; }
	.container-header .metismenu > li.item-1869 > button.mm-toggler-link { height: 100% !important; max-height: 44px; }
}

/* Téléphone : retrait des sous-menus et chevron de « Régates » aligné */
@media (max-width: 991.98px) {
	.container-header .metismenu > li > ul.mm-collapse { padding-left: 18px !important; }
	.container-header .metismenu > li > ul.mm-collapse ul.mm-collapse { padding-left: 0 !important; }
	.container-header .metismenu ul.mm-collapse ul.mm-collapse a { padding-left: 12px !important; }
	.container-header .metismenu > li.item-1869 > button.mm-toggler-link { padding-right: 16px !important; }
}

/* Téléphone : le menu déroulé tient dans la partie réellement visible de l'écran
   (100vh inclut la zone cachée par la barre du navigateur ; dvh ne la compte pas) */
@media (max-width: 991.98px) {
	.container-header .navbar-collapse {
		max-height: calc(100vh - 140px) !important;
		max-height: calc(100dvh - 80px) !important;
		overflow-y: auto !important;
		overscroll-behavior: contain;
		padding-bottom: 32px !important;
	}
}

/* PC : sous-menus uniquement au survol (un clic ne les bloque plus ouverts) */
@media (min-width: 992px) {
	.container-header .metismenu > li.parent > ul.mm-collapse,
	.container-header .metismenu > li.parent > ul.mm-collapse.mm-show {
		display: none !important;
	}
	.container-header .metismenu > li.parent:hover > ul.mm-collapse {
		display: block !important;
	}
	.container-header .metismenu > li.item-1869:hover > ul.mm-collapse {
		display: grid !important;
	}
	/* Chevron : suit le survol, pas le clic */
	.container-header .metismenu > li.parent.mm-active > .mm-toggler::after {
		transform: rotate(45deg) translateY(-2px) !important;
	}
	.container-header .metismenu > li.parent:hover > .mm-toggler::after {
		transform: rotate(-135deg) translateY(-2px) !important;
	}
	/* « Régates » : le titre n'ouvre plus de page, le panneau s'ouvre au survol */
	.container-header .metismenu > li.item-1869 > a {
		pointer-events: none;
	}
	/* Main au survol, comme les autres entrées */
	.container-header .metismenu > li.item-1869 { cursor: pointer; }
}
/* Navigation au clavier (Tab) : le sous-menu de l'entrée ciblée s'affiche */
@media (min-width: 992px) {
	.container-header .metismenu > li.parent:has(> :focus-visible) > ul.mm-collapse,
	.container-header .metismenu > li.parent:has(ul :focus-visible) > ul.mm-collapse {
		display: block !important;
	}
	.container-header .metismenu > li.item-1869:has(> :focus-visible) > ul.mm-collapse,
	.container-header .metismenu > li.item-1869:has(ul :focus-visible) > ul.mm-collapse {
		display: grid !important;
	}
}

/* Chevrons inversés : vers le haut quand le sous-menu est fermé, vers le bas quand il est ouvert */
.container-header .metismenu .mm-toggler::after {
	transform: rotate(-135deg) translate(-2px, -2px) !important;
}
/* Téléphone : entrée dépliée */
.container-header .metismenu li.mm-active > .mm-toggler::after {
	transform: rotate(45deg) translateY(-2px) !important;
}
/* PC : seul le survol ouvre le sous-menu */
@media (min-width: 992px) {
	.container-header .metismenu > li.parent.mm-active > .mm-toggler::after {
		transform: rotate(-135deg) translate(-2px, -2px) !important;
	}
	.container-header .metismenu > li.parent:hover > .mm-toggler::after {
		transform: rotate(45deg) translateY(-2px) !important;
	}
}

/* ==========================================================================
   CHARTE GRAPHIQUE DES ARTICLES
   Page article : classe .ycib-charte (posée par la surcharge du gabarit)
   Accueil / blogs : image d'introduction avec la classe .ycib-photo-carte
   ========================================================================== */

/* --- Page article : photo en haut à gauche, titre et texte à droite puis dessous --- */
.ycib-charte::after { content: ""; display: block; clear: both; }
.ycib-charte .ycib-photo {
	float: left;
	width: 40%;
	max-width: 380px;
	margin: 0 32px 18px 0;
}
.ycib-charte .ycib-photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 12px;
	box-shadow: 0 6px 18px rgba(18, 53, 91, .15);
}
.ycib-charte .page-header { margin: 0 0 6px; }
.ycib-charte .page-header h1,
.ycib-charte .page-header h2 {
	font-size: clamp(1.6rem, 1.15rem + 1.4vw, 2.25rem);
	margin: 0;
	color: var(--ycib-navy);
}
.ycib-charte .com-content-article__body > :first-child { margin-top: 0; }

/* --- Éléments communs (page article et cartes) --- */
.ycib-charte h2,
.blog-item .item-content h2:not(.item-title) {
	font-size: 1.3rem;
	color: var(--ycib-teal);
	margin: 1.4rem 0 .5rem;
}
.ycib-charte .com-content-article__body > h2:first-child { margin-top: .2rem; }
.ycib-chapo {
	font-size: 1.12em;
	font-weight: 500;
	color: var(--ycib-navy);
	line-height: 1.55;
}
.ycib-infos {
	display: flow-root;
	background: #eaf4f7;
	border-left: 4px solid var(--ycib-teal);
	border-radius: 8px;
	padding: 10px 16px;
	margin: 1rem 0;
}
.ycib-infos p { margin: .25rem 0; }
.ycib-programme { padding-left: 1.2rem; }
.ycib-programme li { margin: .35rem 0; }
.ycib-boutons {
	clear: both;
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 1.5rem 0 .5rem;
}
.ycib-boutons a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 9px 18px;
	border-radius: 999px;
	background: var(--ycib-navy);
	color: #fff !important;
	font-family: "Poppins", Roboto, sans-serif;
	font-size: .95rem;
	font-weight: 500;
	text-decoration: none;
	transition: background .15s ease, transform .15s ease;
}
.ycib-boutons a::before {
	content: "\f15b";                 /* icône document (Font Awesome) */
	font-family: "Font Awesome 6 Free";
	font-weight: 900;
	font-size: .9em;
}
.ycib-boutons a:hover { background: var(--ycib-teal); transform: translateY(-1px); }
.ycib-galerie {
	clear: both;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 12px;
	margin: 1.5rem 0 .5rem;
}
.ycib-galerie img {
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 10px;
}

/* --- Accueil et blogs : carte horizontale, photo à gauche --- */
.blog-item > figure.ycib-photo-carte {
	float: left;
	width: 36%;
	max-width: 340px;
	margin: 28px 0 24px 32px;
}
.blog-item > figure.ycib-photo-carte img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	border-radius: 12px;
}
.blog-item > figure.ycib-photo-carte + .item-content { overflow: hidden; }
.blog-item > figure.ycib-photo-carte + .item-content .item-title {
	font-size: clamp(1.3rem, 1.05rem + .8vw, 1.7rem);
	margin: 0 0 .4rem;
}
.blog-item > figure.ycib-photo-carte + .item-content .item-title a { color: var(--ycib-navy); text-decoration: none; }
.blog-item > figure.ycib-photo-carte + .item-content .item-title a:hover { color: var(--ycib-teal); }

/* --- Téléphone : photo en pleine largeur au-dessus du titre --- */
@media (max-width: 767.98px) {
	.ycib-charte .ycib-photo,
	.blog-item > figure.ycib-photo-carte {
		float: none;
		width: auto;
		max-width: none;
		margin: 0 0 16px;
	}
	.blog-item > figure.ycib-photo-carte { margin: 18px 18px 0; }
	.blog-item > figure.ycib-photo-carte + .item-content { overflow: visible; }
}

/* Cartes de la charte : disposition normale (Cassiopeia les met en colonne flexible, ce qui empêche l'habillage) */
.blog-item:has(> figure.ycib-photo-carte) { display: block !important; }
.blog-item:has(> figure.ycib-photo-carte)::after { content: ""; display: block; clear: both; }
