/* PPM Frontend */

/* POPUP */
.ppm-overlay { position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:99998; display:flex; align-items:center; justify-content:center; padding:20px; animation:ppmFade .25s ease; }
@keyframes ppmFade { from{opacity:0} to{opacity:1} }
.ppm-modal { background:#fff; border-radius:8px; box-shadow:0 20px 60px rgba(0,0,0,.4); width:100%; max-width:860px; height:calc(100vh - 40px); display:flex; flex-direction:column; animation:ppmUp .28s ease; overflow:hidden; }
@keyframes ppmUp { from{transform:translateY(20px);opacity:0} to{transform:translateY(0);opacity:1} }
.ppm-mhd { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid #e5e7eb; background:#f9fafb; flex-shrink:0; }
.ppm-mtitle { font-size:20px; font-weight:700; color:#111; margin:0; }
.ppm-mclose { background:none; border:none; cursor:pointer; font-size:24px; color:#6b7280; padding:6px 10px; border-radius:4px; flex-shrink:0; margin-left:12px; line-height:1; }
.ppm-mclose:hover { background:#e5e7eb; color:#111; }
.ppm-mpdf { flex:1; display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.ppm-mpdf iframe { width:100%; flex:1; border:none; display:block; min-height:0; }
.ppm-mfoot { padding:10px 20px; border-top:1px solid #e5e7eb; background:#f9fafb; flex-shrink:0; }
.ppm-mdl { font-size:13px; color:#2563eb; text-decoration:none; font-weight:500; }
.ppm-mdl:hover { text-decoration:underline; }

/* CAROUSEL */
.ppm-carousel-wrap { font-family:inherit; }
.ppm-csec { margin-bottom:36px; }
.ppm-csec-hd { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; }
.ppm-csec-title { font-size:20px; font-weight:700; color:#1a1a1a; margin:0; }
.ppm-csec-title--arch { font-size:17px; color:#555; }
.ppm-cnav { display:flex; gap:6px; }
.ppm-cprev, .ppm-cnext { width:36px; height:36px; border-radius:50%; border:2px solid #d1d5db; background:#fff; cursor:pointer; font-size:20px; line-height:1; display:flex; align-items:center; justify-content:center; color:#374151; transition:border-color .15s, background .15s, color .15s; padding:0; }
.ppm-cprev:hover:not(:disabled), .ppm-cnext:hover:not(:disabled) { border-color:#cc0000; background:#cc0000; color:#fff; }
.ppm-cprev:disabled, .ppm-cnext:disabled { opacity:.35; cursor:default; }
.ppm-carousel { overflow:hidden; width:100%; }
.ppm-ctrack { display:flex; gap:16px; transition:transform .35s cubic-bezier(.4,0,.2,1); }
.ppm-kachel { flex:0 0 calc(33.333% - 11px); min-width:200px; background:#fff; border:2px solid #e5e7eb; border-radius:10px; padding:18px 16px; cursor:pointer; display:flex; align-items:center; gap:14px; transition:border-color .2s, box-shadow .2s, transform .15s; box-sizing:border-box; }
.ppm-kachel:hover { border-color:#cc0000; box-shadow:0 4px 16px rgba(204,0,0,.12); transform:translateY(-2px); }
.ppm-kachel--arch { background:#fafafa; opacity:.85; }
.ppm-kachel--arch:hover { border-color:#9ca3af; box-shadow:0 4px 12px rgba(0,0,0,.08); }
.ppm-k-icon { font-size:26px; flex-shrink:0; }
.ppm-k-body { flex:1; min-width:0; }
.ppm-k-title { display:block; font-weight:700; font-size:14px; color:#111; line-height:1.3; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ppm-kachel--arch .ppm-k-title { color:#555; font-weight:600; }
.ppm-k-date { display:block; font-size:12px; color:#888; margin-top:3px; }
.ppm-k-open { color:#15803d; font-weight:600; }
.ppm-k-arrow { font-size:18px; color:#cc0000; flex-shrink:0; transition:transform .15s; }
.ppm-kachel:hover .ppm-k-arrow { transform:translateX(3px); }
.ppm-kachel--arch .ppm-k-arrow { color:#9ca3af; }

@media(max-width:768px) { .ppm-kachel { flex:0 0 calc(50% - 8px); } }
@media(max-width:480px) {
    .ppm-kachel { flex:0 0 100%; }
    .ppm-overlay { padding:0; align-items:stretch; }
    .ppm-modal { height:100vh; height:100dvh; max-height:100dvh; width:100%; border-radius:0; }
    .ppm-mtitle { font-size:16px; padding-right:52px; }
    .ppm-mhd { position:sticky; top:0; z-index:2; }
    /* Schliessen-Button IMMER erreichbar: fixe grosse Flaeche oben rechts */
    .ppm-mclose { position:fixed; top:10px; right:10px; z-index:100000; width:46px; height:46px; padding:0; font-size:26px; color:#111; background:rgba(255,255,255,.96); border-radius:50%; box-shadow:0 3px 12px rgba(0,0,0,.35); display:flex; align-items:center; justify-content:center; }
}


/* ---- Bildkacheln (25.07.) ---- */
.ppm-kachel--img{flex-direction:column;align-items:stretch;padding:0;overflow:hidden;gap:0}
.ppm-k-thumb{width:100%;aspect-ratio:16/9;overflow:hidden;background:#0c0d10}
.ppm-k-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.ppm-kachel--img{position:relative}
.ppm-kachel--img .ppm-k-body{padding:14px 52px 14px 16px}
.ppm-kachel--img .ppm-k-arrow{position:absolute;right:16px;bottom:14px;padding:0}
.ppm-kachel--img:hover .ppm-k-thumb img{transform:scale(1.03);transition:transform .3s}
.ppm-k-thumb img{transition:transform .3s}
.ppm-kachel--arch.ppm-kachel--img .ppm-k-thumb{filter:grayscale(.55);opacity:.85}

/* Popup mit Titelbild statt PDF-iframe (26.07.) */
.ppm-mimg{width:100%;background:#0c0d10;line-height:0}
.ppm-mimg img{width:100%;height:auto;display:block}
.ppm-mpdfbtn{display:inline-block;background:#cc0000;color:#fff !important;font-weight:700;padding:11px 22px;border-radius:8px;text-decoration:none;margin-right:12px}
.ppm-mpdfbtn:hover{background:#a30000}

/* Mehr-Laden-Button auf der News-Seite: Text weiss statt grau (26.07.) */
.elementor-element-7ac1d587 .elementor-button,
.elementor-element-7ac1d587 .elementor-button-text,
.elementor-element-7ac1d587 .elementor-button:hover,
.elementor-element-7ac1d587 .elementor-button:hover .elementor-button-text{color:#fff !important;}
/* Abstand nach dem Mehr-Laden-Button verkleinern */
.elementor-element-7ac1d587 .elementor-button-wrapper{margin-bottom:0 !important;}
