
/* CAM Gallery v3.8 — Victor Rosendahl */
/* Centered wrapper */
.cam-wrap.cam-wide{max-width:1600px;margin:0 auto;padding:40px 32px 90px}

/* Archive (unchanged from v3.5 style) */
.cam-archive-grid--exact{display:grid;gap:56px 48px;grid-template-columns:repeat(4,1fr);align-items:start}
@media(max-width:1200px){.cam-archive-grid--exact{grid-template-columns:repeat(3,1fr)}}
@media(max-width:820px){.cam-archive-grid--exact{grid-template-columns:repeat(2,1fr);gap:28px}}
.cam-card{position:relative;display:block;text-decoration:none;color:inherit}
.cam-card__media img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block;border-radius:8px}
.cam-archive-grid--exact .cam-card:nth-child(4n+2){margin-top:22px}
.cam-archive-grid--exact .cam-card:nth-child(4n+4){margin-top:58px}
.cam-card__badge{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(255,255,255,.97);padding:14px 22px;border-radius:8px;min-width:220px;box-shadow:0 10px 30px rgba(0,0,0,.18);text-align:center}
.cam-badge__kicker{display:block;text-transform:uppercase;font-size:13px;font-weight:800;letter-spacing:.08em;color:#676767}
.cam-badge__title{display:block;font-weight:900;font-size:20px;color:#111;margin-top:2px}

/* GALLERY — 4 NORMAL tiles per row (no skinny columns) */
.cam-grid--4square{display:grid;gap:32px;grid-template-columns:repeat(4, minmax(280px, 1fr));}
@media(max-width:1300px){.cam-grid--4square{grid-template-columns:repeat(3, minmax(260px,1fr));}}
@media(max-width:860px){.cam-grid--4square{grid-template-columns:repeat(2, minmax(240px,1fr));}}

.cam-thumb{position:relative;border:0;background:none;padding:0;cursor:pointer;--tile-h:300px;height:var(--tile-h)}
/* Variable heights 220–360px; ALL stay single-column to keep 4 across */
.cam-grid--4square .cam-thumb:nth-child(10n+1){--tile-h:360px}
.cam-grid--4square .cam-thumb:nth-child(10n+2){--tile-h:240px}
.cam-grid--4square .cam-thumb:nth-child(10n+3){--tile-h:320px}
.cam-grid--4square .cam-thumb:nth-child(10n+4){--tile-h:280px}
.cam-grid--4square .cam-thumb:nth-child(10n+5){--tile-h:340px}
.cam-grid--4square .cam-thumb:nth-child(10n+6){--tile-h:260px}
.cam-grid--4square .cam-thumb:nth-child(10n+7){--tile-h:300px}
.cam-grid--4square .cam-thumb:nth-child(10n+8){--tile-h:220px}
.cam-grid--4square .cam-thumb:nth-child(10n+9){--tile-h:330px}
.cam-grid--4square .cam-thumb:nth-child(10n+10){--tile-h:270px}

.cam-thumb img,.cam-inline-video{width:100%;height:100%;object-fit:cover;border-radius:14px;display:block;transition:transform .18s ease, box-shadow .18s ease;box-shadow:0 10px 26px rgba(0,0,0,.13)}
.cam-thumb:hover img,.cam-thumb:hover .cam-inline-video{transform:translateY(-2px);box-shadow:0 18px 38px rgba(0,0,0,.2)}

/* Caption badge: lidt større og tættere mod midten */
.cam-cap-overlay{position:absolute;left:50%;transform:translateX(-50%);bottom:18px;background:rgba(255,255,255,.96);border-radius:12px;padding:10px 16px;font-size:16px;font-weight:800;color:#111;box-shadow:0 8px 18px rgba(0,0,0,.16)}

/* Play ikon kun for YouTube/Vimeo */
.cam-thumb--ext .cam-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:rgba(255,255,255,.92);width:62px;height:62px;border-radius:50%;display:grid;place-items:center;font-size:22px;font-weight:900;box-shadow:0 10px 26px rgba(0,0,0,.25)}
.cam-thumb--mp4 .cam-play{display:none}
.cam-thumb__placeholder{position:absolute;inset:0;border-radius:14px;background:linear-gradient(180deg,rgba(0,0,0,.06),rgba(0,0,0,.16))}

/* Lightbox */
.cam-lightbox{position:fixed;inset:0;background:rgba(0,0,0,.96);display:grid;grid-template-columns:70px 1fr 70px;align-items:center;z-index:9999}
.cam-lightbox__stage{width:100%;height:86vh;display:grid;place-items:center;max-width:1600px;margin:0 auto}
.cam-slide img,.cam-slide video,.cam-slide iframe{max-width:100%;max-height:100%;border-radius:12px;box-shadow:0 18px 50px rgba(0,0,0,.55)}
.cam-lightbox__close,.cam-lightbox__next,.cam-lightbox__prev{background:transparent;color:#fff;border:0;font-size:42px;cursor:pointer}
.cam-lightbox__close{position:absolute;top:10px;right:16px;font-size:38px}

/* v3.8.1 centering fix */
.cam-wrap.cam-wide{max-width:1400px;margin:0 auto;padding:40px 20px 90px}
.cam-grid--4square{justify-content:center}

/* v3.9 small LB polish */
.cam-lightbox{cursor:zoom-out}
.cam-lightbox__stage{cursor:auto}


/* v4.0.2 click reliability */
.cam-thumb{ position: relative; z-index: 1; }
.cam-thumb *{ pointer-events: none; } /* children won't intercept click */
.cam-thumb{ pointer-events: auto; }

/* v4.1 Lightbox: Bigger media + bottom-centered arrows */
.cam-lightbox{
  position: fixed; inset: 0; background: rgba(0,0,0,.96);
  display: flex; align-items: center; justify-content: center; z-index: 9999;
}
h1.cam-page-titel{
display: none;
}

.cam-lightbox__stage{
  width: auto; max-width: 92vw; min-width: min(60vw, 980px);
  height: auto; min-height: 60vh; max-height: calc(100vh - 180px);
  display: flex; align-items: center; justify-content: center;
  margin: 0 auto;
}
.cam-slide img,.cam-slide video,.cam-slide iframe{
  max-width: 92vw; max-height: calc(100vh - 220px);
  width: auto; height: auto; border-radius: 12px;
  box-shadow: 0 18px 50px rgba(0,0,0,.55);
}
.cam-lightbox__close{
  position: absolute; top: 14px; right: 18px;
  background: transparent; color: #fff; border: 0; font-size: 38px; cursor: pointer;
}

/* Bottom centered controls */
.cam-lightbox__prev,.cam-lightbox__next{
  position: absolute; bottom: 26px; left: 50%;
  width: 56px; height: 56px; border-radius: 999px;
  display: grid; place-items: center; font-size: 28px; font-weight: 800;
  border: 0; cursor: pointer; background: rgba(255,255,255,.95); color: #111;
  box-shadow: 0 10px 28px rgba(0,0,0,.35);
}
.cam-lightbox__prev{ transform: translateX(-68px); }
.cam-lightbox__next{ transform: translateX(12px); }

/* v4.1.1 — PERFECT CENTERING */
.cam-lightbox{
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  background: rgba(0,0,0,.96);
  padding: 40px 24px 100px; /* bottom padding leaves room for arrows */
}
.cam-lightbox__stage{
  display: flex; align-items: center; justify-content: center;
  width: auto; height: auto;
  max-width: min(96vw, 1600px);
  max-height: calc(100vh - 160px); /* leave space for top bar + arrows */
  margin: 0 auto;
}
.cam-slide img,.cam-slide video,.cam-slide iframe{
  display:block;
  width: auto; height: auto;
  max-width: 100%;
  max-height: 100%;
  transform: translateY(-592px);
  object-fit: contain;            /* KEEP TRUE CENTER */
  border-radius: 12px;
  box-shadow: 0 18px 50px rgba(0,0,0,.55);
}
.cam-lightbox__close{
  position: fixed; top: 16px; right: 20px;
  background: transparent; color: #fff; border: 0; font-size: 38px; cursor: pointer;
}
/* Bottom centered controls (fixed relative to viewport) */
.cam-lightbox__prev,.cam-lightbox__next{
  position: fixed; left: 50%; bottom: 28px;
  width: 56px; height: 56px; border-radius: 999px;
  display: grid; place-items: center; font-size: 28px; font-weight: 800;
  border: 0; cursor: pointer; background: rgba(255,255,255,.95); color: #111;
  box-shadow: 0 10px 28px rgba(0,0,0,.35);
}
.cam-lightbox__prev{ transform: translateX(-68px); }
.cam-lightbox__next{ transform: translateX(12px); }

/* v4.1.2 — Bulletproof center: fixed stage at viewport center */
.cam-lightbox{
  position: fixed; inset: 0; z-index: 9999;
  background: rgba(0,0,0,.96);
}
.cam-lightbox__stage{
  position: fixed;
  left: 50%; top: 50%;
  transform: translate(-50%, -50%);
  max-width: min(96vw, 1600px);
  max-height: calc(100vh - 160px);  /* space for UI */
  width: auto; height: auto;
  display: flex; align-items: center; justify-content: center;
  margin: 0; padding: 0;
}
.cam-slide img,.cam-slide video,.cam-slide iframe{
  display:block; margin:0;
  max-width:100%; max-height:100%; width:auto; height:auto;
  object-fit: contain; border-radius:12px;
  box-shadow: 0 18px 50px rgba(0,0,0,.55);
}
.cam-lightbox__prev,.cam-lightbox__next{
  position: fixed; left: 50%; bottom: 28px;
  transform: translateX(-68px);
}
.cam-lightbox__next{ transform: translateX(12px); }
