/* ASKÖ Fotogalerien – Foto-Raster und Vollbild-Ansicht (ab Version 3.0.0) */

/* ---------- Raster (Zeilen füllen die Breite, Bilder behalten ihr Seitenverhältnis) ---------- */
body .askoe-pg{display:flex;flex-wrap:wrap;gap:6px;width:100%;--rh:210px}
body .askoe-pg::after{content:"";flex-grow:1000000}
body .askoe-pg .askoe-pg-item{
  position:relative;display:block;box-sizing:border-box;flex:calc(var(--r,1.333) * 100) 1 calc(var(--r,1.333) * var(--rh));
  aspect-ratio:var(--r,1.333);min-width:0;margin:0;padding:0;border:0;border-radius:8px;overflow:hidden;cursor:zoom-in;
  background:#e6ebf1 linear-gradient(110deg,#e6ebf1 30%,#f4f7fa 50%,#e6ebf1 70%);background-size:220% 100%;
  animation:askoe-pg-shimmer 1.5s linear infinite;-webkit-tap-highlight-color:transparent;color:inherit;font:inherit;line-height:0;box-shadow:none
}
body .askoe-pg .askoe-pg-item:focus-visible{outline:3px solid #0069b4;outline-offset:2px}
body .askoe-pg .askoe-pg-item img{
  position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:cover;border-radius:0;box-shadow:none;
  transition:transform .6s cubic-bezier(.2,.7,.2,1),opacity .4s ease
}
body .askoe-pg .askoe-pg-item.is-pending img{opacity:0}
body .askoe-pg .askoe-pg-item::after{
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .3s ease;
  background:linear-gradient(to top,rgba(0,0,0,.28),rgba(0,0,0,0) 45%)
}
@media (hover:hover){
  body .askoe-pg .askoe-pg-item:hover img{transform:scale(1.05)}
  body .askoe-pg .askoe-pg-item:hover::after{opacity:1}
}
@keyframes askoe-pg-shimmer{to{background-position:-220% 0}}
body .askoe-pg .askoe-pg-item.is-broken{animation:none;background:linear-gradient(135deg,#2b3a4d,#111a26)}
body .askoe-pg .askoe-pg-item.is-broken img{display:none}
body .askoe-pg .askoe-pg-item.is-loaded,body .askoe-pg .askoe-pg-item:not(.is-pending){animation:none;background:#e6ebf1}

/* Einblenden beim Scrollen (nur mit Skript und ohne „Bewegung reduzieren“) */
html.askoe-vw-anim body .askoe-pg .askoe-pg-item{opacity:0;transform:translateY(18px) scale(.97)}
html.askoe-vw-anim body .askoe-pg .askoe-pg-item.is-in{
  opacity:1;transform:none;
  transition:opacity .55s ease,transform .7s cubic-bezier(.2,.7,.2,1);transition-delay:calc(var(--i,0) * 40ms)
}

/* Video-Kennzeichnung */
body .askoe-pg .askoe-pg-item .askoe-vb{
  position:absolute;left:50%;top:50%;z-index:2;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;
  background:rgba(20,20,20,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;place-items:center;
  transition:transform .3s ease
}
body .askoe-pg .askoe-pg-item .askoe-vb svg{width:26px;height:26px;fill:#fff;margin-left:3px}
body .askoe-pg .askoe-pg-item:hover .askoe-vb{transform:scale(1.1)}
body .askoe-pg .askoe-pg-item .askoe-vt{
  position:absolute;right:8px;bottom:8px;z-index:2;padding:3px 8px;border-radius:999px;background:rgba(20,20,20,.65);
  color:#fff;font:700 12px/1.3 Arial,Helvetica,sans-serif
}
@media (max-width:1100px){body .askoe-pg{--rh:170px}}
@media (max-width:700px){body .askoe-pg{--rh:120px;gap:4px}body .askoe-pg .askoe-pg-item{border-radius:6px}}

/* ---------- Vollbild-Ansicht ---------- */
.askoe-vw[hidden]{display:none!important}
.askoe-vw{
  position:fixed;inset:0;z-index:2147483000;color:#fff;font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.4;
  --vw-bg:1;user-select:none;-webkit-user-select:none;-webkit-tap-highlight-color:transparent
}
.askoe-vw *{box-sizing:border-box}
.askoe-vw-bg{position:absolute;inset:0;background:#000;opacity:0;transition:opacity .4s ease}
.askoe-vw.is-open .askoe-vw-bg{opacity:var(--vw-bg)}
.askoe-vw.is-dismissing .askoe-vw-bg{opacity:0}
.askoe-vw-dialog{position:absolute;inset:0;outline:none;overflow:hidden}
.askoe-vw-stage{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab}
.askoe-vw-stage:active{cursor:grabbing}
.askoe-vw.is-zoomed .askoe-vw-stage{cursor:move}
.askoe-vw-track{position:absolute;inset:0}
.askoe-vw-slide{position:absolute;inset:0;overflow:hidden;will-change:transform}
.askoe-vw-slide.is-fadein{animation:askoe-vw-fade .5s ease both}
@keyframes askoe-vw-fade{from{opacity:0}to{opacity:1}}
.askoe-vw-pan{position:absolute;inset:0;transform-origin:50% 50%;will-change:transform}
.askoe-vw-pan img{
  position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;border-radius:0;box-shadow:none;margin:0;
  -webkit-user-drag:none
}
.askoe-vw-mid,.askoe-vw-hi{opacity:0;transition:opacity .35s ease}
.askoe-vw-mid.is-in{opacity:1}
.askoe-vw-slide.has-hi .askoe-vw-hi{opacity:1}
.askoe-vw-video{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:contain;background:#000;outline:none}
.askoe-vw.is-video .askoe-vw-video{top:64px;bottom:auto;height:calc(100% - 188px)}
@media (max-width:899px),(hover:none){.askoe-vw.is-video .askoe-vw-video{top:0;height:100%}.askoe-vw.is-video .askoe-vw-title{display:none}}
/* Play/Pause-Button in der Bildmitte (wie YouTube); sichtbar solange pausiert, beim Abspielen nur bei Hover/Fokus */
.askoe-vw-video-toggle{
  position:absolute;left:50%;top:50%;z-index:3;transform:translate(-50%,-50%) scale(.92);width:76px;height:76px;margin:0;padding:0;border:0;border-radius:50%;
  display:grid;place-items:center;background:rgba(20,20,20,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;cursor:pointer;
  opacity:1;transition:opacity .25s ease,transform .2s ease
}
.askoe-vw-video-toggle:hover{background:rgba(20,20,20,.72);transform:translate(-50%,-50%) scale(1)}
.askoe-vw-video-toggle svg{width:34px;height:34px;fill:#fff}
.askoe-vw-video-toggle .askoe-vw-video-toggle-pause{display:none}
.askoe-vw-video-toggle.is-playing .askoe-vw-video-toggle-play{display:none}
.askoe-vw-video-toggle.is-playing .askoe-vw-video-toggle-pause{display:block}
.askoe-vw-video-toggle.is-playing{opacity:0}
.askoe-vw-pan:hover .askoe-vw-video-toggle.is-playing,
.askoe-vw-video-toggle.is-playing:focus-visible{opacity:1}
@media (max-width:520px){.askoe-vw-video-toggle{width:64px;height:64px}.askoe-vw-video-toggle svg{width:28px;height:28px}}
.askoe-vw-fail{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(420px,86%);padding:20px;text-align:center;border-radius:14px;background:rgba(30,30,30,.9)}
.askoe-vw-fail[hidden]{display:none}
.askoe-vw-fail p{margin:0 0 12px;color:#fff}
.askoe-vw-fail a{display:inline-block;padding:10px 18px;border-radius:999px;background:#fff;color:#111;font-weight:700;text-decoration:none}
.askoe-vw-fly{position:absolute;z-index:3;background-size:cover;background-position:center;background-repeat:no-repeat;pointer-events:none;overflow:hidden;will-change:left,top,width,height}

/* Bedienelemente */
.askoe-vw-top,.askoe-vw-bottom,.askoe-vw-nav{transition:opacity .3s ease,transform .3s ease}
.askoe-vw.chrome-off .askoe-vw-top{opacity:0;transform:translateY(-10px);pointer-events:none}
.askoe-vw.chrome-off .askoe-vw-bottom{opacity:0;transform:translateY(10px);pointer-events:none}
.askoe-vw.chrome-off .askoe-vw-nav{opacity:0;pointer-events:none}
.askoe-vw-top{
  position:absolute;left:0;right:0;top:0;z-index:5;display:flex;align-items:center;justify-content:flex-end;gap:12px;
  padding:calc(10px + env(safe-area-inset-top)) calc(14px + env(safe-area-inset-right)) 28px calc(14px + env(safe-area-inset-left));
  background:linear-gradient(to bottom,rgba(0,0,0,.62),rgba(0,0,0,0));pointer-events:none;
  opacity:0
}
.askoe-vw.is-open .askoe-vw-top{opacity:1}
.askoe-vw.is-open.chrome-off .askoe-vw-top{opacity:0}
.askoe-vw-top>*{pointer-events:auto}
/* Positionsanzeige nur noch für Screenreader (unsichtbar) */
.askoe-vw-count{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.askoe-vw-actions{display:flex;align-items:center;gap:8px}
.askoe-vw .askoe-vw-btn,.askoe-vw .askoe-vw-nav{
  -webkit-appearance:none;appearance:none;display:inline-grid;place-items:center;width:44px;height:44px;margin:0;padding:0;border:0;border-radius:50%;
  background:rgba(30,30,30,.55);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;text-decoration:none;cursor:pointer;
  font:inherit;line-height:1;box-shadow:none;transition:background .2s ease,transform .2s ease,opacity .3s ease
}
.askoe-vw .askoe-vw-btn:hover,.askoe-vw .askoe-vw-nav:hover{background:rgba(70,70,70,.8);color:#fff}
.askoe-vw .askoe-vw-btn:active,.askoe-vw .askoe-vw-nav:active{transform:scale(.94)}
.askoe-vw .askoe-vw-btn:focus-visible,.askoe-vw .askoe-vw-nav:focus-visible,.askoe-vw .askoe-vw-th:focus-visible{outline:2px solid #fff;outline-offset:2px}
.askoe-vw .askoe-vw-btn[hidden]{display:none}
.askoe-vw-btn svg,.askoe-vw-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.askoe-vw-btn .askoe-vw-fill{fill:currentColor;stroke:none}
.askoe-vw-btn .askoe-vw-pause{display:none}
.askoe-vw-btn.is-playing .askoe-vw-play{display:none}
.askoe-vw-btn.is-playing .askoe-vw-pause{display:block}
.askoe-vw .askoe-vw-speed{width:auto;min-width:44px;padding:0 12px;border-radius:999px;font-size:13px;font-weight:700}
.askoe-vw .askoe-vw-nav{position:absolute;top:50%;z-index:5;width:56px;height:56px;margin-top:-28px}
.askoe-vw .askoe-vw-nav.prev{left:calc(18px + env(safe-area-inset-left))}
.askoe-vw .askoe-vw-nav.next{right:calc(18px + env(safe-area-inset-right))}
.askoe-vw .askoe-vw-nav svg{width:26px;height:26px}
.askoe-vw .askoe-vw-nav:disabled{opacity:.25;cursor:default}
.askoe-vw.is-zoomed .askoe-vw-nav{opacity:0;pointer-events:none}
@media (hover:none){.askoe-vw .askoe-vw-nav{display:none}}

.askoe-vw-bottom{
  position:absolute;left:0;right:0;bottom:0;z-index:5;padding:34px calc(14px + env(safe-area-inset-right)) calc(12px + env(safe-area-inset-bottom)) calc(14px + env(safe-area-inset-left));
  background:linear-gradient(to top,rgba(0,0,0,.66),rgba(0,0,0,0));pointer-events:none;opacity:0
}
.askoe-vw.is-open .askoe-vw-bottom{opacity:1}
.askoe-vw.is-open.chrome-off .askoe-vw-bottom{opacity:0}
.askoe-vw-bottom>*{pointer-events:auto}
.askoe-vw-title{margin:0 0 8px;font-size:14px;font-weight:700;text-shadow:0 1px 6px rgba(0,0,0,.6);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.askoe-vw-strip{display:flex;gap:6px;overflow-x:auto;overflow-y:hidden;padding:4px 2px;scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
.askoe-vw-strip::-webkit-scrollbar{display:none}
.askoe-vw .askoe-vw-th{
  -webkit-appearance:none;appearance:none;position:relative;flex:0 0 auto;width:58px;height:58px;margin:0;padding:0;border:0;border-radius:8px;overflow:hidden;
  background:#333;cursor:pointer;opacity:.6;transition:opacity .25s,transform .25s
}
.askoe-vw .askoe-vw-th img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.askoe-vw .askoe-vw-th:hover{opacity:.95}
.askoe-vw .askoe-vw-th.is-cur{opacity:1;transform:scale(1.08);box-shadow:0 0 0 2px #fff}
.askoe-vw .askoe-vw-th.is-video::after{content:"";position:absolute;left:50%;top:50%;width:0;height:0;margin:-7px 0 0 -4px;border-left:12px solid #fff;border-top:7px solid transparent;border-bottom:7px solid transparent;filter:drop-shadow(0 0 3px rgba(0,0,0,.7))}
@media (max-width:899px),(hover:none){.askoe-vw-strip{display:none}.askoe-vw-bottom{padding-top:24px}}
@media (max-width:520px){.askoe-vw-title{font-size:13px}.askoe-vw .askoe-vw-btn{width:42px;height:42px}}

/* Seitenhintergrund fixieren, solange die Ansicht offen ist */
html.askoe-vw-open{overflow:hidden}

@media (prefers-reduced-motion:reduce){
  .askoe-vw *,.askoe-pg *{animation-duration:.01ms!important;transition-duration:.01ms!important}
}

/* Album-Kopfbild ohne Farbverlauf und ohne Abdunklung; Lesbarkeit über Textschatten */
body .askoe-album-hero::after,body .askoe-album-hero::before{content:none!important;background:none!important;display:none!important}
body .askoe-album-hero :is(h1,p,span,.askoe-album-meta){text-shadow:rgba(0,0,0,.9) 0 0 2px,rgba(0,0,0,.75) 0 0 8px,rgba(0,0,0,.65) 0 2px 20px!important}
body .askoe-album-hero .askoe-album-back,body .askoe-album-hero .askoe-album-category{text-shadow:none!important}

/* Titelbilder der Album-Karten: etwas höher als bisher (weniger Beschnitt); der sichtbare Ausschnitt kommt vom Fokuspunkt des Albums */
body .askoe-fg-latest-grid .askoe-fg-card .askoe-fg-cover{height:300px!important;min-height:300px!important}
body .askoe-fg-latest-grid .askoe-fg-card .askoe-fg-cover img{height:100%!important}
@media (max-width:1100px){body .askoe-fg-latest-grid .askoe-fg-card .askoe-fg-cover{height:360px!important;min-height:360px!important}}
@media (max-width:700px){body .askoe-fg-latest-grid .askoe-fg-card .askoe-fg-cover{height:250px!important;min-height:250px!important}body .askoe-fg-latest-grid .askoe-fg-card .askoe-fg-cover img{height:100%!important}}
