:root{
    --page-blue:#0c7cff;
    --page-blue-light:#27a7ff;
    --page-bg:#03101f;
    --page-panel:#07172b;
    --page-panel-soft:#0a203b;
    --page-border:#1f4f7d;
    --page-muted:#a9c2d9;
}

/* Algemene paginestijl */
.programs-team-page,
.news-page,
.contact-page,
.dj-page,
.schedule-page{
    background:
        radial-gradient(circle at top right,rgba(12,124,255,.12),transparent 30%),
        var(--page-bg)!important;
    color:#fff;
}

.programs-team-hero,
.news-hero,
.schedule-hero,
.contact-hero,
.dj-hero{
    min-height:330px!important;
    background:
        linear-gradient(90deg,rgba(2,11,22,.9),rgba(2,11,22,.55),rgba(2,11,22,.88)),
        url('/assets/images/page-header.png') center/cover no-repeat!important;
    border-bottom:1px solid var(--page-border)!important;
}

.programs-team-hero h1,
.news-hero h1,
.schedule-hero h1,
.contact-hero h1,
.dj-hero h1{
    font-size:clamp(3rem,8vw,6rem)!important;
    letter-spacing:-.05em;
}

.programs-team-hero span,
.news-eyebrow,
.schedule-eyebrow,
.contact-eyebrow,
.dj-eyebrow{
    color:var(--page-blue-light)!important;
}

/* Programma's */
.programs-team-shell,
.schedule-shell,
.public-news,
.contact-shell,
.dj-shell{
    width:min(1180px,calc(100% - 32px))!important;
    margin:auto!important;
    padding:42px 0 90px!important;
}

.program-day-card,
.day-block,
.public-news-card,
.contact-card,
.dj-card{
    background:
        linear-gradient(180deg,rgba(8,29,53,.98),rgba(4,18,35,.98))!important;
    border:1px solid var(--page-border)!important;
    border-radius:14px!important;
    box-shadow:0 22px 48px rgba(0,0,0,.34)!important;
}

.program-day-card.is-today,
.day-block.current{
    border-color:#159cff!important;
    box-shadow:0 0 0 1px rgba(21,156,255,.18),0 22px 48px rgba(0,0,0,.34)!important;
}

.program-day-header,
.day-header{
    background:
        linear-gradient(90deg,rgba(7,94,233,.28),rgba(10,32,59,.96) 60%,rgba(4,18,35,.96))!important;
    border-bottom:1px solid var(--page-border)!important;
}

.program-day-header span,
.day-name small,
.program-position,
.time-badge{
    color:var(--page-blue-light)!important;
}

.program-show-card,
.program-row{
    background:rgba(3,14,28,.62)!important;
    border:1px solid rgba(72,130,186,.3)!important;
}

.program-show-card.is-live{
    border-color:#159cff!important;
    box-shadow:inset 0 0 0 1px rgba(21,156,255,.14)!important;
}

.live-badge,
.listen-live-button,
.listen-button{
    background:linear-gradient(135deg,#075ee9,#159cff)!important;
    border-color:#3db7ff!important;
}

.dj-profile-card{
    background:rgba(8,33,61,.68)!important;
    border:1px solid var(--page-border)!important;
}

.dj-photo{
    border:2px solid #159cff;
    background:linear-gradient(135deg,#075ee9,#159cff)!important;
}

.dj-profile-copy>span{
    color:var(--page-blue-light)!important;
}

.dj-socials a{
    background:#0a294a!important;
    border-color:#2e638f!important;
}

/* Nieuws */
.public-news-grid{
    gap:20px!important;
}

.public-news-card{
    overflow:hidden;
    transition:transform .2s ease,border-color .2s ease;
}

.public-news-card:hover{
    transform:translateY(-4px);
    border-color:#159cff!important;
}

.public-news-image{
    background:linear-gradient(135deg,#075ee9,#07182d)!important;
}

.public-news-copy{
    padding:22px!important;
}

.public-news-date,
.news-date-badge strong,
.read-more,
.news-meta{
    color:var(--page-blue-light)!important;
}

.read-more{
    font-weight:900;
}

.news-detail-card{
    background:
        linear-gradient(180deg,rgba(8,29,53,.98),rgba(4,18,35,.98))!important;
    border-color:var(--page-border)!important;
}

/* Contact */
.contact-page .wrap,
.contact-shell{
    width:min(1100px,calc(100% - 32px));
    margin:auto;
    padding:45px 0 90px;
}

.contact-page .grid{
    display:grid;
    grid-template-columns:minmax(0,1.4fr) minmax(280px,.8fr);
    gap:22px;
}

.contact-page .card{
    background:
        linear-gradient(180deg,rgba(8,29,53,.98),rgba(4,18,35,.98))!important;
    border:1px solid var(--page-border)!important;
    border-radius:14px!important;
    box-shadow:0 22px 48px rgba(0,0,0,.34)!important;
}

.contact-page input,
.contact-page textarea,
.contact-page select{
    color:#fff!important;
    background:#06172b!important;
    border:1px solid #35658f!important;
    border-radius:7px!important;
}

.contact-page button{
    background:linear-gradient(135deg,#075ee9,#159cff)!important;
    border:0!important;
    border-radius:7px!important;
    box-shadow:0 12px 28px rgba(12,124,255,.22);
}

.contact-page .info p{
    padding:13px;
    background:rgba(6,23,43,.68);
    border:1px solid rgba(53,101,143,.4);
    border-radius:8px;
}

/* DJ-overzicht */
.dj-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}

.dj-card{
    overflow:hidden;
    transition:transform .2s ease,border-color .2s ease;
}

.dj-card:hover{
    transform:translateY(-4px);
    border-color:#159cff!important;
}

.dj-card-image{
    width:100%;
    aspect-ratio:1;
    overflow:hidden;
    background:linear-gradient(135deg,#075ee9,#07182d);
}

.dj-card-image img{
    width:100%;
    height:100%;
    object-fit:cover;
}

.dj-card-copy{
    padding:20px;
}

.dj-card-copy h2,
.dj-card-copy h3{
    margin:0 0 8px;
}

.dj-card-copy p{
    color:var(--page-muted);
    line-height:1.65;
}

.dj-card-status{
    display:inline-flex;
    padding:6px 9px;
    color:#fff;
    font-size:.7rem;
    font-weight:900;
    background:#075ee9;
    border-radius:999px;
}

/* Knoppen */
.button,
.read-more,
.artist-page-actions a{
    transition:transform .2s ease,box-shadow .2s ease;
}

.button:hover,
.read-more:hover,
.artist-page-actions a:hover{
    transform:translateY(-2px);
}

/* Mobiel */
@media(max-width:900px){
    .contact-page .grid{
        grid-template-columns:1fr;
    }

    .dj-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}

@media(max-width:650px){
    .programs-team-shell,
    .schedule-shell,
    .public-news,
    .contact-shell,
    .dj-shell{
        width:min(100% - 22px,1180px)!important;
        padding-top:28px!important;
    }

    .program-day-card,
    .day-block,
    .public-news-card,
    .contact-card,
    .dj-card{
        border-radius:10px!important;
    }

    .program-day-header,
    .day-header{
        padding:16px!important;
    }

    .dj-profile-card{
        grid-template-columns:1fr!important;
    }

    .dj-photo{
        width:100%!important;
        height:auto!important;
        aspect-ratio:1!important;
    }

    .dj-grid{
        grid-template-columns:1fr;
    }

    .contact-page .card{
        padding:20px!important;
    }
}
