
:root{
  --bg:#000;
  --panel:#111;
  --panel2:#181818;
  --fg:#f4f4f4;
  --muted:#aaa;
  --line:#343434;

  /* Dit zijn IDEALE/MAXIMALE breedtes, geen kolomaantallen. */
  --venue-tile:300px;
  --show-tile:300px;
  --contact-tile:220px;
  --gap:clamp(14px,2.2vw,34px);
  --page-pad:clamp(12px,2.4vw,34px);
}

*{box-sizing:border-box}
html{background:var(--bg);color:var(--fg);font-family:Arial,Helvetica,sans-serif}
body{margin:0;background:var(--bg);color:var(--fg);min-height:100vh}
img{max-width:100%}
a{color:inherit}
button,input,textarea{font:inherit}

.site-header{
  position:relative;
  z-index:20;
  background:#17110d;
  border-bottom:1px solid #2d2824;
}
.header-inner{
  min-height:76px;
  padding:14px var(--page-pad);
  display:flex;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
}
.brand{
  text-decoration:none;
  font-size:clamp(20px,2vw,28px);
  font-weight:700;
  letter-spacing:.01em;
  margin-right:auto;
}
.main-nav{
  display:flex;
  align-items:center;
  gap:clamp(12px,2vw,30px);
  flex-wrap:wrap;
}
.main-nav a{
  text-decoration:none;
  font-size:clamp(14px,1.4vw,20px);
  white-space:nowrap;
  padding:8px 0;
  border:1px solid transparent;
}
.main-nav a.active{
  border-color:#eee;
  padding:8px 10px;
}
.main-nav a:hover{opacity:.8}

.banner-wrap{
  width:100%;
  background:#000;
  display:flex;
  justify-content:center;
  overflow:hidden;
}
.banner-wrap img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
}

.portfolio-section{
  padding:0;
  background:#000;
}
.portfolio-stage{
  width:100%;
  min-height:clamp(300px,68vh,900px);
  display:grid;
  place-items:center;
  position:relative;
  background:#000;
  overflow:hidden;
}
.portfolio-stage img{
  display:block;
  max-width:100%;
  max-height:82vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border:1px solid rgba(255,255,255,.75);
}
.portfolio-controls{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  padding:14px var(--page-pad) 26px;
}
.portfolio-controls button,
.slide-controls button{
  color:#f2b632;
  background:#111;
  border:1px solid #f2b632;
  padding:9px 14px;
  cursor:pointer;
}
.counter{color:var(--muted);min-width:72px;text-align:center}

.page{
  width:100%;
  padding:32px var(--page-pad) 80px;
}
.narrow{
  max-width:980px;
  margin:0 auto;
}
.page h1{
  margin:0 0 28px;
  font-size:clamp(28px,4vw,52px);
}
.page p,.page li{line-height:1.6}
.muted{color:var(--muted)}

.tile-grid{
  width:100%;
  display:grid;
  gap:var(--gap);
  justify-content:center;
  align-items:start;
}
.tile-grid.venues{
  grid-template-columns:repeat(auto-fit,minmax(min(var(--venue-tile),100%),var(--venue-tile)));
}
.tile-grid.shows{
  grid-template-columns:repeat(auto-fit,minmax(min(var(--show-tile),100%),var(--show-tile)));
}
.tile{
  display:block;
  width:100%;
  text-decoration:none;
}
.tile img{
  display:block;
  width:100%;
  height:auto;
}
.tile:hover img{opacity:.9}

.back-row{
  margin-bottom:22px;
}
.back{
  display:inline-block;
  color:#bbb;
  text-decoration:none;
}
.back:hover{color:#fff}

.choice-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),300px));
  gap:18px;
  justify-content:center;
  padding:24px 0 10px;
}
.choice{
  display:grid;
  min-height:110px;
  place-items:center;
  text-align:center;
  text-decoration:none;
  background:#111;
  border:1px solid #444;
  padding:18px;
  font-size:18px;
}
.choice:hover{border-color:#aaa;background:#161616}
.choice small{
  display:block;
  color:#aaa;
  margin-top:5px;
  font-size:13px;
}

.contact-sheet{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(min(var(--contact-tile),100%),var(--contact-tile)));
  gap:var(--gap);
  justify-content:center;
  align-items:start;
}
.photo-card{
  width:100%;
  background:#0c0c0c;
}
.photo-card img{
  display:block;
  width:100%;
  height:auto;
}
.photo-buttons{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
  padding-top:7px;
}
.photo-buttons a{
  display:block;
  text-decoration:none;
  text-align:center;
  border:1px solid #555;
  padding:9px 5px;
  font-size:13px;
  background:#111;
}
.photo-buttons a:hover{background:#1b1b1b;border-color:#aaa}

.slideshow{
  width:100%;
  min-height:72vh;
  display:grid;
  place-items:center;
  overflow:hidden;
}
.slideshow img{
  display:block;
  max-width:100%;
  max-height:80vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border:1px solid rgba(255,255,255,.75);
}
.slideshow:fullscreen{
  position:relative;
  width:100vw;
  height:100vh;
  min-height:100vh;
  background:#000;
  padding:20px;
}
.slideshow:fullscreen img{
  max-width:100%;
  max-height:100%;
}
.fullscreen-exit{
  display:none;
}
.slideshow:fullscreen .fullscreen-exit{
  display:block;
  position:absolute;
  top:16px;
  right:18px;
  z-index:5;
  width:44px;
  height:44px;
  padding:0;
  border:1px solid #f2b632;
  background:rgba(0,0,0,.65);
  color:#f2b632;
  font-size:30px;
  line-height:40px;
  cursor:pointer;
}
.slide-controls{
  display:flex;
  justify-content:center;
  align-items:center;
  gap:10px;
  padding:14px 0;
}

.content-box{
  background:#0b0b0b;
  border:1px solid #222;
  padding:clamp(18px,3vw,34px);
}

@media(max-width:550px){
  .header-inner{
    min-height:auto;
    display:block;
    padding-top:12px;
    padding-bottom:10px;
  }
  .brand{
    display:block;
    margin-bottom:10px;
  }
  .main-nav{
    display:flex;
    gap:12px;
    flex-wrap:nowrap;
    overflow-x:auto;
    scrollbar-width:none;
    padding-bottom:2px;
  }
  .main-nav::-webkit-scrollbar{display:none}
  .main-nav a{
    font-size:14px;
    flex:0 0 auto;
  }
  .archive-link{
    display:none !important;
  }
  .portfolio-stage{
    min-height:0;
  }
  .portfolio-stage img{
    max-height:none;
    width:100%;
  }
  .portfolio-controls{
    padding-top:9px;
  }
}


.site-tools-note{
  margin:34px 0 24px;
  padding:0 var(--page-pad);
  width:100%;
  box-sizing:border-box;
  color:var(--muted);
  font-size:12px;
  line-height:1.5;
  text-align:center;
}

/* Rechtstreekse slideshow/downloadpagina */
.show-page{position:relative}
.series-downloads,
.current-downloads{
  display:flex;
  justify-content:center;
  align-items:stretch;
  gap:10px;
  flex-wrap:wrap;
}
.series-downloads{margin:4px 0 24px}
.current-downloads{margin:0 0 26px}
.series-downloads a,
.current-downloads a{
  min-width:170px;
  padding:10px 14px;
  border:1px solid #555;
  background:#111;
  color:var(--fg);
  text-align:center;
  text-decoration:none;
}
.series-downloads a:hover,
.current-downloads a:hover{
  background:#1b1b1b;
  border-color:#aaa;
}
.series-downloads small{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:12px;
}
.photo-context-menu{
  position:fixed;
  z-index:1000;
  width:190px;
  padding:6px;
  border:1px solid #555;
  background:#111;
  box-shadow:0 8px 28px rgba(0,0,0,.55);
}
.photo-context-menu[hidden]{display:none}
.photo-context-menu a{
  display:block;
  padding:10px 12px;
  color:var(--fg);
  text-decoration:none;
}
.photo-context-menu a:hover{background:#242424}

@media(max-width:550px){
  .series-downloads a,
  .current-downloads a{
    min-width:0;
    flex:1 1 140px;
  }
  .show-page .slideshow{min-height:0}
}

/* Alleen voor de eigen downloadtellers */
.stats-venue{margin:0 0 34px}
.stats-show{margin:0 0 24px;padding:16px;border:1px solid #222;background:#0b0b0b}
.stats-show h3{margin-top:0}
.stats-table-wrap{overflow-x:auto}
.stats-table{width:100%;border-collapse:collapse}
.stats-table th,.stats-table td{padding:8px 10px;border-bottom:1px solid #222;text-align:left}
.stats-table th:nth-child(n+2),.stats-table td:nth-child(n+2){text-align:right;width:70px}

/* Downloadtellers: zelfde navigatie als Download, compact detailoverzicht */
.stats-page h1{margin-top:0}
.stats-grid .stats-tile{position:relative;overflow:hidden}
.stats-tile-count{
  display:block;
  padding:7px 9px;
  background:#0b0b0b;
  color:var(--muted);
  font-size:12px;
  text-align:center;
}
.stats-series-summary{
  display:flex;
  align-items:center;
  gap:22px;
  flex-wrap:wrap;
  margin:0 0 18px;
  padding:12px 14px;
  border:1px solid #2b2b2b;
  background:#0b0b0b;
}
.stats-photo-list{border-top:1px solid #222}
.stats-photo-row{
  display:grid;
  grid-template-columns:110px minmax(0,1fr) 72px 72px;
  gap:14px;
  align-items:center;
  min-height:88px;
  padding:8px 0;
  border-bottom:1px solid #222;
}
.stats-photo-row img{
  width:110px;
  height:74px;
  object-fit:cover;
  background:#111;
}
.stats-photo-name{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--muted);
  font-size:13px;
}
.stats-number{text-align:center}
.stats-number span{display:block;color:var(--muted);font-size:11px}
.stats-number strong{display:block;margin-top:2px;font-size:18px;font-weight:600}
@media(max-width:550px){
  .stats-photo-row{grid-template-columns:82px minmax(0,1fr) 48px 48px;gap:8px}
  .stats-photo-row img{width:82px;height:58px}
  .stats-photo-name{font-size:11px}
  .stats-number strong{font-size:16px}
  .stats-series-summary{gap:14px}
}


/* 2026-10-11: volledige beelden in fullscreen, geel kader zoals de maandportfolio. */
.portfolio-stage img,
.slideshow img,
.iph-tile-image img,
.iph-photo-choice img,
#iph-large-image {
  box-sizing:border-box;
  border:1px solid #e6bd55;
}

/* Een expliciete viewportgrens voorkomt dat de intrinsieke beeldhoogte
   het automatische gridvak groter maakt dan het fullscreen-venster. */
.slideshow:fullscreen {
  box-sizing:border-box;
  min-width:0;
  min-height:0;
  width:100vw;
  height:100vh;
  height:100dvh;
  padding:20px;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:minmax(0,1fr);
}
.slideshow:fullscreen img {
  min-width:0;
  min-height:0;
  width:auto;
  height:auto;
  max-width:calc(100vw - 40px);
  max-height:calc(100vh - 40px);
  max-height:calc(100dvh - 40px);
  object-fit:contain;
}

/* Ook het vergrote tegelbeeld krijgt een kader om het beeld zelf,
   met ruimte tot de schermrand en zonder afsnijden. */
#iph-image-dialog[open] {
  box-sizing:border-box;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
#iph-image-dialog #iph-large-image {
  min-width:0;
  min-height:0;
  width:auto;
  height:auto;
  max-width:calc(100vw - 40px);
  max-height:calc(100vh - 40px);
  max-height:calc(100dvh - 40px);
  object-fit:contain;
}
