/*
Theme Name: Ping Sarthe
Theme URI: https://www.pingsarthe.org
Author: Comité Départemental de la Sarthe de Tennis de Table
Description: Thème blocs (FSE) du Comité Sarthe de Tennis de Table, fidèle aux croquis de la refonte : en-tête à menus déroulants, bandeau carrousel, actualités, agenda interactif, cartes de rubriques et une bibliothèque de compositions réutilisables (Apparence › Éditeur › Compositions).
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.2.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ping-sarthe
*/

:root {
	--ps-primary: var(--wp--preset--color--primary);
	--ps-navy: var(--wp--preset--color--navy);
	--ps-light: var(--wp--preset--color--light);
	--ps-border: var(--wp--preset--color--border);
	--ps-muted: var(--wp--preset--color--muted);
	--ps-radius: 10px;
	--ps-shadow: 0 4px 22px rgba(11, 30, 91, .08);
	--ps-green: var(--wp--preset--color--green);
	--ps-orange: var(--wp--preset--color--orange);
	--ps-purple: var(--wp--preset--color--purple);
	--ps-red: var(--wp--preset--color--red);
}

body { -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
.wp-site-blocks > main { margin-block-start: 0; }
:where(.wp-site-blocks) > footer { margin-block-start: 0; }
.ps-muted, .ps-muted a { color: var(--ps-muted); }

/* ===================================================================== En-tête */
.ps-header {
	position: sticky; top: 0; z-index: 50;
	background: #fff;
	box-shadow: 0 1px 0 var(--ps-border), 0 4px 18px rgba(11, 30, 91, .05);
}
.admin-bar .ps-header { top: var(--wp-admin--admin-bar--height, 32px); }
.ps-header__inner { min-height: 72px; }
.ps-brand { gap: .6rem !important; flex-shrink: 0; }
.ps-brand .wp-block-image { margin: 0; }
.ps-brand .wp-block-image img { width: 48px; height: 48px; display: block; }
.ps-brand__text { gap: 0 !important; line-height: 1; }
.ps-brand__text p { margin: 0; font-family: var(--wp--preset--font-family--heading); color: var(--ps-navy); }
.ps-brand__text a { color: inherit; text-decoration: none !important; }
.ps-brand__name { font-size: 1.2rem; font-weight: 800; letter-spacing: -.01em; text-transform: uppercase; }
.ps-brand__sub { font-size: .72rem; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; margin-top: .2rem !important; }
.ps-footer .ps-brand__text p { color: #fff; }

.ps-nav .wp-block-navigation__container { gap: .15rem; }
.ps-nav .wp-block-navigation-item__content { padding: .55rem .6rem; border-radius: 5px; }
.ps-nav .wp-block-navigation-item:hover > .wp-block-navigation-item__content,
.ps-nav .current-menu-item > .wp-block-navigation-item__content,
.ps-nav .current-menu-ancestor > .wp-block-navigation-item__content { color: var(--ps-primary); background: #e3efff; text-decoration: none; }
.ps-nav .wp-block-navigation__submenu-icon { margin-left: .2rem; width: .6em; height: .6em; }
.ps-nav .wp-block-navigation-item .wp-block-navigation__submenu-container {
	border: 0 !important; border-radius: 8px; padding: .4rem 0; min-width: 240px !important;
	box-shadow: 0 12px 30px rgba(11, 30, 91, .16); top: calc(100% + 6px);
	text-transform: none; font-family: var(--wp--preset--font-family--body); font-weight: 400; font-size: .92rem; letter-spacing: 0;
}
.ps-nav .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .45rem 1.1rem; border-radius: 0; color: var(--wp--preset--color--text); }
.ps-nav .wp-block-navigation__submenu-container .wp-block-navigation-item:hover > .wp-block-navigation-item__content { background: var(--ps-light); color: var(--ps-primary); }
.ps-nav .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { top: -.4rem; left: calc(100% + 6px); }
/* « Pont » invisible couvrant l'écart de 6px : la souris reste au-dessus du menu en passant du lien au sous-menu, qui ne se referme donc pas. */
.ps-nav .wp-block-navigation__submenu-container::before { content: ""; position: absolute; left: 0; right: 0; top: -6px; height: 6px; }
.ps-nav .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container::before { top: 0; bottom: 0; left: -6px; right: auto; width: 6px; height: auto; }
.ps-header .wp-block-search__button { background: transparent; border: 0; color: var(--ps-navy); padding: .4rem; }
.ps-header .wp-block-search__button svg { width: 26px; height: 26px; fill: currentColor; }
.ps-header .wp-block-search__input { border: 1px solid var(--ps-border); border-radius: 6px; }
.ps-header .wp-block-buttons .wp-block-button__link { padding: .65rem 1.3rem; }
@media (max-width: 1180px) {
	.ps-header .wp-block-search { display: none; }
}

/* ===================================================================== Bandeaux */
.ps-hero { min-height: 290px !important; padding-top: 2.75rem !important; padding-bottom: 2.75rem !important; }
.ps-hero:not(:has(.wp-block-cover__image-background)) { background: #0b2a7a url(assets/img/hero-joueur.jpg) right center / cover no-repeat; }
.ps-hero h1, .ps-hero .wp-block-post-title { color: #fff; font-size: var(--wp--preset--font-size--hero); margin-top: .4rem; margin-bottom: .6rem; }
.ps-hero p, .ps-hero .wp-block-post-excerpt__excerpt { color: #fff; font-size: 1.15rem; line-height: 1.5; margin-top: 0; margin-bottom: 0; }
/* Sous-titre limité à ~2 lignes de large. Pas de padding en % : dans un bandeau centré (réglage de l'éditeur de site),
   il se calcule sur toute la largeur et ne laisse la place qu'à un mot par ligne. */
.ps-hero .wp-block-post-excerpt__excerpt, .ps-hero .wp-block-cover__inner-container > p { max-width: 38rem; }
.ps-hero .wp-block-cover__inner-container > p { margin-left: 0 !important; }
.ps-hero[style*="text-align:center"] .wp-block-post-excerpt__excerpt, .ps-hero .has-text-align-center .wp-block-post-excerpt__excerpt, .ps-hero .wp-block-post-excerpt.has-text-align-center .wp-block-post-excerpt__excerpt { margin-left: auto; margin-right: auto; }
.ps-hero .wp-block-post-excerpt { color: #fff; margin: 0; }
.ps-hero .wp-block-post-excerpt__more-text { display: none; }
.ps-kicker { font-size: .85rem !important; text-transform: uppercase; letter-spacing: .04em; font-weight: 500; }

.ps-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; font-size: .9rem; color: #fff; }
.ps-crumbs a { color: #fff; opacity: .9; }
.ps-crumbs__home::before {
	content: ""; display: inline-block; width: 1rem; height: 1rem; margin-right: .1rem; vertical-align: -.15rem;
	background: currentColor; -webkit-mask: url(assets/icons/white/house.svg) center / contain no-repeat; mask: url(assets/icons/white/house.svg) center / contain no-repeat;
}
.ps-crumbs__home { font-size: 0; }
.ps-crumbs__home::before { font-size: .9rem; }
.ps-hero .ps-crumbs + * { margin-top: .75rem; }

/* Carrousel (groupe .ps-slider contenant des Couvertures) */
.ps-slider { position: relative; overflow: hidden; }
.ps-slider > .wp-block-cover { min-height: 440px; margin: 0 !important; }
.ps-slider.is-ready { display: grid; }
.ps-slider.is-ready > .wp-block-cover { grid-area: 1 / 1; opacity: 0; visibility: hidden; transition: opacity .6s ease, visibility .6s; }
.ps-slider.is-ready > .wp-block-cover.is-active { opacity: 1; visibility: visible; }
.ps-slider__arrow {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 3;
	width: 44px; height: 44px; border-radius: 50%; border: 0; cursor: pointer;
	background: rgba(255, 255, 255, .22) center / 22px no-repeat; backdrop-filter: blur(4px);
}
.ps-slider__arrow:hover { background-color: rgba(255, 255, 255, .4); }
.ps-slider__arrow--prev { left: 1rem; background-image: url(assets/icons/white/chevron-left.svg); }
.ps-slider__arrow--next { right: 1rem; background-image: url(assets/icons/white/chevron-right.svg); }
.ps-slider__dots { position: absolute; bottom: 1.1rem; left: 0; right: 0; display: flex; justify-content: center; gap: .5rem; z-index: 3; }
.ps-slider__dots button { width: 10px; height: 10px; padding: 0; border-radius: 50%; border: 0; background: rgba(255, 255, 255, .5); cursor: pointer; }
.ps-slider__dots button.is-active { background: #fff; }
.ps-slide h1, .ps-slide h2 { color: #fff; font-size: var(--wp--preset--font-size--hero); margin-top: .5rem; margin-bottom: 1rem; text-wrap: balance; }
.ps-slide p { color: #fff; margin: 0; }
.ps-slide .wp-block-buttons { margin-top: 1.5rem; }
.ps-slide .wp-block-button__link { background: #fff; color: var(--ps-navy); border-color: #fff; }
.ps-slide .wp-block-button__link:hover { background: var(--ps-light); }
@media (max-width: 781px) { .ps-slider__arrow { display: none; } }

/* ===================================================================== Sections */
.ps-section { padding-top: var(--wp--preset--spacing--50); padding-bottom: var(--wp--preset--spacing--50); }
.ps-section-head { margin-bottom: 1rem; }
.ps-section-head h2 { margin: 0; font-size: 1.75rem; }
.ps-section-head a { font-weight: 500; font-size: .92rem; }
.ps-link-arrow a::after, .ps-link-arrow::after { content: " →"; }
.ps-link-arrow::after { content: none; }

.ps-heading-icon { gap: .9rem !important; margin-bottom: 1rem; }
.ps-heading-icon .wp-block-heading { margin: 0; }
.ps-heading-icon > .wp-block-image { margin: 0; flex-shrink: 0; }

/* ===================================================================== Cartes et encarts */
.is-style-carte, .ps-card {
	background: #fff; border-radius: var(--ps-radius); box-shadow: var(--ps-shadow);
	overflow: hidden; display: flex; flex-direction: column;
}
.is-style-carte > *, .ps-card > * { margin-block: 0; }
.ps-card > .wp-block-image:first-child, .ps-card > .wp-block-cover:first-child { margin: 0; }
.ps-card > .wp-block-image:first-child img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.ps-card__body { padding: 1.25rem 1.25rem 1.4rem; flex: 1; display: flex; flex-direction: column; gap: .7rem; }
.ps-card__body > * { margin: 0 !important; }
.ps-card__body > .wp-block-buttons:last-child { margin-top: auto !important; padding-top: .6rem; }
.ps-card__body .wp-block-button, .ps-card__body .wp-block-button__link { width: 100%; }
.ps-card__body h3 { font-size: 1.3rem; }
.ps-card__body p { color: var(--ps-muted); font-size: .95rem; }
.ps-card--flat { box-shadow: none; border: 1px solid var(--ps-border); }

/* Carte avec grande pastille chevauchant l'image (Technique, Formation, Développement) */
.ps-card--overlap .ps-card__body { padding-top: 0; }
.ps-card--overlap .ps-card__body > .wp-block-image:first-child { margin-top: -46px !important; position: relative; z-index: 1; }
.ps-card--overlap .ps-card__body > .wp-block-image:first-child img { width: 84px; height: 84px; padding: 20px; border: 6px solid #fff; }
.ps-card--overlap h3 { font-size: 1.55rem; }

/* Carte « Le Comité » : petite pastille chevauchant l'image */
.ps-card--mini .ps-card__body > .wp-block-image:first-child { margin-top: -38px !important; position: relative; z-index: 1; }
.ps-card--mini .ps-card__body > .wp-block-image:first-child img { width: 56px; height: 56px; padding: 13px; background: #fff; box-shadow: var(--ps-shadow); }
.ps-card--mini .ps-card__body > .wp-block-image:first-child img[src*="/blue/"] { background: #fff; }

.is-style-encart, .ps-panel { background: var(--ps-light); border-radius: 12px; padding: 1.5rem 1.75rem; }
.is-style-encart > *, .ps-panel > * { margin-block: 0; }
.is-style-encart > * + *, .ps-panel > * + * { margin-top: 1rem; }
.ps-panel--soft { background: var(--wp--preset--color--light-2); }
.ps-panel h2, .is-style-encart h2 { font-size: 1.5rem; }
.ps-panel p { color: var(--ps-muted); }
.ps-cta { gap: 1.5rem !important; }
.ps-cta > .wp-block-group { flex: 1; }
.ps-cta > .wp-block-image { margin: 0; }
.ps-cta h2, .ps-cta h3 { margin: 0 0 .3rem; font-size: 1.45rem; }
.ps-cta p { margin: 0; }

/* ===================================================================== Icônes et pastilles */
.is-style-icone { margin: 0; }
.is-style-icone img { width: 28px; height: 28px; display: block; }
[class*="is-style-pastille-"] { margin: 0; }
[class*="is-style-pastille-"] img { width: 56px; height: 56px; padding: 14px; border-radius: 50%; display: block; box-sizing: border-box; }
.is-style-pastille-bleu img { background: var(--ps-primary); }
.is-style-pastille-vert img { background: var(--ps-green); }
.is-style-pastille-orange img { background: var(--ps-orange); }
.is-style-pastille-violet img { background: var(--ps-purple); }
.is-style-pastille-rouge img { background: var(--ps-red); }
.is-style-pastille-marine img { background: var(--ps-navy); }
.ps-bubble-lg img { width: 72px; height: 72px; padding: 16px; }
.ps-bubble-sm img { width: 44px; height: 44px; padding: 10px; }

/* ===================================================================== Boutons */
.wp-block-button__link { display: inline-flex; align-items: center; justify-content: center; gap: .55rem; }
.ps-arrow .wp-block-button__link::after,
.ps-chev .wp-block-button__link::after,
.ps-ext .wp-block-button__link::after,
.ps-dl .wp-block-button__link::after {
	content: ""; width: 1.05em; height: 1.05em; flex-shrink: 0; background: currentColor;
	-webkit-mask: var(--ps-btn-icon) center / contain no-repeat; mask: var(--ps-btn-icon) center / contain no-repeat;
}
.ps-arrow { --ps-btn-icon: url(assets/icons/white/arrow-right.svg); }
.ps-chev { --ps-btn-icon: url(assets/icons/white/chevron-right.svg); }
.ps-ext { --ps-btn-icon: url(assets/icons/white/external-link.svg); }
.ps-dl { --ps-btn-icon: url(assets/icons/white/download.svg); }
.is-style-outline .wp-block-button__link:hover { background: var(--ps-light) !important; color: var(--ps-primary) !important; }
.ps-btn-white .wp-block-button__link { background: #fff; color: var(--ps-primary); border-color: #fff; }
.ps-btn-white .wp-block-button__link:hover { background: var(--ps-light); border-color: var(--ps-light); }
.ps-btn-pill .wp-block-button__link { border-radius: 999px; }
.ps-btn-green .wp-block-button__link { background: #16a36f; border-color: #16a36f; }
.ps-btn-sky .wp-block-button__link { background: #1a73ff; border-color: #1a73ff; }

/* ===================================================================== Listes */
.is-style-sans-puce, .is-style-liens { list-style: none; padding-left: 0; margin: 0; }
.is-style-sans-puce li + li { margin-top: .35rem; }
.is-style-liens li { border-bottom: 1px solid var(--ps-border); }
.is-style-liens li:last-child { border-bottom: 0; }
.is-style-liens a {
	display: flex; align-items: center; gap: .9rem; padding: .8rem .25rem; color: var(--wp--preset--color--text); font-weight: 500;
}
.is-style-liens a:hover { color: var(--ps-primary); text-decoration: none; }
.is-style-liens a::after {
	content: ""; margin-left: auto; width: 1rem; height: 1rem; flex-shrink: 0; background: #7a8599;
	-webkit-mask: url(assets/icons/white/chevron-right.svg) center / contain no-repeat; mask: url(assets/icons/white/chevron-right.svg) center / contain no-repeat;
}
.is-style-liens a[href$=".pdf"]::after, .is-style-liens a[target="_blank"]::after { -webkit-mask-image: url(assets/icons/white/external-link.svg); mask-image: url(assets/icons/white/external-link.svg); background: var(--ps-primary); width: .95rem; margin-left: .4rem; }
.is-style-liens img { width: 24px; height: 24px; flex-shrink: 0; }
.is-style-liens.ps-compact a { padding: .45rem 0; font-weight: 400; }
.is-style-liens.ps-compact li { border: 0; }
.is-style-liens.ps-compact a::after { margin-left: .5rem; }
.is-style-liens.ps-boxed { border: 1px solid var(--ps-border); border-radius: 8px; padding: 0 .9rem; }

/* ===================================================================== Documents */
.ps-doc { border: 1px solid var(--ps-border); border-radius: 8px; padding: .9rem 1.1rem; background: #fff; gap: 1rem !important; }
.ps-doc > .wp-block-image { margin: 0; flex-shrink: 0; }
.ps-doc > .wp-block-image img { width: 38px; height: auto; display: block; }
.ps-doc > .wp-block-group { flex: 1; gap: .1rem !important; }
.ps-doc > .wp-block-group > * { margin: 0; }
.ps-doc h3, .ps-doc h4 { font-size: 1rem; margin: 0; }
.ps-doc p { font-size: .85rem; color: var(--ps-muted); margin: 0; }
.ps-doc .wp-block-button__link { padding: .5rem 1rem; font-size: .88rem; }
.ps-docs { gap: .6rem !important; }
.ps-docs > * { margin: 0 !important; }

/* ===================================================================== Accueil : actualités */
.ps-news .wp-block-post-template { gap: 1.25rem; }
.ps-news .wp-block-post { background: #fff; border-radius: var(--ps-radius); box-shadow: var(--ps-shadow); overflow: hidden; display: flex; flex-direction: column; }
.ps-news .wp-block-post-featured-image { margin: 0; }
.ps-news .wp-block-post-featured-image img { aspect-ratio: 16 / 7.5; object-fit: cover; width: 100%; }
.ps-news .ps-card__body { gap: .45rem; }
.ps-news .wp-block-post-title { font-size: 1.12rem; line-height: 1.25; }
.ps-news .wp-block-post-title a:hover { color: var(--ps-primary); text-decoration: none; }
.ps-badge a {
	display: inline-block; padding: .18rem .5rem; border-radius: 3px; background: var(--ps-navy); color: #fff !important;
	font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; text-decoration: none !important;
}
.ps-badge .wp-block-post-terms__separator { display: none; }
.ps-badge a + a { display: none; }
/* ponytail: couleur du badge déduite du slug dans l'URL ; passer par un filtre render_block si les slugs changent. */
.ps-badge a[href*="administratif"] { background: #1b3a8c; }
.ps-badge a[href*="developpement"] { background: var(--ps-green); }
.ps-badge a[href*="formation"] { background: var(--ps-purple); }
.ps-badge a[href*="technique"] { background: var(--ps-orange); }
.ps-badge a[href*="competition"] { background: var(--ps-primary); }
.ps-badge a[href*="arbitrage"] { background: var(--ps-red); }

/* ===================================================================== Agenda */
.ps-agenda-wrap { background: #f1f6fe; border-radius: 14px; padding: 1.25rem; }
.ps-agenda__head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.ps-agenda__title { display: flex; align-items: center; gap: 1rem; margin: 0; font-size: 1.75rem; }
.ps-agenda__icon { width: 46px; height: 46px; padding: 10px; border-radius: 10px; background: var(--ps-primary); }
.ps-agenda__filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.ps-agenda__filter {
	display: inline-flex; align-items: center; gap: .45rem; padding: .45rem 1rem; border-radius: 999px; cursor: pointer;
	border: 1px solid var(--ps-border); background: #fff; color: var(--ps-navy); font: 500 .8rem/1 var(--wp--preset--font-family--body);
}
.ps-agenda__filter.is-active { background: var(--ps-primary); border-color: var(--ps-primary); color: #fff; }
.ps-dot { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.ps-dot--stages { background: var(--ps-green); }
.ps-dot--formations { background: var(--ps-primary); }
.ps-dot--reunions { background: var(--ps-orange); }
.ps-dot--autres { background: #7a17b8; }
.ps-agenda__cal { background: #fff; border-radius: 10px; box-shadow: var(--ps-shadow); overflow: hidden; }
.ps-agenda__nav { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: .75rem; padding: .7rem 1rem; }
.ps-agenda__month { margin: 0; text-align: center; font-size: 1.4rem; }
.ps-agenda__prev, .ps-agenda__next { background: none; border: 0; font-size: 2rem; line-height: 1; color: var(--ps-navy); cursor: pointer; padding: 0 .75rem; }
.ps-agenda__today { border: 1px solid var(--ps-border); background: #fff; color: var(--ps-primary); border-radius: 6px; padding: .45rem .9rem; font: 600 .85rem var(--wp--preset--font-family--heading); cursor: pointer; }
.ps-agenda__grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--ps-border); }
.ps-agenda__dow { text-align: center; font-size: .78rem; color: var(--ps-muted); padding: .4rem 0; border-bottom: 1px solid var(--ps-border); }
.ps-agenda__day { min-height: 82px; padding: .55rem .6rem; border-right: 1px solid var(--ps-border); border-bottom: 1px solid var(--ps-border); display: flex; flex-direction: column; gap: .3rem; }
.ps-agenda__day:nth-child(7n) { border-right: 0; }
.ps-agenda__day.is-out .ps-agenda__num { color: #c2cad8; }
.ps-agenda__num { font-size: .95rem; color: var(--ps-navy); width: 2rem; height: 2rem; line-height: 2rem; text-align: center; margin: -.3rem 0 0 -.4rem; }
.ps-agenda__day.is-today .ps-agenda__num { background: var(--ps-primary); color: #fff; border-radius: 50%; font-weight: 600; }
.ps-agenda__event {
	display: block; font-size: .68rem; line-height: 1.2; color: #fff !important; padding: .2rem .45rem; border-radius: 4px;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis; background: #7a17b8; text-decoration: none !important;
}
.ps-agenda__event--stages { background: var(--ps-green); }
.ps-agenda__event--formations { background: var(--ps-primary); }
.ps-agenda__event--reunions { background: var(--ps-orange); }
@media (max-width: 781px) {
	.ps-agenda__dow { font-size: 0; }
	.ps-agenda__dow::first-letter { font-size: .75rem; }
	.ps-agenda__day { min-height: 56px; padding: .4rem .25rem; flex-direction: row; flex-wrap: wrap; align-content: flex-start; }
	.ps-agenda__num { width: 100%; margin: 0; height: 1.6rem; line-height: 1.6rem; font-size: .85rem; }
	.ps-agenda__event { font-size: 0; width: 8px; height: 8px; padding: 0; border-radius: 50%; }
	.ps-agenda__nav { grid-template-columns: auto 1fr auto; }
	.ps-agenda__today { grid-column: 1 / -1; }
}

/* ===================================================================== Accueil : stages / clubs / partenaires */
.ps-promo { border-radius: 12px; overflow: hidden; min-height: 190px !important; padding: 1.4rem 1.6rem !important; }
.ps-promo h2 { color: #fff; margin: 0; font-size: 1.75rem; }
.ps-promo h3 { color: #fff; margin: 0; font-size: 1.3rem; }
.ps-promo p { color: #fff; margin: 0; font-size: 1.1rem; line-height: 1.35; }
.ps-promo .wp-block-buttons { margin-top: 1rem; }
.ps-promo .is-style-pastille-bleu img, .ps-promo .ps-bubble-white img { background: #fff; }
.ps-promo .wp-block-columns { margin: 0; }
.ps-promo__map img { max-height: 180px; width: auto; margin-inline: auto; display: block; }

.ps-partners { background: #f1f6fe; border-radius: 14px; padding: 1.2rem 1.25rem 1.4rem; }
.ps-partners h2 { font-size: 1.5rem; margin: 0; }
.ps-partners .ps-heading-icon p { margin: .1rem 0 0; font-size: .92rem; color: var(--ps-muted); }
.ps-logo-slot {
	min-height: 84px; display: flex; align-items: center; justify-content: center; text-align: center;
	border: 1.5px dashed #c9d5ea; border-radius: 6px; background: #fff; color: #8b95a8; font-size: .85rem; padding: .5rem;
}
.ps-logo-slot > * { margin: 0 !important; }
.ps-logo-slot img { max-height: 64px; width: auto; }

/* ===================================================================== Pied de page */
.ps-footer { background: var(--wp--preset--color--night); color: #d6def0; font-size: .92rem; }
.ps-footer a { color: #d6def0; }
.ps-footer a:hover { color: #fff; }
.ps-footer h2, .ps-footer h3 { color: #fff; font-size: 1rem; margin: 0 0 .9rem; }
.ps-footer .wp-block-columns { gap: 2rem; }
.ps-footer .wp-block-column + .wp-block-column { border-left: 1px solid rgba(255, 255, 255, .12); padding-left: 2rem; }
.ps-footer .ps-contact { gap: .55rem !important; }
.ps-footer .ps-contact p { margin: 0; display: flex; gap: .65rem; align-items: flex-start; line-height: 1.4; }
.ps-footer .ps-contact img { width: 18px; height: 18px; margin-top: .1rem; flex-shrink: 0; }
.ps-footer .wp-block-social-links .wp-social-link { background: transparent !important; color: #fff !important; }
.ps-footer .wp-block-social-links .wp-social-link svg { width: 32px; height: 32px; }
.ps-footer__bottom { border-top: 1px solid rgba(255, 255, 255, .15); font-size: .8rem; padding-top: 1rem !important; }
.ps-footer__bottom p { margin: 0; }
.ps-footer__legal a + a::before { content: "|"; margin: 0 .75rem; color: rgba(255, 255, 255, .35); }
@media (max-width: 781px) {
	.ps-footer .wp-block-column + .wp-block-column { border-left: 0; padding-left: 0; }
}

/* ===================================================================== Onglets */
.ps-tabs {
	display: flex; flex-wrap: wrap; gap: 0; background: #fff; border-radius: 10px; box-shadow: var(--ps-shadow);
	padding: .3rem; margin-top: -2.2rem !important; position: relative; z-index: 2; list-style: none;
}
.ps-tabs > * { flex: 1; margin: 0 !important; text-align: center; }
.ps-tabs a { display: block; padding: .8rem 1rem; color: var(--ps-navy); font-weight: 500; font-size: .9rem; border-bottom: 3px solid transparent; }
.ps-tabs a:hover { text-decoration: none; color: var(--ps-primary); }
.ps-tabs .is-active a, .ps-tabs > :first-child:not(:has(~ .is-active)) a { color: var(--ps-primary); border-bottom-color: var(--ps-primary); font-weight: 600; }
.ps-tabs.ps-tabs--flow { margin-top: 0 !important; }
.ps-tab-panel[hidden] { display: none !important; }

/* Barre d'onglets à icônes (page compétition) */
.ps-iconnav { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); background: #fff; border-radius: 10px; box-shadow: var(--ps-shadow); overflow: hidden; }
.ps-iconnav > * { margin: 0 !important; display: flex; }
.ps-iconnav a { display: flex; align-items: center; gap: .9rem; padding: 1rem 1.3rem; color: var(--ps-navy); font-weight: 600; font-size: .9rem; border-right: 1px solid var(--ps-border); flex: 1; }
.ps-iconnav a::before { content: ""; width: 24px; height: 24px; flex-shrink: 0; background: currentColor; -webkit-mask: var(--i) center / contain no-repeat; mask: var(--i) center / contain no-repeat; opacity: .75; }
.ps-iconnav a:hover { text-decoration: none; background: var(--ps-light); }
.ps-iconnav > :first-child a { background: var(--ps-primary); color: #fff; border-radius: 8px; }
.ps-iconnav > :first-child a::before { opacity: 1; }
.ps-iconnav > :nth-child(1) a { --i: url(assets/icons/white/file-text.svg); }
.ps-iconnav > :nth-child(2) a { --i: url(assets/icons/white/calendar-days.svg); }
.ps-iconnav > :nth-child(3) a { --i: url(assets/icons/white/file-down.svg); }
.ps-iconnav > :nth-child(4) a { --i: url(assets/icons/white/trophy.svg); }
.ps-iconnav > :nth-child(5) a { --i: url(assets/icons/white/info.svg); }
html { scroll-behavior: smooth; scroll-padding-top: 90px; }

/* ===================================================================== Organigramme */
.ps-org__chart { margin-top: 1.5rem; }
.ps-org__tops { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.ps-org__top { display: flex; align-items: center; gap: .9rem; background: #0a3fb8; color: #fff; border-radius: 6px; padding: .9rem 1.6rem; min-width: 240px; }
.ps-org__top p { color: #fff; margin: 0; line-height: 1.35; }
.ps-org__top img { width: 44px; height: 44px; border-radius: 50%; background: #dfe8fb; padding: 8px; flex-shrink: 0; }
.ps-org__top img.ps-org__photo { padding: 0; object-fit: cover; }
.ps-org__cols { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); gap: .75rem; position: relative; margin-top: 1.5rem; }
.ps-org__cols.has-top { padding-top: 2.2rem; margin-top: 0; }
/* Connecteurs : trait vertical sous la présidence, trait horizontal entre le centre de la 1re et de la dernière colonne, un trait par colonne. */
.ps-org__cols.has-top::before { content: ""; position: absolute; top: 0; left: 50%; height: 1.1rem; border-left: 2px solid #0a3fb8; }
.ps-org__cols.has-top::after { content: ""; position: absolute; top: 1.1rem; left: calc(50% / var(--n, 4)); right: calc(50% / var(--n, 4)); border-top: 2px solid #0a3fb8; }
.ps-org__cols.has-top > * { position: relative; }
.ps-org__cols.has-top > *::before { content: ""; position: absolute; top: -1.1rem; left: 50%; height: 1.1rem; border-left: 2px solid #0a3fb8; }
.ps-org__col { background: #f1f6fe; border-radius: 6px; }
.ps-org__col > h3 { background: #e0ebfc; font-size: .95rem; text-align: center; padding: .7rem; margin: 0; border-radius: 6px 6px 0 0; }
.ps-org__col ul { margin: 0; padding: .8rem 1rem 1rem 1.9rem; font-size: .85rem; }
.ps-org__col li { margin-bottom: .45rem; }
.ps-org__col li::marker { color: #0a3fb8; }
.ps-org__col strong { color: var(--ps-navy); }
.ps-org__empty { background: #fff7e6; border: 1px dashed #f0b44c; border-radius: 6px; padding: .8rem 1rem; }
@media (max-width: 781px) {
	.ps-org__cols { grid-template-columns: 1fr; }
	.ps-org__cols.has-top { padding-top: 1rem; }
	.ps-org__cols.has-top::after, .ps-org__cols.has-top > *::before { display: none; }
}
/* ===================================================================== Annuaire */
.ps-search-field input { width: 100%; padding: .75rem 1rem .75rem 2.6rem; border: 1px solid var(--ps-border); border-radius: 8px; font: inherit; background: #fff url(assets/icons/blue/search.svg) .85rem center / 18px no-repeat; }
.ps-club { border: 1px solid var(--ps-border); border-radius: 6px; padding: .6rem .9rem; gap: .9rem !important; background: #fff; }
.ps-club > .wp-block-image { margin: 0; }
.ps-club > .wp-block-image img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; border: 1px solid var(--ps-border); padding: 8px; }
.ps-club > .wp-block-group { flex: 1; gap: .1rem !important; }
.ps-club > .wp-block-group > * { margin: 0; }
.ps-club h3 { font-size: .98rem; margin: 0; }
.ps-club p { font-size: .8rem; color: var(--ps-muted); margin: 0; }
.ps-club::after { content: ""; width: 1rem; height: 1rem; background: var(--ps-navy); -webkit-mask: url(assets/icons/white/chevron-right.svg) center / contain no-repeat; mask: url(assets/icons/white/chevron-right.svg) center / contain no-repeat; }
.ps-club[hidden] { display: none !important; }
.ps-map img { border-radius: 10px; width: 100%; background: #eef4fd; }

/* ===================================================================== Axes / tuiles */
.ps-tile { border-radius: 8px; padding: 1.1rem 1.2rem; gap: 1rem !important; align-items: flex-start !important; }
.ps-tile > .wp-block-image { margin: 0; flex-shrink: 0; }
.ps-tile > .wp-block-group > * { margin: 0 0 .35rem; }
.ps-tile h3 { font-size: 1.02rem; }
.ps-tile p { font-size: .85rem; color: var(--ps-muted); }
.ps-tile--blue { background: #e6efff; } .ps-tile--blue h3 { color: #0a4fd6; }
.ps-tile--green { background: #e3f4ec; } .ps-tile--green h3 { color: #087a55; }
.ps-tile--red { background: #fdeaea; } .ps-tile--red h3 { color: #d92d2d; }
.ps-tile--yellow { background: #fdf3dc; } .ps-tile--yellow h3 { color: #b7791f; }
.ps-tile--purple { background: #efe8fd; } .ps-tile--purple h3 { color: #6d28d9; }

/* ===================================================================== Frise chronologique */
.ps-timeline { position: relative; }
.ps-timeline::before { content: ""; position: absolute; left: 110px; top: 1rem; bottom: 1rem; border-left: 2px solid #c9d6ee; }
.ps-timeline__item { gap: 1.5rem !important; align-items: center !important; }
.ps-timeline__item + .ps-timeline__item { margin-top: 1rem !important; }
.ps-year { width: 56px; height: 56px; flex-shrink: 0; border-radius: 50%; background: var(--ps-navy); color: #fff; display: flex; align-items: center; justify-content: center; font: 700 .9rem var(--wp--preset--font-family--heading); margin: 0 !important; }
.ps-timeline__item > .ps-card { flex: 1; flex-direction: row; align-items: center; gap: 1rem; padding: 1rem 1.2rem; position: relative; margin-left: 2rem; overflow: visible; }
.ps-timeline__item > .ps-card::before { content: ""; position: absolute; left: calc(-2rem - 30px); top: 50%; width: 12px; height: 12px; margin-top: -6px; border-radius: 50%; background: var(--ps-primary); box-shadow: 0 0 0 4px #fff; }
.ps-timeline__item .ps-card > .wp-block-group { flex: 1; }
.ps-timeline__item .ps-card > .wp-block-group > * { margin: 0 0 .25rem; }
.ps-timeline__item h3 { font-size: 1.05rem; }
.ps-timeline__item p { font-size: .88rem; color: var(--ps-muted); }
.ps-timeline__item .wp-block-image { margin: 0; }
.ps-timeline__item .wp-block-image img { width: 110px; height: 70px; object-fit: cover; border-radius: 4px; filter: grayscale(1); display: block; }
@media (max-width: 600px) {
	.ps-timeline::before, .ps-timeline__item > .ps-card::before { display: none; }
	.ps-timeline__item > .ps-card { margin-left: 0; }
	.ps-timeline__item .wp-block-image { display: none; }
}

/* ===================================================================== Compétitions */
.ps-quick { gap: 1rem !important; padding: 1.1rem 1.3rem; }
.ps-quick { flex-direction: row !important; align-items: center; position: relative; }
.ps-quick > .wp-block-image { margin: 0; flex-shrink: 0; }
.ps-quick > .wp-block-image img { width: 44px; height: 44px; }
.ps-quick > .wp-block-group { flex: 1; }
.ps-quick > .wp-block-group > * { margin: 0; }
.ps-quick h3 { font-size: 1rem; }
.ps-quick h3 a { color: var(--ps-navy); }
.ps-quick h3 a::after { content: ""; position: absolute; inset: 0; }
.ps-quick p { font-size: .85rem; color: var(--ps-muted); }
.ps-quick::after { content: ""; width: 1rem; height: 1rem; background: var(--ps-navy); -webkit-mask: url(assets/icons/white/chevron-right.svg) center / contain no-repeat; mask: url(assets/icons/white/chevron-right.svg) center / contain no-repeat; }
.ps-quick:hover { box-shadow: 0 6px 26px rgba(11, 30, 91, .14); }

.ps-comp-card > .wp-block-cover { min-height: 300px !important; padding: 2rem 2.4rem !important; margin: 0; }
.ps-comp-card > .wp-block-cover h2 { color: #fff; font-size: 2.1rem; margin: .6rem 0 .5rem; max-width: 8em; }
.ps-comp-card > .wp-block-cover p { color: #fff; margin: 0; }
.ps-comp-card > .wp-block-cover .wp-block-buttons { margin-top: 1.4rem; }
.ps-comp-card > .wp-block-cover .wp-block-image img { width: 64px; height: 64px; }
.ps-comp-card .is-style-liens { padding: .5rem 1.5rem 1rem; }
.ps-comp-card .is-style-liens a { padding: .85rem .25rem; }

.ps-banner { border-radius: 12px; overflow: hidden; min-height: 180px !important; padding: 1.75rem 2.5rem !important; }
.ps-banner h2 { font-size: 2rem; margin: 0; }
.ps-banner p { color: var(--ps-muted); margin: .4rem 0 1rem; }
.ps-banner .wp-block-image { margin: 0; }
.ps-banner .wp-block-image img { width: 64px; height: 64px; }

.ps-table table { border-collapse: separate; border-spacing: 0; width: 100%; border: 1px solid var(--ps-border); border-radius: 8px; overflow: hidden; background: #fff; font-size: .95rem; }
.is-style-ping table { border-collapse: separate; border-spacing: 0; width: 100%; border: 1px solid var(--ps-border); border-radius: 8px; overflow: hidden; background: #fff; font-size: .95rem; }
.is-style-ping th, .is-style-ping td { border: 0; border-bottom: 1px solid var(--ps-border); padding: .75rem 1.5rem; text-align: left; }
.is-style-ping th + th, .is-style-ping td + td { border-left: 1px solid var(--ps-border); }
.is-style-ping thead { border: 0; }
.is-style-ping thead th { background: #eaf3fe; color: var(--ps-navy); font-weight: 600; }
.is-style-ping tbody tr:last-child td { border-bottom: 0; }
.is-style-ping tbody td:first-child { font-weight: 600; color: var(--ps-navy); }
.ps-table--alert thead th:last-child { background: #fde2e3; color: #e11d2e; }
.wp-block-table.is-style-ping { overflow-x: auto; margin: 0; }

.is-style-accordeon, .ps-accordion > .wp-block-details { border: 1px solid var(--ps-border); border-radius: 6px; background: #fff; margin: 0 !important; }
.ps-accordion { gap: .5rem !important; }
.is-style-accordeon summary { list-style: none; cursor: pointer; padding: .8rem 1.1rem; font-weight: 600; color: var(--ps-navy); display: flex; align-items: center; gap: 1rem; }
.is-style-accordeon summary::-webkit-details-marker { display: none; }
.is-style-accordeon summary::before { content: ""; width: .9rem; height: .9rem; background: var(--ps-navy); -webkit-mask: url(assets/icons/white/chevron-right.svg) center / contain no-repeat; mask: url(assets/icons/white/chevron-right.svg) center / contain no-repeat; transition: transform .2s; }
.is-style-accordeon[open] summary::before { transform: rotate(90deg); }
.is-style-accordeon > :not(summary) { padding: 0 1.1rem 1rem 3rem; margin: 0; }

.ps-infos { gap: 1.25rem !important; }
.ps-info { gap: .8rem !important; align-items: flex-start !important; flex-wrap: nowrap !important; }
.ps-info > .wp-block-image { margin: 0; flex-shrink: 0; }
.ps-info > .wp-block-group > * { margin: 0 0 .2rem; }
.ps-info h3 { font-size: .95rem; }
.ps-info p { font-size: .85rem; color: var(--ps-muted); }

.ps-present { gap: 0 !important; padding: 0 !important; overflow: hidden; }
.ps-present .wp-block-column:first-child .wp-block-image { margin: 0; height: 100%; }
.ps-present .wp-block-column:first-child img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--ps-radius); display: block; }
.ps-present .wp-block-column:last-child { padding: 1.5rem 2rem; }

/* ===================================================================== Outils / manuels */
.ps-tool { flex-direction: row !important; align-items: center; padding: 1.3rem; gap: 1rem; }
.ps-tool > .wp-block-group { flex: 1; }
.ps-tool > .wp-block-group > * { margin: 0 0 .6rem; }
.ps-tool h3 { font-size: 1.4rem; }
.ps-tool p { font-size: .85rem; }
.ps-tool > .wp-block-image { margin: 0; width: 42%; flex-shrink: 0; }
.ps-tool > .wp-block-image img { border-radius: 6px; }
.ps-tool .wp-block-button__link { padding: .5rem 1rem; font-size: .85rem; }
.ps-manual .ps-card__body { align-items: stretch; }
.ps-manual .ps-card__body h3 { font-size: 1.05rem; }
.ps-manual .ps-cover img { max-height: 170px; width: auto; margin-inline: auto; display: block; box-shadow: 0 6px 18px rgba(0, 0, 0, .18); }

/* ===================================================================== Développement */
.ps-mini .ps-card__body { padding: .8rem 1rem 1rem; gap: .5rem; }
.ps-mini .ps-card__body h3 { font-size: 1.1rem; }
.ps-mini .ps-card__body p { font-size: .88rem; }
.ps-mini > .wp-block-image:first-child img { aspect-ratio: 16 / 9; }
.ps-mini .wp-block-button__link { padding: .5rem .8rem; font-size: .88rem; }
.ps-counter { background: #c8ecc5; border-radius: 8px; text-align: center; padding: 1.4rem 1rem !important; }
.ps-counter p { margin: 0; color: var(--ps-navy); font-size: 1.1rem; line-height: 1.3; }
.ps-counter .ps-counter__num { font: 800 2.6rem/1 var(--wp--preset--font-family--heading); margin-bottom: .4rem; }
.ps-ecole { background: #e6f4ea; }

/* ===================================================================== Articles, archives */
.ps-article { max-width: 820px; margin-inline: auto; }
.ps-article > * + * { margin-top: 1.1rem; }
.ps-article h2 { font-size: 1.6rem; margin-top: 2rem; }
.ps-article h3 { margin-top: 1.5rem; }
.ps-pagination { justify-content: center; gap: .5rem; }
.ps-pagination .page-numbers { padding: .35rem .75rem; border-radius: 6px; border: 1px solid var(--ps-border); }
.ps-pagination .page-numbers.current { background: var(--ps-primary); color: #fff; border-color: var(--ps-primary); }

/* Éditeur : afficher toutes les diapositives et panneaux d'onglets */
.editor-styles-wrapper .ps-slider > .wp-block-cover + .wp-block-cover { margin-top: 1rem !important; }
.editor-styles-wrapper .ps-tab-panel[hidden] { display: block !important; }

/* ===================================================================== Compléments */
.ps-icon-lg img { width: 44px !important; height: 44px !important; }
.ps-slide .wp-block-cover__image-background { object-position: right center; }
.ps-promo .wp-block-cover__image-background { object-position: right center; }
.ps-icon-xl img { width: 60px !important; height: 60px !important; }
.ps-box { padding: 1.5rem 1.75rem; gap: 1rem; }
.ps-box > * { margin: 0 !important; }
.ps-doc-grid .ps-doc { flex-wrap: wrap !important; align-items: flex-start; }
.ps-doc-grid .ps-doc > .wp-block-group { min-width: 0; }
.ps-doc-grid .ps-doc .wp-block-buttons { margin-left: auto; align-self: flex-end; }
.ps-info-box, .ps-doc-box { gap: 1rem !important; padding: 1.2rem !important; }
.ps-info-box p, .ps-doc-box p { margin: 0 !important; color: var(--wp--preset--color--text); }
.ps-doc-box p { font-size: 1.05rem !important; }
.ps-link-card { padding: 0; }
.ps-link-card .ps-card__body { padding: 1.5rem; }
.ps-link-card .ps-card__body h3 { font-size: 1.45rem; }
.ps-right { margin-left: auto; }
.wp-block-buttons:has(.ps-right) { justify-content: flex-end; }
.ps-inline-cards .ps-card__body { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto 1fr auto; column-gap: 1rem; row-gap: 1rem; }
.ps-inline-cards .ps-card__body > * { grid-column: 1 / -1; align-self: start; }
.ps-inline-cards .ps-card__body > .wp-block-image:first-child { grid-column: 1; }
.ps-inline-cards .ps-card__body > h3 { grid-column: 2; align-self: end; padding-bottom: .4rem; }
.ps-inline-cards .ps-card__body > .wp-block-buttons:last-child { align-self: end; padding-top: 0; }
.ps-club p::before { content: ""; display: inline-block; width: .8rem; height: .8rem; margin-right: .3rem; vertical-align: -.1rem; background: var(--ps-muted); -webkit-mask: url(assets/icons/white/map-pin.svg) center / contain no-repeat; mask: url(assets/icons/white/map-pin.svg) center / contain no-repeat; }
.ps-club h3 a { color: var(--ps-navy); }
.ps-club h3 a::after { content: ""; position: absolute; inset: 0; }
.ps-club { position: relative; }
.ps-annuaire > * + * { margin-top: 1.25rem; }
.ps-ecole-links { background: #fff; margin-top: .75rem !important; }
.ps-ecole-links a { font-size: .9rem; }
.wp-block-columns.ps-present { flex-direction: row; }
@media (max-width: 781px) { .wp-block-columns.ps-present { flex-direction: column; } }
.ps-present .wp-block-column:first-child img { max-height: 260px; }
.ps-quick > .wp-block-image img { width: 40px !important; height: 40px !important; object-fit: contain; }
.ps-logo-slot .wp-block-image { margin: 0; }
.ps-logo-slot .wp-block-image img { max-height: 64px; width: auto; display: block; margin: auto; }
.ps-logo-slot:not(:has(*)):not(.has-background)::before { content: "Logo partenaire"; }
.editor-styles-wrapper .ps-logo-slot:not(:has(img[src]))::before { content: none; }
.editor-styles-wrapper .ps-logo-slot .components-placeholder { min-height: 84px; padding: .5rem; font-size: .75rem; }
.ps-agenda__admin { margin: .75rem 0 0; font-size: .85rem; text-align: right; }

/* Modale d'événement (agenda) */
.ps-modal { border: 0; border-radius: 12px; padding: 1.75rem 2rem 1.5rem; width: min(520px, calc(100vw - 2rem)); box-shadow: 0 20px 60px rgba(2, 24, 53, .35); border-top: 6px solid #7a17b8; color: var(--wp--preset--color--text); }
.ps-modal::backdrop { background: rgba(2, 24, 53, .55); }
.ps-modal--stages { border-top-color: var(--ps-green); }
.ps-modal--formations { border-top-color: var(--ps-primary); }
.ps-modal--reunions { border-top-color: var(--ps-orange); }
.ps-modal__close { position: absolute; top: .6rem; right: .8rem; border: 0; background: none; font-size: 1.8rem; line-height: 1; cursor: pointer; color: var(--ps-muted); }
.ps-modal__meta { display: flex; flex-wrap: wrap; gap: .6rem; align-items: center; margin: 0 0 .6rem; font-size: .9rem; color: var(--ps-muted); }
.ps-modal__meta span:first-letter { text-transform: uppercase; }
.ps-modal__type:not(:empty) { background: var(--ps-light); color: var(--ps-navy); font-weight: 600; font-size: .75rem; padding: .2rem .55rem; border-radius: 4px; text-transform: uppercase; }
.ps-modal__title { margin: 0 0 .8rem; font-size: 1.5rem; }
.ps-modal__desc { margin: 0 0 1rem; line-height: 1.6; }
.ps-modal__more { margin: 0; font-weight: 600; }
[class*="is-style-pastille-"], .is-style-icone { flex-shrink: 0; align-self: flex-start; }
[class*="is-style-pastille-"] img { aspect-ratio: 1; object-fit: contain; }
.ps-mini .wp-block-button__link { white-space: nowrap; padding: .5rem .7rem; }

/* =========================================================================
 * v1.2 – Agenda (catégories colorées, dates multiples), clubs, tournois, listes, documents
 * ====================================================================== */

/* Liens « + Ajouter / Gérer » visibles des personnes connectées uniquement */
.ps-admin-links { margin: .9rem 0 0; font-size: .85rem; }
.ps-admin-links a { font-weight: 600; }
.ps-modal__info { margin: -.4rem 0 .8rem; font-weight: 600; color: var(--ps-navy); }
.ps-modal__info[hidden], .ps-modal__desc[hidden] { display: none; }

/* À noter dans votre agenda */
.ps-notes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 19rem), 1fr)); gap: .6rem; }
.ps-note { display: flex; gap: .9rem; align-items: center; border: 1px solid var(--ps-border); border-radius: 8px; padding: .6rem .8rem; background: #fff; }
.ps-note__date { --c: var(--ps-primary); flex-shrink: 0; width: 3.2rem; text-align: center; border-radius: 8px; background: var(--c); color: #fff; padding: .3rem 0; font-size: .72rem; text-transform: uppercase; line-height: 1.1; }
.ps-note__date b { display: block; font: 700 1.3rem/1.1 var(--wp--preset--font-family--heading); }
.ps-note__body { display: flex; flex-direction: column; min-width: 0; }
.ps-note__body a { font-weight: 600; color: var(--ps-navy); }
.ps-note__body small { color: var(--ps-muted); font-size: .8rem; }

/* Clubs : liste complète + fenêtre « fiche club » */
.ps-clubs__list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); gap: .6rem; }
.ps-annuaire .wp-block-column:first-child { position: sticky; top: 1rem; align-self: flex-start; }
div.ps-club { display: flex; align-items: center; padding: 0; overflow: hidden; }
div.ps-club::after { margin-right: .9rem; flex-shrink: 0; }
.ps-club__open { flex: 1; min-width: 0; display: flex; align-items: center; gap: .9rem; padding: .6rem .9rem; background: none; border: 0; text-align: left; cursor: pointer; font: inherit; color: inherit; }
.ps-club__open:hover strong { color: var(--ps-primary); }
.ps-club__open:focus-visible { outline: 2px solid var(--ps-primary); outline-offset: -2px; }
.ps-club__open img, .ps-club-sheet__head img { width: 46px; height: 46px; border-radius: 50%; object-fit: contain; border: 1px solid var(--ps-border); padding: 6px; background: #fff; flex-shrink: 0; }
.ps-club__open span { display: flex; flex-direction: column; min-width: 0; }
.ps-club__open strong { font: 600 .98rem var(--wp--preset--font-family--heading); color: var(--ps-navy); }
.ps-club__open small { font-size: .8rem; color: var(--ps-muted); }
.ps-club-modal { border-top-color: var(--ps-green); width: min(560px, calc(100vw - 2rem)); }
.ps-club-sheet__head { display: flex; align-items: center; gap: 1rem; margin: 0 2rem 1.1rem 0; }
.ps-club-sheet__head img { width: 64px; height: 64px; }
.ps-club-sheet__head h3 { margin: 0; font-size: 1.4rem; }
.ps-club-sheet__head p { margin: .1rem 0 0; color: var(--ps-muted); }
.ps-club-sheet__rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ps-border); }
.ps-club-sheet__rows li { display: flex; gap: .8rem; padding: .7rem 0; border-bottom: 1px solid var(--ps-border); font-size: .92rem; line-height: 1.45; }
.ps-club-sheet__rows img { width: 20px; height: 20px; margin-top: .1rem; flex-shrink: 0; }
.ps-club-sheet__rows b { display: block; font-size: .75rem; text-transform: uppercase; letter-spacing: .03em; color: var(--ps-muted); font-weight: 600; }
.ps-club-sheet__more { margin-top: 1rem; font-size: .92rem; }
.ps-club-sheet__more > :first-child { margin-top: 0; }
@media (max-width: 781px) { .ps-annuaire .wp-block-column:first-child { position: static; } }

/* Listes automatiques de sous-pages (compétitions) */
.ps-subpages { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 17rem), 1fr)); gap: 1rem; }
.ps-subpage { --c: var(--ps-primary); background: #fff; border-radius: var(--ps-radius); box-shadow: var(--ps-shadow); border-top: 4px solid var(--c); }
.ps-subpage--green { --c: var(--ps-green); } .ps-subpage--orange { --c: var(--ps-orange); } .ps-subpage--purple { --c: var(--ps-purple); }
.ps-subpage--pink { --c: #e11d74; } .ps-subpage--red { --c: var(--ps-red); } .ps-subpage--navy { --c: var(--ps-navy); }
.ps-subpage__link { display: flex; gap: 1rem; align-items: flex-start; padding: 1.2rem 1.25rem; height: 100%; box-sizing: border-box; color: inherit; }
.ps-subpage__link:hover { text-decoration: none; }
.ps-subpage__link:hover strong { color: var(--c); }
.ps-subpage__icon { flex-shrink: 0; width: 48px; height: 48px; border-radius: 50%; background: var(--c); display: grid; place-items: center; }
.ps-subpage__icon img { width: 24px; height: 24px; }
.ps-subpage__body { display: flex; flex-direction: column; gap: .3rem; }
.ps-subpage__body strong { font: 600 1.08rem/1.3 var(--wp--preset--font-family--heading); color: var(--ps-navy); }
.ps-subpage__body small { color: var(--ps-muted); font-size: .86rem; }
.ps-subpage__more { color: var(--c); font-weight: 600; font-size: .86rem; margin-top: .2rem; }
.ps-subpage__more::after { content: " →"; }
.ps-comp-card > .ps-admin-links, .ps-comp-card > .ps-muted { padding: 0 1.5rem 1rem; }

/* Tableau des tournois */
.ps-tournois td { vertical-align: top; }
.ps-tournois small { color: var(--ps-muted); font-weight: 400; }
.ps-tournois tr.is-past td { opacity: .55; }
.ps-tag { display: inline-block; margin: 0 .35rem .35rem 0; padding: .25rem .65rem; border: 1px solid var(--ps-primary); border-radius: 999px; font-size: .8rem; font-weight: 600; white-space: nowrap; }
.ps-tag:hover { text-decoration: none; background: var(--ps-light); }
.ps-tag--primary { background: var(--ps-primary); color: #fff !important; }
.ps-tag--primary:hover { background: var(--wp--preset--color--primary-dark); }
@media (max-width: 781px) {
	.ps-tournois thead { display: none; }
	.ps-tournois tr { display: block; border-bottom: 1px solid var(--ps-border); padding: .6rem 0; }
	.ps-tournois tbody tr:last-child { border-bottom: 0; }
	.is-style-ping.ps-tournois td { display: flex; gap: .8rem; border: 0 !important; padding: .25rem 1rem; }
	.ps-tournois td::before { content: attr(data-label); flex: 0 0 6.5rem; font-weight: 600; color: var(--ps-muted); font-size: .8rem; }
}

/* Blocs Fichier : présentés comme les lignes « document » (icône PDF + bouton Télécharger) */
.wp-block-file:not(.wp-block-file--preview-only) { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; border: 1px solid var(--ps-border); border-radius: 8px; padding: .9rem 1.1rem; background: #fff; margin: 0; }
.wp-block-file:not(.wp-block-file--preview-only)::before { content: ""; width: 34px; height: 40px; flex-shrink: 0; background: url(assets/img/pdf.svg) center / contain no-repeat; }
.wp-block-file > a:not(.wp-block-file__button) { flex: 1; min-width: 12rem; font: 600 1rem var(--wp--preset--font-family--heading); color: var(--ps-navy); }
.wp-block-file .wp-block-file__button { margin-left: auto; background: #fff; color: var(--ps-primary); border: 1px solid var(--ps-primary); border-radius: 6px; padding: .5rem 1rem; font-size: .88rem; font-weight: 600; }
.wp-block-file .wp-block-file__button::after { content: ""; display: inline-block; width: .95rem; height: .95rem; margin-left: .45rem; vertical-align: -.15rem; background: currentColor; -webkit-mask: url(assets/icons/white/download.svg) center / contain no-repeat; mask: url(assets/icons/white/download.svg) center / contain no-repeat; }
.wp-block-file .wp-block-file__button:hover { background: var(--ps-light); text-decoration: none; }
.wp-block-file .wp-block-file__embed { order: 10; flex-basis: 100%; border-radius: 6px; border: 1px solid var(--ps-border); margin-top: .5rem; }
.ps-docs:has(.wp-block-file) + .ps-docs-empty { display: none; }
.ps-docs-empty { margin: 0; }
