/* Adaptation WordPress de la direction validée. Les sources de la maquette restent indépendantes. */
body.vdf-2027{margin:0;font-family:var(--body);font-weight:500;line-height:1.5;color:var(--lemon);background:var(--poster-violet)}
body.vdf-2027 h1,body.vdf-2027 h2,body.vdf-2027 h3,body.vdf-2027 h4,body.vdf-2027 h5,body.vdf-2027 h6{font-family:var(--display);font-weight:900}
body.vdf-2027 a{color:inherit}
body.vdf-2027 .btn{border-radius:0;text-decoration:none;box-shadow:none}
body.vdf-2027 .btn:focus-visible{outline:2px solid currentColor;outline-offset:4px}
body.vdf-2027 .bg-primary{background-color:var(--poster-violet)!important}
body.vdf-2027 .bg-secondary{background-color:var(--lemon)!important;color:var(--poster-violet)}
body.vdf-2027 .text-primary{color:var(--poster-violet)!important}
body.vdf-2027 .text-secondary{color:var(--lemon)!important}
body.vdf-2027 .btn-secondary{background:var(--lemon);color:var(--poster-violet);border-color:var(--lemon)}
body.vdf-2027 .site-header{height:auto;min-height:var(--header-compact);box-sizing:border-box}
body.vdf-2027 .edition-info{text-transform:uppercase}
body.vdf-2027 .site-nav details{position:relative}
body.vdf-2027 .site-nav summary{display:flex;align-items:center}
body.vdf-2027 .site-nav .dropdown{inset:auto;float:none;border:0;border-radius:0}
body.vdf-2027 .site-nav .menu-items>details[open]>summary{text-decoration:none}
body.vdf-2027 #main{min-height:60vh;overflow:clip}
body.vdf-2027 #main>.container,body.vdf-2027 #main>.container-xl,body.vdf-2027 #main>.container-xxl{position:relative;padding-top:28px}
body.vdf-2027 #main .hero{padding:0;border:0}
body.vdf-2027 .poster-cycle{flex-shrink:0}
body.vdf-2027 .news-section .section-eyebrow h2{font-size:clamp(20px,2.3vw,32px);line-height:1.1;margin:0}
body.vdf-2027 .news-viewport{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none}
body.vdf-2027 .news-viewport::-webkit-scrollbar{display:none}
body.vdf-2027 .news-track{transform:none!important;transition:none;align-items:stretch}
body.vdf-2027 .news-card{scroll-snap-align:start;flex-shrink:0;display:flex;flex-direction:column}
body.vdf-2027 .news-card h3 p{font:inherit;line-height:inherit;margin:0}
body.vdf-2027 .news-copy{margin-bottom:24px}
body.vdf-2027 .news-card>.btn{align-self:flex-start;margin-top:auto}
body.vdf-2027 .news-card:nth-child(3n + 2) .btn{color:var(--lemon)}
body.vdf-2027 .news-card:not(:nth-child(3n + 2)) .btn{color:var(--poster-violet);background:var(--lemon)}
body.vdf-2027 .programme-title h2{flex:1;margin:0;font-size:clamp(20px,2.3vw,32px);line-height:1.1;letter-spacing:0;text-align:left}
body.vdf-2027 .filter-tools label{margin:0;display:block}
body.vdf-2027 .programme-head .filter-reset.is-active{background:var(--lemon);color:var(--poster-violet)}
body.vdf-2027 .artist-card[hidden],body.vdf-2027 [hidden]{display:none!important}
body.vdf-2027 .artist-card{margin:0;border-radius:0}
body.vdf-2027 .card-title{margin:0}
body.vdf-2027 .artist-poster-title h1{margin:0;font-family:var(--display)}
body.vdf-2027 .artist-poster .artist-portrait img{height:auto;display:block}
body.vdf-2027 .artist-bio{font-weight:500}
body.vdf-2027 .artist-bio p:first-child{margin-top:0}
body.vdf-2027 .ticket-panel{color:var(--poster-violet);align-self:start}
body.vdf-2027 .ticket-panel>.btn{background:var(--poster-violet);color:var(--lemon)}
body.vdf-2027 .ticket-place a{background:var(--poster-violet);color:var(--lemon);border-color:var(--poster-violet)}
body.vdf-2027 .ticket-status{font:900 20px/1.2 var(--display);text-transform:uppercase;margin:0 0 20px}
body.vdf-2027 .ticket-warnings{font-size:14px;line-height:1.5}
body.vdf-2027 .ticket-panel table td{color:inherit}
/* Colonnes indépendantes : la billetterie ne décale pas les médias. */
body.vdf-2027 .artist-intro.artist-layout{grid-template-columns:minmax(0,1fr) minmax(0,1.75fr);gap:24px 50px;align-items:start}
body.vdf-2027 .artist-layout>.artist-content,body.vdf-2027 .artist-layout>.artist-sidebar{display:flex;flex-direction:column;gap:24px;min-width:0}
body.vdf-2027 .artist-layout>.artist-content>*,body.vdf-2027 .artist-layout>.artist-sidebar>*{margin:0;width:100%;order:initial}
body.vdf-2027 .artist-media-list iframe{display:block;width:100%;height:auto;aspect-ratio:16/9;border:0;margin:0 0 24px}
body.vdf-2027 .artist-media-list iframe[src*="spotify.com"]{aspect-ratio:auto;height:352px}
body.vdf-2027 .artist-spotify iframe{border-radius:0}
body.vdf-2027 .artist-partners h2{font-size:14px;margin:0 0 16px}
body.vdf-2027 .artist-partner-logos{display:flex;flex-wrap:wrap;gap:20px;align-items:center}
body.vdf-2027 .artist-partner-logos img{width:auto;max-width:160px;max-height:80px;height:auto}
body.vdf-2027 .artist-return{color:var(--poster-violet);background:var(--lemon)}
body.vdf-2027 .site-footer{margin-top:54px}
body.vdf-2027 .site-footer .btn{color:var(--poster-violet)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:783px){body.admin-bar .site-header{top:32px}body.admin-bar .site-nav{inset:32px 0 0;height:calc(100dvh - 32px)}}
@media(max-width:782px){body.admin-bar .site-header{top:46px}body.admin-bar .site-nav{inset:46px 0 0;height:calc(100dvh - 46px)}body.admin-bar #wpadminbar{position:fixed}}
@media(max-width:960px){body.vdf-2027 .artist-intro.artist-layout{column-gap:28px}}
@media(max-width:640px){
 body.vdf-2027 .artist-intro.artist-layout{display:flex;flex-direction:column;gap:24px;padding-top:20px}
 body.vdf-2027 .artist-layout>.artist-content,body.vdf-2027 .artist-layout>.artist-sidebar{display:contents}
 body.vdf-2027 .artist-layout>.artist-content>.artist-biography{order:0;width:100%}
 body.vdf-2027 .artist-layout>.artist-sidebar>.ticket-panel{order:2;width:100%}
 body.vdf-2027 .artist-layout>.artist-sidebar>.artist-spotify{order:3;width:100%}
 body.vdf-2027 .artist-layout>.artist-content>.artist-media{order:4;width:100%}
 body.vdf-2027 .artist-layout>.artist-content>.artist-links{order:5;width:100%}
 body.vdf-2027 .artist-layout>.artist-content>.artist-partners{order:1;width:100%}
 body.vdf-2027 .artist-layout>.artist-sidebar>.artist-return-wrap{order:6;width:100%}
 body.vdf-2027 .programme-title h2{font-size:clamp(16px,4.2vw,24px)}
}
@media(prefers-reduced-motion:reduce){body.vdf-2027 .poster-marquee-track{animation:none!important}body.vdf-2027 .poster-cycle[aria-hidden]{display:none}body.vdf-2027 .news-viewport{scroll-behavior:auto}}
/* Portrait absent dans WordPress : identité du festival, sans attribuer une autre photo. */
body.vdf-2027 .artist-card--no-photo{background:var(--poster-violet)}
body.vdf-2027 .artist-card--no-photo::before{content:'';position:absolute;inset:26% 22%;background:url('../images/logo-full.svg') center/contain no-repeat;filter:brightness(0) saturate(100%) invert(94%) sepia(40%) saturate(692%) hue-rotate(2deg) brightness(108%) contrast(104%);opacity:.3}
body.vdf-2027 .artist-portrait-placeholder{aspect-ratio:4/5;background:var(--lemon) url('../images/logo-full.svg') center/55% no-repeat;opacity:.5}
body.vdf-2027 .artist-card>.card-status{text-transform:uppercase}

/* Deux rangées de dates, avec des en-têtes de largeur identique. */
body.vdf-2027 .programme-head .date-filters{display:flex;flex-direction:column;gap:6px}
body.vdf-2027 .programme-head .date-filter-row{display:grid;grid-template-columns:140px minmax(0,1fr);gap:6px;align-items:start}
body.vdf-2027 .programme-head .date-filter-days{display:flex;flex-wrap:wrap;gap:6px;min-width:0}
body.vdf-2027 .programme-head .date-filters button{flex:0 0 auto;white-space:nowrap}
body.vdf-2027 .programme-head .date-filters .date-filter-heading{width:100%;background:var(--poster-violet);color:var(--lemon);box-shadow:inset 0 0 0 1px var(--lemon)}
body.vdf-2027 .programme-head .date-filters .date-filter-heading[aria-pressed=true]{background:var(--lemon);color:var(--poster-violet);box-shadow:none}
body.vdf-2027 .artist-grid.has-few-results{display:flex;flex-wrap:wrap;justify-content:center}
body.vdf-2027 .artist-grid.has-few-results .artist-card{flex:0 0 calc((100% - 9px)/4);min-width:0}
@media(max-width:960px){body.vdf-2027 .artist-grid.has-few-results .artist-card{flex-basis:calc((100% - 6px)/3)}}
@media(max-width:640px){body.vdf-2027 .programme-head .date-filter-row{grid-template-columns:105px minmax(0,1fr)}body.vdf-2027 .artist-grid.has-few-results .artist-card{flex-basis:calc((100% - 3px)/2)}}
@media(max-width:360px){body.vdf-2027 .programme-head .date-filter-row{grid-template-columns:92px minmax(0,1fr)}body.vdf-2027 .programme-head .date-filters button{font-size:13px;padding-inline:8px}}
body.vdf-2027 .programme-head .date-filter-days button{width:84px;padding-inline:6px}
@media(max-width:640px){body.vdf-2027 .programme-head .date-filter-days button{width:70px}}
@media(max-width:640px){body.vdf-2027 .programme-head .date-filters button{font-size:11px;letter-spacing:0;padding-inline:4px}}

@media(max-width:640px){body.vdf-2027 .site-header .header-network .newsletter-link{display:none}}

/* Le lieu apparaît à sa place sous la date au survol ou au clavier. */
body.vdf-2027 #programme .artist-card .card-date span:nth-child(2){opacity:0;transform:translateY(1px);transition:opacity .25s ease,transform .25s ease}
body.vdf-2027 #programme .artist-card:hover .card-date span:nth-child(2),body.vdf-2027 #programme .artist-card:focus-visible .card-date span:nth-child(2){opacity:1;transform:translateY(0)}

/* La hauteur du hero reste réservée par poster.css pendant ces fondus. */
.vdf-hero-enhanced #festival .poster-marquee{opacity:0;transition:opacity .3s ease}
.vdf-hero-enhanced #festival:not(.is-text-ready) .poster-marquee-track{animation-play-state:paused!important}
.vdf-hero-enhanced #festival.is-text-ready .poster-marquee{opacity:1}
.vdf-hero-enhanced #festival .hero-pattern{opacity:0;transition:opacity .5s ease}
.vdf-hero-enhanced #festival.is-canvas-ready .hero-pattern{opacity:1}
@media(prefers-reduced-motion:reduce){.vdf-hero-enhanced #festival .poster-marquee,.vdf-hero-enhanced #festival .hero-pattern{transition:none}}
