/* --- STYLES FOR SINGLE-CARNIVAL.PHP --- */

/* Use the variables from global.css but apply this page's specific background */
body.single-carnival {
    background: var(--single-bg) !important;
    color: #fff;
    font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Inter, Arial, sans-serif;
}

/* Layout helpers */
.wrap{max-width:1360px;margin:auto;padding:24px 16px}
.grid-2{display:grid;grid-template-columns:1fr 1.2fr;gap:28px}
.grid-2.reverse{grid-template-columns:1.2fr 1fr}
@media (max-width:900px){.grid-2,.grid-2.reverse{grid-template-columns:1fr}}
.card{background:var(--single-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--single-radius);box-shadow:var(--single-shadow)}
.lead{color:var(--single-muted)}
.title{font-weight:900;font-size:clamp(26px,5.4vw,46px);margin:0 0 10px}
.align-left{text-align:left}.align-center{text-align:center}.align-right{text-align:right}
.section{padding:42px 0 68px;border-bottom:1px solid rgba(255,255,255,.06)}
.section:last-child{border-bottom:0}

/* HERO */
.hero{position:relative;min-height:72vh;display:grid;place-items:center;border-bottom:1px solid rgba(255,255,255,.06);overflow:hidden;box-shadow:0 18px 40px rgba(0,0,0,.35); padding: 0;}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.1) contrast(1.05) brightness(.7)}
.hero .overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.8))}
.hero .content{position:relative;z-index:1;max-width:1280px;margin:auto;padding:40px 16px;text-align:center}
.hero h1{font-size:clamp(28px,6vw,60px);margin:8px 0 6px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border:1px solid rgba(255,255,255,.18);border-radius:999px;background:rgba(0,0,0,.35);font-size:12px;color:var(--single-muted)}
.meta{color:#e8e8f3}

/* Carousel */
.carousel{position:relative;margin:22px 0 36px !important}
.carousel-track{display:flex;gap:32px;overflow:hidden;scroll-behavior:smooth}
.carousel .item{min-width:560px;flex:0 0 560px}
.carousel .item .thumb{aspect-ratio:16/10;background:#0b0d12;overflow:hidden;border-radius:0}
.carousel .item h4{margin:12px 2px 6px;font-size:20px}
.carousel .item p{margin:0;color:var(--single-muted);font-size:15px}
.carousel button{position:absolute;top:50%;transform:translateY(-50%);border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.8);color:#fff;width:56px;height:56px;font-size:0;cursor:pointer;box-shadow:0 8px 30px rgba(0,0,0,.45);display:grid;place-items:center}
.carousel button svg{width:28px;height:28px;display:block}
.carousel button:hover{background:rgba(0,0,0,.92)}
.carousel button:active{transform:translateY(-50%) scale(.98)}
.carousel .prev{left:-18px}.carousel .next{right:-18px}

/* List grids */
#programme .listwrap{margin-top:72px;border-color:rgba(255,111,97,.45)}
.listwrap{background:var(--single-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--single-radius);box-shadow:var(--single-shadow);overflow:hidden}
.list-head,.row{display:grid;grid-template-columns:100px 1.6fr 1.1fr 1.1fr 70px 70px;gap:12px;align-items:center}
.list-head{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.08);color:var(--single-muted);font-size:12px;text-transform:uppercase;letter-spacing:.6px}
.row{padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.06)}
.row:last-child{border-bottom:0}
.mbadge{display:inline-block;min-width:64px;text-align:center;padding:8px 10px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);font-weight:700}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.06)}
.icon{width:18px;height:18px;display:block}
@media (max-width:820px){
  .list-head{display:none}
  .row{grid-template-columns:1fr 1fr;gap:6px}
  .cell-month{order:1}.cell-event{order:2}.cell-promoter{order:3}.cell-date{order:4}.cell-ig{order:5}.cell-web{order:6}
}

/* Photo galleries & images */
.big-photo{overflow:hidden;aspect-ratio:5/3;border-radius:0}
.gallery{position:relative}
.gallery-track{display:flex;gap:22px;overflow:hidden;scroll-behavior:smooth}
.gallery .shot{min-width:600px;flex:0 0 600px;aspect-ratio:16/10;overflow:hidden;background:#0b0d12;border-radius:0}
.gallery button{position:absolute;top:50%;transform:translateY(-50%);border:1px solid rgba(255,255,255,.35);background:rgba(0,0,0,.8);color:#fff;width:56px;height:56px;font-size:0;cursor:pointer;box-shadow:0 8px 30px rgba(0,0,0,.45);display:grid;place-items:center}
.gallery button svg{width:28px;height:28px;display:block}
.gallery button:hover{background:rgba(0,0,0,.92)}
.gallery button:active{transform:translateY(-50%) scale(.98)}
.gallery .prev{left:-18px}.gallery .next{right:-18px}

/* Music grid */
.tracks{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
@media (max-width:900px){.tracks{grid-template-columns:repeat(2,1fr)}}
.track{background:var(--single-card);border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:10px}
.cover{aspect-ratio:1/1;border-radius:0;overflow:hidden;background:#0b0d12}
.tmeta{font-size:12px;color:var(--single-muted);margin-top:4px}
.hero::after{content:"";display:none}
#programme .listwrap .list-head{border-bottom:1px solid rgba(255,111,97,.28)}
#programme .listwrap .row{border-bottom:1px solid rgba(255,111,97,.18)}
#mas-bands .listwrap{border-color:rgba(0,184,169,.45)}
#mas-bands .listwrap .list-head{border-bottom:1px solid rgba(0,184,169,.30)}
#mas-bands .listwrap .row{border-bottom:1px solid rgba(0,184,169,.18)}
.big-photo img,.gallery .shot img,.carousel .item .thumb img,.cover img{width:100%;height:100%;object-fit:cover;border-radius:0}  
.carousel::before,.carousel::after{content:"";position:absolute;left:0;right:0;height:28px;pointer-events:none;z-index:1}
.carousel::before{top:-6px;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,0))}
.carousel::after{bottom:-6px;background:linear-gradient(0deg,rgba(0,0,0,.35),rgba(0,0,0,0))}
.gallery::before,.gallery::after{content:"";position:absolute;left:0;right:0;height:28px;pointer-events:none;z-index:1}
.gallery::before{top:-6px;background:linear-gradient(180deg,rgba(0,0,0,.35),rgba(0,0,0,0))}
.gallery::after{bottom:-6px;background:linear-gradient(0deg,rgba(0,0,0,.35),rgba(0,0,0,0))}

/* Reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media (max-width:1000px){.reviews{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.reviews{grid-template-columns:1fr}}
.rev-card{background:var(--single-card);border:1px solid rgba(255,255,255,.08);padding:16px;border-radius:12px;box-shadow:var(--single-shadow)}
.rev-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}
.avatar{width:42px;height:42px;border-radius:50%;overflow:hidden;background:#0b0d12;flex:0 0 42px}
.stars{display:inline-flex;gap:4px}
.stars svg{width:16px;height:16px;display:block;color:#f5b700}
.rev-name{font-weight:800}
.rev-date{color:var(--single-muted);font-size:12px}
.rev-body{color:#e9ecf2}
.rev-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}
.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 16px;border:1px solid rgba(255,255,255,.38);border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font-weight:800;letter-spacing:.2px;text-shadow:0 1px 0 rgba(0,0,0,.45);cursor:pointer}
.btn:hover{background:rgba(255,255,255,.22)}
.btn:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.rev-cta .btn{min-width:170px;justify-content:center}

/* YouTube video grid */
.yt-masonry{column-count:3;column-gap:14px}
@media (max-width:1000px){.yt-masonry{column-count:2}}
@media (max-width:640px){.yt-masonry{column-count:1}}
.yt-card{display:inline-block;width:100%;margin:0 0 14px;break-inside:avoid;background:var(--single-card);border:1px solid rgba(255,255,255,.06);padding:10px}
.yt-wrap{position:relative;aspect-ratio:16/9;background:#000;overflow:hidden}
.yt-wrap .thumb{position:absolute;inset:0;background-size:cover;background-position:center;filter:contrast(1.05) brightness(.9)}
.yt-wrap .play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:72px;height:72px;border-radius:50%;border:2px solid rgba(255,255,255,.6);background:rgba(0,0,0,.55);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.4)}
.yt-wrap .play svg{width:28px;height:28px;display:block}
.yt-meta .t{font-weight:800}
.yt-meta .a{font-size:12px;color:var(--single-muted)}

/* Modal player */
#ytModal{position:fixed;inset:0;display:none;z-index:2000}
#ytModal.open{display:block}
#ytModal .backdrop{position:absolute;inset:0;background:rgba(0,0,0,.78);backdrop-filter:blur(4px)}
#ytModal .dialog{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(1100px,92vw);background:#0b0d12;border:1px solid rgba(111,45,189,.45);box-shadow:0 18px 48px rgba(0,0,0,.5)}
#ytModal .frame{position:relative;aspect-ratio:16/9;background:#000}
#ytModal iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
#ytModal .bar{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;border-top:1px solid rgba(245,183,0,.28)}
#ytModal .meta{font-weight:800}
#ytModal .controls{display:flex;gap:8px}
#ytModal .ctrl{width:42px;height:42px;display:grid;place-items:center;border:1px solid rgba(111,45,189,.6);background:var(--purple);color:#fff;cursor:pointer}
#ytModal .ctrl:hover{filter:brightness(1.08)}
#ytModal .ctrl:active{transform:scale(.98)}
#ytModal .ctrl:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
#ytModal .close{margin-left:auto}
#watchAllBar{display:flex;justify-content:flex-end;gap:10px;margin:-6px 0 12px}
#ytModal #ytShuffle[aria-pressed="true"]{background:var(--gold);color:#000;border-color:rgba(245,183,0,.85)}
#watchShuffleBtn[aria-pressed="true"]{background:var(--gold);color:#000;border-color:rgba(245,183,0,.85);text-shadow:none}