/* Virtual Hall® — one fact model for concert pages and concert cards (v1.0.9). */

/* Concert page: Date, Lieu, Interprétation, Direction, Style, Durée */
.vh-concert-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 40px;margin:0;padding:0;}
.vh-concert-fact{min-width:0;margin:0;}
.vh-concert-fact dt{margin:0 0 5px;font-size:12px;line-height:1.3;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#6b7280;}
.vh-concert-fact dd{margin:0;font-size:16px;line-height:1.45;font-weight:600;color:#1f2023;overflow-wrap:anywhere;}
.vh-concert-fact dd *{font-size:inherit !important;line-height:inherit !important;font-weight:inherit !important;}
.vh-concert-fact dd > div{display:flex;flex-wrap:wrap;gap:3px 14px;}
.vh-concert-fact dd a{text-decoration:none;}
.vh-concert-fact dd a:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:2px;}
/* Tighter, constant rhythm between the work title block and the facts (theme column gap is 16/24/32/40 px). */
.vh-concert-heading ~ .vh-concert-facts{margin-top:4px;}
@media (min-width:640px){.vh-concert-heading ~ .vh-concert-facts{margin-top:-4px;}}
@media (min-width:768px){.vh-concert-heading ~ .vh-concert-facts{margin-top:-10px;}}
@media (min-width:1024px){.vh-concert-facts{gap:24px 48px;}.vh-concert-heading ~ .vh-concert-facts{margin-top:-16px;}}
@media (max-width:359px){.vh-concert-facts{grid-template-columns:1fr;}}

/* Cards (catalogue, home, recommendations): whole card opens the concert, Style opens its page. */
.vh-card-stretch{position:relative;}
.vh-card-stretch > .vh-card-link::after{content:"";position:absolute;inset:0;z-index:1;border-radius:8px;}
.vh-card-hitarea{position:absolute;inset:0;z-index:1;border-radius:8px;}
.vh-card-stretch > .vh-card-link:focus-visible{outline:none;}
.vh-card-stretch > .vh-card-link:focus-visible::after{outline:2px solid #75469b;outline-offset:4px;}
.vh-card-heading.min-h-24{min-height:0;}
.vh-card-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;margin:12px 0 0;padding:0;}
.vh-card-fact{min-width:0;margin:0;}
.vh-card-fact dt{margin:0 0 2px;font-size:11px;line-height:1.3;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#9ca3af;}
.vh-card-fact dd{margin:0;font-size:14px;line-height:1.4;font-weight:500;color:inherit;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;}
.vh-card-fact[data-fact="ensemble"],.vh-card-fact[data-fact="direction"]{grid-column:1/-1;}
.vh-card-fact[data-fact="ensemble"] dd,.vh-card-fact[data-fact="direction"] dd{font-weight:600;color:#1f2023;}
.vh-card-fact[data-fact="direction"] dd{display:block;overflow:visible;-webkit-line-clamp:unset;}
.group:hover .vh-card-fact dt{color:#6b7280;}
.vh-card-style-link{position:relative;z-index:2;color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:rgba(117,70,155,.35);text-underline-offset:3px;transition:color .2s ease,text-decoration-color .2s ease;}
.vh-card-style-link:hover{color:#75469b;text-decoration-color:currentColor;}
.vh-card-style-link:focus-visible{outline:2px solid #75469b;outline-offset:2px;border-radius:2px;}
.vh-card-details{margin:12px 0 0;padding:10px 12px;border-left:2px solid #D98380;border-radius:0 6px 6px 0;background:#f6f2f9;color:#1f2023;}
.vh-card-detail-list{display:grid;gap:7px;margin:0;padding:0;}
.vh-card-detail-fact{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px;align-items:baseline;min-width:0;margin:0;}
.vh-card-detail-fact dt{margin:0;font-size:10px;line-height:1.35;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:#734394;}
.vh-card-detail-fact dd{min-width:0;margin:0;font-size:13px;line-height:1.42;font-weight:500;overflow-wrap:anywhere;}
@media (hover:hover) and (pointer:fine){
    .vh-card-details{max-height:0;margin-top:0;padding-top:0;padding-bottom:0;overflow:hidden;opacity:0;transform:translateY(-4px);border-left-color:transparent;pointer-events:none;transition:max-height .25s ease,margin .25s ease,padding .25s ease,opacity .18s ease,transform .25s ease,border-color .25s ease;}
    .group:hover .vh-card-details,.vh-card-stretch:focus-within .vh-card-details{max-height:18rem;margin-top:12px;padding-top:10px;padding-bottom:10px;opacity:1;transform:none;border-left-color:#D98380;}
}
@media (hover:none), (pointer:coarse){.vh-card-details{display:block;}}
@media (max-width:359px){.vh-card-detail-fact{grid-template-columns:1fr;gap:1px;}}
@media (min-width:1024px){.vh-card-facts{margin-top:14px;}}

/* Coming-soon works stay after the available concerts in the catalogue grid. */
.container:has(#filter-form) > .grid > .group:has(img[src*="/photo-catalogue-prochainement-"]){order:1;}
/* Venue link on concert cards: same treatment as the Style link, above the stretched card link. */
.vh-card-place-link{position:relative;z-index:2;color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:rgba(117,70,155,.35);text-underline-offset:3px;transition:color .2s ease,text-decoration-color .2s ease;}
.vh-card-place-link:hover{color:#75469b;text-decoration-color:currentColor;}
.vh-card-place-link:focus-visible{outline:2px solid #75469b;outline-offset:2px;border-radius:2px;}
