/* =========================================================================
   Chez Donald Elements — styles des widgets (préfixe cdw-).
   S'appuie sur les tokens du thème (:root --cd-*) avec valeurs de repli.
   ========================================================================= */

.cdw-hero, .cdw-about, .cdw-classes, .cdw-features, .cdw-stats, .cdw-cta,
.cdw-team, .cdw-testimonials, .cdw-pricing, .cdw-schedule, .cdw-gallery,
.cdw-login, .cdw-contact {
	--blue: var(--cd-blue, #1d6fb8);
	--navy: var(--cd-navy, #16324f);
	--sun: var(--cd-sun, #ffc93c);
	--orange: var(--cd-orange, #f59e2d);
	--red: var(--cd-red, #e8543f);
	--sky: var(--cd-sky, #7ec8f2);
	--cream: var(--cd-cream, #fff9ef);
	--ink: var(--cd-ink, #22344a);
	--muted: var(--cd-muted, #64748b);
	--radius: var(--cd-radius, 22px);
	--shadow: var(--cd-shadow, 0 10px 30px rgba(22, 50, 79, .1));
	font-family: var(--cd-font-body, 'Nunito', sans-serif);
}

.cdw-section-head { text-align: center; max-width: 640px; margin: 0 auto 34px; }
.cdw-eyebrow {
	display: inline-block;
	font-family: var(--cd-font-display, 'Baloo 2', sans-serif);
	font-weight: 700; font-size: 15px;
	color: var(--orange);
	background: rgba(245, 158, 45, .12);
	border-radius: 999px; padding: 4px 16px; margin-bottom: 8px;
}
.cdw-empty { text-align: center; color: var(--muted); font-style: italic; }

/* ---- Héro ---- */
.cdw-hero { position: relative; overflow: hidden; padding: 64px 22px 84px; }
.cdw-hero-in { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1.1fr .9fr; gap: 44px; align-items: center; position: relative; z-index: 2; }
.cdw-hero-title { font-size: clamp(32px, 5vw, 54px); font-weight: 800; margin: 14px 0 16px; }
.cdw-hero-text { font-size: 18px; color: var(--muted); max-width: 480px; }
.cdw-hero-actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 24px; }
.cdw-badge {
	display: inline-block; background: #fff; border: 2px solid var(--sun);
	border-radius: 999px; padding: 6px 18px;
	font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-weight: 700; font-size: 14.5px; color: var(--navy);
}
.cdw-hero-media img {
	width: 100%; border-radius: 34px; box-shadow: var(--shadow);
	border: 8px solid #fff;
	transform: rotate(2deg);
}
.cdw-hero-shapes { position: absolute; inset: 0; pointer-events: none; }
.cdw-shape { position: absolute; border-radius: 50%; }
.cdw-shape-sun { width: 180px; height: 180px; background: radial-gradient(circle, var(--sun) 58%, transparent 59%); top: -60px; right: 8%; opacity: .9; }
.cdw-shape-cloud { width: 260px; height: 120px; background: var(--sky); opacity: .18; border-radius: 999px; bottom: 30px; left: -80px; }
.cdw-shape-dot { width: 26px; height: 26px; background: var(--red); opacity: .5; top: 42%; left: 46%; }

/* ---- À propos ---- */
.cdw-about { max-width: 1200px; margin: 0 auto; padding: 56px 22px; display: grid; grid-template-columns: .95fr 1.05fr; gap: 50px; align-items: center; }
.cdw-about-media { position: relative; }
.cdw-about-media img { width: 100%; border-radius: var(--radius); box-shadow: var(--shadow); }
.cdw-about-badge {
	position: absolute; bottom: -18px; right: -12px;
	background: var(--sun); color: var(--navy);
	border-radius: 18px; padding: 14px 22px; text-align: center;
	font-family: var(--cd-font-display, 'Baloo 2', sans-serif);
	box-shadow: var(--shadow); line-height: 1.15;
}
.cdw-about-badge strong { display: block; font-size: 24px; font-weight: 800; }
.cdw-facts { list-style: none; margin: 18px 0 24px; padding: 0; display: grid; gap: 10px; }
.cdw-facts li {
	display: flex; justify-content: space-between; gap: 14px; align-items: center;
	background: #fff; border-radius: 14px; padding: 12px 18px; box-shadow: 0 3px 12px rgba(22, 50, 79, .06);
}
.cdw-facts strong { font-family: var(--cd-font-display, 'Baloo 2', sans-serif); color: var(--navy); }
.cdw-facts span { color: var(--muted); font-size: 14.5px; }

/* ---- Nos classes ---- */
.cdw-classes { max-width: 1200px; margin: 0 auto; padding: 56px 22px; }
.cdw-classes-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 22px; }
.cdw-class-card {
	background: #fff; border-radius: var(--radius); overflow: hidden;
	box-shadow: var(--shadow); border-top: 6px solid var(--blue);
	display: flex; flex-direction: column;
	transition: transform .18s ease;
}
.cdw-class-card:hover { transform: translateY(-6px); }
.cdw-class-card.is-sun { border-top-color: var(--sun); }
.cdw-class-card.is-orange { border-top-color: var(--orange); }
.cdw-class-card.is-red { border-top-color: var(--red); }
.cdw-class-card.is-sky { border-top-color: var(--sky); }
.cdw-class-photo img { display: block; width: 100%; height: 190px; object-fit: cover; }
.cdw-class-body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.cdw-class-body h3 { margin: 0; font-size: 19px; }
.cdw-class-body p { margin: 0; color: var(--muted); font-size: 14.5px; flex: 1; }
.cdw-class-age {
	align-self: flex-start;
	font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-weight: 700; font-size: 13.5px;
	background: var(--cream); border-radius: 999px; padding: 4px 14px; color: var(--navy);
}

/* ---- Points forts ---- */
.cdw-features { max-width: 1200px; margin: 0 auto; padding: 42px 22px; display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 20px; }
.cdw-feature { background: #fff; border-radius: var(--radius); padding: 26px 24px; box-shadow: var(--shadow); text-align: center; }
.cdw-feature-emoji { font-size: 40px; display: inline-block; margin-bottom: 10px; }
.cdw-feature h3 { margin: 0 0 6px; font-size: 18px; }
.cdw-feature p { margin: 0; color: var(--muted); font-size: 14.5px; }

/* ---- Chiffres clés ---- */
.cdw-stats {
	background: var(--blue);
	background-image: radial-gradient(circle at 90% 20%, rgba(255, 201, 60, .25) 0 70px, transparent 71px);
	border-radius: var(--radius);
	max-width: 1160px; margin: 40px auto; padding: 44px 30px;
	display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 26px;
	text-align: center;
}
.cdw-stat-value, .cdw-stat-suffix {
	font-family: var(--cd-font-display, 'Baloo 2', sans-serif);
	font-size: 42px; font-weight: 800; color: #fff;
}
.cdw-stat-label { display: block; color: rgba(255, 255, 255, .85); font-size: 14.5px; margin-top: 2px; }

/* ---- CTA ---- */
.cdw-cta { border-radius: var(--radius); max-width: 1160px; margin: 40px auto; overflow: hidden; }
.cdw-cta.is-sun { background: var(--sun); }
.cdw-cta.is-blue { background: var(--blue); }
.cdw-cta.is-red { background: var(--red); }
.cdw-cta-in { padding: 40px 44px; display: flex; align-items: center; justify-content: space-between; gap: 26px; flex-wrap: wrap; }
.cdw-cta.is-sun h2, .cdw-cta.is-sun p { color: var(--navy); }
.cdw-cta.is-blue h2, .cdw-cta.is-red h2 { color: #fff; }
.cdw-cta.is-blue p, .cdw-cta.is-red p { color: rgba(255, 255, 255, .9); }
.cdw-cta h2 { margin: 0 0 6px; }
.cdw-cta p { margin: 0; max-width: 560px; }

/* ---- Équipe ---- */
.cdw-team { max-width: 1200px; margin: 0 auto; padding: 56px 22px; }
.cdw-team-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 24px; text-align: center; }
.cdw-member-photo img, .cdw-member-placeholder {
	width: 150px; height: 150px; border-radius: 50%; object-fit: cover;
	border: 6px solid #fff; box-shadow: var(--shadow);
}
.cdw-member-placeholder { display: inline-flex; align-items: center; justify-content: center; font-size: 56px; background: var(--cream); }
.cdw-member h3 { margin: 12px 0 2px; font-size: 18px; }
.cdw-member-role { color: var(--orange); font-weight: 700; font-size: 14px; }

/* ---- Témoignages ---- */
.cdw-testimonials { max-width: 780px; margin: 0 auto; padding: 56px 22px; }
.cdw-quotes { position: relative; }
.cdw-quote {
	display: none; margin: 0;
	background: #fff; border-radius: var(--radius); box-shadow: var(--shadow);
	padding: 34px 38px 28px; text-align: center; position: relative;
}
.cdw-quote.is-active { display: block; }
.cdw-quote-mark {
	position: absolute; top: -26px; left: 50%; transform: translateX(-50%);
	width: 52px; height: 52px; border-radius: 50%;
	background: var(--sun); color: var(--navy);
	font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 34px; font-weight: 800;
	display: flex; align-items: center; justify-content: center; line-height: 1;
}
.cdw-quote p { font-size: 17px; margin: 12px 0 16px; }
.cdw-quote footer strong { display: block; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); color: var(--navy); }
.cdw-quote footer span { color: var(--muted); font-size: 14px; }
.cdw-quotes-nav { display: flex; justify-content: center; gap: 10px; margin-top: 18px; }
.cdw-quotes-nav button {
	width: 44px; height: 44px; border-radius: 50%; border: 2px solid var(--blue);
	background: #fff; color: var(--blue); font-size: 18px; cursor: pointer;
}
.cdw-quotes-nav button:hover { background: var(--blue); color: #fff; }

/* ---- Tarifs ---- */
.cdw-pricing { max-width: 1160px; margin: 0 auto; padding: 56px 22px; }
.cdw-pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; align-items: stretch; }
.cdw-plan {
	background: #fff; border-radius: var(--radius); box-shadow: var(--shadow);
	padding: 30px 28px; position: relative; border: 3px solid transparent;
}
.cdw-plan.is-featured { border-color: var(--sun); }
.cdw-plan-flag {
	position: absolute; top: -15px; left: 50%; transform: translateX(-50%);
	background: var(--sun); color: var(--navy); border-radius: 999px; padding: 4px 16px;
	font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-weight: 700; font-size: 13px;
}
.cdw-plan h3 { margin: 0 0 8px; }
.cdw-plan-price strong { font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 26px; color: var(--blue); }
.cdw-plan-price span { color: var(--muted); font-size: 14px; }
.cdw-plan ul { list-style: none; margin: 14px 0 0; padding: 0; display: grid; gap: 8px; }
.cdw-plan li { padding-left: 26px; position: relative; font-size: 15px; }
.cdw-plan li::before { content: '✓'; position: absolute; left: 0; color: var(--orange); font-weight: 800; }
.cdw-pricing-note { text-align: center; color: var(--muted); font-size: 14px; margin-top: 22px; }

/* ---- Horaires ---- */
.cdw-schedule { max-width: 960px; margin: 0 auto; padding: 56px 22px; }
.cdw-schedule-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 24px; }
.cdw-schedule-card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 26px 28px; }
.cdw-schedule-card h3 { margin: 0 0 14px; }
.cdw-schedule-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.cdw-schedule-card li {
	display: flex; justify-content: space-between; gap: 12px;
	border-bottom: 2px dashed var(--cream); padding-bottom: 8px; font-size: 15px;
}
.cdw-schedule-card li span { color: var(--muted); }
.cdw-schedule-card li strong { font-family: var(--cd-font-display, 'Baloo 2', sans-serif); color: var(--navy); }

/* ---- Galerie ---- */
.cdw-gallery { max-width: 1200px; margin: 0 auto; padding: 56px 22px; }
.cdw-gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.cdw-gallery-item { display: block; border-radius: 18px; overflow: hidden; box-shadow: var(--shadow); }
.cdw-gallery-item img { display: block; width: 100%; height: 210px; object-fit: cover; transition: transform .25s ease; }
.cdw-gallery-item:hover img { transform: scale(1.05); }

/* ---- Connexion parents (espace membre, assorti au portail) ---- */
.cdw-login { max-width: 520px; margin: 0 auto; padding: 56px 22px; }
.cdw-login-card {
	background: #fff; border-radius: var(--radius); box-shadow: var(--shadow);
	padding: 36px 34px; text-align: center;
	border-top: 6px solid var(--sun);
}
.cdw-login-emoji { font-size: 44px; }
.cdw-login-card h2 { margin: 8px 0 6px; }
.cdw-login-card > p { color: var(--muted); font-size: 15px; }
.cdw-login-form form { text-align: left; margin-top: 18px; }
.cdw-login-form form p { margin: 0 0 14px; }
.cdw-login-form label { display: block; font-weight: 700; color: var(--navy); margin-bottom: 6px; font-size: 14.5px; }
.cdw-login-form input[type="text"], .cdw-login-form input[type="password"] {
	width: 100%; box-sizing: border-box;
	border: 2px solid var(--cream); border-radius: 12px; padding: 12px 15px; font-size: 15px;
}
.cdw-login-form input[type="text"]:focus, .cdw-login-form input[type="password"]:focus { border-color: var(--blue); outline: 2px solid rgba(29, 111, 184, .18); }
.cdw-login-form .login-remember { display: flex; align-items: center; gap: 8px; }
.cdw-login-form .login-remember label { display: flex; align-items: center; gap: 8px; margin: 0; font-weight: 600; }
.cdw-login-form input[type="submit"] {
	width: 100%; border: 0; cursor: pointer;
	background: var(--orange); color: #fff;
	border-radius: 999px; padding: 13px;
	font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-weight: 700; font-size: 16px;
}
.cdw-login-form input[type="submit"]:hover { background: var(--red); }
.cdw-login-links-row { margin: 12px 0 0; font-size: 14.5px; }
.cdw-login-signup { margin-top: 18px; padding-top: 16px; border-top: 2px dashed var(--cream); font-size: 14px; color: var(--muted); }
.cdw-login-welcome { margin-top: 16px; }
.cdw-login-links { display: flex; flex-direction: column; gap: 10px; margin-top: 14px; }

/* ---- Coordonnées ---- */
.cdw-contact { max-width: 1160px; margin: 0 auto; padding: 56px 22px; }
.cdw-contact-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.cdw-contact-card { background: #fff; border-radius: var(--radius); box-shadow: var(--shadow); padding: 24px; text-align: center; }
.cdw-contact-emoji { font-size: 34px; }
.cdw-contact-card h3 { margin: 8px 0 6px; font-size: 17px; }
.cdw-contact-card p { margin: 0; color: var(--muted); font-size: 14.5px; }
.cdw-contact-map { margin-top: 26px; border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); }
.cdw-contact-map iframe { display: block; width: 100%; min-height: 380px; border: 0; }

/* ---- Responsive ---- */
@media (max-width: 900px) {
	.cdw-hero-in, .cdw-about { grid-template-columns: 1fr; }
	.cdw-hero-media { order: -1; }
	.cdw-hero-media img { max-width: 420px; margin: 0 auto; display: block; }
	.cdw-cta-in { flex-direction: column; text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
	.cdw-class-card, .cdw-gallery-item img { transition: none; }
}

/* =========================================================================
   En-tête / Pied de page / Barre mobile (Theme Builder).
   ========================================================================= */

/* ---- En-tête ---- */
.cd-eheader { width: 100%; }
.cd-eheader.is-sticky { position: sticky; top: 0; z-index: 100; }
.cd-eheader-topbar { background: var(--cd-navy, #16324f); color: #dbe7f3; font-size: 13.5px; }
.cd-eheader-topbar .cd-topbar-in { display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 7px 22px; flex-wrap: wrap; }
.cd-eheader-topbar a { color: #dbe7f3; text-decoration: none; }
.cd-eheader-topbar a:hover { color: var(--cd-sun, #ffc93c); }
.cd-eheader-topbar .cd-topbar-hours { color: var(--cd-sun, #ffc93c); font-weight: 600; }
.cd-eheader-main { background: #fff; box-shadow: 0 2px 14px rgba(22, 50, 79, .07); }
.cd-eheader-main .cd-header-in { display: flex; align-items: center; justify-content: space-between; gap: 22px; min-height: 82px; padding: 8px 22px; }
.cd-eheader .cd-brand img { max-height: 62px; width: auto; }
.cd-eheader .cd-nav-list { display: flex; gap: 4px; list-style: none; margin: 0; padding: 0; }
.cd-eheader .cd-nav-list a { display: block; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-weight: 700; font-size: 15.5px; color: var(--cd-navy, #16324f); text-decoration: none; padding: 10px 15px; border-radius: 999px; transition: background .15s ease, color .15s ease; }
.cd-eheader .cd-nav-list a:hover, .cd-eheader .cd-nav-list .current-menu-item > a { background: var(--cd-sun, #ffc93c); color: var(--cd-navy, #16324f); }
.cd-eheader .cd-nav-list li { position: relative; }
.cd-eheader .cd-nav-list .sub-menu { display: none; position: absolute; background: #fff; border-radius: 14px; box-shadow: var(--cd-shadow, 0 10px 30px rgba(22,50,79,.1)); padding: 8px; list-style: none; min-width: 200px; z-index: 5; }
.cd-eheader .cd-nav-list li:hover > .sub-menu, .cd-eheader .cd-nav-list li:focus-within > .sub-menu { display: block; }
.cd-eheader-portal { white-space: nowrap; }

/* ---- Pied de page ---- */
.cd-efooter { background: var(--cd-navy, #16324f); color: #cfe0ef; }
.cd-efooter .cd-scallop { margin-top: -26px; }
.cd-efooter .cd-footer-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 34px; padding: 48px 22px 40px; max-width: 1200px; margin: 0 auto; }
.cd-efooter .cd-foot-title { color: var(--cd-sun, #ffc93c); font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-weight: 700; font-size: 18px; }
.cd-efooter a { color: #cfe0ef; }
.cd-efooter a:hover { color: var(--cd-sun, #ffc93c); }
.cd-efooter .cd-footer-logo img { max-height: 66px; width: auto; background: #fff; border-radius: 14px; padding: 8px 14px; }
.cd-efooter .cd-footer-menu { list-style: none; margin: 0 0 16px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.cd-efooter .cd-footer-menu a { text-decoration: none; font-weight: 600; }
.cd-efooter .cd-footer-bottom { border-top: 1px solid rgba(255, 255, 255, .12); font-size: 13.5px; }
.cd-efooter .cd-footer-bottom .cd-container { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 22px; max-width: 1200px; margin: 0 auto; }
/* Accordéon : sur desktop, on neutralise complètement le comportement details.
   Sans cette règle, les colonnes sans attribut « open » (Contact, Liens rapides)
   restent repliées et leur contenu n'apparaît jamais sur grand écran. */
.cd-foot-acc > summary { list-style: none; cursor: default; }
.cd-foot-acc > summary::-webkit-details-marker { display: none; }
.cd-foot-acc > summary::marker { content: ''; }
.cd-foot-caret { display: none; }
.cd-foot-body { margin-top: 12px; }
@media (min-width: 981px) {
	/* Le contenu est toujours visible, que le details soit ouvert ou non. */
	.cd-foot-acc > .cd-foot-body { display: block !important; }
}

/* ---- Barre mobile fixe (cachée desktop) ---- */
.cd-mobilebar { display: none; }

/* =========================================================================
   Responsive — bascule mobile du header/footer/barre.
   ========================================================================= */
@media (max-width: 980px) {
	/* Header : topbar + menu masqués, bouton portail conservé. */
	.cd-eheader-topbar { display: none; }
	.cd-eheader .cd-nav { display: none; }
	.cd-eheader-main .cd-header-in { min-height: 68px; }
	.cd-eheader .cd-brand img { max-height: 52px; }

	/* Footer : colonnes en accordéons. */
	.cd-efooter .cd-footer-grid { grid-template-columns: 1fr; gap: 0; padding: 20px 18px 30px; }
	.cd-foot-acc { border-bottom: 1px solid rgba(255, 255, 255, .12); }
	.cd-foot-acc > summary { display: flex; align-items: center; justify-content: space-between; cursor: pointer; padding: 16px 4px; }
	.cd-foot-caret { display: block; width: 10px; height: 10px; border-right: 2px solid #cfe0ef; border-bottom: 2px solid #cfe0ef; transform: rotate(45deg); transition: transform .2s ease; }
	.cd-foot-acc[open] .cd-foot-caret { transform: rotate(-135deg); }
	.cd-foot-body { margin-top: 0; padding: 0 4px 16px; }

	/* Barre mobile fixe. */
	.cd-mobilebar { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 150; background: #fff; box-shadow: 0 -4px 20px rgba(22, 50, 79, .14); padding-bottom: env(safe-area-inset-bottom, 0); }
	.cd-mobilebar ul { display: flex; justify-content: space-around; align-items: flex-end; list-style: none; margin: 0; padding: 6px 4px; }
	.cd-mobilebar li { flex: 1; text-align: center; }
	.cd-mobilebar a { display: flex; flex-direction: column; align-items: center; gap: 3px; text-decoration: none; color: #64748b; font-family: var(--cd-font-body, 'Nunito', sans-serif); font-size: 11px; font-weight: 600; padding: 4px 2px; }
	.cd-mobilebar .cd-mb-ico svg { width: 24px; height: 24px; }
	.cd-mobilebar li.is-active a { color: var(--cd-blue, #1d6fb8); }
	/* Item central mis en avant (FAB). */
	.cd-mobilebar .cd-mb-featured { position: relative; }
	.cd-mobilebar .cd-mb-featured a { color: #fff; }
	.cd-mobilebar .cd-mb-featured .cd-mb-ico { width: 58px; height: 58px; margin-top: -28px; border-radius: 50%; background: var(--cd-sun, #ffc93c); display: flex; align-items: center; justify-content: center; box-shadow: 0 6px 16px rgba(245, 158, 45, .4); border: 4px solid #fff; }
	.cd-mobilebar .cd-mb-featured .cd-mb-ico svg { width: 28px; height: 28px; color: var(--cd-navy, #16324f); }
	.cd-mobilebar .cd-mb-featured .cd-mb-label { color: var(--cd-navy, #16324f); font-weight: 700; }

	/* Décoller le contenu pour ne pas masquer sous la barre. */
	body.cd-has-mobilebar { padding-bottom: 74px; }
}

@media (prefers-reduced-motion: reduce) {
	.cd-foot-caret { transition: none; }
}

/* =========================================================================
   Événements (calendrier) · Newsletter · Actualités (shortcode cd_news)
   ========================================================================= */

/* ---- Événements ---- */
.cdw-events-sec { max-width: 1000px; margin: 0 auto; padding: 56px 22px; }
.cdw-events { display: grid; gap: 14px; }
.cdw-event { display: flex; gap: 18px; align-items: center; background: #fff; border: 1px solid #eef2f6; border-radius: 16px; padding: 16px 20px; box-shadow: 0 4px 16px rgba(22, 50, 79, .05); }
.cdw-event-date { flex: 0 0 66px; height: 66px; border-radius: 14px; background: var(--cd-sun, #ffc93c); color: var(--cd-navy, #16324f); display: flex; flex-direction: column; align-items: center; justify-content: center; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); line-height: 1; }
.cdw-event-date span:first-child { font-size: 26px; font-weight: 800; }
.cdw-event-date span:last-child { font-size: 12px; text-transform: uppercase; letter-spacing: .04em; }
.cdw-event-body strong { display: block; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 17px; color: var(--cd-navy, #16324f); }
.cdw-event-meta { display: inline-block; font-size: 13px; color: var(--cd-blue, #1d6fb8); font-weight: 600; margin: 2px 0; }
.cdw-event-body p { margin: 4px 0 0; color: #64748b; font-size: 14.5px; }

/* ---- Newsletter ---- */
.cdw-newsletter { background: linear-gradient(120deg, var(--cd-blue, #1d6fb8), #2a86d6); }
.cdw-newsletter-in { max-width: 1000px; margin: 0 auto; padding: 40px 22px; display: flex; align-items: center; gap: 22px; flex-wrap: wrap; }
.cdw-newsletter-bell { font-size: 40px; }
.cdw-newsletter-copy { flex: 1; min-width: 220px; color: #fff; }
.cdw-newsletter-copy h2 { margin: 0 0 4px; color: #fff; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); }
.cdw-newsletter-copy p { margin: 0; color: rgba(255, 255, 255, .9); }
.cdw-newsletter-form { display: flex; gap: 8px; flex-wrap: wrap; }
.cdw-newsletter-form input[type="email"] { border: 0; border-radius: 999px; padding: 13px 20px; min-width: 240px; font-family: var(--cd-font-body, 'Nunito', sans-serif); }
.cdw-newsletter-form .cd-btn { border: 0; cursor: pointer; }

/* ---- Actualités (shortcode cd_news) ---- */
.cdw-news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.cdw-news-card { background: #fff; border: 1px solid #eef2f6; border-radius: 18px; overflow: hidden; box-shadow: 0 6px 20px rgba(22, 50, 79, .06); display: flex; flex-direction: column; transition: transform .18s ease, box-shadow .18s ease; }
.cdw-news-card:hover { transform: translateY(-4px); box-shadow: 0 14px 32px rgba(22, 50, 79, .12); }
.cdw-news-thumb { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--cd-cream, #fff9ef); }
.cdw-news-thumb img { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.cdw-news-body { padding: 18px 20px 22px; display: flex; flex-direction: column; gap: 8px; }
.cdw-news-date { font-size: 12.5px; color: var(--cd-orange, #f59e2d); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
.cdw-news-body h3 { margin: 0; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 18px; line-height: 1.25; }
.cdw-news-body h3 a { color: var(--cd-navy, #16324f); text-decoration: none; }
.cdw-news-body h3 a:hover { color: var(--cd-blue, #1d6fb8); }
.cdw-news-body p { margin: 0; color: #64748b; font-size: 14.5px; flex: 1; }
.cdw-news-more { color: var(--cd-blue, #1d6fb8); font-weight: 700; text-decoration: none; font-size: 14.5px; }
.cdw-news-more:hover { text-decoration: underline; }

@media (max-width: 900px) {
	.cdw-news-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
	.cdw-news-grid { grid-template-columns: 1fr; }
	.cdw-newsletter-form input[type="email"] { min-width: 0; flex: 1; }
}

/* =========================================================================
   Médiathèque (3 styles : albums / mosaïque / diaporama)
   ========================================================================= */
.cdw-media { max-width: 1100px; margin: 0 auto; padding: 56px 22px; }

.cdw-media-filters { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.cdw-media-filter { display: flex; gap: 8px; flex-wrap: wrap; }
.cdw-media-filter button { border: 1.5px solid #e2e8f0; background: #fff; color: var(--cd-navy, #16324f); font-family: var(--cd-font-body, 'Nunito', sans-serif); font-weight: 700; font-size: 13.5px; border-radius: 999px; padding: 7px 16px; cursor: pointer; transition: all .15s ease; }
.cdw-media-filter button:hover { border-color: var(--cd-blue, #1d6fb8); }
.cdw-media-filter button.is-active { background: var(--cd-sun, #ffc93c); border-color: var(--cd-sun, #ffc93c); }

/* Style 1 : albums */
/* Grille d'albums : cartes de hauteur identique, images toujours cadrées. */
.cdw-media-albums { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 24px; align-items: stretch; }
.cdw-album { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid #eef2f6; border-radius: 18px; overflow: hidden; box-shadow: 0 6px 20px rgba(22, 50, 79, .06); text-decoration: none !important; color: inherit; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.cdw-album:hover { transform: translateY(-4px); border-color: var(--cd-sun, #ffc93c); box-shadow: 0 14px 32px rgba(22, 50, 79, .12); }
.cdw-album-cover { position: relative; display: block; flex: none; aspect-ratio: 4 / 3; background: var(--cd-cream, #fff9ef); overflow: hidden; }
.cdw-album-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .35s ease; }
.cdw-album:hover .cdw-album-cover img { transform: scale(1.05); }
.cdw-album-ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 38px; }
.cdw-album-badges { position: absolute; right: 10px; bottom: 10px; display: flex; gap: 6px; }
.cdw-album-count { background: rgba(22, 50, 79, .82); color: #fff; font-size: 12.5px; font-weight: 700; border-radius: 999px; padding: 4px 10px; }
.cdw-album-count.is-video { background: rgba(232, 84, 63, .9); }
.cdw-album-lock { position: absolute; left: 10px; top: 10px; background: rgba(22, 50, 79, .82); color: #fff; border-radius: 999px; padding: 4px 10px; font-size: 12.5px; }
.cdw-album-body { display: flex; flex-direction: column; gap: 4px; flex: 1; padding: 14px 18px 18px; }
.cdw-album-title { font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 17px; line-height: 1.25; color: var(--cd-navy, #16324f); }
.cdw-album-meta { color: var(--cd-orange, #f59e2d); font-size: 12.5px; font-weight: 700; }
.cdw-album-cta { margin-top: auto; padding-top: 8px; color: var(--cd-blue, #1d6fb8); font-weight: 800; font-size: 13.5px; opacity: 0; transform: translateY(4px); transition: opacity .2s ease, transform .2s ease; }
.cdw-album:hover .cdw-album-cta { opacity: 1; transform: translateY(0); }

/* Style 2 : mosaïque */
.cdw-media-mosaic { columns: 3 260px; column-gap: 16px; }
.cdw-mosaic-item { margin: 0 0 16px; break-inside: avoid; position: relative; border-radius: 14px; overflow: hidden; cursor: pointer; }
.cdw-mosaic-item img { width: 100%; display: block; transition: transform .25s ease; }
.cdw-mosaic-item:hover img { transform: scale(1.04); }
.cdw-mosaic-item figcaption { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(transparent, rgba(22, 50, 79, .75)); color: #fff; font-size: 12.5px; font-weight: 700; padding: 18px 12px 8px; opacity: 0; transition: opacity .2s ease; }
.cdw-mosaic-item:hover figcaption { opacity: 1; }

/* Style 3 : diaporama */
.cdw-media-slider { position: relative; border-radius: 20px; overflow: hidden; background: var(--cd-navy, #16324f); }
.cdw-slider-track { position: relative; aspect-ratio: 16 / 9; }
.cdw-slide { position: absolute; inset: 0; opacity: 0; transition: opacity .4s ease; margin: 0; }
.cdw-slide.is-active { opacity: 1; }
.cdw-slide img { width: 100%; height: 100%; object-fit: contain; }
.cdw-slide figcaption { position: absolute; left: 0; right: 0; bottom: 0; background: linear-gradient(transparent, rgba(22, 50, 79, .85)); color: #fff; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 16px; padding: 26px 18px 14px; }
.cdw-slider-btn { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255, 255, 255, .92); border: 0; width: 44px; height: 44px; border-radius: 50%; font-size: 24px; color: var(--cd-navy, #16324f); cursor: pointer; z-index: 3; }
.cdw-slider-prev { left: 12px; }
.cdw-slider-next { right: 12px; }
.cdw-slider-dots { position: absolute; left: 0; right: 0; bottom: 10px; display: flex; justify-content: center; gap: 6px; z-index: 3; }
.cdw-slider-dots button { width: 9px; height: 9px; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .5); cursor: pointer; padding: 0; }
.cdw-slider-dots button.is-active { background: var(--cd-sun, #ffc93c); }

/* Lightbox commune */
.cdw-lightbox { position: fixed; inset: 0; z-index: 999; background: rgba(10, 22, 34, .92); display: flex; align-items: center; justify-content: center; }
.cdw-lightbox[hidden] { display: none; }
.cdw-lightbox img { max-width: 88vw; max-height: 86vh; border-radius: 10px; }
.cdw-lightbox button { position: absolute; background: rgba(255, 255, 255, .12); color: #fff; border: 0; border-radius: 50%; width: 46px; height: 46px; font-size: 24px; cursor: pointer; }
.cdw-lightbox button:hover { background: rgba(255, 255, 255, .25); }
.cdw-lightbox-close { top: 18px; right: 18px; }
.cdw-lightbox-prev { left: 16px; top: 50%; transform: translateY(-50%); }
.cdw-lightbox-next { right: 16px; top: 50%; transform: translateY(-50%); }

@media (max-width: 600px) { .cdw-media-mosaic { columns: 2 140px; } }

/* =========================================================================
   Nos classes 2 (carrousel / cartes déployables)
   ========================================================================= */
.cdw-classes2 { max-width: 1200px; margin: 0 auto; padding: 56px 22px; }
.cdw-classes2-track { display: grid; gap: 18px; }
.cdw-classes2.is-carousel .cdw-classes2-track { grid-auto-flow: column; grid-auto-columns: minmax(260px, 1fr); overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 12px; scrollbar-width: thin; }
.cdw-classes2.is-carousel .cdw-c2-card { scroll-snap-align: start; }
.cdw-classes2.is-expand .cdw-classes2-track { grid-auto-flow: column; grid-auto-columns: 1fr; min-height: 380px; }
.cdw-classes2.is-expand .cdw-c2-card { transition: flex .4s ease, grid-column .4s ease; }
.cdw-c2-card { position: relative; min-height: 360px; border-radius: 22px; overflow: hidden; background-size: cover; background-position: center; background-color: var(--cd-navy, #16324f); display: flex; align-items: flex-end; box-shadow: 0 10px 30px rgba(22,50,79,.12); }
.cdw-c2-overlay { position: absolute; inset: 0; background: linear-gradient(transparent 30%, rgba(22,50,79,.88)); }
.cdw-c2-inner { position: relative; z-index: 2; padding: 22px 22px 26px; color: #fff; transform: translateY(8px); transition: transform .3s ease; }
.cdw-c2-card:hover .cdw-c2-inner { transform: translateY(0); }
.cdw-c2-age { display: inline-block; background: var(--cd-sun, #ffc93c); color: var(--cd-navy, #16324f); font-weight: 800; font-size: 12.5px; padding: 4px 12px; border-radius: 999px; margin-bottom: 8px; }
.cdw-c2-inner h3 { margin: 0 0 6px; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 22px; color: #fff; }
.cdw-c2-text { margin: 0; font-size: 14px; line-height: 1.5; max-height: 0; opacity: 0; overflow: hidden; transition: max-height .35s ease, opacity .35s ease; }
.cdw-c2-card:hover .cdw-c2-text { max-height: 160px; opacity: .95; }
.cdw-c2-card.is-blue { border-top: 5px solid var(--cd-blue, #1d6fb8); }
.cdw-c2-card.is-sun { border-top: 5px solid var(--cd-sun, #ffc93c); }
.cdw-c2-card.is-orange { border-top: 5px solid var(--cd-orange, #f59e2d); }
.cdw-c2-card.is-red { border-top: 5px solid var(--cd-red, #e8543f); }
.cdw-c2-controls { display: flex; justify-content: center; gap: 10px; margin-top: 16px; }
.cdw-c2-controls button { width: 44px; height: 44px; border-radius: 50%; border: 1.5px solid #e2e8f0; background: #fff; font-size: 22px; color: var(--cd-navy, #16324f); cursor: pointer; transition: all .15s ease; }
.cdw-c2-controls button:hover { background: var(--cd-sun, #ffc93c); border-color: var(--cd-sun, #ffc93c); }
.cdw-c2-more { text-align: center; margin-top: 22px; }

/* =========================================================================
   Programme 2 (frise chronologique)
   ========================================================================= */
.cdw-events2 { max-width: 960px; margin: 0 auto; padding: 56px 22px; }
.cdw-ev2-filters { display: flex; justify-content: center; gap: 8px; margin-bottom: 26px; flex-wrap: wrap; }
.cdw-ev2-filters button { border: 1.5px solid #e2e8f0; background: #fff; color: var(--cd-navy, #16324f); font-family: var(--cd-font-body, 'Nunito', sans-serif); font-weight: 700; font-size: 13.5px; border-radius: 999px; padding: 8px 18px; cursor: pointer; transition: all .15s ease; }
.cdw-ev2-filters button.is-active { background: var(--cd-navy, #16324f); border-color: var(--cd-navy, #16324f); color: #fff; }
.cdw-ev2-timeline { position: relative; }
.cdw-ev2-timeline::before { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 3px; background: linear-gradient(var(--cd-sun, #ffc93c), var(--cd-blue, #1d6fb8)); transform: translateX(-50%); border-radius: 2px; }
.cdw-ev2-item { position: relative; width: 50%; padding: 0 34px 30px; opacity: 0; transform: translateY(20px); animation: cdw-ev2-in .5s ease forwards; animation-delay: calc(var(--i) * .08s); }
@keyframes cdw-ev2-in { to { opacity: 1; transform: translateY(0); } }
.cdw-ev2-item.is-left { left: 0; text-align: right; }
.cdw-ev2-item.is-right { left: 50%; }
.cdw-ev2-dot { position: absolute; top: 6px; width: 18px; height: 18px; border-radius: 50%; background: var(--cd-sun, #ffc93c); border: 3px solid #fff; box-shadow: 0 0 0 3px var(--cd-blue, #1d6fb8); }
.cdw-ev2-item.is-left .cdw-ev2-dot { right: -9px; }
.cdw-ev2-item.is-right .cdw-ev2-dot { left: -9px; }
.cdw-ev2-item.is-past { opacity: .62; }
.cdw-ev2-card { display: inline-flex; gap: 14px; text-align: left; background: #fff; border: 1px solid #eef2f6; border-radius: 16px; padding: 16px 18px; box-shadow: 0 6px 18px rgba(22,50,79,.06); }
.cdw-ev2-date { flex: none; text-align: center; }
.cdw-ev2-day { display: block; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 30px; font-weight: 800; color: var(--cd-blue, #1d6fb8); line-height: 1; }
.cdw-ev2-mon { display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .5px; color: #8296a9; font-weight: 700; }
.cdw-ev2-body h3 { margin: 0 0 4px; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 17px; color: var(--cd-navy, #16324f); }
.cdw-ev2-time { display: inline-block; font-size: 13px; color: var(--cd-orange, #f59e2d); font-weight: 700; }
.cdw-ev2-body p { margin: 6px 0 0; color: #64748b; font-size: 14px; }
.cdw-ev2-badge { display: inline-block; margin-top: 8px; background: #e7f8ee; color: #15803d; font-size: 11.5px; font-weight: 800; border-radius: 999px; padding: 3px 10px; }

/* =========================================================================
   Hero 2 (dynamique)
   ========================================================================= */
.cdw-hero2 { position: relative; border-radius: 26px; overflow: hidden; margin: 0 auto; max-width: 1200px; background: linear-gradient(120deg, #eaf3fb, var(--cd-cream, #fff9ef)); }
.cdw-hero2::before { content: ''; position: absolute; inset: 0; background-image: var(--hero2-img, none); background-size: cover; background-position: center; opacity: .16; }
.cdw-hero2-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1.5fr 1fr; gap: 30px; padding: 52px 40px; align-items: center; }
.cdw-hero2-eyebrow { color: var(--cd-orange, #f59e2d); }
.cdw-hero2-main h1 { font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: clamp(28px, 4vw, 42px); color: var(--cd-navy, #16324f); line-height: 1.12; margin: 8px 0 14px; }
.cdw-hero2-text { color: #51677d; font-size: 16.5px; line-height: 1.6; max-width: 520px; }
.cdw-hero2-cta { margin-top: 20px; display: inline-block; }
.cdw-hero2-panel { background: #fff; border-radius: 18px; padding: 22px; box-shadow: 0 14px 36px rgba(22,50,79,.12); }
.cdw-hero2-ptitle { margin: 0 0 14px; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 17px; color: var(--cd-navy, #16324f); padding-bottom: 10px; border-bottom: 2px dashed #eef2f6; }
.cdw-hero2-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.cdw-hero2-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 14.5px; }
.cdw-hero2-list a { color: var(--cd-navy, #16324f); text-decoration: none; }
.cdw-hero2-list a:hover { color: var(--cd-blue, #1d6fb8); }
.cdw-hero2-mini-date { flex: none; background: var(--cd-cream, #fff9ef); color: var(--cd-orange, #f59e2d); font-weight: 800; font-size: 11.5px; border-radius: 8px; padding: 3px 9px; }
.cdw-hero2-note { color: #51677d; font-size: 14.5px; line-height: 1.6; }
.cdw-hero2-pdf { display: inline-block; margin-top: 12px; color: var(--cd-blue, #1d6fb8); font-weight: 700; text-decoration: none; font-size: 14px; }
.cdw-hero2-pdf:hover { text-decoration: underline; }

/* =========================================================================
   Actualités 2 (magazine)
   ========================================================================= */
.cdw-news2 { max-width: 1150px; margin: 0 auto; padding: 56px 22px; }
.cdw-news2-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: 26px; }
.cdw-n2-featured { background: #fff; border: 1px solid #eef2f6; border-radius: 20px; overflow: hidden; box-shadow: 0 8px 26px rgba(22,50,79,.07); }
.cdw-n2-thumb { position: relative; display: block; aspect-ratio: 16/9; overflow: hidden; background: var(--cd-cream, #fff9ef); }
.cdw-n2-thumb img { width: 100%; height: 100%; object-fit: cover; }
.cdw-n2-ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; font-size: 60px; }
.cdw-n2-tag { position: absolute; left: 14px; top: 14px; background: var(--cd-red, #e8543f); color: #fff; font-size: 12px; font-weight: 800; border-radius: 999px; padding: 4px 12px; }
.cdw-n2-fbody { padding: 22px 24px 26px; }
.cdw-n2-fbody h3 { margin: 6px 0 10px; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 23px; line-height: 1.2; }
.cdw-n2-fbody h3 a { color: var(--cd-navy, #16324f); text-decoration: none; }
.cdw-n2-fbody h3 a:hover { color: var(--cd-blue, #1d6fb8); }
.cdw-n2-fbody p { color: #64748b; font-size: 15px; line-height: 1.6; margin: 0 0 14px; }
.cdw-n2-date { font-size: 12.5px; color: var(--cd-orange, #f59e2d); font-weight: 800; text-transform: uppercase; letter-spacing: .03em; }
.cdw-n2-more { color: var(--cd-blue, #1d6fb8); font-weight: 800; text-decoration: none; font-size: 14.5px; }
.cdw-n2-more:hover { text-decoration: underline; }
.cdw-n2-side { display: flex; flex-direction: column; gap: 16px; }
.cdw-n2-item { display: flex; gap: 14px; background: #fff; border: 1px solid #eef2f6; border-radius: 14px; overflow: hidden; box-shadow: 0 4px 14px rgba(22,50,79,.05); transition: transform .16s ease, box-shadow .16s ease; }
.cdw-n2-item:hover { transform: translateX(3px); box-shadow: 0 10px 22px rgba(22,50,79,.1); }
.cdw-n2-ithumb { position: relative; flex: none; width: 108px; overflow: hidden; background: var(--cd-cream, #fff9ef); }
.cdw-n2-ithumb img { width: 100%; height: 100%; object-fit: cover; }
.cdw-n2-ithumb .cdw-n2-ph { font-size: 30px; }
.cdw-n2-ibody { padding: 12px 14px 12px 0; display: flex; flex-direction: column; gap: 4px; justify-content: center; }
.cdw-n2-ibody h4 { margin: 0; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 15px; line-height: 1.25; }
.cdw-n2-ibody h4 a { color: var(--cd-navy, #16324f); text-decoration: none; }
.cdw-n2-ibody h4 a:hover { color: var(--cd-blue, #1d6fb8); }
.cdw-n2-all { text-align: center; margin-top: 26px; }

@media (max-width: 860px) {
	.cdw-hero2-grid { grid-template-columns: 1fr; padding: 34px 22px; }
	.cdw-news2-grid { grid-template-columns: 1fr; }
	.cdw-ev2-timeline::before { left: 18px; }
	.cdw-ev2-item { width: 100%; left: 0 !important; text-align: left !important; padding: 0 0 26px 44px; }
	.cdw-ev2-item .cdw-ev2-dot { left: 9px !important; right: auto !important; }
}

/* =========================================================================
   Documents téléchargeables (shortcode cd_documents)
   ========================================================================= */
.cdw-docs { max-width: 960px; margin: 0 auto; }
.cdw-docs-title { text-align: center; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 22px; color: var(--cd-navy, #16324f); margin-bottom: 20px; }
.cdw-docs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }
.cdw-doc-card { display: flex; align-items: center; gap: 14px; border: 1.5px solid #eef2f6; border-radius: 16px; padding: 14px 18px; text-decoration: none; color: var(--cd-navy, #16324f); background: #fff; transition: transform .16s ease, box-shadow .16s ease, border-color .16s ease; }
.cdw-doc-card:hover { transform: translateY(-3px); border-color: var(--cd-sun, #ffc93c); box-shadow: 0 12px 26px rgba(22,50,79,.1); }
.cdw-doc-ico { width: 46px; height: 46px; border-radius: 13px; background: var(--cd-cream, #fff9ef); display: flex; align-items: center; justify-content: center; font-size: 22px; flex: none; }
.cdw-doc-info { flex: 1; }
.cdw-doc-info strong { display: block; font-size: 15px; }
.cdw-doc-info small { color: #8296a9; font-weight: 700; font-size: 12px; }
.cdw-doc-dl { color: var(--cd-blue, #1d6fb8); font-weight: 800; font-size: 15px; flex: none; }
@media (max-width: 600px) { .cdw-docs-grid { grid-template-columns: 1fr; } }

/* Fiches de renseignement par classe (shortcode cd_class_sheets) */
.cdw-sheets { max-width: 1050px; margin: 0 auto; }
.cdw-sheets-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.cdw-sheet { background: #fff; border: 1px solid #eef2f6; border-radius: 20px; padding: 26px 22px; text-align: center; box-shadow: 0 6px 20px rgba(22,50,79,.06); display: flex; flex-direction: column; align-items: center; gap: 8px; }
.cdw-sheet-emoji { font-size: 42px; }
.cdw-sheet h3 { margin: 4px 0 0; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 18px; color: var(--cd-navy, #16324f); }
.cdw-sheet-ages { background: var(--cd-cream, #fff9ef); color: var(--cd-orange, #f59e2d); font-weight: 800; font-size: 12.5px; border-radius: 999px; padding: 4px 12px; }
.cdw-sheet p { color: #64748b; font-size: 14px; line-height: 1.5; margin: 4px 0 12px; flex: 1; }
@media (max-width: 780px) { .cdw-sheets-grid { grid-template-columns: 1fr; } }

/* =========================================================================
   Hero — panneaux multiples (image / événements / vidéo / articles)
   ========================================================================= */
.cdw-hero-media.has-2.is-stack { display: grid; grid-template-rows: auto auto; gap: 16px; }
.cdw-hero-media.has-2.is-side { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.cdw-hero-panel { background: #fff; border-radius: 18px; overflow: hidden; box-shadow: 0 12px 32px rgba(22,50,79,.12); }
.cdw-hero-panel.is-image { background: transparent; box-shadow: none; }
.cdw-hero-panel.is-image img { display: block; width: 100%; height: auto; border-radius: 18px; }
.cdw-hero-panel.is-events, .cdw-hero-panel.is-news { padding: 20px 22px; }
.cdw-hero-panel video { width: 100%; display: block; border-radius: 18px; background: #000; }
.cdw-hero-embed { position: relative; padding-bottom: 56.25%; height: 0; }
.cdw-hero-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; border-radius: 18px; }
.cdw-hero-ptitle { margin: 0 0 12px; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 16px; color: var(--cd-navy, #16324f); padding-bottom: 9px; border-bottom: 2px dashed #eef2f6; }
.cdw-hero-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 11px; }
.cdw-hero-list li { display: flex; gap: 10px; align-items: flex-start; font-size: 14px; line-height: 1.35; }
.cdw-hero-list a { color: var(--cd-navy, #16324f); text-decoration: none; }
.cdw-hero-list a:hover { color: var(--cd-blue, #1d6fb8); }
.cdw-hero-chip { flex: none; background: var(--cd-cream, #fff9ef); color: var(--cd-orange, #f59e2d); font-weight: 800; font-size: 11px; border-radius: 8px; padding: 3px 9px; }
.cdw-hero-empty { color: #94a3b8; font-size: 14px; margin: 0; }

/* Carte de classe cliquable */
.cdw-c2-card.is-link { text-decoration: none; cursor: pointer; }
.cdw-c2-card.is-link:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(22,50,79,.2); }
.cdw-c2-card { transition: transform .22s ease, box-shadow .22s ease; }
.cdw-c2-more-link { display: inline-block; margin-top: 8px; color: var(--cd-sun, #ffc93c); font-weight: 800; font-size: 13.5px; opacity: 0; transform: translateY(6px); transition: opacity .3s ease, transform .3s ease; }
.cdw-c2-card:hover .cdw-c2-more-link { opacity: 1; transform: translateY(0); }

/* =========================================================================
   Chiffres animés
   ========================================================================= */
.cdw-counters { max-width: 1100px; margin: 0 auto; padding: 56px 22px; }
.cdw-counters-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 18px; }
.cdw-counter { background: #fff; border: 1px solid #eef2f6; border-radius: 20px; padding: 28px 20px; text-align: center; box-shadow: 0 6px 20px rgba(22,50,79,.06); opacity: 0; transform: translateY(18px); animation: cdw-count-in .5s ease forwards; animation-delay: calc(var(--i) * .1s); }
@keyframes cdw-count-in { to { opacity: 1; transform: translateY(0); } }
.cdw-counter-ico { font-size: 34px; display: block; margin-bottom: 8px; }
.cdw-counter-value { display: block; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 40px; font-weight: 800; color: var(--cd-blue, #1d6fb8); line-height: 1; font-variant-numeric: tabular-nums; }
.cdw-counter-label { display: block; margin-top: 6px; color: #64748b; font-size: 14px; font-weight: 700; }

/* =========================================================================
   FAQ accordéon
   ========================================================================= */
.cdw-faq { max-width: 820px; margin: 0 auto; padding: 56px 22px; }
.cdw-faq-list { display: flex; flex-direction: column; gap: 10px; }
.cdw-faq-item { background: #fff; border: 1.5px solid #eef2f6; border-radius: 14px; overflow: hidden; transition: border-color .18s ease, box-shadow .18s ease; }
.cdw-faq-item.is-open { border-color: var(--cd-sun, #ffc93c); box-shadow: 0 8px 22px rgba(22,50,79,.08); }
.cdw-faq-q { width: 100%; display: flex; justify-content: space-between; align-items: center; gap: 14px; background: none; border: 0; text-align: left; padding: 17px 20px; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 16px; font-weight: 700; color: var(--cd-navy, #16324f); cursor: pointer; }
.cdw-faq-q:hover { color: var(--cd-blue, #1d6fb8); }
.cdw-faq-chevron { flex: none; width: 28px; height: 28px; border-radius: 50%; background: var(--cd-cream, #fff9ef); color: var(--cd-orange, #f59e2d); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; transition: transform .25s ease; }
.cdw-faq-item.is-open .cdw-faq-chevron { transform: rotate(135deg); }
.cdw-faq-a { padding: 0 20px 18px; color: #51677d; font-size: 15px; line-height: 1.6; }
.cdw-faq-a p { margin: 0 0 8px; }

/* =========================================================================
   Galerie filtrable
   ========================================================================= */
.cdw-gal2 { max-width: 1150px; margin: 0 auto; padding: 56px 22px; }
.cdw-gal2-filters { display: flex; gap: 8px; justify-content: center; flex-wrap: wrap; margin-bottom: 26px; }
.cdw-gal2-filters button { border: 1.5px solid #e2e8f0; background: #fff; color: var(--cd-navy, #16324f); font-family: var(--cd-font-body, 'Nunito', sans-serif); font-weight: 700; font-size: 13.5px; border-radius: 999px; padding: 8px 18px; cursor: pointer; transition: all .15s ease; }
.cdw-gal2-filters button.is-active { background: var(--cd-navy, #16324f); border-color: var(--cd-navy, #16324f); color: #fff; }
.cdw-gal2-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
.cdw-gal2-item { position: relative; margin: 0; border-radius: 16px; overflow: hidden; aspect-ratio: 4/3; background: var(--cd-cream, #fff9ef); box-shadow: 0 6px 18px rgba(22,50,79,.08); opacity: 0; transform: scale(.96); animation: cdw-gal-in .4s ease forwards; animation-delay: calc(var(--i) * .05s); }
@keyframes cdw-gal-in { to { opacity: 1; transform: scale(1); } }
.cdw-gal2-item.is-hidden { display: none; }
.cdw-gal2-item img { width: 100%; height: 100%; object-fit: cover; transition: transform .4s ease; }
.cdw-gal2-item:hover img { transform: scale(1.07); }
.cdw-gal2-item figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 26px 16px 14px; background: linear-gradient(transparent, rgba(22,50,79,.9)); color: #fff; }
.cdw-gal2-item figcaption strong { display: block; font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 15px; }
.cdw-gal2-item figcaption span { font-size: 12.5px; opacity: .85; }
.cdw-gal2-link { position: absolute; inset: 0; }

@media (max-width: 860px) {
	.cdw-hero-media.has-2.is-side { grid-template-columns: 1fr; }
}

/* ---- Pied de page : réseaux sociaux, WhatsApp, liens légaux ---- */
.cd-foot-socials { list-style: none; display: flex; gap: 8px; margin: 14px 0 0; padding: 0; }
.cd-foot-socials a { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: rgba(255,255,255,.12); color: #fff; text-decoration: none; font-weight: 800; font-size: 13px; transition: background .16s ease, transform .16s ease; }
.cd-foot-socials a:hover { transform: translateY(-2px); }
.cd-foot-socials a.is-facebook:hover { background: #1877f2; }
.cd-foot-socials a.is-instagram:hover { background: linear-gradient(45deg, #f09433, #dc2743, #bc1888); }
.cd-foot-socials a.is-youtube:hover { background: #ff0000; }
.cd-foot-socials a.is-linkedin:hover { background: #0a66c2; }
.cd-foot-socials a.is-tiktok:hover { background: #000; }
.cd-foot-wa a { color: #25d366 !important; font-weight: 700; text-decoration: none; }
.cd-foot-wa a:hover { text-decoration: underline; }
.cd-foot-legal { list-style: none; display: flex; gap: 14px; margin: 0; padding: 0; flex-wrap: wrap; }
.cd-foot-legal a { text-decoration: none; opacity: .85; }
.cd-foot-legal a:hover { opacity: 1; text-decoration: underline; }

/* =========================================================================
   Fiche de classe (widget cd-classsheet + page /classe/{slug})
   ========================================================================= */
.cd-sheet{--cd-r:20px;max-width:960px;margin:44px auto 0;font-family:var(--cd-font-body,'Nunito',sans-serif)}
.cd-sheet *{box-sizing:border-box}

/* Apparition au défilement */
.cd-reveal{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.22,1,.36,1),transform .6s cubic-bezier(.22,1,.36,1)}
.cd-reveal.is-in{opacity:1;transform:none}

.cd-sheet-year{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid #e8eef5;color:var(--cd-navy,#16324F);font-weight:800;font-size:12.5px;letter-spacing:.02em;border-radius:999px;padding:8px 18px;margin:0 0 30px;box-shadow:0 2px 8px rgba(22,50,79,.05)}

/* --- Chiffres clés : bande unifiée --- */
.cd-sheet-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1px;margin-bottom:46px;background:#e8eef5;border:1px solid #e8eef5;border-radius:var(--cd-r);overflow:hidden}
.cd-fact{background:#fff;padding:24px 18px;text-align:center;transition:background .2s ease}
.cd-fact:hover{background:var(--cd-cream,#FFF9EF)}
.cd-fact-ico{font-size:24px;display:block;margin-bottom:10px;line-height:1}
.cd-fact-label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.09em;color:#93a5b8;font-weight:800}
.cd-fact-value{display:block;margin-top:5px;color:var(--cd-navy,#16324F);font-size:15px;line-height:1.35}

/* --- Titres de section --- */
.cd-sheet-block{margin-bottom:46px}
.cd-sheet-block h2{display:flex;align-items:center;gap:11px;font-family:var(--cd-font-display,'Baloo 2',sans-serif);font-size:clamp(20px,2.6vw,25px);color:var(--cd-navy,#16324F);margin:0 0 20px;letter-spacing:-.01em}

/* --- Conditions d'admission --- */
.cd-conds{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.cd-cond{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border:1px solid #e8eef5;border-radius:16px;padding:16px 18px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}
.cd-cond:hover{transform:translateY(-2px);border-color:#d5e3f0;box-shadow:0 10px 24px rgba(22,50,79,.07)}
.cd-cond-when{color:#5d7590;font-size:14px}
.cd-cond-class{background:var(--cd-navy,#16324F);color:#fff;border-radius:10px;padding:5px 13px;font-size:13px;font-weight:800;flex:none;letter-spacing:.02em}

/* --- Formules : comparaison côte à côte --- */
.cd-form-switch{display:none;gap:6px;margin-bottom:20px;background:#f1f5f9;border-radius:999px;padding:5px}
.cd-form-switch button{flex:1;border:0;background:transparent;color:#5d7590;font-family:inherit;font-weight:800;font-size:14px;border-radius:999px;padding:11px 18px;cursor:pointer;transition:all .22s ease}
.cd-form-switch button.is-active{background:#fff;color:var(--cd-navy,#16324F);box-shadow:0 2px 8px rgba(22,50,79,.12)}
.cd-form-panels.is-compare{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:stretch}
.cd-form-panel{display:block}
.cd-price-card{position:relative;height:100%;display:flex;flex-direction:column;background:#fff;border:1px solid #e8eef5;border-radius:var(--cd-r);padding:30px 26px 26px;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.cd-price-card::before{content:'';position:absolute;left:0;right:0;top:0;height:4px;border-radius:var(--cd-r) var(--cd-r) 0 0;background:linear-gradient(90deg,var(--cd-blue,#1D6FB8),#5aa9e6)}
.cd-price-card.is-day::before{background:linear-gradient(90deg,var(--cd-orange,#F59E2D),var(--cd-sun,#FFC93C))}
.cd-price-card:hover{transform:translateY(-4px);border-color:#d5e3f0;box-shadow:0 20px 42px rgba(22,50,79,.11)}
.cd-price-flag{position:absolute;top:-11px;right:20px;background:var(--cd-navy,#16324F);color:#fff;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;border-radius:999px;padding:5px 13px}
.cd-price-tag{display:inline-flex;align-items:center;gap:6px;color:#5d7590;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:.06em;margin-bottom:14px}
.cd-price-value{display:block;font-family:var(--cd-font-display,'Baloo 2',sans-serif);font-size:clamp(32px,5.4vw,44px);font-weight:800;color:var(--cd-navy,#16324F);line-height:1;letter-spacing:-.02em}
.cd-price-per{display:block;color:#93a5b8;font-size:13px;font-weight:700;margin-top:5px}
.cd-price-hours{display:flex;gap:9px;margin:20px 0 0;padding-top:18px;border-top:1px solid #eef3f8;color:#5d7590;font-size:14.5px;line-height:1.55}
.cd-price-extra{margin-top:18px;padding-top:18px;border-top:1px solid #eef3f8}
.cd-price-extra strong{display:block;color:var(--cd-navy,#16324F);font-size:13px;text-transform:uppercase;letter-spacing:.05em;margin-bottom:11px}
.cd-price-extra ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px}
.cd-price-extra li{position:relative;padding-left:24px;color:#5d7590;font-size:14.5px;line-height:1.45}
.cd-price-extra li::before{content:'✓';position:absolute;left:0;top:0;color:#16a34a;font-weight:800}
.cd-price-extra small{display:block;margin-top:12px;color:var(--cd-orange,#F59E2D);font-weight:700;font-size:13px;line-height:1.45}

/* --- Frais --- */
.cd-fees{display:grid;grid-template-columns:repeat(auto-fit,minmax(215px,1fr));gap:14px;margin-top:20px}
.cd-fee{background:var(--cd-cream,#FFF9EF);border:1px solid #f2e6d0;border-radius:16px;padding:18px 20px;display:flex;flex-direction:column;gap:6px}
.cd-fee span{color:#a68a5f;font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.cd-fee strong{color:var(--cd-navy,#16324F);font-size:15.5px;line-height:1.35}

/* --- Options --- */
.cd-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}
.cd-option{display:flex;gap:16px;align-items:flex-start;background:#fff;border:1px solid #e8eef5;border-radius:16px;padding:20px 22px;transition:border-color .2s ease,box-shadow .2s ease}
.cd-option:hover{border-color:#d5e3f0;box-shadow:0 10px 24px rgba(22,50,79,.06)}
.cd-option-ico{flex:none;width:46px;height:46px;border-radius:14px;background:var(--cd-cream,#FFF9EF);display:flex;align-items:center;justify-content:center;font-size:23px}
.cd-option strong{display:block;color:var(--cd-navy,#16324F);font-size:15px;margin-bottom:5px;line-height:1.35}
.cd-option p{margin:0;color:#5d7590;font-size:14.5px;line-height:1.55}

/* --- Dossier : liste numérotée --- */
.cd-dossier{list-style:none;margin:0;padding:0;counter-reset:cd-doc;display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:11px}
.cd-dossier li{counter-increment:cd-doc;position:relative;background:#fff;border:1px solid #e8eef5;border-radius:14px;padding:16px 18px 16px 56px;color:#5d7590;font-size:14.5px;line-height:1.45;transition:border-color .2s ease,transform .2s ease}
.cd-dossier li:hover{border-color:#d5e3f0;transform:translateX(3px)}
.cd-dossier li::before{content:counter(cd-doc);position:absolute;left:16px;top:50%;transform:translateY(-50%);width:26px;height:26px;border-radius:50%;background:var(--cd-blue,#1D6FB8);color:#fff;font-size:12.5px;font-weight:800;display:flex;align-items:center;justify-content:center}

/* --- Objectifs --- */
.cd-goals{list-style:none;margin:0;padding:0;display:grid;gap:11px}
.cd-goals li{position:relative;background:#fff;border:1px solid #e8eef5;border-left:3px solid var(--cd-sun,#FFC93C);border-radius:0 14px 14px 0;padding:16px 20px 16px 22px;color:#5d7590;font-size:15px;line-height:1.5;transition:border-left-color .2s ease,transform .2s ease}
.cd-goals li:hover{border-left-color:var(--cd-orange,#F59E2D);transform:translateX(3px)}

/* --- Journée type --- */
.cd-daily{list-style:none;margin:0;padding:0;position:relative}
.cd-daily::before{content:'';position:absolute;left:78px;top:14px;bottom:14px;width:2px;background:linear-gradient(180deg,var(--cd-sun,#FFC93C),var(--cd-blue,#1D6FB8))}
.cd-daily li{display:flex;gap:24px;align-items:flex-start;padding:11px 0;position:relative}
.cd-daily-time{flex:none;width:64px;text-align:right;font-weight:800;color:var(--cd-blue,#1D6FB8);font-size:14px;padding-top:2px;font-variant-numeric:tabular-nums}
.cd-daily li::after{content:'';position:absolute;left:73px;top:16px;width:12px;height:12px;border-radius:50%;background:#fff;border:2.5px solid var(--cd-blue,#1D6FB8);transition:background .2s ease}
.cd-daily li:hover::after{background:var(--cd-sun,#FFC93C)}
.cd-daily-act{color:#5d7590;font-size:15px;padding-left:18px;line-height:1.5}

/* --- Notes --- */
.cd-sheet-notes{background:linear-gradient(135deg,var(--cd-cream,#FFF9EF),#fffdf8);border:1px solid #f2e6d0;border-radius:var(--cd-r);padding:20px 24px;margin-bottom:40px}
.cd-sheet-notes p{margin:0;color:#7a6544;font-size:14.5px;line-height:1.6}
.cd-sheet-notes p+p{margin-top:10px}

/* --- Boutons --- */
.cd-sheet-cta{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;padding:34px 0 10px;border-top:1px solid #e8eef5}

@media (max-width:760px){
	.cd-sheet{margin-top:30px}
	.cd-form-switch{display:flex}
	.cd-form-panels.is-compare{grid-template-columns:1fr}
	.cd-form-panels.is-compare .cd-form-panel{display:none}
	.cd-form-panels.is-compare .cd-form-panel.is-active{display:block}
	.cd-price-flag{display:none}
	.cd-sheet-block{margin-bottom:34px}
	.cd-daily::before{left:58px}
	.cd-daily li::after{left:53px}
	.cd-daily-time{width:44px}
	.cd-daily li{gap:16px}
}
@media (prefers-reduced-motion:reduce){
	.cd-reveal{opacity:1;transform:none;transition:none}
	.cd-price-card:hover,.cd-cond:hover,.cd-dossier li:hover,.cd-goals li:hover{transform:none}
}

/* Titre et intro quand la fiche est posée comme widget dans une page. */
.cd-sheet-widget { margin-top: 0; }
.cd-sheet-h1 { font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: clamp(26px, 4vw, 38px); color: var(--cd-navy, #16324F); margin: 0 0 10px; letter-spacing: -.015em; }
.cd-sheet-intro { color: #5d7590; font-size: 16.5px; line-height: 1.6; margin: 0 0 24px; max-width: 640px; }

/* =========================================================================
   Agenda interactif du hero (panneau « Événements à venir »)
   ========================================================================= */
.cdw-agenda-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-bottom: 10px; margin-bottom: 6px; border-bottom: 2px dashed #eef2f6; }
.cdw-agenda-head .cdw-hero-ptitle { margin: 0; padding: 0; border: 0; }

/* Compte à rebours vers le prochain rendez-vous */
.cdw-agenda-count { flex: none; display: inline-flex; align-items: baseline; gap: 4px; background: var(--cd-navy, #16324f); color: #fff; font-weight: 800; font-size: 11.5px; letter-spacing: .02em; border-radius: 999px; padding: 5px 12px; white-space: nowrap; opacity: 0; transform: scale(.9); transition: opacity .35s ease, transform .35s ease; }
.cdw-agenda-count.is-in { opacity: 1; transform: none; }
.cdw-agenda-count.is-today { background: var(--cd-red, #e8543f); animation: cdw-ag-pulse 2.2s ease-in-out infinite; }
@keyframes cdw-ag-pulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(232,84,63,.45); } 50% { box-shadow: 0 0 0 7px rgba(232,84,63,0); } }

.cdw-agenda-list { list-style: none; margin: 0; padding: 0; }
.cdw-agenda-item { border-bottom: 1px solid #f3f6fa; opacity: 0; transform: translateY(8px); animation: cdw-ag-in .45s ease forwards; animation-delay: calc(var(--i) * .09s); }
.cdw-agenda-item:last-child { border-bottom: 0; }
@keyframes cdw-ag-in { to { opacity: 1; transform: none; } }

.cdw-agenda-row { display: flex; align-items: center; gap: 12px; width: 100%; padding: 11px 4px; background: none; border: 0; text-align: left; font-family: inherit; border-radius: 10px; transition: background .16s ease; }
button.cdw-agenda-row { cursor: pointer; }
button.cdw-agenda-row:hover { background: var(--cd-cream, #fff9ef); }
button.cdw-agenda-row:focus-visible { outline: 2px solid var(--cd-sun, #ffc93c); outline-offset: 1px; }

/* Pastille de date */
.cdw-agenda-date { flex: none; width: 42px; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 5px 0 6px; border-radius: 11px; background: var(--cd-cream, #fff9ef); line-height: 1; transition: background .2s ease, color .2s ease; }
.cdw-agenda-date strong { font-family: var(--cd-font-display, 'Baloo 2', sans-serif); font-size: 17px; color: var(--cd-navy, #16324f); }
.cdw-agenda-date small { font-size: 9.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--cd-orange, #f59e2d); margin-top: 1px; }
.cdw-agenda-item.is-next .cdw-agenda-date { background: var(--cd-sun, #ffc93c); }
.cdw-agenda-item.is-next .cdw-agenda-date strong,
.cdw-agenda-item.is-next .cdw-agenda-date small { color: var(--cd-navy, #16324f); }

.cdw-agenda-main { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cdw-agenda-title { font-size: 14.5px; font-weight: 700; color: var(--cd-navy, #16324f); line-height: 1.3; }
.cdw-agenda-when { font-size: 11.5px; font-weight: 700; color: #93a5b8; }
.cdw-agenda-when.is-soon { color: var(--cd-orange, #f59e2d); }
.cdw-agenda-when.is-today { color: var(--cd-red, #e8543f); }

/* Chevron d'ouverture */
.cdw-agenda-caret { flex: none; width: 8px; height: 8px; border-right: 2px solid #b8c6d6; border-bottom: 2px solid #b8c6d6; transform: rotate(45deg); margin-right: 4px; transition: transform .25s ease, border-color .2s ease; }
button.cdw-agenda-row:hover .cdw-agenda-caret { border-color: var(--cd-blue, #1d6fb8); }
.cdw-agenda-item.is-open .cdw-agenda-caret { transform: rotate(-135deg); border-color: var(--cd-blue, #1d6fb8); }

/* Détail dépliable */
.cdw-agenda-detail { padding: 0 4px 12px 58px; }
.cdw-agenda-detail[hidden] { display: none; }
.cdw-agenda-time { display: inline-block; font-size: 12.5px; font-weight: 700; color: var(--cd-orange, #f59e2d); margin-bottom: 5px; }
.cdw-agenda-detail p { margin: 0; font-size: 13.5px; line-height: 1.55; color: #64748b; }

@media (prefers-reduced-motion: reduce) {
	.cdw-agenda-item { opacity: 1; transform: none; animation: none; }
	.cdw-agenda-count { opacity: 1; transform: none; }
	.cdw-agenda-count.is-today { animation: none; }
}

/* =========================================================================
   Nos classes 2 — affichage mobile
   Sans cette règle, la disposition « cartes qui se déploient » répartit les
   classes en colonnes égales (1fr) : sur un écran de téléphone, quatre
   classes deviennent quatre bandes verticales de ~90 px, avec titres et
   badges tronqués. Les deux dispositions basculent donc en carrousel
   tactile à cartes de largeur fixe.
   ========================================================================= */
@media (max-width: 860px) {
	.cdw-classes2 { padding: 40px 0 44px; }
	.cdw-classes2 .cdw-section-head { padding: 0 22px; }

	/* Carrousel tactile pour les deux dispositions. */
	.cdw-classes2.is-carousel .cdw-classes2-track,
	.cdw-classes2.is-expand .cdw-classes2-track {
		grid-auto-flow: column;
		grid-auto-columns: 46%;          /* tablette : deux cartes visibles */
		gap: 14px;
		min-height: 0;
		overflow-x: auto;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		padding: 4px 22px 14px;
		scrollbar-width: none;
	}
	.cdw-classes2-track::-webkit-scrollbar { display: none; }
	.cdw-classes2.is-expand .cdw-c2-card,
	.cdw-classes2.is-carousel .cdw-c2-card {
		scroll-snap-align: center;
		min-height: 330px;
		transition: none;                /* pas de déploiement au survol */
	}

	/* Le survol n'existe pas au toucher : le contenu doit être visible. */
	.cdw-c2-inner { transform: none; padding: 20px 18px 22px; }
	.cdw-c2-text { max-height: none; opacity: .95; }
	.cdw-c2-more-link { opacity: 1; transform: none; }
	.cdw-c2-card:hover { transform: none; }

	/* Titres et badges au complet. */
	.cdw-c2-inner h3 { font-size: 20px; line-height: 1.2; }
	.cdw-c2-age { white-space: nowrap; }

	/* Les flèches ne servent plus : on fait défiler au doigt. */
	.cdw-classes2 .cdw-c2-controls { display: none; }
	.cdw-c2-more { padding: 0 22px; }
}

/* Téléphone : une carte à la fois, la suivante juste esquissée. */
@media (max-width: 600px) {
	.cdw-classes2.is-carousel .cdw-classes2-track,
	.cdw-classes2.is-expand .cdw-classes2-track { grid-auto-columns: 80%; }
	.cdw-classes2 .cdw-section-head h2 { font-size: 24px; }
}
