/* Échecs Interbanques – styles du thème (site et éditeur).
   Couleurs et polices : theme.json (variables --wp--preset--…). Charte : docs/charte-graphique.md. */

:root {
	--ibq-encre: var(--wp--preset--color--encre, #0F1B26);
	--ibq-encre-2: #17283A;
	--ibq-encre-profonde: var(--wp--preset--color--encre-profonde, #0B141C);
	--ibq-marine: var(--wp--preset--color--marine, #22364A);
	--ibq-filet-sombre: #2B4157;
	--ibq-ivoire: var(--wp--preset--color--ivoire, #F5F2EA);
	--ibq-papier: var(--wp--preset--color--papier, #FBFAF6);
	--ibq-filet: var(--wp--preset--color--filet, #DDD6C6);
	--ibq-filet-doux: #ECE6D8;
	--ibq-laiton: var(--wp--preset--color--laiton, #D9B44A);
	--ibq-bronze: var(--wp--preset--color--bronze, #7A5E10);
	--ibq-gris: var(--wp--preset--color--gris, #5B6168);
	--ibq-gris-clair: var(--wp--preset--color--gris-clair, #C9CFD6);
	--ibq-gris-sombre: #9FB0C0;
	--ibq-mono: var(--wp--preset--font-family--chiffres, "IBM Plex Mono", monospace);
	--ibq-serif: var(--wp--preset--font-family--titres, "Instrument Serif", Georgia, serif);
	--ibq-symboles: "Segoe UI Symbol", "Apple Symbols", "Noto Sans Symbols 2", "DejaVu Sans", serif;
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
::selection { background: var(--ibq-laiton); color: var(--ibq-encre); }
:where(a, button, input, summary, [tabindex]):focus-visible { outline: 2px solid var(--ibq-laiton); outline-offset: 3px; }
h1 em, h2 em, h3 em { font-style: italic; }
.ibq-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* ---------- Fonds sombres : texte et liens lisibles ---------- */
.has-encre-background-color, .has-encre-profonde-background-color, .has-marine-background-color { color: var(--ibq-ivoire); }
:is(.has-encre-background-color, .has-encre-profonde-background-color) :where(p, li, dd) { color: inherit; }
:is(.has-encre-background-color, .has-encre-profonde-background-color) a:where(:not(.wp-element-button)) { color: var(--ibq-laiton); }
:is(.has-encre-background-color, .has-encre-profonde-background-color) a:where(:not(.wp-element-button)):hover { color: var(--ibq-ivoire); }
.has-gris-clair-color a:where(:not(.wp-element-button)) { color: var(--ibq-gris-clair); }

/* ---------- Surtitre (paragraphe, style « Surtitre ») ---------- */
.is-style-ibq-surtitre, .ibq-surtitre {
	font-family: var(--ibq-mono); font-size: 13px !important; letter-spacing: .12em; text-transform: uppercase;
	color: var(--ibq-bronze); margin-bottom: 0;
}
:is(.has-encre-background-color, .has-encre-profonde-background-color) :is(.is-style-ibq-surtitre, .ibq-surtitre) { color: var(--ibq-laiton); }

/* ---------- Boutons ---------- */
.wp-element-button, .wp-block-button__link { transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.is-style-ibq-contour .wp-block-button__link, .ibq-bouton--contour {
	background: transparent !important; color: currentColor !important; border: 1px solid #5C7186; font-weight: 500;
}
.has-ivoire-background-color .is-style-ibq-contour .wp-block-button__link,
.has-papier-background-color .is-style-ibq-contour .wp-block-button__link,
.ibq-sur-clair .ibq-bouton--contour { border-color: var(--ibq-encre); color: var(--ibq-encre) !important; }
.is-style-ibq-contour .wp-block-button__link:hover, .ibq-bouton--contour:hover { border-color: var(--ibq-laiton); }
.ibq-bouton--sombre { background: var(--ibq-encre) !important; color: var(--ibq-ivoire) !important; }
.ibq-bouton--sombre:hover { background: var(--ibq-marine) !important; }
.ibq-boutons { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-top: 8px; }
.ibq-bouton { display: inline-block; text-decoration: none; }

/* ---------- En-tête ---------- */
.ibq-bandeau { font-size: 13px; color: var(--ibq-gris-clair); }
.ibq-bandeau p { margin: 0; }
.ibq-bandeau .ibq-bandeau__droite { font-family: var(--ibq-mono); color: var(--ibq-laiton); }
.ibq-entete { border-bottom: 1px solid #22364A; }
.ibq-marque { display: flex; gap: 14px; align-items: center; text-decoration: none !important; color: var(--ibq-ivoire) !important; }
.ibq-marque img { width: 48px; height: 48px; display: block; }
.ibq-marque__nom { display: flex; flex-direction: column; line-height: 1.1; }
.ibq-marque__titre { font-family: var(--ibq-serif); font-size: 26px; }
.ibq-marque__sous { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--ibq-gris-sombre); }
.ibq-entete .wp-block-navigation a { text-decoration: none; padding: 10px 0; }
.ibq-entete .wp-block-navigation .current-menu-item > a,
.ibq-entete .wp-block-navigation a[aria-current="page"] { color: var(--ibq-laiton); box-shadow: inset 0 -2px 0 var(--ibq-laiton); }
.ibq-entete .wp-block-navigation a:hover { color: var(--ibq-laiton); }
.ibq-entete .ibq-bouton { padding: 11px 18px; font-size: 15px; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 24px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 20px; }

/* ---------- Échiquier décoratif ---------- */
.ibq-echiquier {
	width: 100%; max-width: 440px; aspect-ratio: 1 / 1; margin-inline: auto;
	display: grid; grid-template-columns: repeat(8, minmax(0, 1fr));
	border: 10px solid var(--ibq-encre-2); box-shadow: 0 30px 60px rgba(0, 0, 0, .35);
}
.ibq-case { display: flex; align-items: center; justify-content: center; }
.ibq-case.is-claire { background: #3A5168; }
.ibq-case.is-sombre { background: #22364A; }
.ibq-piece { font-family: var(--ibq-symboles); font-size: clamp(20px, 4.2vw, 40px); line-height: 1; text-shadow: 0 2px 0 rgba(0, 0, 0, .35); }
.ibq-piece.is-blanche { color: var(--ibq-ivoire); }
.ibq-piece.is-noire { color: var(--ibq-laiton); }

/* ---------- Carte « prochain rendez-vous » ---------- */
.ibq-prochain {
	width: 100%; max-width: 460px; margin: 16px auto 0; box-sizing: border-box;
	background: var(--ibq-encre-2); border: 1px solid var(--ibq-filet-sombre); color: var(--ibq-ivoire);
	padding: 18px 22px; display: flex; justify-content: space-between; align-items: center; gap: 16px; font-family: var(--ibq-mono);
}
.ibq-prochain > div { display: flex; flex-direction: column; gap: 4px; }
.ibq-prochain__droite { text-align: right; }
.ibq-prochain__label { font-size: 12px; letter-spacing: .12em; color: var(--ibq-gris-sombre); }
.ibq-prochain__valeur { font-size: 17px; }
.ibq-prochain__valeur.is-laiton { color: var(--ibq-laiton); }

/* ---------- Bandeau calendrier ---------- */
.ibq-ticker { background: var(--ibq-encre-profonde); color: var(--ibq-gris-clair); border-top: 1px solid #22364A; }
.ibq-ticker__inner {
	margin: 0 auto; max-width: 1200px; padding: 14px 24px; box-sizing: border-box;
	display: flex; gap: 28px; align-items: center; font-family: var(--ibq-mono); font-size: 14px; white-space: nowrap;
}
.ibq-ticker__liste { list-style: none; margin: 0; padding: 0; display: flex; flex: 1; justify-content: space-between; gap: 24px; overflow: hidden; }
.ibq-ticker__titre { color: var(--ibq-laiton); letter-spacing: .1em; }
.ibq-ticker__cle { color: var(--ibq-ivoire); margin-right: 6px; }
.ibq-ticker__item.is-passe { opacity: .45; }
.ibq-ticker__item.is-prochain, .ibq-ticker__item.is-prochain .ibq-ticker__cle { color: var(--ibq-laiton); }
.ibq-ticker__lien { color: var(--ibq-ivoire); text-decoration: none; border-left: 1px solid #22364A; padding-left: 24px; }
.ibq-ticker__lien:hover, .ibq-ticker__lien:focus-visible { color: var(--ibq-laiton); }
@media (max-width: 1099px) { .ibq-ticker__item:nth-child(n+5) { display: none; } }
@media (max-width: 781px) {
	.ibq-ticker__inner { flex-wrap: wrap; gap: 10px 20px; font-size: 13px; }
	.ibq-ticker__titre { display: none; }
	.ibq-ticker__liste { flex-basis: 100%; justify-content: flex-start; gap: 20px; }
	.ibq-ticker__item:nth-child(n+4) { display: none; }
	.ibq-ticker__lien { border-left: 0; padding-left: 0; }
}
.ibq-rondes { scroll-margin-top: 110px; }
@media (max-width: 781px) { .ibq-hero.ibq-section { padding-bottom: 0; } .ibq-hero .ibq-scene--photo { margin-bottom: -8px; } }

/* ---------- Cartes et fiches ---------- */
.is-style-ibq-carte { background: var(--ibq-papier); border: 1px solid var(--ibq-filet); }
.is-style-ibq-carte-sombre { background: var(--ibq-encre); color: var(--ibq-ivoire); border: 1px solid var(--ibq-encre); }
.ibq-picto { font-family: var(--ibq-symboles); font-size: 52px !important; line-height: 1 !important; margin: 0; }
.is-style-ibq-carte-sombre .ibq-picto { color: var(--ibq-laiton); }
.ibq-carte-lien { margin-top: auto !important; font-weight: 600; }
.ibq-carte-lien a { text-decoration: none; }

.ibq-fiche, .ibq-etapes { box-sizing: border-box; margin: 0; font-family: var(--ibq-mono); font-size: 14px; border-top: 1px solid var(--ibq-filet); padding-top: 18px; display: grid; gap: 8px; }
.ibq-fiche, .ibq-etapes { grid-template-columns: minmax(12ch, max-content) 1fr; column-gap: 12px; }
.ibq-fiche dt, .ibq-etapes dt { white-space: nowrap; }
.ibq-fiche__ligne > *, .ibq-etapes__ligne > * { min-width: 0; }
/* une seule colonne de libellés pour toute la fiche : les valeurs s'alignent quelle que soit la longueur du libellé */
.ibq-fiche__ligne, .ibq-etapes__ligne { grid-column: 1 / -1; display: grid; grid-template-columns: subgrid; gap: 16px; }
.ibq-fiche dt, .ibq-etapes dt { color: var(--ibq-gris); }
.ibq-fiche dd, .ibq-etapes dd { margin: 0; }
.is-style-ibq-carte-sombre :is(.ibq-fiche, .ibq-etapes), .has-encre-background-color :is(.ibq-fiche, .ibq-etapes) { border-top-color: var(--ibq-filet-sombre); }
.is-style-ibq-carte-sombre :is(.ibq-fiche dt, .ibq-etapes dt), .has-encre-background-color :is(.ibq-fiche dt, .ibq-etapes dt) { color: var(--ibq-gris-sombre); }
.ibq-etapes__ligne.is-passee dd { color: var(--ibq-gris-sombre); }
.ibq-etapes__ligne.is-prochaine dd { color: var(--ibq-laiton); }

/* Fiche technique large (page Championnat, fond sombre) */
.ibq-fiche--large { border: 0; padding: 0; }
.ibq-grille-fiche .ibq-fiche { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 0; border-top: 1px solid var(--ibq-filet-sombre); border-left: 1px solid var(--ibq-filet-sombre); padding: 0; }
.ibq-grille-fiche .ibq-fiche__ligne { grid-column: auto; display: flex; flex-direction: column; gap: 6px; padding: 20px; border-right: 1px solid var(--ibq-filet-sombre); border-bottom: 1px solid var(--ibq-filet-sombre); }
.ibq-grille-fiche .ibq-fiche dt { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ibq-gris-sombre); }
.ibq-grille-fiche .ibq-fiche dd { font-family: var(--wp--preset--font-family--texte); font-size: 20px; }

/* Liste « libellé · valeur » (style de liste « Fiche ») */
.is-style-ibq-fiche { list-style: none; padding: 0; display: grid; gap: 12px; }
.is-style-ibq-fiche li { display: flex; gap: 14px; }
.is-style-ibq-fiche strong { font-family: var(--ibq-mono); font-weight: 400; min-width: 76px; color: var(--ibq-bronze); }

/* ---------- Classements façon cotation ---------- */
.ibq-cote { background: var(--ibq-papier); border: 1px solid var(--ibq-filet); }
.ibq-cote--sombre { background: var(--ibq-encre); color: var(--ibq-ivoire); border-color: var(--ibq-encre); }
.ibq-cote__tete { padding: 18px 24px; border-bottom: 1px solid var(--ibq-filet); display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.ibq-cote--sombre .ibq-cote__tete { border-bottom-color: var(--ibq-filet-sombre); }
.ibq-cote__titre { margin: 0; font-family: var(--wp--preset--font-family--texte) !important; font-size: 18px !important; font-weight: 600 !important; }
.ibq-cote__sous { font-family: var(--ibq-mono); font-size: 13px; color: var(--ibq-gris); }
.ibq-cote--sombre .ibq-cote__sous { color: var(--ibq-gris-sombre); }
.ibq-cote__vide { margin: 0; padding: 22px 24px; color: var(--ibq-gris); font-size: 15px; }
.ibq-cote--sombre .ibq-cote__vide { color: var(--ibq-gris-clair); }
.ibq-cote__defile { overflow-x: auto; }
.ibq-cote__pied { margin: 0; padding: 14px 24px; border-top: 1px solid var(--ibq-filet); font-size: 14px; color: var(--ibq-gris); }
.ibq-cote--sombre .ibq-cote__pied { border-top-color: var(--ibq-filet-sombre); color: var(--ibq-gris-clair); }
.ibq-cote__pied a { color: var(--ibq-bronze); }
.ibq-cote--sombre .ibq-cote__pied a { color: var(--ibq-laiton); }
.ibq-cote table, .is-style-ibq-cotation table { width: 100%; border-collapse: collapse; font-family: var(--ibq-mono); font-size: 14px; }
.ibq-cote th, .is-style-ibq-cotation th { text-align: left; font-weight: 500; color: var(--ibq-gris); padding: 12px 10px; border: 0; }
.ibq-cote--sombre th { color: var(--ibq-gris-sombre); }
.ibq-cote td, .is-style-ibq-cotation td { padding: 12px 10px; border: 0; border-top: 1px solid var(--ibq-filet-doux); }
.ibq-cote--sombre td { border-top-color: #22364A; }
.ibq-cote :is(th, td):first-child { padding-left: 24px; }
.ibq-cote :is(th, td):last-child { padding-right: 24px; }
.ibq-cote .is-num { text-align: right; font-weight: 500; }
.ibq-cote :is(th, td):first-child, .ibq-cote .is-num { white-space: nowrap; width: 1%; }
.ibq-cote .is-nom { font-family: var(--wp--preset--font-family--texte); font-weight: 500; }
.ibq-cote__joueurs { display: block; margin-top: 3px; font-family: var(--ibq-mono); font-weight: 400; font-size: 12px; color: var(--ibq-gris); }
.ibq-cote--sombre .ibq-cote__joueurs { color: var(--ibq-gris-sombre); }
.ibq-cote .is-banque, .ibq-cote .is-gris { color: var(--ibq-gris); }
.ibq-cote--sombre td:first-child { color: var(--ibq-laiton); }
.ibq-palmares { min-width: 820px; }
.ibq-palmares .is-ed { color: var(--ibq-bronze); }
.ibq-palmares tr.is-en-cours { background: var(--ibq-filet-doux); }
.ibq-palmares tr.is-pause td { color: var(--ibq-gris); font-style: italic; background: var(--ibq-ivoire); }
.ibq-anciennes { margin-top: 20px; }
.ibq-anciennes summary { cursor: pointer; font-weight: 600; color: var(--ibq-bronze); margin-bottom: 12px; }

/* Champions en titre */
.ibq-champions { background: var(--ibq-encre); color: var(--ibq-ivoire); padding: 22px 24px; height: 100%; box-sizing: border-box; }
.ibq-champions__titre { margin: 0 0 14px; font-family: var(--ibq-mono); font-size: 13px; letter-spacing: .1em; text-transform: uppercase; color: var(--ibq-laiton); }
.ibq-champions dl { margin: 0; display: grid; gap: 14px; }
.ibq-champions dt { font-size: 13px; color: var(--ibq-gris-sombre); }
.ibq-champions dd { margin: 0; font-family: var(--ibq-serif); font-size: 26px; line-height: 1.15; }

/* ---------- Chiffres clés ---------- */
.ibq-chiffres { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 1px; background: var(--ibq-filet-sombre); }
.ibq-chiffres__item { background: var(--ibq-encre); padding: 20px 18px; display: flex; flex-direction: column; gap: 6px; }
.ibq-chiffres__n { font-family: var(--ibq-serif); font-size: 48px; line-height: 1; color: var(--ibq-laiton); }
.ibq-chiffres__txt { font-size: 14px; color: var(--ibq-gris-clair); line-height: 1.4; }

/* ---------- Barres (titres par établissement) ---------- */
.ibq-barres { box-sizing: border-box; list-style: none; margin: 0; padding: 28px 32px; background: var(--ibq-papier); border: 1px solid var(--ibq-filet); display: grid; gap: 14px; }
.ibq-barres li { display: grid; grid-template-columns: minmax(140px, 260px) 1fr 40px; gap: 16px; align-items: center; }
.ibq-barres__nom { font-size: 15px; font-weight: 500; }
.ibq-barres__piste { height: 14px; background: var(--ibq-filet-doux); }
.ibq-barres__barre { display: block; height: 100%; background: #3A5168; }
.ibq-barres li:first-child .ibq-barres__barre { background: var(--ibq-encre); }
.ibq-barres__n { font-family: var(--ibq-mono); text-align: right; }

/* ---------- Palmarès récent (page Championnat) ---------- */
.ibq-recents { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 1px; background: var(--ibq-filet-sombre); }
.ibq-recents__item { background: var(--ibq-encre); padding: 24px 20px; display: flex; flex-direction: column; gap: 8px; }
.ibq-recents__ed { font-family: var(--ibq-mono); font-size: 13px; color: var(--ibq-laiton); }
.ibq-recents__nom { font-family: var(--ibq-serif); font-size: 26px; }
.ibq-recents__eq { font-size: 15px; color: var(--ibq-ivoire); }
.ibq-recents__etiq { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--ibq-gris-sombre); margin-bottom: -6px; }
.ibq-recents__etiq--eq { margin-top: 10px; padding-top: 12px; border-top: 1px solid var(--ibq-filet-sombre); }

/* ---------- Calendrier des rondes ---------- */
.ibq-rondes { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(118px, 1fr)); gap: 12px; }
.ibq-ronde { display: flex; flex-direction: column; gap: 6px; padding: 18px 16px; background: var(--ibq-papier); border: 1px solid var(--ibq-filet); }
.ibq-ronde__n { font-family: var(--ibq-mono); font-size: 13px; letter-spacing: .08em; }
.ibq-ronde__jour { font-family: var(--ibq-serif); font-size: 34px; line-height: 1; }
.ibq-ronde__mois { font-size: 13px; }
.ibq-ronde__etat { font-family: var(--ibq-mono); font-size: 12px; color: var(--ibq-gris); }
.ibq-ronde.is-prochaine { background: var(--ibq-encre); border-color: var(--ibq-encre); color: var(--ibq-ivoire); }
.ibq-ronde.is-prochaine .ibq-ronde__etat { color: var(--ibq-laiton); text-transform: uppercase; }
.ibq-ronde.is-conditionnelle { border-style: dashed; border-color: #B8AE98; }
.ibq-ronde.is-passee { opacity: .55; }
.ibq-note { margin-top: 16px; color: var(--ibq-gris); font-size: 14px; }

/* ---------- Actualités ---------- */
/* Carte entière cliquable (le lien du titre couvre la carte), texte foncé et en taille de lecture, « Lire → » visible. */
.ibq-actu { position: relative; border-top: 2px solid var(--ibq-encre); padding-top: 20px; display: flex; flex-direction: column; gap: 12px; height: 100%; }
.ibq-actu .wp-block-post-title { font-size: 30px; line-height: 1.15; margin: 0; }
.ibq-actu .wp-block-post-title a { color: inherit; text-decoration: none; }
.ibq-actu .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.ibq-actu:hover .wp-block-post-title a, .ibq-actu:focus-within .wp-block-post-title a { color: var(--ibq-bronze); }
.ibq-actu .wp-block-post-excerpt { color: var(--ibq-encre); font-size: 17px; line-height: 1.55; margin: 0; }
.ibq-actu .wp-block-post-excerpt p { margin: 0; }
.ibq-actu .wp-block-post-excerpt__more-text { display: none; }
.ibq-actu::after { content: "Lire l'annonce →"; margin-top: auto; padding-top: 4px; font-size: 15px; font-weight: 600; color: var(--ibq-bronze); }
.ibq-actu:hover::after { text-decoration: underline; text-underline-offset: 3px; }
.ibq-meta { display: flex; gap: 12px; align-items: baseline; flex-wrap: wrap; font-family: var(--ibq-mono); font-size: 14px; letter-spacing: .02em; color: var(--ibq-gris); }
.ibq-meta .wp-block-post-terms, .ibq-meta .wp-block-post-date { font-size: 14px; }
.ibq-meta .wp-block-post-terms a { position: relative; z-index: 1; color: var(--ibq-bronze); text-decoration: none; }

/* Accueil : les annonces en liste (une ligne par annonce, date à gauche) ; cartes ailleurs (Actualités, archives). */
.home .ibq-actus .wp-block-post-template { display: block !important; }
.home .ibq-actus .wp-block-post-template > li { margin: 0; }
.home .ibq-actus .ibq-actu { display: grid; grid-template-columns: 17ch 1fr auto; column-gap: 32px; row-gap: 6px; align-items: baseline;
	border-top: 1px solid var(--ibq-filet); padding: 22px 0; height: auto; }
.home .ibq-actus .wp-block-post-template > li:first-child .ibq-actu { border-top: 2px solid var(--ibq-encre); }
.home .ibq-actus .ibq-meta { grid-column: 1; grid-row: 1 / span 2; flex-direction: column; gap: 4px; }
.home .ibq-actus .wp-block-post-title { grid-column: 2; font-size: 26px; }
.home .ibq-actus .wp-block-post-excerpt { grid-column: 2; font-size: 16px; }
.home .ibq-actus .ibq-meta .wp-block-post-terms { white-space: nowrap; }
.home .ibq-actus .ibq-actu::after { grid-column: 3; grid-row: 1; margin: 0; padding: 0; white-space: nowrap; content: "Lire →"; }
@media (max-width: 781px) {
	.home .ibq-actus .ibq-actu { grid-template-columns: 1fr; }
	.home .ibq-actus .ibq-meta { grid-row: auto; flex-direction: row; }
	.home .ibq-actus .wp-block-post-title, .home .ibq-actus .wp-block-post-excerpt, .home .ibq-actus .ibq-actu::after { grid-column: 1; grid-row: auto; }
}
.ibq-meta > * { margin: 0 !important; }

/* ---------- Lieu ---------- */
.ibq-lieu img { width: 100%; height: 100%; min-height: 320px; object-fit: cover; display: block; }

/* ---------- Bandeau de titre (pages) ---------- */
.ibq-titre-page .wp-block-post-title { margin: 0; }
.ibq-titre-page .wp-block-post-excerpt { color: var(--ibq-gris-clair); font-size: 18px; max-width: 720px; }
.ibq-titre-page .wp-block-post-excerpt__more-text { display: none; }

/* ---------- Contenu courant ---------- */
.entry-content > :is(h2, h3) { margin-top: 1.6em; }
.entry-content > h2 { font-size: clamp(30px, 3.4vw, 40px); }
.wp-block-table:not(.is-style-ibq-cotation) { font-size: 15px; }
.wp-block-table thead { border-bottom: 1px solid var(--ibq-encre); }
.wp-block-table td, .wp-block-table th { border-color: var(--ibq-filet); padding: 10px 12px; }
.wp-block-details summary { cursor: pointer; font-weight: 600; }

/* ---------- Pied de page ---------- */
.ibq-pied { font-size: 15px; }
.ibq-pied a { color: var(--ibq-gris-clair) !important; text-decoration: none; }
.ibq-pied a:hover { color: var(--ibq-laiton) !important; }
.ibq-pied .ibq-pied__titre { font-family: var(--ibq-mono); font-size: 12px; letter-spacing: .12em; color: var(--ibq-laiton); margin: 0 0 6px; }
.ibq-pied ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 8px; }
.ibq-pied__bas { border-top: 1px solid #22364A; font-size: 13px; color: #8A97A5; }

/* ---------- Petits écrans ---------- */
@media (max-width: 781px) {
	.ibq-marque__titre { font-size: 22px; }
	.ibq-marque img { width: 40px; height: 40px; }
	.ibq-marque__sous { display: none; }
	.ibq-entete .ibq-bouton { display: none; }
	.ibq-prochain { padding: 16px; }
	.ibq-prochain__valeur { font-size: 15px; }
	.ibq-barres { padding: 20px; }
	.ibq-barres li { grid-template-columns: 1fr 32px; }
	.ibq-barres__piste { grid-column: 1 / -1; grid-row: 2; }
	.ibq-cote :is(th, td):first-child { padding-left: 16px; }
	.ibq-cote :is(th, td):last-child { padding-right: 16px; }
	.ibq-cote__tete { padding: 16px; }
	.ibq-bandeau .ibq-bandeau__gauche { display: none; }
}
@media (prefers-reduced-motion: reduce) { * { transition: none !important; } }

/* ---------- Sections pleine largeur ---------- */
.ibq-section { padding-top: var(--wp--preset--spacing--60); padding-bottom: var(--wp--preset--spacing--60); }
.ibq-section.is-serre { padding-top: var(--wp--preset--spacing--40); padding-bottom: var(--wp--preset--spacing--40); }
.ibq-section.is-sans-bas { padding-bottom: 0; }
.ibq-section.is-sans-haut { padding-top: 0; }
:where(.wp-block-post-content) > .alignfull { margin-block-start: 0; margin-block-end: 0; }
:where(.wp-block-post-content) > .alignfull + .alignfull { margin-block-start: 0; }
main.ibq-main { margin-block-start: 0; }
.ibq-hero h1 { margin-block: 0; }
.ibq-hero .wp-block-columns { gap: clamp(32px, 5vw, 64px); }
.ibq-intro { max-width: 560px; }
.ibq-entete-section { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 16px 32px; margin-bottom: 40px !important; }
.ibq-entete-section > * { margin: 0 !important; }
.ibq-entete-section .ibq-intro { color: var(--ibq-gris); font-size: 17px; max-width: 440px; }
.ibq-cartes { gap: 24px; }
.ibq-cartes > .wp-block-group { padding: 36px 32px; display: flex; flex-direction: column; gap: 18px; }
.ibq-cartes > .wp-block-group > * { margin: 0; }
.ibq-cartes h3 { font-family: var(--wp--preset--font-family--texte); font-size: 22px; font-weight: 600; }
.ibq-cartes p:not(.ibq-picto):not(.ibq-carte-lien) { color: var(--ibq-gris); }
.ibq-cartes .is-style-ibq-carte-sombre p:not(.ibq-picto):not(.ibq-carte-lien) { color: var(--ibq-gris-clair); }
.ibq-corporate { gap: 0 !important; align-items: stretch !important; }
.ibq-corporate > .wp-block-column { align-self: stretch !important; display: flex; flex-direction: column; justify-content: center; }
.ibq-corporate > .wp-block-column { padding: clamp(32px, 5vw, 56px) clamp(24px, 4vw, 48px); }
.ibq-corporate > .wp-block-column:first-child { background: var(--ibq-papier); border: 1px solid var(--ibq-filet); }
.ibq-offre { margin: 0; display: flex; flex-direction: column; }
.ibq-offre__ligne { padding: 16px 0; border-bottom: 1px solid #22364A; }
.ibq-offre__ligne:first-child { padding-top: 0; }
.ibq-offre__ligne:last-child { border-bottom: 0; padding-bottom: 0; }
.ibq-offre dt { font-family: var(--ibq-mono); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ibq-laiton); margin-bottom: 6px; }
.ibq-offre dd { margin: 0; color: var(--ibq-ivoire); font-size: 16px; line-height: 1.5; }
/* les deux colonnes partent du même haut : le surtitre à gauche, la première ligne à droite */
.ibq-corporate > .wp-block-column.wp-block-column { justify-content: flex-start; }
.ibq-grand-chiffres { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 24px; }
.ibq-grand-chiffres > div { display: flex; flex-direction: column; gap: 6px; }
.ibq-grand-chiffres b { font-family: var(--ibq-serif); font-weight: 400; font-size: 44px; line-height: 1; color: var(--ibq-laiton); }
.ibq-grand-chiffres span { color: var(--ibq-gris-clair); font-size: 15px; }
.ibq-trophee img { width: 100%; max-height: 560px; object-fit: cover; box-shadow: 0 30px 60px rgba(0, 0, 0, .4); }
.ibq-encadre { border: 1px solid var(--ibq-filet); padding: 24px 28px; }
.ibq-regles h3 { font-family: var(--wp--preset--font-family--texte); font-size: 18px; font-weight: 600; margin: 0 0 8px; }
.ibq-regles > .wp-block-group { border-top: 2px solid var(--ibq-encre); padding-top: 18px; }
.ibq-regles p { color: var(--ibq-gris); margin: 0; }
@media (max-width: 781px) {
	.ibq-corporate > .wp-block-column:first-child { border-bottom: 0; }
	.ibq-hero { padding-top: var(--wp--preset--spacing--50); }
}

/* Pied de page (colonnes) */
.ibq-pied { padding-top: 64px; padding-bottom: 32px; }
.ibq-pied__colonnes { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 40px; }
.ibq-pied__asso { display: flex; flex-direction: column; gap: 14px; }
.ibq-pied__asso p { margin: 0; font-size: 14px; }
.ibq-pied__asso .ibq-pied__nom { font-family: var(--ibq-serif); font-size: 22px; color: var(--ibq-ivoire); line-height: 1.2; }
.ibq-pied__bas { margin: 48px 0 0; padding-top: 20px; border-top: 1px solid #22364A; font-size: 13px; color: #8A97A5; }
.ibq-entete__ligne { padding-top: 14px; padding-bottom: 14px; gap: 16px 32px; }
.ibq-entete__nav { gap: 24px; }
.ibq-bandeau__ligne { padding-top: 8px; padding-bottom: 8px; gap: 8px 24px; }
.ibq-hero h1 em, .ibq-titre-sombre h1 em { color: var(--ibq-laiton); }
.ibq-encadre-sombre { padding: clamp(28px, 4vw, 48px); }
.ibq-encadre-sombre .ibq-entete-section { margin-bottom: 28px !important; }
.ibq-titre-sombre h1 { margin-top: 12px; margin-bottom: 16px; }

/* En-tête sur écrans moyens (tablette, petit portable) : menu replié derrière le bouton, titre sur une ligne. */
.ibq-marque__titre, .ibq-marque__sous { white-space: nowrap; }
@media (max-width: 1199px) {
	.ibq-entete .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ibq-entete .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.ibq-entete__nav { gap: 16px; }
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { align-items: flex-start; padding-top: 40px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start; gap: 18px; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-family: var(--ibq-serif); font-size: 30px; }
.ibq-lieu-court { border-top: 1px solid var(--ibq-filet); border-bottom: 1px solid var(--ibq-filet); padding: 18px 0; gap: 8px 24px; font-size: 15px; }
.ibq-lieu-court p { margin: 0; color: var(--ibq-gris); }
.ibq-lieu-court strong { color: var(--ibq-encre); font-weight: 600; }
.ibq-photo-acces img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; object-position: center 35%; }
.ibq-agenda { display: flex; flex-wrap: wrap; gap: 10px 20px; align-items: center; margin-top: 24px; }
.ibq-agenda .ibq-bouton--contour { border-color: var(--ibq-encre); color: var(--ibq-encre) !important; }
.ibq-agenda__fichier { font-size: 15px; }
.ibq-agenda__aide { flex-basis: 100%; font-size: 14px; color: var(--ibq-gris); }
.ibq-bandeau-leman { margin-top: 24px !important; padding: 20px 28px; background: var(--ibq-papier); border: 1px solid var(--ibq-filet); gap: 8px 24px; }
.ibq-bandeau-leman p { margin: 0; }
.ibq-bandeau-leman .ibq-surtitre { margin-right: 10px; }
.ibq-bandeau a { color: var(--ibq-gris-clair) !important; text-decoration: none; border-bottom: 1px dotted currentColor; }
.ibq-bandeau a:hover { color: var(--ibq-laiton) !important; }

/* Photo de l'accueil */
.ibq-scene { width: 100%; max-width: 460px; margin: 0 auto; line-height: 0; }
.ibq-scene--photo { position: relative; max-width: 520px; }
.ibq-scene--photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover;
	/* bords fondus dans le bleu nuit du bandeau, sans cadre */
	-webkit-mask-image: linear-gradient(to right, transparent, #000 16%, #000 84%, transparent), linear-gradient(to bottom, transparent, #000 10%, #000 82%, transparent);
	-webkit-mask-composite: source-in;
	mask-image: linear-gradient(to right, transparent, #000 16%, #000 84%, transparent), linear-gradient(to bottom, transparent, #000 10%, #000 82%, transparent);
	mask-composite: intersect; }
.ibq-scene--photo + .ibq-prochain, .ibq-hero .ibq-prochain { margin-top: 0; border-top: 0; }
/* Accueil en bandeau : la photo occupe le côté droit du hero, de bord à bord, et se fond vers la gauche dans le bleu nuit. */
@media (min-width: 782px) {
	.ibq-hero { position: relative; overflow: hidden; min-height: min(78vh, 760px); display: flex; flex-direction: column; justify-content: center; }
	.ibq-hero > .wp-block-columns { width: 100%; }
	.ibq-hero .wp-block-column:first-child { position: relative; z-index: 1; }
	.ibq-hero .ibq-scene--photo { position: absolute; top: 0; right: max(0px, calc((100% - 1360px) / 2)); bottom: 0; height: 100%; width: auto; max-width: none; aspect-ratio: var(--ibq-visuel-ratio, 1); margin: 0; z-index: 0; }
	.ibq-hero .ibq-scene--photo img { width: 100%; height: 100%; aspect-ratio: auto; object-fit: cover; object-position: var(--ibq-visuel-position, 50% 40%);
		-webkit-mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.55) 22%, #000 46%, #000 80%, transparent 100%), linear-gradient(to bottom, #000 82%, transparent 100%);
		-webkit-mask-composite: source-in;
		mask-image: linear-gradient(to right, transparent 0%, rgba(0,0,0,.55) 22%, #000 46%, #000 80%, transparent 100%), linear-gradient(to bottom, #000 82%, transparent 100%);
		mask-composite: intersect; }
}


/* ---------- Résultats en onglets (Classement, Équipes, R1, R2…) ---------- */
.ibq-tournoi { overflow: hidden; }
.ibq-onglets { display: flex; flex-wrap: wrap; gap: 6px; padding: 14px 20px; border-bottom: 1px solid var(--ibq-filet); }
.ibq-tournoi:not(.is-onglets) .ibq-onglets { display: none; }
.ibq-onglet { font-family: var(--ibq-mono); font-size: 13px; padding: 6px 12px; border: 1px solid var(--ibq-filet); background: transparent; color: var(--ibq-encre); cursor: pointer; border-radius: 0; }
.ibq-onglet.is-ronde { min-width: 44px; }
.ibq-onglet[aria-selected="true"] { background: var(--ibq-encre); color: var(--ibq-ivoire); border-color: var(--ibq-encre); }
.ibq-onglet:hover, .ibq-onglet:focus-visible { border-color: var(--ibq-laiton); }
.ibq-panneau { scroll-margin-top: 110px; }
.ibq-panneau[hidden] { display: none; }
.ibq-tournoi:not(.is-onglets) .ibq-panneau + .ibq-panneau { border-top: 1px solid var(--ibq-filet); }
.ibq-tournoi__titre { margin: 0; padding: 16px 24px 4px; font-family: var(--ibq-mono); font-size: 13px; letter-spacing: .06em; text-transform: uppercase; color: var(--ibq-bronze); }
.ibq-tournoi__exempts { margin: 0; padding: 12px 24px 18px; font-size: 14px; color: var(--ibq-gris); }
.ibq-appariements .is-res { text-align: center; white-space: nowrap; font-weight: 500; width: 1%; }
.ibq-appariements td.is-nom { width: 45%; }
.ibq-deplier { border-top: 1px solid var(--ibq-filet-doux); }
.ibq-deplier summary { padding: 12px 24px; cursor: pointer; font-size: 14px; color: var(--ibq-bronze); list-style-position: inside; }
.ibq-deplier[open] summary { border-bottom: 1px solid var(--ibq-filet-doux); }
/* Calendrier : une ronde appariée mène à ses appariements */
.ibq-ronde.is-lien { padding: 0; }
.ibq-ronde.is-lien > a { display: flex; flex-direction: column; gap: 6px; height: 100%; padding: 18px 16px; box-sizing: border-box; color: inherit; text-decoration: none; }
.ibq-ronde.is-lien:hover, .ibq-ronde.is-lien:focus-within { border-color: var(--ibq-laiton); }
.ibq-ronde.is-lien .ibq-ronde__etat { color: var(--ibq-bronze); }

/* Formulaire de contact (inc/contact.php). */
.ibq-contact { max-width: 720px; scroll-margin-top: 24px; }
.ibq-form { display: grid; gap: 18px; margin-top: 8px; }
.ibq-form__ligne { display: grid; gap: 18px; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.ibq-form__champ { display: grid; gap: 6px; }
.ibq-form__champ label { font-size: 14px; font-weight: 600; color: var(--ibq-encre); }
.ibq-form__champ label span { font-weight: 400; color: var(--ibq-gris); }
.ibq-form input[type="text"], .ibq-form input[type="email"], .ibq-form select, .ibq-form textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-size: 16px; color: var(--ibq-encre);
	background: var(--ibq-papier); border: 1px solid var(--ibq-filet); border-radius: 2px; padding: 11px 12px;
}
.ibq-form textarea { resize: vertical; min-height: 160px; }
.ibq-form :is(input, select, textarea):focus { border-color: var(--ibq-bronze); outline: 2px solid var(--ibq-laiton); outline-offset: 1px; }
.ibq-form .ibq-note { margin: 0; }
.ibq-form__piege { position: absolute !important; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.ibq-contact__msg { padding: 14px 16px; border-left: 3px solid; margin: 0 0 8px; }
.ibq-contact__msg--ok { border-color: #2E7D4F; background: #EAF4EE; color: #1D4F33; }
.ibq-contact__msg--erreur { border-color: #A3412F; background: #F8ECE9; color: #6E2A1E; }
