/* LAN-Bunker Buchung – Anfrage-Formular. Nutzt die Farben/Schriften des Themes, hat aber eigene Rückfallwerte. */
.lbb{--o:var(--orange,#F07818);--t:var(--text,#f2f2f4);--m:var(--muted,#a5a9b3);--l:var(--line,rgba(255,255,255,.08));--l2:var(--line-2,rgba(255,255,255,.14));--s:var(--surface-solid,#121318);color:var(--t);font-family:var(--body,Poppins,system-ui,sans-serif)}
.lbb-page .page-wrap{max-width:1140px}
.lbb-page .page-content{color:var(--t)}
.lbb *{box-sizing:border-box}
.lbb [hidden]{display:none!important}

.lbb-steps{display:flex;gap:8px;list-style:none;margin:0 0 28px;padding:0;counter-reset:s;flex-wrap:wrap}
.lbb-steps li{display:flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid var(--l2);border-radius:999px;color:var(--m);font-size:14px;font-weight:600}
.lbb-steps li b{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.08);font:700 12px/1 var(--mono,monospace)}
.lbb-steps li.on{color:var(--t);border-color:var(--o)}
.lbb-steps li.on b{background:var(--o);color:#160900}

.lbb-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:28px;align-items:start}
@media (max-width:900px){.lbb-grid{grid-template-columns:1fr}.lbb-summary{order:-1}}

.lbb-form{background:var(--s);border:1px solid var(--l);border-radius:20px;padding:clamp(18px,3vw,32px)}
.lbb-step{border:0;margin:0;padding:0;min-width:0}
.lbb-step legend{font-size:24px;font-weight:800;margin:0 0 18px;padding:0}
.lbb-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.lbb-row-3{grid-template-columns:repeat(3,1fr);margin-top:6px}
@media (max-width:620px){.lbb-row,.lbb-row-3{grid-template-columns:1fr}}
.lbb-field{display:flex;flex-direction:column;gap:7px;margin:0 0 14px;font-size:14px;font-weight:600}
.lbb-field>span small{color:var(--m);font-weight:500;margin-left:4px}
.lbb input[type=text],.lbb input[type=email],.lbb input[type=tel],.lbb input[type=date],.lbb input[type=number],.lbb textarea{width:100%;background:#0b0c0f;border:1px solid var(--l2);border-radius:12px;color:var(--t);font:500 16px/1.3 var(--body,system-ui);padding:13px 14px;color-scheme:dark;transition:border-color .2s,box-shadow .2s}
.lbb input:focus,.lbb textarea:focus{outline:0;border-color:var(--o);box-shadow:0 0 0 3px rgba(240,120,24,.25)}
.lbb textarea{resize:vertical;min-height:110px}
.lbb-num{display:flex;align-items:stretch;gap:6px}
.lbb-num input[type=number]{text-align:center;font-weight:800;-moz-appearance:textfield;padding:13px 4px}
.lbb-num input::-webkit-outer-spin-button,.lbb-num input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.lbb-num button{flex:0 0 46px;border-radius:12px;border:1px solid var(--l2);background:#0b0c0f;color:var(--t);font-size:20px;cursor:pointer}
.lbb-num button:disabled{opacity:.3;cursor:not-allowed}
.lbb-num button:not(:disabled):hover{border-color:var(--o)}
.lbb-hint{margin:-4px 0 18px;font-size:14px}
.lbb-hint a,.lbb-check a{color:var(--orange-2,#ff9a45)}
.lbb-coupon{margin:4px 0 16px}
.lbb-coupon summary{cursor:pointer;color:var(--m);font-size:14px;margin-bottom:10px}
.lbb-check{display:flex;gap:12px;align-items:flex-start;margin:0 0 12px;font-size:14px;line-height:1.5;color:#d4d6db}
.lbb-check input{flex:0 0 auto;width:20px;height:20px;margin-top:1px;accent-color:var(--o)}
.lbb-check small{color:var(--m)}
.lbb-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}

.lbb-msg{margin:6px 0 14px;padding:12px 14px;border-radius:12px;font-size:14px;line-height:1.5;background:rgba(255,255,255,.05)}
.lbb-msg.warn{background:rgba(255,93,108,.12);border:1px solid rgba(255,93,108,.35)}
.lbb-msg.info{background:rgba(62,232,255,.08);border:1px solid rgba(62,232,255,.3)}
.lbb-msg.ok{background:rgba(77,255,154,.1);border:1px solid rgba(77,255,154,.35)}
.lbb-wait{margin:0 0 16px;padding:14px;border:1px dashed var(--l2);border-radius:12px;font-size:14px}
.lbb-wait p{margin:0 0 10px}
.lbb-wait .btn{margin:0}
.lbb .btn{margin:0}
.lbb .btn[disabled]{opacity:.45;cursor:not-allowed;box-shadow:none}
.lbb-next{width:100%;margin-top:6px!important}
.lbb-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:8px}
.lbb-actions .btn-primary{flex:1;display:inline-flex}
.lbb-small{color:var(--m);font-size:13px;line-height:1.6;margin:14px 0 0}

.lbb-summary{position:sticky;top:96px;background:linear-gradient(160deg,rgba(240,120,24,.12),rgba(255,255,255,.02) 55%);border:1px solid rgba(240,120,24,.35);border-radius:20px;padding:24px;transition:opacity .2s}
.lbb.loading .lbb-summary{opacity:.6}
.lbb-sum-head .eyebrow{margin-bottom:10px}
.lbb-sum-dates{font-weight:700;margin-bottom:14px}
.lbb-sum-pp b{display:block;font-size:40px;font-weight:900;color:var(--o);line-height:1}
.lbb-sum-pp small{color:var(--m);font-size:13px}
.lbb-lines{margin:18px 0 0;font-size:14px}
.lbb-lines>div{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--l)}
.lbb-lines>div span{color:var(--m)}
.lbb-lines>div.good b{color:var(--green,#4dff9a)}
.lbb-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:12px;font-weight:800}
.lbb-total b{font-size:22px}
.lbb-total small{font-weight:500;color:var(--m);font-size:12px}
.lbb-incl{list-style:none;margin:18px 0 0;padding:0;font-size:13px;color:var(--m)}
.lbb-incl li{padding:4px 0 4px 22px;position:relative}
.lbb-incl li::before{content:"✓";position:absolute;left:0;color:var(--green,#4dff9a);font-weight:800}

.lbb-done{text-align:center;padding:20px 0}
.lbb-done-icon{font-size:56px;animation:lbb-pop .6s cubic-bezier(.2,1.6,.4,1)}
.lbb-done h2{font-size:32px;font-weight:900;text-transform:uppercase;margin:10px 0}
@keyframes lbb-pop{from{transform:scale(.3);opacity:0}}

.lbb-dialog{background:var(--s);color:var(--t);border:1px solid var(--l2);border-radius:20px;padding:26px;max-width:440px;width:calc(100% - 32px)}
.lbb-dialog::backdrop{background:rgba(0,0,0,.7);backdrop-filter:blur(4px)}
.lbb-dialog h3{margin:0 0 6px;font-size:22px}
.lbb-dialog p{color:var(--m);margin:0 0 16px;font-size:14px}

.lbb-status{max-width:640px}
.lbb-st-title{font-size:clamp(30px,5vw,44px);font-weight:900;text-transform:uppercase;margin:0 0 10px}
.lbb-steps-st{margin:22px 0}
.lbb-summary-st{position:static;margin:10px 0 0}
.lbb-pay{margin:22px 0 0;padding:22px;border:1px solid var(--l2);border-radius:20px;background:var(--s)}
.lbb-pay h3{margin:0 0 12px;font-size:20px}
.lbb-bank b{font-family:var(--mono,monospace);font-size:14px;user-select:all}
.lbb-or{display:flex;align-items:center;gap:12px;color:var(--m);font-size:13px;margin:18px 0}
.lbb-or::before,.lbb-or::after{content:"";flex:1;height:1px;background:var(--l2)}
#lbb-pp-start{width:100%}
#lbb-pp-buttons{margin-top:8px;background:#fff;border-radius:12px;padding:8px}
#lbb-pp-buttons:empty{display:none}
.lbb{scroll-margin-top:100px}
/* Partnerseite */
.lbb-partner{max-width:860px}
.lbb-partner h2{font-size:26px;font-weight:900;text-transform:uppercase;margin:44px 0 16px}
.lbb-lead{font-size:19px;line-height:1.6;color:#d4d6db;margin:0 0 28px}
.lbb-perks{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:760px){.lbb-perks{grid-template-columns:1fr}}
.lbb-perks div{background:linear-gradient(160deg,rgba(240,120,24,.16),rgba(255,255,255,.02) 60%);border:1px solid rgba(240,120,24,.35);border-radius:20px;padding:22px}
.lbb-perks b{display:block;font-size:34px;font-weight:900;color:var(--o);line-height:1.1;margin-bottom:8px}
.lbb-perks span{color:var(--m);font-size:14px;line-height:1.5}
.lbb-howto,.lbb-req{margin:0;padding-left:22px;line-height:1.7;color:#d4d6db}
.lbb-howto li,.lbb-req li{margin:0 0 8px}
.lbb-terms{margin:24px 0 0;border:1px solid var(--l2);border-radius:14px;padding:14px 18px;font-size:14px;color:#c9ccd3}
.lbb-terms summary{cursor:pointer;font-weight:700;color:var(--t)}
.lbb-terms ol{padding-left:20px;line-height:1.6}
.lbb-terms li{margin:10px 0}
.lbb select{width:100%;background:#0b0c0f;border:1px solid var(--l2);border-radius:12px;color:var(--t);font:500 16px/1.3 var(--body,system-ui);padding:13px 14px}
/* Kalender im Formular */
.lbb-cal{margin:0 0 18px;padding:14px;border:1px solid var(--l2);border-radius:16px;background:#0b0c0f}
.lbb-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.lbb-cal-head b{font-size:16px}
.lbb-cal-head button{width:36px;height:36px;border-radius:10px;border:1px solid var(--l2);background:transparent;color:var(--t);font-size:18px;cursor:pointer}
.lbb-cal-head button:disabled{opacity:.3;cursor:default}
.lbb-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.lbb-cal-grid .wd{text-align:center;font:700 11px var(--mono,monospace);color:var(--m);padding:4px 0}
.lbb-cal-grid button{aspect-ratio:1/0.8;border-radius:8px;border:1px solid rgba(77,255,154,.22);background:rgba(77,255,154,.07);color:var(--t);font:700 14px var(--body,system-ui);cursor:pointer;padding:0}
.lbb-cal-grid button.booked{background:repeating-linear-gradient(135deg,rgba(255,93,108,.16) 0 6px,rgba(255,93,108,.06) 6px 12px);border-color:rgba(255,93,108,.25);color:#ff9aa3;cursor:not-allowed}
.lbb-cal-grid button.buffer{background:transparent;border-color:rgba(255,255,255,.05);color:#4a4e57;cursor:not-allowed}
.lbb-cal-grid button.past{background:transparent;border-color:transparent;color:#3a3d44;cursor:default}
.lbb-cal-grid button.out{opacity:.4}
.lbb-cal-grid button.inrange{background:rgba(240,120,24,.22);border-color:rgba(240,120,24,.6)}
.lbb-cal-grid button.edge{background:var(--o);color:#160900;border-color:var(--o)}
.lbb-cal-legend{display:flex;gap:6px 12px;align-items:center;flex-wrap:wrap;font-size:12px;color:var(--m);margin-top:10px}
.lbb-cal-legend span{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid rgba(77,255,154,.3);background:rgba(77,255,154,.12)}
.lbb-cal-legend span.booked{background:rgba(255,93,108,.25);border-color:rgba(255,93,108,.4)}
.lbb-cal-legend span.buffer{background:transparent;border-color:rgba(255,255,255,.12)}
.lbb-cal-msg{margin:8px 0 0;font-size:13px;color:var(--m)}

/* Handy: Preiskasten nicht kleben lassen (muss nach der Grundregel stehen) */
@media (max-width:900px){.lbb .lbb-summary{position:static;top:auto;padding:18px 20px}.lbb .lbb-summary .lbb-incl{display:none}}

/* Lade-Effekt beim Absenden: Bunker-Tor */
.lbb-gate{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:rgba(7,8,10,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;transition:opacity .25s}
.lbb-gate[hidden]{display:none!important}
.lbb-gate:not(.on){pointer-events:none}
.lbb-gate.on{opacity:1}
.lbb-gate-box{text-align:center;color:#f2f2f4;padding:24px}
.lbb-gate-door{position:relative;width:220px;height:150px;margin:0 auto 22px;border-radius:14px 14px 4px 4px;overflow:hidden;background:radial-gradient(circle at 50% 60%,rgba(31,191,104,.55),rgba(7,8,10,.95) 70%);border:3px solid #3a3d45;box-shadow:0 20px 60px -20px rgba(240,120,24,.5),inset 0 0 0 2px #15161a}
.lbb-gate-door i{position:absolute;top:0;bottom:0;width:50%;background:repeating-linear-gradient(0deg,#2b2e35 0 14px,#24262c 14px 16px),#2b2e35;transition:transform .9s cubic-bezier(.7,0,.2,1)}
.lbb-gate-door i.l{left:0;border-right:2px solid #15161a;box-shadow:inset -8px 0 14px -10px #000}
.lbb-gate-door i.r{right:0;border-left:2px solid #15161a;box-shadow:inset 8px 0 14px -10px #000}
.lbb-gate-door i::after{content:"";position:absolute;top:50%;width:6px;height:26px;margin-top:-13px;border-radius:3px;background:#5a5e68}
.lbb-gate-door i.l::after{right:10px}.lbb-gate-door i.r::after{left:10px}
.lbb-gate-door .lamp{position:absolute;top:8px;left:50%;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#F07818;box-shadow:0 0 14px 4px rgba(240,120,24,.8);z-index:2;animation:lbbLamp .9s ease-in-out infinite}
.lbb-gate-ok{position:absolute;inset:0;display:grid;place-items:center;font-size:56px;font-weight:900;color:#1fbf68;text-shadow:0 0 24px rgba(31,191,104,.9);opacity:0;transform:scale(.6);transition:opacity .4s .5s,transform .4s .5s}
.lbb-gate.open .lbb-gate-door i.l{transform:translateX(-102%)}
.lbb-gate.open .lbb-gate-door i.r{transform:translateX(102%)}
.lbb-gate.open .lbb-gate-door .lamp{background:#1fbf68;box-shadow:0 0 14px 4px rgba(31,191,104,.8);animation:none}
.lbb-gate.open .lbb-gate-ok{opacity:1;transform:none}
.lbb-gate-t{font-size:20px;font-weight:800;margin:0 0 6px;letter-spacing:.02em}
.lbb-gate-s{margin:0;color:#a5a9b3;font-size:14px}
@keyframes lbbLamp{50%{opacity:.35;box-shadow:0 0 4px 1px rgba(240,120,24,.4)}}
@media (prefers-reduced-motion:reduce){.lbb-gate,.lbb-gate-door i,.lbb-gate-ok{transition:none}.lbb-gate-door .lamp{animation:none}}

/* Handy: Kalendertage groß genug zum Antippen */
@media (max-width:600px){
  .lbb-cal-grid button{aspect-ratio:auto;min-height:44px;font-size:16px;touch-action:manipulation}
}

/* Sitzordnung aus dem Preisrechner */
.lbb-seatsum{display:flex;gap:16px;align-items:center;flex-wrap:wrap;margin:12px 0 4px;padding:12px 14px;border:1px solid rgba(240,120,24,.35);border-radius:14px;background:rgba(240,120,24,.06);font-size:14px}
.lbb-seatsum small{color:#a5a9b3}.lbb-seatsum small.warn{color:#ffb070}.lbb-seatsum a{color:#ff9a45}
.lbb-seatplan{display:flex;gap:12px;align-items:flex-start;font-size:10.5px;color:#a5a9b3;text-align:center}
.lbb-seatplan .g{display:grid;grid-template-columns:12px 6px 12px;gap:2px;margin-bottom:3px}
.lbb-seatplan i{display:block;width:12px;height:10px;border-radius:3px;background:rgba(255,255,255,.14)}
.lbb-seatplan i.on{background:#F07818;box-shadow:0 0 6px rgba(240,120,24,.6)}
.lbb-seatplan .g b{background:#4a4f58;border-radius:2px}
.lbb-seatplan .g4{display:flex;gap:2px;justify-content:center}.lbb-seatplan .d4{display:block;height:5px;margin:2px 0 3px;background:#4a4f58;border-radius:2px}
