/* Concerts Hamadryade : s'appuie sur les couleurs et typos du thème, avec des valeurs de secours. */
.hc-concerts, .hc-infos, .hc-souvenirs, .hc-seasons, .hc-press {
	--hc-ink: var(--wp--preset--color--contrast, #1f302d);
	--hc-paper: var(--wp--preset--color--base, #f7f3e7);
	--hc-paper-2: var(--wp--preset--color--accent-5, #ece4da);
	--hc-accent: var(--wp--preset--color--accent-1, #bd5c3a);
	--hc-accent-text: var(--wp--preset--color--accent-2, #9e4b2c);
	--hc-muted: var(--wp--preset--color--accent-4, #6b6b5d);
	--hc-label-font: var(--wp--preset--font-family--label, inherit);
	--hc-title-font: var(--wp--preset--font-family--heading, inherit);
}

.hc-label {
	font-family: var(--hc-label-font);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--hc-accent-text);
	margin: 0 0 0.35em;
}

/* Titres de liste et de saison */
.hc-concerts__title, .hc-season-group__title, .hc-souvenirs__title {
	font-family: var(--hc-title-font);
	margin: 0 0 1.25rem;
}
.hc-season-group + .hc-season-group { margin-top: 2.5rem; }
.hc-season-group__title { font-size: 1.25rem; }
.hc-season-group__title a { color: inherit; text-decoration: none; }
.hc-season-group__title a:hover { color: var(--hc-accent-text); }
.hc-concerts__empty { color: var(--hc-muted); font-style: italic; }
.hc-concerts + .hc-concerts { margin-top: 3rem; }

/* Grille de cartes */
.hc-concerts--cartes .hc-concerts__items {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr));
	gap: 2rem 1.5rem;
}
.hc-card { position: relative; color: var(--hc-ink); }
.hc-card a { color: inherit; text-decoration: none; }
.hc-card__media { display: block; overflow: hidden; background: var(--hc-paper-2); }
.hc-card__media img {
	display: block;
	width: 100%;
	aspect-ratio: 1 / 1.414;
	height: auto;
	object-fit: cover;
	transition: transform 0.4s ease;
}
.hc-card:hover .hc-card__media img { transform: scale(1.03); }
.hc-card__body { padding-top: 0.9rem; }
.hc-card__title {
	font-family: var(--hc-title-font);
	font-size: 1.3rem;
	line-height: 1.15;
	margin: 0.2rem 0 0.4rem;
}
.hc-card__title a:hover, .hc-card__title a:focus-visible { color: var(--hc-accent-text); }
.hc-card__title a::after { content: ""; position: absolute; inset: 0; } /* toute la carte cliquable */
.hc-card__when, .hc-card__where { margin: 0; font-size: 0.95rem; }
.hc-card__where { color: var(--hc-muted); }
.hc-card__flags { margin: 0.5rem 0 0; display: flex; gap: 0.4rem; }
.hc-flag {
	font-family: var(--hc-label-font);
	font-size: 0.65rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 0.2em 0.6em;
	border: 1px solid currentColor;
	color: var(--hc-muted);
}
.hc-flag--annule { color: var(--hc-paper); background: var(--hc-accent-text); border-color: var(--hc-accent-text); }
.hc-card.is-annule .hc-card__title { text-decoration: line-through; text-decoration-thickness: 2px; }
.hc-card.is-past .hc-card__media img { filter: saturate(0.85); }

/* Pavé date */
.hc-badge-date {
	display: inline-flex;
	align-items: baseline;
	gap: 0.4rem;
	font-family: var(--hc-label-font);
	text-transform: uppercase;
	letter-spacing: 0.1em;
	color: var(--hc-accent-text);
	font-weight: 600;
}
.hc-badge-date__day { font-family: var(--hc-title-font); font-size: 1.6rem; letter-spacing: 0; color: var(--hc-ink); }
.hc-badge-date__month { font-size: 0.8rem; }
.hc-badge-date__plus { font-size: 0.7rem; color: var(--hc-muted); font-weight: 500; }

/* Liste compacte */
.hc-concerts--liste .hc-concerts__items { display: grid; gap: 0; border-top: 1px solid color-mix(in srgb, var(--hc-ink) 15%, transparent); }
.hc-card--liste {
	display: grid;
	grid-template-columns: 4rem 1fr;
	gap: 1rem;
	align-items: center;
	padding: 0.9rem 0;
	border-bottom: 1px solid color-mix(in srgb, var(--hc-ink) 15%, transparent);
}
.hc-card--liste .hc-card__body { padding: 0; }
.hc-card--liste .hc-card__title { font-size: 1.1rem; margin: 0 0 0.15rem; }
.hc-card--liste .hc-card__when, .hc-card--liste .hc-card__where { font-size: 0.9rem; display: inline; }
.hc-card--liste .hc-card__where::before { content: " · "; }

/* À la une */
.hc-card--une {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: clamp(1.5rem, 4vw, 4rem);
	align-items: center;
}
.hc-card--une .hc-card__title { font-size: clamp(2rem, 4.5vw, 3.4rem); line-height: 1; margin: 0.4rem 0 1rem; }
.hc-card--une .hc-card__title a::after { display: none; }
.hc-card--une .hc-card__when { font-size: 1.15rem; font-weight: 600; }
.hc-card--une .hc-card__where { font-size: 1.05rem; }
.hc-card--une .hc-badge-date__day { font-size: 2.4rem; }
.hc-card__excerpt { margin: 1rem 0 0; max-width: 38em; }
.hc-card__tarif { margin: 0.75rem 0 0; font-style: italic; color: var(--hc-muted); }
.hc-card__actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin: 1.5rem 0 0; }
@media (max-width: 700px) {
	.hc-card--une { grid-template-columns: 1fr; }
	.hc-card--une .hc-card__media { max-width: 22rem; }
}

/* Boutons */
.hc-btn {
	display: inline-block;
	padding: 0.85em 1.5em;
	background: var(--hc-ink);
	color: var(--hc-paper) !important;
	font-family: var(--hc-label-font);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none !important;
	border: 2px solid var(--hc-ink);
	transition: background 0.2s, color 0.2s, border-color 0.2s;
}
.hc-btn:hover, .hc-btn:focus-visible { background: var(--hc-accent-text); border-color: var(--hc-accent-text); }
.hc-btn--ghost { background: transparent; color: var(--hc-ink) !important; }
.hc-btn--ghost:hover, .hc-btn--ghost:focus-visible { color: var(--hc-paper) !important; }

/* Fiche concert : infos */
.hc-infos { color: var(--hc-ink); }
.hc-infos p { margin: 0 0 0.25rem; }
.hc-infos__block { padding: 0 0 1.6rem; }
.hc-infos__dates { list-style: none; margin: 0; padding: 0; }
.hc-infos__dates li { margin: 0 0 0.4rem; }
.hc-infos__date { font-family: var(--hc-title-font); font-weight: 700; font-size: 1.35rem; }
.hc-infos__time { font-family: var(--hc-title-font); font-size: 1.35rem; margin-left: 0.5rem; }
.hc-infos__datelieu { display: block; color: var(--hc-muted); font-size: 0.95rem; }
.hc-infos__lieu strong { font-family: var(--hc-label-font); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.95rem; color: var(--hc-accent-text); }
.hc-link { color: var(--hc-ink); text-underline-offset: 0.2em; font-size: 0.9rem; }
.hc-link:hover { color: var(--hc-accent-text); }
.hc-infos__tarif { font-weight: 600; }
.hc-infos__cta { padding: 0.5rem 0 1.25rem; }
.hc-infos__equipe .hc-label:not(:first-child) { margin-top: 0.9rem; }
.hc-infos__invites { margin: 0; padding-left: 1.1em; }
.hc-infos__saison { padding-top: 1rem; border-top: 1px solid color-mix(in srgb, var(--hc-ink) 15%, transparent); }
.hc-infos__saison a {
	font-family: var(--hc-label-font);
	font-size: 0.75rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--hc-muted);
	text-decoration: none;
}
.hc-infos__saison a:hover { color: var(--hc-accent-text); }
.hc-infos__alert {
	padding: 0.8rem 1rem;
	background: var(--hc-accent-text);
	color: var(--hc-paper);
	font-weight: 700;
	margin-bottom: 1rem !important;
}
.hc-infos__past { font-style: italic; color: var(--hc-muted); margin-bottom: 1rem !important; }

/* Photos et presse */
.hc-gallery {
	list-style: none;
	margin: 0 0 2rem;
	padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 12rem), 1fr));
	gap: 0.5rem;
}
.hc-gallery li { margin: 0; }
.hc-gallery img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
.hc-gallery a:hover img { opacity: 0.9; }
.hc-souvenirs__press-title { margin-top: 1rem; }
.hc-press { list-style: none; margin: 0; padding: 0; }
.hc-press__item {
	padding: 0.9rem 0;
	border-bottom: 1px solid color-mix(in srgb, var(--hc-ink) 15%, transparent);
	display: grid;
	gap: 0.15rem;
}
.hc-press__title { font-family: var(--hc-title-font); font-weight: 700; font-size: 1.1rem; color: var(--hc-ink); text-decoration: none; }
a.hc-press__title:hover { color: var(--hc-accent-text); text-decoration: underline; }
.hc-press__meta { font-size: 0.85rem; color: var(--hc-muted); }
.hc-press__concert { font-size: 0.85rem; }
.hc-press__concert a { color: var(--hc-accent-text); }

/* Saisons */
.hc-seasons ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem; }
.hc-seasons a {
	display: inline-block;
	padding: 0.5em 1em;
	border: 1px solid color-mix(in srgb, var(--hc-ink) 30%, transparent);
	font-family: var(--hc-label-font);
	font-size: 0.75rem;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--hc-ink);
	text-decoration: none;
}
.hc-seasons a:hover, .hc-seasons a[aria-current] { background: var(--hc-ink); color: var(--hc-paper); border-color: var(--hc-ink); }

.wp-block-hamadryade-concerts + .wp-block-hamadryade-concerts { margin-top: clamp(3rem, 7vw, 5rem); }

@media (max-width: 600px) {
	.hc-concerts--cartes .hc-concerts__items { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem 1rem; }
	.hc-card__title { font-size: 1.05rem; }
	.hc-card__when, .hc-card__where { font-size: 0.85rem; }
	.hc-badge-date__day { font-size: 1.3rem; }
}

/* Visuel par défaut quand il n'y a pas d'affiche */
.hc-affiche-defaut { display: block; width: 100%; height: auto; aspect-ratio: 1 / 1.414; object-fit: cover; }

/* Sécurité : carte compacte sans image (texte sur toute la largeur, même dans le pied de page) */
.hc-card.hc-card--liste.no-media { grid-template-columns: 1fr; }

/* Fiche concert : l'affiche ne suit plus le défilement */
.hamadryade-concert-affiche { position: static !important; }

/* Presse en vignettes (même format que la galerie) */
.hc-press-tiles { margin-bottom: 0; }
.hc-press-tile__doc {
	display: grid;
	place-items: center;
	aspect-ratio: 4 / 3;
	background: var(--hc-paper-2);
	border: 1px solid color-mix(in srgb, var(--hc-ink) 15%, transparent);
	color: var(--hc-ink);
	text-decoration: none;
	font-family: var(--hc-label-font);
	font-size: 0.8rem;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}
a.hc-press-tile__doc:hover { background: var(--hc-ink); color: var(--hc-paper); }
.hc-press-tile__title { margin: 0.5rem 0 0; font-weight: 700; font-size: 0.95rem; line-height: 1.3; color: var(--hc-ink); }
.hc-press-tile__meta { margin: 0.15rem 0 0; font-size: 0.85rem; color: var(--hc-muted); }
.hc-gallery a { display: block; cursor: zoom-in; }
.hc-gallery a.hc-press-tile__doc { display: grid; cursor: pointer; }

/* Visionneuse */
.hc-lb {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: none;
	align-items: center;
	justify-content: center;
	background: color-mix(in srgb, #1f302d 94%, transparent);
	padding: 3.5rem 4.5rem;
}
.hc-lb.is-open { display: flex; }
html.hc-lb-open { overflow: hidden; }
.hc-lb__fig { margin: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; height: 100%; }
.hc-lb__fig img { max-width: 100%; max-height: calc(100% - 2.5rem); object-fit: contain; box-shadow: 0 1rem 3rem rgba(0,0,0,0.4); }
.hc-lb__fig figcaption { margin-top: 0.75rem; color: #f7f3e7; font-size: 0.95rem; text-align: center; max-width: 50rem; }
.hc-lb button {
	position: absolute;
	border: 0;
	background: transparent;
	color: #f7f3e7;
	cursor: pointer;
	line-height: 1;
	padding: 0.5rem 0.8rem;
	border-radius: 999px;
	font-family: system-ui, sans-serif;
}
.hc-lb button:hover { background: rgba(247, 243, 231, 0.12); }
.hc-lb button:focus-visible { outline: 2px solid #e8a283; outline-offset: 2px; }
.hc-lb__close { top: 0.75rem; right: 0.75rem; font-size: 2.2rem; }
.hc-lb__nav { top: 50%; transform: translateY(-50%); font-size: 3rem; }
.hc-lb__prev { left: 0.5rem; }
.hc-lb__next { right: 0.5rem; }
.hc-lb.is-single .hc-lb__nav { display: none; }
.hc-lb__count { position: absolute; top: 1.25rem; left: 1.25rem; margin: 0; color: #f7f3e7; font-size: 0.85rem; letter-spacing: 0.1em; }
@media (max-width: 600px) {
	.hc-lb { padding: 3.5rem 0.5rem; }
	.hc-lb__nav { top: auto; bottom: 0.5rem; transform: none; font-size: 2.4rem; }
}
