/*
Theme Name: Au Chœur de l'Orbe
Theme URI: https://auchoeurdelorbe.ch
Author: Christophe Poupon
Description: Thème à blocs sur mesure pour le chœur Au Chœur de l'Orbe – fond noir, touches de rouge et de jaune.
Requires at least: 6.6
Tested up to: 6.8
Requires PHP: 7.4
Version: 1.0.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: auchoeurdelorbe
*/

/* ---------- Généralités ---------- */
body { -webkit-font-smoothing: antialiased; }
img { height: auto; }

:where(a, button, input, textarea, select, .wp-element-button):focus-visible {
	outline: 2px solid var(--wp--preset--color--jaune);
	outline-offset: 3px;
}

/* Les sections pleine largeur s'enchaînent sans espace entre elles */
.wp-site-blocks > * { margin-block-start: 0; }
main > .alignfull,
.wp-block-post-content > .alignfull,
.wp-block-post-content > .alignfull + * { margin-block-start: 0; }
.wp-block-post-content > .alignfull { margin-block-end: 0; }

/* ---------- En-tête ---------- */
.site-header { border-bottom: 1px solid var(--wp--preset--color--bordure); }
.site-header .wp-block-site-title a { color: var(--wp--preset--color--blanc-casse); text-decoration: none; }
.site-header .wp-block-navigation a { text-decoration: none; }
.site-header .wp-block-navigation-item__content:hover { color: var(--wp--preset--color--jaune); }
.site-header .lien-membres > .wp-block-navigation-item__content {
	background: var(--wp--preset--color--jaune);
	color: var(--wp--preset--color--noir);
	font-weight: 700;
	padding: 0.7rem 1.1rem;
	border-radius: 999px;
}
.site-header .lien-membres > .wp-block-navigation-item__content:hover {
	background: var(--wp--preset--color--blanc);
	color: var(--wp--preset--color--noir);
}

/* ---------- Hero ---------- */
.hero-accueil .wp-block-cover__background {
	background: linear-gradient(180deg, rgba(14,14,14,.15) 0%, rgba(14,14,14,.55) 55%, #0E0E0E 100%) !important;
	opacity: 1 !important;
}
.hero-accueil .wp-block-cover__image-background { object-position: center 40%; }
.hero-accueil h1 { line-height: .95; }

/* ---------- Petits titres ---------- */
.surtitre {
	letter-spacing: .3em;
	text-transform: uppercase;
	margin-bottom: .5rem;
}
.etiquette {
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: .15em;
	text-transform: uppercase;
	color: var(--wp--preset--color--gris-moyen);
	margin: 0;
}
.lien-fleche a { text-decoration: none; font-weight: 600; }

/* ---------- Carte « Prochain concert » ---------- */
.carte-concert {
	gap: 0 !important;
	border: 1px solid var(--wp--preset--color--bordure);
}
.carte-concert .wp-block-post-title { color: var(--wp--preset--color--blanc); margin-top: .25rem; }
.carte-concert .wp-block-post-excerpt { color: var(--wp--preset--color--gris); }
.carte-concert .wp-block-post-excerpt__more-text { display: none; }

.bouton-jaune.wp-block-read-more,
.bouton-jaune .wp-block-read-more {
	display: inline-block;
	background: var(--wp--preset--color--jaune);
	color: var(--wp--preset--color--noir);
	font-weight: 700;
	text-decoration: none;
	padding: 0.9rem 1.5rem;
	border-radius: 4px;
	margin-top: 1rem;
}
.bouton-jaune.wp-block-read-more:hover { background: var(--wp--preset--color--blanc); color: var(--wp--preset--color--noir); }

/* ---------- Section claire ---------- */
.section-claire a:not(.wp-element-button) { color: var(--wp--preset--color--noir); }
.section-claire .etiquette { color: #5f5b56; }
.infos-repetition {
	gap: 2px !important;
	background: var(--wp--preset--color--noir);
	border: 2px solid var(--wp--preset--color--noir);
}
.infos-repetition > .wp-block-group {
	background: var(--wp--preset--color--blanc-casse);
	padding: 1.5rem;
	margin: 0 !important;
}
.infos-repetition p { margin: 0; }

/* ---------- Encadrés ---------- */
.encadre {
	border: 1px solid var(--wp--preset--color--bordure);
	padding: 1.5rem 1.75rem;
}
.encadre p { margin: 0; }
.encadre > * + * { margin-block-start: .4rem !important; }

.qr-don img { background: #fff; padding: 10px; max-width: 200px; }

/* ---------- Partenaires ---------- */
.partenaires { border-top: 1px solid var(--wp--preset--color--bordure); padding-top: 2rem; }
.partenaire {
	border: 1px solid var(--wp--preset--color--bordure);
	padding: .8rem 1.2rem;
	margin: 0 !important;
	color: var(--wp--preset--color--gris);
	font-size: var(--wp--preset--font-size--small);
	letter-spacing: .1em;
	text-transform: uppercase;
}
.partenaires img { max-height: 56px; width: auto; }

/* ---------- Listes de concerts ---------- */
.liste-concerts .wp-block-post-title a { color: var(--wp--preset--color--blanc-casse); text-decoration: none; }
.liste-concerts .wp-block-post-title a:hover { color: var(--wp--preset--color--jaune); }
.liste-concerts .wp-block-post-excerpt { color: var(--wp--preset--color--gris); }

/* ---------- Pied de page ---------- */
.site-footer { border-top: 3px solid var(--wp--preset--color--rouge); }
.site-footer p { margin: 0; }
.site-footer a { text-decoration: none; }
.site-footer a:hover { text-decoration: underline; }

/* ---------- Mobile ---------- */
@media (max-width: 781px) {
	.hero-accueil { min-height: 560px !important; }
	.infos-repetition { grid-template-columns: 1fr !important; }
}

/* Dates de concert */
.date-concert { font-family: var(--wp--preset--font-family--anton); line-height: 1; color: var(--wp--preset--color--blanc); margin-top: .25rem; }
.carte-concert .wp-block-post-title { font-family: var(--wp--preset--font-family--inter); font-weight: 700; margin-top: .5rem; }
.liste-concerts .wp-block-post-date { margin-bottom: -.5rem; }

/* Page d'un concert : affiche entière à gauche, infos à droite */
.colonne-affiche:not(:has(img)) { display: none; }
.colonne-affiche img { width: 100%; height: auto; box-shadow: 0 20px 50px rgba(0,0,0,.6); }
.concert-colonnes .wp-block-post-content > :first-child { margin-top: 0; }
/* Cartes de l'agenda : on garde le haut des affiches */
.liste-concerts .wp-block-post-featured-image img { object-position: center top; }

/* Formulaire de mot de passe (espace membres) */
.post-password-form { max-width: 520px; padding: 2rem; border: 1px solid var(--wp--preset--color--bordure); }
.post-password-form p { margin: 0 0 1rem; }
.post-password-form label { display: block; font-weight: 600; }
.post-password-form input[type="password"] {
	display: block; width: 100%; margin-top: .5rem; padding: .8rem 1rem; box-sizing: border-box;
	background: var(--wp--preset--color--anthracite); color: var(--wp--preset--color--blanc-casse);
	border: 1px solid var(--wp--preset--color--gris-moyen); border-radius: 4px; font: inherit;
}
.post-password-form input[type="submit"] {
	background: var(--wp--preset--color--jaune); color: var(--wp--preset--color--noir);
	border: 0; border-radius: 4px; padding: .9rem 1.6rem; font: inherit; font-weight: 700; cursor: pointer;
}
.post-password-form input[type="submit"]:hover { background: var(--wp--preset--color--blanc); }

/* Agenda des choristes */
.agenda-membres { margin-top: var(--wp--preset--spacing--60); }
.agenda-membres h2 { margin-bottom: .5rem; }
.am-legende { display: flex; flex-wrap: wrap; gap: .5rem; }
.am-mois { font-family: var(--wp--preset--font-family--inter); font-weight: 700; font-size: var(--wp--preset--font-size--large); margin: 2rem 0 .5rem; color: var(--wp--preset--color--jaune); }
.am-liste { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--wp--preset--color--bordure); }
.agenda-membres .am-liste > li { margin: 0; }
.am-ligne { display: grid; grid-template-columns: 10.5rem 6.5rem 1fr; column-gap: 1rem; align-items: center; padding: .7rem 0; border-bottom: 1px solid var(--wp--preset--color--bordure); }
.am-date { font-weight: 600; line-height: 1.35; }
.am-ligne .am-badge { justify-self: start; }
.am-texte { display: flex; flex-direction: column; gap: .1rem; line-height: 1.4; }
.am-texte strong a { color: var(--wp--preset--color--blanc-casse); text-decoration: underline; text-decoration-color: var(--wp--preset--color--rouge); text-underline-offset: 3px; }
.am-texte small { color: var(--wp--preset--color--gris); font-size: .9rem; }
.am-badge { display: inline-block; font-size: .75rem; font-weight: 700; letter-spacing: .03em; line-height: 1.4; padding: .2rem .55rem; border-radius: 3px; text-align: center; white-space: nowrap; }
.am-repetition { background: var(--wp--preset--color--jaune); color: var(--wp--preset--color--noir); }
.am-concert { background: var(--wp--preset--color--rouge); color: var(--wp--preset--color--blanc); }
.am-vacances { background: var(--wp--preset--color--gris-fonce); color: var(--wp--preset--color--blanc-casse); }
.am-autre { background: transparent; color: var(--wp--preset--color--blanc-casse); border: 1px solid var(--wp--preset--color--gris-moyen); }
.am-ligne-vacances .am-texte strong { color: var(--wp--preset--color--gris); }
@media (max-width: 600px) {
	.am-ligne { grid-template-columns: auto 1fr; row-gap: .35rem; }
	.am-ligne .am-badge { justify-self: end; }
	.am-texte { grid-column: 1 / -1; }
	.am-texte:empty { display: none; }
}
