/*
Theme Name: EJB Weihnachtslicht
Description: Aktionsseite für den EJB-Weihnachtsbaum mit Twingle-Anbindung und Frontend-Moderation.
Version: 0.2.0
Author: Diakon Sebastian Schäfer
Requires at least: 6.5
Requires PHP: 8.3
License: GPL-2.0-or-later
Text Domain: ejb-weihnachtslicht
*/
@import url("assets/fonts.css");
:root{--ejb-magenta:#C6168D;--ejb-violet:#672686;--ejb-yellow:#FDB913;--ejb-blue:#008EB8;--ejb-sky:#40B9E3;--ejb-ink:#233c45;--ejb-paper:#faf9f5;--ejb-heading:'Ubuntu',sans-serif;--ejb-body:'Source Sans 3',sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ejb-ink);font:18px/1.5 var(--ejb-body);background:var(--ejb-paper)}body::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 47% 45%,#ffeec44d,transparent 55%),radial-gradient(ellipse at 5% 85%,#c2e0e452,transparent 38%)}a{color:var(--ejb-blue)}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}:focus-visible{outline:3px solid var(--ejb-violet);outline-offset:4px}.ejbl-header{max-width:1440px;padding:28px 44px 0;margin:auto;display:flex;justify-content:space-between;align-items:center;gap:20px}.ejbl-brand img{width:238px;height:auto;display:block}.ejbl-season{font:500 12px var(--ejb-heading);text-transform:uppercase;letter-spacing:.18em;color:#687c80}.ejbl-main{max-width:1560px;margin:auto;min-height:60vh}.ejbl-footer{max-width:1320px;margin:20px auto 0;padding:26px 32px 32px;display:flex;justify-content:center;gap:24px;flex-wrap:wrap;position:relative;font-size:15px}.ejbl-footer a{color:#49616b;text-decoration:none}.ejbl-footer a:hover{text-decoration:underline}.ejbl-footer::before{content:'';position:absolute;left:-9vw;top:-14px;width:25%;height:15px;border-radius:70% 50% 0 0;background:var(--ejb-yellow)}.ejbl-footer::after{content:'';position:absolute;right:-6vw;top:-14px;width:26%;height:12px;border-radius:80% 70% 0 0;background:var(--ejb-sky)}.ejbl-site{overflow:hidden}.ejbl-content{max-width:850px;margin:60px auto;padding:0 24px}.ejbl-content h1,.ejbl-content h2{font-family:var(--ejb-heading)}.ejbl-skip{position:absolute;top:-100px;left:16px;padding:12px;background:#fff;z-index:100}.ejbl-skip:focus{top:12px}.ejbl-card-theme{background:#cceef8;border-radius:34% 18% 30% 17% / 15% 24% 17% 28%;box-shadow:0 14px 40px #274c5709}
@media(max-width:720px){.ejbl-header{padding:20px 20px 0}.ejbl-brand img{width:195px}.ejbl-season{font-size:10px;letter-spacing:.09em;max-width:80px;text-align:right}.ejbl-footer{font-size:14px;gap:18px;margin-top:24px;padding:22px 18px}.ejbl-footer::before,.ejbl-footer::after{width:15%}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
/* Winter landscape: a continuous ground instead of cropped brand shapes. */
.ejbl-footer::before,.ejbl-footer::after{display:none}.ejbl-site{position:relative;background:radial-gradient(ellipse at 52% 50%,#fff2ce66,transparent 47%),linear-gradient(180deg,#faf9f5 0%,#f6f8f6 65%,#e9f0f1 87%,#fff 100%)}.ejbl-site::before{content:'';position:absolute;inset:40% -10% 0;pointer-events:none;background:radial-gradient(ellipse at 50% 65%,#fff 0%,#ffffffb8 25%,transparent 65%);filter:blur(12px)}.ejbl-header,.ejbl-main,.ejbl-footer{position:relative}.ejbl-copyright{flex-basis:100%;text-align:center;font-size:12px;color:#718087}.ejbl-footer{margin-top:0;padding-top:32px;padding-bottom:30px}.ejbl-footer a{white-space:nowrap}
/* Viewport-sized campaign; legal document pages retain normal scrolling. */
body:has(.ejbw-app){--ejbl-admin-height:0px;margin:0;overflow:hidden}body.admin-bar:has(.ejbw-app){--ejbl-admin-height:32px}.ejbl-site:has(.ejbw-app){height:calc(100dvh - var(--ejbl-admin-height));display:grid;grid-template-rows:78px minmax(0,1fr) 56px;background:#f7f7f1 url('assets/winter-scene.webp') center/cover no-repeat;isolation:isolate}.ejbl-site:has(.ejbw-app)::before{inset:0;background:linear-gradient(90deg,#ffffff9c,transparent 35%,transparent 65%,#ffffff80),linear-gradient(0deg,#ffffffb8,transparent 24%);filter:none;z-index:-1}.ejbl-site:has(.ejbw-app) .ejbl-header{padding:12px 28px 0;width:100%;max-width:none;gap:10px}.ejbl-site:has(.ejbw-app) .ejbl-brand img{width:190px}.ejbl-site:has(.ejbw-app) .ejbl-main{min-height:0;width:100%;max-width:none}.ejbl-site:has(.ejbw-app) .ejbl-footer{padding:5px 15px 7px;margin:0;gap:4px 20px;align-content:center;font-size:12px}.ejbl-copyright{font-size:10px}
@media(max-width:782px){body.admin-bar:has(.ejbw-app){--ejbl-admin-height:46px}}
@media(max-width:700px){.ejbl-site:has(.ejbw-app){grid-template-rows:55px minmax(0,1fr) 48px;background-position:50% 50%}.ejbl-site:has(.ejbw-app) .ejbl-header{padding:6px 16px 0}.ejbl-site:has(.ejbw-app) .ejbl-brand img{width:137px}.ejbl-site:has(.ejbw-app) .ejbl-season{font-size:9px}.ejbl-site:has(.ejbw-app) .ejbl-footer{font-size:10px;gap:1px 14px}.ejbl-site:has(.ejbw-app) .ejbl-copyright{font-size:9px}}
.ejbl-site:has(.ejbw-app) .ejbl-main{margin:0;height:100%;align-self:stretch}.ejbl-site:has(.ejbw-app) .ejbl-header{margin:0;min-height:0;height:100%;padding-top:4px;align-self:stretch}.ejbl-site:has(.ejbw-app) .ejbl-brand img{max-height:64px;width:auto;max-width:190px}.ejbl-site:has(.ejbw-app) .ejbl-footer{height:100%;min-height:0}
@media(max-width:700px){.ejbl-site:has(.ejbw-app) .ejbl-brand img{max-height:45px;max-width:137px}}
.ejbl-site:has(.ejbw-app) .ejbl-brand{display:block;flex:0 0 auto}.ejbl-site:has(.ejbw-app) .ejbl-brand img{width:170px;height:auto;max-height:none;max-width:none}.ejbw-fairy{width:.65%;height:auto;aspect-ratio:1;max-width:3.5px}.ejbl-site .ejbw-status{bottom:0;left:auto;right:0;max-width:300px;padding:4px 9px;border-radius:8px;background:#ffffffe6;transform:translateY(-20px)}.ejbl-site .ejbw-status:empty{display:none}
@media(max-width:700px){.ejbl-site:has(.ejbw-app) .ejbl-brand img{width:120px;height:auto}.ejbl-site .ejbw-status{max-width:240px;font-size:10px;transform:translateY(-17px)}}
/* Campaign occupies the first screen; legal links follow below it. */
body:has(.ejbw-app){overflow-x:hidden;overflow-y:auto}.ejbl-site:has(.ejbw-app){height:auto;min-height:100dvh;grid-template-rows:78px calc(100dvh - var(--ejbl-admin-height) - 78px) auto;background-size:100% 100%;overflow:hidden}.ejbl-site:has(.ejbw-app) .ejbl-footer{height:auto;min-height:40px;padding:12px 16px;background:#ffffff80}.ejbl-site:has(.ejbw-app)::before{background:linear-gradient(90deg,#ffffff80,transparent 38%,transparent 72%,#ffffff55),linear-gradient(0deg,#ffffff75,transparent 20%)}
@media(max-width:700px){.ejbl-site:has(.ejbw-app){grid-template-rows:55px calc(100dvh - var(--ejbl-admin-height) - 55px) auto;background-size:auto 100%;background-position:center bottom}.ejbl-site:has(.ejbw-app) .ejbl-footer{min-height:38px;padding:12px 8px}}
@media(max-width:700px){.ejbl-site:has(.ejbw-app){background-size:100% 100%}.ejbl-site .ejbw-controls .ejbw-reset-demo{background:#ffffffe8;border-radius:9px;padding:5px 3px;min-height:27px;width:100%;text-decoration:none}.ejbl-site .ejbw-controls .ejbw-demo-footer{display:block}}
/* Natural background proportions and a footer reachable with a normal swipe. */
html:has(.ejbw-app){height:auto;overflow-y:auto;overflow-x:hidden}body:has(.ejbw-app){height:auto;min-height:100%;overflow:visible;touch-action:auto}.ejbl-site:has(.ejbw-app){background-size:cover;overflow:clip}.ejbl-site:has(.ejbw-app) .ejbl-footer{position:relative;z-index:5;min-height:64px;padding:20px 14px;touch-action:pan-y}
@media(max-width:700px){.ejbl-site:has(.ejbw-app){background-image:url('assets/winter-scene-mobile.webp');background-size:cover;background-position:center bottom;grid-template-rows:108px calc(100dvh - var(--ejbl-admin-height) - 108px) auto}.ejbl-site:has(.ejbw-app) .ejbl-header{align-items:flex-start;padding-top:4px}.ejbl-site:has(.ejbw-app) .ejbl-footer{min-height:68px;font-size:12px;padding:23px 12px}.ejbl-site .ejbw-mobile-info{top:-53px;left:50%;right:auto;transform:translateX(-50%);font-size:15px;font-weight:600;min-height:40px;min-width:185px;padding:8px 18px;border-radius:24px;background:#fff;border:1px solid #9ac7d3;box-shadow:0 3px 12px #254b5b12}}
