*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  --pt-oranje: #FF7700;
  --pt-paars: #CC44FF;
  --pt-donker: #0a0a0a;
  --pt-bg: #111111;
  --pt-bg-card: #1c1c1c;
  --pt-wit: #ffffff;
  --pt-tekst: #eeeeee;
  --pt-grijs: #888;
  --radius: 10px;
}

body {
  font-family: 'Segoe UI', Arial, sans-serif;
  background: var(--pt-bg);
  color: var(--pt-tekst);
  min-height: 100vh;
}

/* --- Header --- */
#site-header {
  background: var(--pt-donker);
  border-bottom: 3px solid var(--pt-oranje);
  position: sticky;
  top: 0;
  z-index: 100;
  box-shadow: 0 2px 16px rgba(0,0,0,.6);
}

.header-inner {
  width: 100%;
  padding: 0 2rem;
  height: 320px;
  display: flex;
  align-items: center;
  gap: 2rem;
}

.logo-link { display: flex; align-items: center; }
#site-logo { height: 300px; width: auto; display: block; }

.main-nav { display: flex; gap: 1.2rem; flex: 1; }
.main-nav a {
  color: rgba(255,255,255,.7);
  text-decoration: none;
  font-size: .95rem;
  font-weight: 500;
  transition: color .2s;
}
.main-nav a:hover { color: var(--pt-oranje); }

/* Live radio knop */
.radio-play-btn {
  display: flex;
  align-items: center;
  gap: .45rem;
  background: linear-gradient(90deg, var(--pt-oranje), var(--pt-paars));
  color: #fff;
  border: none;
  padding: .45rem 1.1rem;
  border-radius: 20px;
  font-size: .9rem;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .2s;
  white-space: nowrap;
  text-decoration: none;
}
.radio-play-btn:hover { opacity: .85; }
.radio-play-btn .dot {
  width: 8px; height: 8px;
  background: #fff;
  border-radius: 50%;
  animation: blink 1.2s infinite;
}
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:.2} }
.hidden { display: none !important; }

/* --- Pagina layout --- */
.page-layout {
  max-width: 1200px;
  margin: 2rem auto;
  padding: 0 1.5rem;
}

.sidebar { display: flex; flex-direction: column; gap: 1.5rem; }

h2 { font-size: 1.5rem; color: var(--pt-oranje); margin-bottom: 1rem; }

/* --- Nieuws grid --- */
.nieuws-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 1.2rem;
}

.nieuws-kaart {
  background: var(--pt-bg-card);
  border: 1px solid #2a2a2a;
  border-radius: var(--radius);
  overflow: hidden;
  box-shadow: 0 1px 6px rgba(0,0,0,.4);
  transition: transform .15s, border-color .15s;
}
.nieuws-kaart:hover { transform: translateY(-3px); border-color: var(--pt-oranje); }
.nieuws-kaart img { width: 100%; height: 160px; object-fit: cover; }
.nieuws-kaart-body { padding: 1rem; }
.nieuws-kaart h3 { font-size: 1rem; margin-bottom: .4rem; color: var(--pt-oranje); }
.nieuws-kaart p { font-size: .875rem; color: #ccc; line-height: 1.5; }
.nieuws-kaart .datum { font-size: .78rem; color: var(--pt-grijs); margin-top: .6rem; }

/* --- Foto grid --- */
.section-fotos { margin-top: 2.5rem; }
.fotos-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: .75rem;
}
.fotos-grid img {
  width: 100%; aspect-ratio: 1; object-fit: cover;
  border-radius: 8px;
  cursor: pointer;
  transition: transform .15s;
}
.fotos-grid img:hover { transform: scale(1.04); }

/* --- Sidebar widgets --- */
.sidebar { display: flex; flex-direction: column; gap: 1.5rem; }

.widget {
  background: var(--pt-bg-card);
  border: 1px solid #2a2a2a;
  border-radius: var(--radius);
  padding: 1.2rem;
  box-shadow: 0 1px 6px rgba(0,0,0,.3);
}
.widget h3 { font-size: 1rem; color: var(--pt-oranje); margin-bottom: .8rem; border-bottom: 2px solid var(--pt-oranje); padding-bottom: .4rem; }

.btn-play {
  width: 100%;
  padding: .6rem;
  margin-top: .8rem;
  background: linear-gradient(90deg, var(--pt-oranje), var(--pt-paars));
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: .95rem;
  font-weight: 700;
  cursor: pointer;
}
.btn-play:hover { opacity: .85; }

/* Laadtekst */
.loading { color: var(--pt-grijs); font-size: .9rem; }

/* --- Footer --- */
footer {
  text-align: center;
  padding: 2rem;
  margin-top: 3rem;
  color: var(--pt-grijs);
  font-size: .85rem;
  border-top: 1px solid #333;
  background: var(--pt-donker);
}
