/* Shift Happens Core — Frontend-Bausteine (Cookie-Banner, Blockaden, Lightbox).
   Das Layout selbst liefert das Theme. */

.sh-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important;}

.sh-blocked{border:1px dashed var(--line-dark,#2C353A);background:var(--basalt,#1B2226);
  padding:clamp(1.4rem,1rem + 2vw,2.6rem);text-align:center;
  display:flex;flex-direction:column;align-items:center;gap:.9rem;height:100%;justify-content:center;}
.sh-blocked h3{font-family:var(--f-display,inherit);text-transform:uppercase;font-size:1.1rem;margin:0;}
.sh-blocked p{color:#A9B4B9;font-size:.9rem;max-width:44ch;margin:0;}
.sh-blocked-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;}

.sh-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.6rem 1.1rem;
  background:transparent;border:1px solid transparent;color:inherit;
  cursor:pointer;text-decoration:none;font-family:var(--f-mono,monospace);font-size:.68rem;
  letter-spacing:.16em;text-transform:uppercase;border-radius:2px;transition:.25s;
  -webkit-appearance:none;appearance:none;}
.sh-btn-flare{background:var(--flare,#F2E502);color:#0B0F11;}
.sh-btn-flare:hover{background:var(--flare-deep,#D9CE00);}
.sh-btn-ghost{background:transparent;border-color:currentColor;color:inherit;}
.sh-btn-ghost:hover{background:currentColor;}
.sh-btn-ghost:hover span{color:var(--granite,#12171A);}

/* Cookie-Banner */
.sh-cookie{position:fixed;left:0;right:0;bottom:0;z-index:110;background:var(--carbon,#0B0F11);
  border-top:2px solid var(--flare,#F2E502);color:#B3BEC3;transform:translateY(110%);transition:transform .6s cubic-bezier(.16,.84,.44,1);}
.sh-cookie.on{transform:none;}
.sh-cookie .sh-wrap{width:100%;max-width:1280px;margin-inline:auto;padding:1.2rem clamp(1.15rem,4vw,3.25rem);
  display:flex;flex-wrap:wrap;gap:1.2rem;align-items:center;justify-content:space-between;}
.sh-cookie strong{display:block;font-family:var(--f-display,inherit);text-transform:uppercase;color:#F5F4F0;margin-bottom:.35rem;}
.sh-cookie p{font-size:.85rem;max-width:52ch;margin:0;}
.sh-cookie-actions{display:flex;flex-wrap:wrap;gap:.5rem;}
.sh-cookie .sh-btn-ghost{color:#E7EAEC;border-color:#5B676D;}

.sh-modal{position:fixed;inset:0;z-index:130;background:rgba(6,9,11,.86);display:none;align-items:center;justify-content:center;padding:1.2rem;}
.sh-modal.on{display:flex;}
.sh-modal-inner{background:var(--granite,#12171A);border:1px solid var(--line-dark,#2C353A);max-width:34rem;width:100%;
  max-height:88vh;overflow-y:auto;padding:clamp(1.4rem,1rem + 2vw,2.4rem);color:#F5F4F0;}
.sh-modal-inner h2{font-family:var(--f-display,inherit);text-transform:uppercase;font-size:1.5rem;margin:0 0 1.2rem;}
.sh-ctog{display:flex;gap:1rem;align-items:flex-start;padding:1rem 0;border-bottom:1px solid var(--line-dark,#2C353A);}
.sh-ctog > div{flex:1;}
.sh-ctog b{display:block;font-family:var(--f-display,inherit);text-transform:uppercase;font-size:.9rem;margin-bottom:.25rem;}
.sh-ctog span{font-size:.83rem;color:#A9B4B9;line-height:1.5;}
.sh-modal-actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.4rem;}

.sh-sw{position:relative;width:2.8rem;height:1.5rem;flex:none;margin-top:.15rem;}
.sh-sw input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer;z-index:2;}
.sh-sw i{position:absolute;inset:0;background:#242C31;border:1px solid var(--line-dark,#2C353A);border-radius:99px;transition:.3s;}
.sh-sw i::after{content:"";position:absolute;top:2px;left:2px;width:1.05rem;height:1.05rem;border-radius:50%;background:#8D989E;transition:.3s;}
.sh-sw input:checked + i{background:#4A4700;border-color:var(--flare,#F2E502);}
.sh-sw input:checked + i::after{transform:translateX(1.25rem);background:var(--flare,#F2E502);}
.sh-sw input:disabled + i{opacity:.55;}

/* Lightbox */
.lb{position:fixed;inset:0;z-index:120;background:rgba(6,9,11,.96);display:none;align-items:center;justify-content:center;padding:clamp(1rem,4vw,3rem);}
.lb.on{display:flex;}
.lb-stage{max-width:100%;max-height:82vh;display:flex;align-items:center;justify-content:center;width:100%;}
.lb-stage img{max-width:100%;max-height:82vh;object-fit:contain;}
.lb-stage iframe,.lb-stage video{width:min(100%,1100px);aspect-ratio:16/9;height:auto;border:0;background:#000;}
.lb-close,.lb-nav{position:absolute;border:1px solid #2C353A;background:rgba(27,34,38,.85);color:#F5F4F0;
  cursor:pointer;width:2.9rem;height:2.9rem;display:grid;place-items:center;font-size:1.1rem;}
.lb-close{top:1.2rem;right:1.2rem;}
.lb-nav.prev{left:1.2rem;top:50%;transform:translateY(-50%);}
.lb-nav.next{right:1.2rem;top:50%;transform:translateY(-50%);}
.lb-cap{position:absolute;bottom:1.2rem;left:0;right:0;text-align:center;font-size:.68rem;
  letter-spacing:.16em;text-transform:uppercase;color:#8D989E;}
@media(max-width:52rem){.lb-close,.lb-nav{width:2.4rem;height:2.4rem;}.lb-nav.prev{left:.5rem;}.lb-nav.next{right:.5rem;}}

/* Formular-Meldungen */
.okmsg{display:none;}
.okmsg.on{display:block;border-left:2px solid var(--accent,#7E7700);padding:.85rem 1rem;background:rgba(242,229,2,.13);font-size:.9rem;}
.okmsg.on.err{border-left-color:#C9452B;background:rgba(201,69,43,.1);}
