/* ==========================================================================
   Wallers Aïkido Club — feuille de style du thème
   Encre / papier / rouge vermillon, touches manga (halftone, traits, cases).
   ========================================================================== */

:root {
	--wac-ink: #15171B;
	--wac-paper: #F7F3EC;
	--wac-red: #C8102E;
	--wac-red-dark: #9E0C24;
	--wac-mist: #E9E3D8;
	--wac-stone: #6B6F76;
	--wac-halftone: radial-gradient(circle at 1px 1px, currentColor 1.2px, transparent 1.6px);
	--wac-speedlines: repeating-conic-gradient(from 0deg, rgba(255,255,255,0.07) 0deg 1deg, transparent 1deg 7deg);
}

html { scroll-behavior: smooth; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
img { height: auto; max-width: 100%; }
::selection { background: var(--wac-red); color: #fff; }

/* Focus visible */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
	outline: 3px solid var(--wac-red);
	outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   En-tête
   -------------------------------------------------------------------------- */
.wac-header {
	position: sticky;
	top: 0;
	z-index: 100;
	border-bottom: 1px solid rgba(21, 23, 27, 0.12);
	background-color: rgba(247, 243, 236, 0.97) !important;
	/* Pas de backdrop-filter ici : il transformerait l'en-tête en bloc conteneur du menu mobile (position: fixed). */
}
.admin-bar .wac-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .wac-header { top: 46px; } }

.wac-header .wp-block-site-logo img { max-height: 72px; width: auto !important; }
.wac-header .wp-block-site-logo a { display: block; line-height: 0; }

.wac-header .wp-block-navigation .wp-block-navigation-item__content {
	padding: 0.35rem 0;
	position: relative;
}
.wac-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content::after,
.wac-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-submenu > .wp-block-navigation-item__content::after {
	content: "";
	position: absolute;
	left: 0; right: 0; bottom: -2px;
	height: 3px;
	background: var(--wac-red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s ease;
}
.wac-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-item:hover > .wp-block-navigation-item__content::after,
.wac-header .wp-block-navigation > .wp-block-navigation__container > .current-menu-item > .wp-block-navigation-item__content::after,
.wac-header .wp-block-navigation > .wp-block-navigation__container > .current-menu-ancestor > .wp-block-navigation-item__content::after,
.wac-header .wp-block-navigation > .wp-block-navigation__container > .wp-block-navigation-submenu:hover > .wp-block-navigation-item__content::after {
	transform: scaleX(1);
}
/* Sous-menus */
.wac-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background: var(--wac-paper) !important;
	border: 2px solid var(--wac-ink) !important;
	border-radius: 4px;
	box-shadow: 6px 6px 0 0 var(--wac-red);
	padding: 0.5rem 0;
	min-width: 240px;
}
.wac-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	padding: 0.5rem 1rem;
	font-weight: 500;
}
.wac-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.wac-header .wp-block-navigation .wp-block-navigation__submenu-container .current-menu-item > .wp-block-navigation-item__content {
	background: var(--wac-ink);
	color: var(--wac-paper) !important;
}
.wac-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: var(--wac-ink) !important; }

/* Bouton « S’inscrire » intégré au menu */
.wac-header .wp-block-navigation-item.wac-nav-cta > .wp-block-navigation-item__content {
	background: var(--wac-red);
	color: #fff !important;
	padding: 0.65rem 1.1rem;
	border-radius: 4px;
	font-size: 0.85rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	margin-left: 0.5rem;
}
.wac-header .wp-block-navigation-item.wac-nav-cta > .wp-block-navigation-item__content:hover { background: var(--wac-red-dark); }
.wac-header .wp-block-navigation-item.wac-nav-cta > .wp-block-navigation-item__content::after { display: none; }

/* Tablettes : menu hamburger jusqu'à 1023px (le menu complet ne tient pas) */
@media (min-width: 600px) and (max-width: 1023px) {
	.wac-header .wp-block-navigation__responsive-container-open { display: flex !important; }
	.wac-header .wp-block-navigation__responsive-container:not(.is-menu-open) { display: none !important; }
}

/* Menu mobile (overlay) */
.wp-block-navigation__responsive-container.is-menu-open {
	background: var(--wac-paper) !important;
	background-image: radial-gradient(circle at 1px 1px, rgba(21,23,27,0.09) 1.2px, transparent 1.6px) !important;
	background-size: 18px 18px !important;
	padding: 5rem 1.75rem 2.5rem !important;
}
.wp-block-navigation__responsive-container.is-menu-open::before {
	content: "合気道";
	position: fixed;
	right: -0.1em;
	bottom: -0.15em;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 22vw;
	line-height: 1;
	color: rgba(200, 16, 46, 0.10);
	pointer-events: none;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { color: var(--wac-ink); padding-top: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__submenu-container { align-items: flex-start !important; text-align: left; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-submenu { width: 100%; justify-content: flex-start !important; align-items: flex-start !important; text-align: left; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { justify-content: flex-start !important; align-items: flex-start !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding: 0.45rem 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { margin-bottom: 0.75rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.wac-nav-cta { margin-top: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item.wac-nav-cta > .wp-block-navigation-item__content { display: inline-block; background: var(--wac-red); color: #fff !important; padding: 0.9rem 1.6rem; border-radius: 4px; font-family: var(--wp--preset--font-family--body); font-size: 0.95rem; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; margin-left: 0; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon { display: none; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.6rem;
	font-weight: 800;
	line-height: 1.3;
	color: var(--wac-ink) !important;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	background: transparent !important;
	border: 0 !important;
	box-shadow: none;
	padding-left: 1rem;
	min-width: 0;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	font-family: var(--wp--preset--font-family--body);
	font-size: 1.05rem;
	font-weight: 500;
	padding: 0.35rem 0;
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content { background: transparent; color: var(--wac-red) !important; }
.wp-block-navigation__responsive-container-open, .wp-block-navigation__responsive-container-close { color: var(--wac-ink); }
.wp-block-navigation__responsive-container-open svg, .wp-block-navigation__responsive-container-close svg { width: 32px; height: 32px; }

/* --------------------------------------------------------------------------
   Typographie & utilitaires
   -------------------------------------------------------------------------- */
.wac-kicker {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	font-family: var(--wp--preset--font-family--body);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--wac-red);
	margin-bottom: 0.5rem !important;
}
.wac-kicker::before {
	content: "";
	width: 10px; height: 10px;
	background: var(--wac-red);
	transform: rotate(45deg);
	flex: none;
}
.has-contrast-background-color .wac-kicker, .wac-dark .wac-kicker { color: #FF5A6E; }
.has-primary-background-color .wac-kicker { color: #fff; }
.has-primary-background-color .wac-kicker::before { background: #fff; }
.has-primary-background-color h1, .has-primary-background-color h2, .has-primary-background-color h3, .has-primary-background-color h4 { color: #fff; }
.has-primary-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link { background: #fff; color: var(--wac-red); border-color: #fff; }
.has-primary-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { background: var(--wac-ink); color: #fff; border-color: var(--wac-ink); }
.has-primary-background-color .wp-block-button.is-style-outline .wp-block-button__link { color: #fff; border-color: #fff; background: transparent; }
.has-primary-background-color .wp-block-button.is-style-outline .wp-block-button__link:hover { background: #fff; color: var(--wac-red); }
.has-primary-background-color a:not(.wp-block-button__link) { color: #fff; }
.has-contrast-background-color .wac-kicker::before, .wac-dark .wac-kicker::before { background: #FF5A6E; }

/* Sceau (hanko) : kanji sur carré rouge */
.wac-seal {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 2.6em; height: 2.6em;
	margin: 0 0 1rem !important;
	background: var(--wac-red);
	color: #fff !important;
	font-family: var(--wp--preset--font-family--heading) !important;
	font-size: 1.35rem !important;
	font-weight: 800;
	line-height: 1;
	border-radius: 4px;
	box-shadow: 3px 3px 0 0 var(--wac-ink);
	transform: rotate(-4deg);
}
.has-contrast-background-color .wac-seal, .wac-dark .wac-seal { box-shadow: 3px 3px 0 0 rgba(255,255,255,0.35); }

/* Trait de pinceau sous un titre */
.wac-brush {
	position: relative;
	display: inline-block;
	padding-bottom: 0.15em;
}
.wac-brush::after {
	content: "";
	position: absolute;
	left: -2%; right: -2%; bottom: -0.05em;
	height: 0.28em;
	background: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 24' preserveAspectRatio='none'><path d='M3 14 C 60 4, 120 22, 200 12 S 340 4, 397 13 L 396 19 C 330 12, 250 22, 190 18 S 60 12, 4 20 Z' fill='%23C8102E'/></svg>") no-repeat center / 100% 100%;
	z-index: -1;
	opacity: 0.95;
}

/* Kanji vertical décoratif */
.wac-kanji-vertical {
	writing-mode: vertical-rl;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.15em;
	color: rgba(21,23,27,0.10);
	user-select: none;
	pointer-events: none;
}

/* Sections sombres */
.wac-dark { color: var(--wac-paper); }
.wac-dark h1, .wac-dark h2, .wac-dark h3, .wac-dark h4, .wac-dark .wp-block-post-title, .wac-dark .wp-block-post-title a { color: var(--wac-paper); }
.wac-dark a:not(.wp-block-button__link) { color: #FF5A6E; }
.wac-dark .wp-block-post-date, .wac-dark .wp-block-post-excerpt { color: rgba(247,243,236,0.7); }

/* Coupes diagonales (cases manga) */
.wac-cut-top { clip-path: polygon(0 0, 100% 3.5vw, 100% 100%, 0 100%); padding-top: calc(3.5vw + var(--wp--preset--spacing--60)) !important; }
.wac-cut-bottom { clip-path: polygon(0 0, 100% 0, 100% 100%, 0 calc(100% - 3.5vw)); padding-bottom: calc(3.5vw + var(--wp--preset--spacing--60)) !important; }
.wac-cut-both { clip-path: polygon(0 0, 100% 3.5vw, 100% 100%, 0 calc(100% - 3.5vw)); padding-top: calc(3.5vw + var(--wp--preset--spacing--60)) !important; padding-bottom: calc(3.5vw + var(--wp--preset--spacing--60)) !important; }

/* Trame halftone décorative (coin) */
.wac-halftone { position: relative; isolation: isolate; }
.wac-halftone::after {
	content: "";
	position: absolute;
	right: 0; top: 0;
	width: min(38%, 420px); height: 60%;
	background-image: var(--wac-halftone);
	background-size: 12px 12px;
	color: rgba(200,16,46,0.22);
	-webkit-mask-image: radial-gradient(ellipse at 100% 0%, #000 0%, transparent 70%);
	mask-image: radial-gradient(ellipse at 100% 0%, #000 0%, transparent 70%);
	pointer-events: none;
	z-index: 0;
}
.wac-halftone > * { position: relative; z-index: 1; }

/* --------------------------------------------------------------------------
   Hero (accueil)
   -------------------------------------------------------------------------- */
.wac-hero {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: min(86vh, 900px);
	display: flex;
	flex-direction: column;
	justify-content: center;
	color: var(--wac-paper);
}
.wac-hero::before {
	content: "";
	position: absolute; inset: 0;
	background:
		linear-gradient(100deg, rgba(21,23,27,0.94) 0%, rgba(21,23,27,0.78) 45%, rgba(21,23,27,0.35) 100%),
		var(--wac-speedlines);
	z-index: 0;
}
.wac-hero::after {
	content: "合気道";
	position: absolute;
	right: 2vw; top: 50%;
	transform: translateY(-50%);
	writing-mode: vertical-rl;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	font-size: clamp(6rem, 18vw, 17rem);
	line-height: 1;
	letter-spacing: 0.05em;
	color: transparent;
	-webkit-text-stroke: 2px rgba(247,243,236,0.22);
	pointer-events: none;
	z-index: 0;
}
.wac-hero > * { position: relative; z-index: 1; }
.wac-hero h1 { color: var(--wac-paper); }
.wac-hero .wac-hero-sub { font-size: clamp(1.05rem, 1rem + 0.5vw, 1.3rem); max-width: 40rem; color: rgba(247,243,236,0.86); }
.wac-hero .wac-hero-kanji {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15rem;
	font-weight: 700;
	letter-spacing: 0.35em;
	color: #FF7A8A;
	margin-bottom: 0.25rem !important;
}
.wac-hero-badge {
	display: inline-flex; align-items: center; gap: 0.6rem;
	padding: 0.45rem 0.9rem;
	border: 1px solid rgba(247,243,236,0.35);
	border-radius: 999px;
	font-size: 0.8rem; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--wac-paper);
	background: rgba(21,23,27,0.35);
	backdrop-filter: blur(4px);
}
.wac-hero-badge::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--wac-red); box-shadow: 0 0 0 4px rgba(200,16,46,0.3); }

/* Boutons blancs contour sur fond sombre */
.wac-dark .wp-block-button.is-style-outline .wp-block-button__link,
.wac-hero .wp-block-button.is-style-outline .wp-block-button__link {
	color: var(--wac-paper);
	border-color: var(--wac-paper);
	background: transparent;
}
.wac-dark .wp-block-button.is-style-outline .wp-block-button__link:hover,
.wac-hero .wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wac-paper); color: var(--wac-ink); }
.wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--wac-ink); border-color: var(--wac-ink); }
.wp-block-button.is-style-outline .wp-block-button__link:hover { background: var(--wac-ink); color: var(--wac-paper); border-color: var(--wac-ink); }

/* Bandeau infos sous le hero */
.wac-infobar {
	background: var(--wac-red);
	color: #fff;
}
.wac-infobar p { margin: 0; }
.wac-infobar strong { font-family: var(--wp--preset--font-family--heading); font-size: 1.25rem; font-weight: 800; display: block; }
.wac-infobar .wac-infobar-item { padding: 1rem 0; border-left: 1px solid rgba(255,255,255,0.25); padding-left: 1.25rem; }
.wac-infobar .wac-infobar-item:first-child { border-left: 0; padding-left: 0; }
@media (max-width: 781px) { .wac-infobar .wac-infobar-item { border-left: 0; padding-left: 0; padding: 0.5rem 0; } }
.wac-infobar a { color: #fff; }

/* --------------------------------------------------------------------------
   Cases manga / cartes
   -------------------------------------------------------------------------- */
.is-style-wac-panel, .wac-panel {
	color: var(--wac-ink);
	background: #fff;
	border: 3px solid var(--wac-ink);
	border-radius: 6px;
	box-shadow: 8px 8px 0 0 var(--wac-red);
	padding: clamp(1.25rem, 3vw, 2rem) !important;
}
.is-style-wac-panel-ink {
	background: var(--wac-ink);
	color: var(--wac-paper);
	border-radius: 6px;
	box-shadow: 8px 8px 0 0 var(--wac-red);
	padding: clamp(1.25rem, 3vw, 2rem) !important;
}
.is-style-wac-panel-ink h1, .is-style-wac-panel-ink h2, .is-style-wac-panel-ink h3, .is-style-wac-panel-ink h4 { color: var(--wac-paper); }
.wac-dark .is-style-wac-panel, .wac-dark .is-style-wac-panel h2, .wac-dark .is-style-wac-panel h3, .wac-dark .is-style-wac-panel h4, .wac-dark .is-style-wac-panel p,
.wac-dark .is-style-wac-panel-soft, .wac-dark .is-style-wac-panel-soft h2, .wac-dark .is-style-wac-panel-soft h3, .wac-dark .is-style-wac-panel-soft h4, .wac-dark .is-style-wac-panel-soft p { color: var(--wac-ink); }
.wac-dark .is-style-wac-panel a:not(.wp-block-button__link), .wac-dark .is-style-wac-panel-soft a:not(.wp-block-button__link) { color: var(--wac-red); }
.wac-dark .is-style-wac-panel .wac-seal { box-shadow: 3px 3px 0 0 var(--wac-ink); }
.is-style-wac-panel-soft {
	color: var(--wac-ink);
	background: #fff;
	border: 1px solid rgba(21,23,27,0.12);
	border-radius: 8px;
	box-shadow: 0 18px 40px -22px rgba(21,23,27,0.35);
	padding: clamp(1.25rem, 3vw, 2rem) !important;
}
.is-style-wac-panel-red {
	background: var(--wac-red);
	color: #fff;
	border-radius: 6px;
	padding: clamp(1.25rem, 3vw, 2rem) !important;
}
.is-style-wac-panel-red h1, .is-style-wac-panel-red h2, .is-style-wac-panel-red h3, .is-style-wac-panel-red h4, .is-style-wac-panel-red a { color: #fff; }

/* Image encadrée encre */
.wp-block-image.is-style-wac-ink-frame img {
	border: 3px solid var(--wac-ink);
	border-radius: 6px;
	box-shadow: 8px 8px 0 0 var(--wac-red);
}
.wp-block-image.is-style-wac-polaroid img {
	border: 10px solid #fff;
	border-radius: 2px;
	box-shadow: 0 14px 30px -14px rgba(21,23,27,0.6);
	transform: rotate(-2deg);
}

/* Cartes d'articles (boucle de requête) */
.wac-cards .wp-block-post {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 2px solid var(--wac-ink);
	border-radius: 8px;
	overflow: hidden;
	transition: transform .25s ease, box-shadow .25s ease;
	box-shadow: 6px 6px 0 0 transparent;
	height: 100%;
}
.wac-cards .wp-block-post:hover { transform: translate(-3px, -3px); box-shadow: 8px 8px 0 0 var(--wac-red); }
.wac-cards .wp-block-post-featured-image { margin: 0; }
.wac-cards .wp-block-post-featured-image img, .wac-cards .wp-block-post-featured-image a { border-radius: 0; display: block; }
.wac-cards .wp-block-post-featured-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.wac-cards .wac-card-body { padding: 1.25rem 1.25rem 1.5rem; display: flex; flex-direction: column; gap: 0.5rem; flex: 1; }
.wac-cards .wp-block-post-title { font-size: 1.25rem; margin: 0; }
.wac-cards .wp-block-post-excerpt { margin: 0; }
.wac-cards .wp-block-post-excerpt__excerpt { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.wac-cards .wp-block-post-excerpt__more-text { margin-top: 0.5rem; font-weight: 600; }
.wac-cards .wp-block-post-terms { margin: 0; }
.wac-cards .wp-block-post-date { margin: 0; }
.wac-dark .wac-cards .wp-block-post { border-color: rgba(247,243,236,0.25); background: var(--wac-ink); }
.wac-dark .wac-cards .wp-block-post:hover { border-color: var(--wac-paper); }

/* Cartes affiches (portrait) */
.wac-posters .wp-block-post-featured-image img { aspect-ratio: 3 / 4.2; object-fit: cover; object-position: top; }

/* Grille vidéos : le contenu de l'article (embed) est affiché directement */
.wac-videos .wp-block-post { border: 0; background: transparent; box-shadow: none; }
.wac-videos .wp-block-post:hover { transform: none; box-shadow: none; }
.wac-videos .wp-block-post-content { margin: 0; }
.wac-videos .wp-block-embed { margin: 0; }
.wac-videos .wp-block-embed iframe, .wac-videos .wp-block-embed__wrapper { border-radius: 8px; overflow: hidden; }
.wac-videos .wp-block-post-title { font-size: 1.1rem; margin-top: 0.75rem; }
.wp-block-embed.is-type-video .wp-block-embed__wrapper { position: relative; padding-top: 56.25%; }
.wp-block-embed.is-type-video .wp-block-embed__wrapper iframe { position: absolute; inset: 0; width: 100%; height: 100%; }
.wp-block-embed.is-type-video.wp-embed-aspect-16-9 .wp-block-embed__wrapper { padding-top: 56.25%; }

/* --------------------------------------------------------------------------
   Horaires
   -------------------------------------------------------------------------- */
.wac-schedule { counter-reset: none; }
.wac-schedule .wac-slot {
	display: grid;
	grid-template-columns: 7.5rem 1fr;
	gap: 0.25rem 1.5rem;
	align-items: center;
	padding: 1.1rem 0;
	border-top: 1px solid rgba(21,23,27,0.15);
}
.wac-schedule .wac-slot:last-child { border-bottom: 1px solid rgba(21,23,27,0.15); }
.wac-schedule .wac-slot-day {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.5rem;
	font-weight: 800;
	line-height: 1;
	margin: 0 !important;
	grid-row: span 2;
}
.wac-schedule .wac-slot-time { font-size: 1.15rem; font-weight: 700; margin: 0 !important; }
.wac-schedule .wac-slot-time strong { color: var(--wac-red); }
.wac-schedule .wac-slot-who { margin: 0 !important; color: var(--wac-stone); font-size: 0.95rem; }
.wac-dark .wac-schedule .wac-slot, .wac-dark .wac-schedule .wac-slot:last-child { border-color: rgba(247,243,236,0.2); }
.wac-dark .wac-schedule .wac-slot-who { color: rgba(247,243,236,0.7); }
.wac-dark .wac-schedule .wac-slot-time strong { color: #FF5A6E; }
@media (max-width: 480px) { .wac-schedule .wac-slot { grid-template-columns: 1fr; } .wac-schedule .wac-slot-day { grid-row: auto; } }

/* --------------------------------------------------------------------------
   Enseignants
   -------------------------------------------------------------------------- */
.wac-teacher { position: relative; }
.wac-teacher .wp-block-image img { aspect-ratio: 3 / 4; object-fit: cover; object-position: top; width: 100%; border-radius: 6px; border: 3px solid var(--wac-ink); box-shadow: 8px 8px 0 0 var(--wac-red); }
.wac-teacher .wac-teacher-name { font-family: var(--wp--preset--font-family--heading); font-size: 1.35rem; font-weight: 800; margin: 1.25rem 0 0 !important; }
.wac-teacher .wac-teacher-grade {
	display: inline-block;
	margin: 0.35rem 0 0.75rem !important;
	padding: 0.25rem 0.7rem;
	background: var(--wac-ink);
	color: var(--wac-paper);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	border-radius: 3px;
}
.wac-teacher .wac-teacher-grade.is-red { background: var(--wac-red); color: #fff; }
.wac-teacher p:not(.wac-teacher-name):not(.wac-teacher-grade) { font-size: 0.98rem; }
.wac-teacher .wac-teacher-role { color: var(--wac-stone); font-size: 0.9rem !important; font-weight: 600; }

@media (max-width: 781px) {
	.wac-teachers.wp-block-columns { flex-wrap: wrap; gap: 1.5rem 1rem !important; }
	.wac-teachers.wp-block-columns > .wp-block-column { flex-basis: calc(50% - 0.5rem) !important; }
}
.wac-belt .wp-block-columns { margin-top: 1rem; }

/* Le bureau */
.wac-board .wac-board-item { border-top: 1px solid rgba(21,23,27,0.15); padding: 0.85rem 0; margin: 0 !important; display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; }
.wac-board .wac-board-item:last-child { border-bottom: 1px solid rgba(21,23,27,0.15); }
.wac-board .wac-board-item strong { font-family: var(--wp--preset--font-family--heading); font-size: 1.1rem; }
.wac-board .wac-board-item span { color: var(--wac-stone); }

/* --------------------------------------------------------------------------
   Ceintures & grades
   -------------------------------------------------------------------------- */
.wac-belt {
	position: relative;
	border-left: 14px solid var(--belt, #ddd);
	background: #fff;
	border-radius: 6px;
	padding: 1.25rem 1.5rem 1.25rem 1.75rem !important;
	box-shadow: 0 10px 30px -18px rgba(21,23,27,0.45);
	border-top: 1px solid rgba(21,23,27,0.08);
	border-right: 1px solid rgba(21,23,27,0.08);
	border-bottom: 1px solid rgba(21,23,27,0.08);
}
.wac-belt h3 { margin-top: 0 !important; }
.wac-belt .wac-belt-kyu { font-family: var(--wp--preset--font-family--heading); font-weight: 800; color: var(--wac-red); font-size: 0.95rem; letter-spacing: 0.1em; text-transform: uppercase; margin: 0 0 0.25rem !important; }
.wac-belt.is-white { --belt: #F0EBE0; }
.wac-belt.is-yellow { --belt: #F2C230; }
.wac-belt.is-orange { --belt: #F07C1F; }
.wac-belt.is-green { --belt: #2E8B57; }
.wac-belt.is-blue { --belt: #1F5FBF; }
.wac-belt.is-brown { --belt: #7B4A1E; }
.wac-belt.is-black { --belt: #15171B; }
.wac-belt .wp-block-image img { border-radius: 4px; }

/* --------------------------------------------------------------------------
   Tarifs
   -------------------------------------------------------------------------- */
.wac-price-table table { border-collapse: collapse; }
.wac-price-table td { padding: 0.8rem 1rem; vertical-align: middle; }
.wac-price-table td:last-child { text-align: right; font-family: var(--wp--preset--font-family--heading); font-weight: 800; font-size: 1.2rem; white-space: nowrap; }
.wac-price-table tr.wac-price-group td, .wac-price-table td strong { font-weight: 800; }
.wac-price-table tr:has(td:empty) td { background: var(--wac-ink); color: var(--wac-paper); font-family: var(--wp--preset--font-family--heading); font-weight: 800; letter-spacing: 0.04em; }
.wac-price-table tr:has(td:empty) td strong { color: var(--wac-paper); }
.wac-price-table td[colspan] { background: var(--wac-ink); color: var(--wac-paper); font-family: var(--wp--preset--font-family--heading); font-weight: 800; letter-spacing: 0.04em; }
.wac-price-table figcaption { text-align: left; }

/* --------------------------------------------------------------------------
   Étapes (comment nous rejoindre)
   -------------------------------------------------------------------------- */
.wac-steps { counter-reset: step; }
.wac-steps .wac-step { position: relative; padding-left: 4rem; counter-increment: step; }
.wac-steps .wac-step::before {
	content: counter(step, decimal-leading-zero);
	position: absolute; left: 0; top: -0.1em;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2.4rem; font-weight: 800; line-height: 1;
	color: var(--wac-red);
}
.wac-steps .wac-step h3 { margin-top: 0 !important; margin-bottom: 0.25rem !important; }

/* --------------------------------------------------------------------------
   Partenaires
   -------------------------------------------------------------------------- */
.wac-partners img { max-height: 76px; width: auto; filter: grayscale(1); opacity: 0.8; transition: all .25s ease; }
.wac-partners .wp-block-image:hover img { filter: none; opacity: 1; }
.wac-partners .wp-block-image { margin: 0; }
.wac-partners .wp-block-image.is-dark-logo img { background: #15171B; padding: 6px 10px; border-radius: 4px; }

/* --------------------------------------------------------------------------
   En-têtes de page & articles
   -------------------------------------------------------------------------- */
.wac-page-header {
	position: relative;
	overflow: hidden;
	isolation: isolate;
}
.wac-page-header::after {
	content: attr(data-kanji);
	position: absolute;
	right: 1vw; top: 50%;
	transform: translateY(-50%);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	font-size: clamp(5rem, 14vw, 12rem);
	line-height: 1;
	color: transparent;
	-webkit-text-stroke: 2px rgba(247,243,236,0.16);
	pointer-events: none;
	z-index: 0;
	white-space: nowrap;
}
.wac-page-header > * { position: relative; z-index: 1; }
.wac-page-header .wp-block-post-title { color: var(--wac-paper); }
.wac-page-header .wac-breadcrumb { font-size: 0.85rem; color: rgba(247,243,236,0.7); text-transform: uppercase; letter-spacing: 0.08em; font-weight: 600; margin-bottom: 0.5rem !important; }
.wac-page-header .wac-breadcrumb a { color: rgba(247,243,236,0.9); text-decoration: none; }

/* Article */
.wac-article-header .wp-block-post-featured-image img { border: 3px solid var(--wac-ink); box-shadow: 8px 8px 0 0 var(--wac-red); }
.wac-article-meta { display: flex; flex-wrap: wrap; gap: 0.5rem 1.5rem; align-items: center; }
.wac-article-meta > * { margin: 0 !important; }
.entry-content > *:first-child, .wp-block-post-content > *:first-child { margin-top: 0; }
.wp-block-post-content h2, .wp-block-post-content h3 { margin-top: 2rem; }
.wp-block-post-content > .wp-block-embed { margin-top: 2rem; margin-bottom: 2rem; }
.wp-block-post-content .wp-block-file { background: #fff; border: 2px solid var(--wac-ink); border-radius: 6px; padding: 0.9rem 1.1rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; }
.wp-block-post-content .wp-block-file a:first-child { font-weight: 600; }
.wp-block-post-content .wp-block-file .wp-block-file__button { margin-left: auto; }

/* Fichiers à télécharger (liste) */
.wac-files .wp-block-file { background: #fff; border: 2px solid var(--wac-ink); border-radius: 6px; padding: 0.9rem 1.1rem; display: flex; flex-wrap: wrap; align-items: center; gap: 0.75rem; margin: 0 0 0.75rem; }
.wac-files .wp-block-file a:first-child { font-weight: 600; color: var(--wac-ink); text-decoration: none; }
.wac-files .wp-block-file .wp-block-file__button { margin-left: auto; font-size: 0.8rem; padding: 0.55rem 1rem; }

/* Navigation entre articles */
.wac-post-nav { border-top: 2px solid var(--wac-ink); padding-top: 1.5rem; }
.wac-post-nav .post-navigation-link-previous a::before { content: "←  "; }
.wac-post-nav .post-navigation-link-next a::after { content: "  →"; }

/* Pagination */
.wp-block-query-pagination-numbers .page-numbers { display: inline-block; padding: 0.4rem 0.75rem; border: 2px solid transparent; border-radius: 4px; }
.wp-block-query-pagination-numbers .page-numbers.current { border-color: var(--wac-ink); background: var(--wac-ink); color: var(--wac-paper); }

/* --------------------------------------------------------------------------
   Formulaires (Contact Form 7)
   -------------------------------------------------------------------------- */
.wpcf7 form { display: grid; gap: 1rem; }
.wpcf7 form p { margin: 0; }
.wpcf7 label { font-weight: 600; font-size: 0.95rem; display: block; }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 input[type="tel"], .wpcf7 textarea, .wpcf7 select {
	width: 100%;
	border: 2px solid var(--wac-ink);
	border-radius: 4px;
	padding: 0.8rem 1rem;
	font: inherit;
	background: #fff;
	margin-top: 0.35rem;
}
.wpcf7 textarea { min-height: 160px; }
.wpcf7 input[type="submit"] {
	background: var(--wac-red); color: #fff; border: 2px solid var(--wac-red); border-radius: 4px;
	padding: 0.9rem 1.6rem; font: inherit; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; cursor: pointer; font-size: 0.9375rem;
}
.wpcf7 input[type="submit"]:hover { background: var(--wac-red-dark); border-color: var(--wac-red-dark); }
.wpcf7 .wpcf7-not-valid-tip { color: var(--wac-red); font-size: 0.85rem; }
.wpcf7 form .wpcf7-response-output { margin: 0; border: 2px solid var(--wac-ink); border-radius: 4px; padding: 0.8rem 1rem; }
.wpcf7 form.sent .wpcf7-response-output { border-color: #2E8B57; background: #E6F4EC; }
.wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.failed .wpcf7-response-output { border-color: var(--wac-red); background: #FBE9EC; }
.wpcf7-spinner { display: none; }
.wpcf7 .wpcf7-acceptance label { display: flex; gap: 0.5rem; align-items: flex-start; font-weight: 400; font-size: 0.9rem; }

/* Carte Google */
.wac-map iframe { width: 100%; height: 360px; border: 3px solid var(--wac-ink); border-radius: 6px; display: block; }
.wac-calendar iframe { width: 100%; height: 520px; border: 3px solid var(--wac-ink); border-radius: 6px; display: block; background: #fff; }
@media (max-width: 600px) { .wac-calendar iframe { height: 420px; } }

/* Contact infos */
.wac-contact-list p { margin: 0 !important; padding: 0.75rem 0; border-top: 1px solid rgba(21,23,27,0.15); display: flex; gap: 0.75rem; align-items: baseline; }
.wac-contact-list p:last-child { border-bottom: 1px solid rgba(21,23,27,0.15); }
.wac-contact-list p strong { min-width: 7.5rem; font-family: var(--wp--preset--font-family--heading); }

/* --------------------------------------------------------------------------
   Pied de page
   -------------------------------------------------------------------------- */
.wac-footer { position: relative; overflow: hidden; isolation: isolate; }
.wac-footer::before {
	content: "礼";
	position: absolute;
	left: -0.05em; bottom: -0.2em;
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 800;
	font-size: clamp(10rem, 28vw, 26rem);
	line-height: 1;
	color: rgba(247,243,236,0.035);
	pointer-events: none;
	z-index: 0;
}
.wac-footer > * { position: relative; z-index: 1; }
.wac-footer h4 { color: var(--wac-paper); font-size: 0.85rem; text-transform: uppercase; letter-spacing: 0.14em; margin-bottom: 1rem !important; }
.wac-footer h4::after { content: ""; display: block; width: 32px; height: 3px; background: var(--wac-red); margin-top: 0.6rem; }
.wac-footer p, .wac-footer li { font-size: 0.95rem; color: rgba(247,243,236,0.8); }
.wac-footer.wac-dark a:not(.wp-block-button__link) { color: var(--wac-paper); text-decoration: none; }
.wac-footer.wac-dark a:not(.wp-block-button__link):hover { color: #FF5A6E; }
.wac-footer .wac-footer-links ul { list-style: none; padding: 0; margin: 0; }
.wac-footer .wac-footer-links li { padding: 0.25rem 0; }
.wac-footer .wac-footer-bottom { border-top: 1px solid rgba(247,243,236,0.15); font-size: 0.85rem; color: rgba(247,243,236,0.6); }
.wac-footer.wac-dark .wac-footer-bottom a:not(.wp-block-button__link) { color: rgba(247,243,236,0.8); }
.wac-footer .wac-partners img { filter: none; opacity: 0.92; max-height: 60px; background: #fff; padding: 6px 12px; border-radius: 6px; }
.wac-footer .wac-partners .wp-block-image:hover img { opacity: 1; }
.wac-footer .wac-partners .wp-block-image.is-dark-logo img { background: #000; }
.wac-footer .wp-block-social-links .wp-social-link { background: rgba(247,243,236,0.1) !important; border-radius: 6px; }
.wac-footer .wp-block-social-links .wp-social-link:hover { background: var(--wac-red) !important; }
.wac-footer .wac-footer-mark img { max-width: 220px; }

/* --------------------------------------------------------------------------
   Animations douces (respecte prefers-reduced-motion)
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: no-preference) {
	.wac-hero h1, .wac-hero .wac-hero-sub, .wac-hero .wp-block-buttons, .wac-hero .wac-hero-kanji, .wac-hero .wac-hero-badge {
		animation: wac-rise .7s cubic-bezier(.2,.7,.2,1) both;
	}
	.wac-hero .wac-hero-sub { animation-delay: .12s; }
	.wac-hero .wp-block-buttons { animation-delay: .24s; }
	@keyframes wac-rise { from { opacity: 0; transform: translateY(18px); } to { opacity: 1; transform: none; } }
}

/* --------------------------------------------------------------------------
   Éditeur : ajustements
   -------------------------------------------------------------------------- */
.editor-styles-wrapper .wac-hero { min-height: 520px; }
.editor-styles-wrapper .wac-header { position: static; }

/* Kanji décoratif des en-têtes de page (selon la page) */
.wac-page-header::after { content: "道"; }
.wac-k-news::after, body.page-actualites .wac-page-header::after, body.blog .wac-page-header::after, body.archive .wac-page-header::after { content: "記事"; }
body.page-l-aikido .wac-page-header::after { content: "合気道"; }
body.page-les-enseignants .wac-page-header::after { content: "師範"; }
body.page-le-dojo .wac-page-header::after { content: "道場"; }
body.page-cours-et-horaires .wac-page-header::after { content: "稽古"; }
body.page-inscription-et-tarifs .wac-page-header::after { content: "入門"; }
body.page-ceintures-et-grades .wac-page-header::after { content: "段級"; }
body.page-referentiel-technique .wac-page-header::after { content: "技術"; }
body.page-photos .wac-page-header::after { content: "写真"; }
body.page-videos .wac-page-header::after { content: "映像"; }
body.page-affiches-de-stages .wac-page-header::after { content: "案内"; }
body.page-documents .wac-page-header::after { content: "資料"; }
body.page-evenements .wac-page-header::after { content: "行事"; }
body.page-contact .wac-page-header::after { content: "連絡"; }
body.page-mentions-legales .wac-page-header::after, body.page-politique-de-confidentialite .wac-page-header::after { content: "礼"; }
body.search .wac-page-header::after { content: "?"; }
.wac-k-404::after { content: "受身"; }
