/* ============================================================
   STARTHAUS — shop.css · Buchungsstrecke
   ============================================================ */

.shop{display:grid;grid-template-columns:1.35fr .85fr;gap:clamp(18px,2.4vw,34px);align-items:start}
@media(max-width:1000px){.shop{grid-template-columns:1fr}}

/* ---------- Schritte ---------- */
.step{
  background:linear-gradient(160deg,var(--panel-2),var(--panel));
  border:1px solid var(--line);border-radius:var(--r-l);
  padding:clamp(22px,3vw,32px);margin-bottom:clamp(14px,1.6vw,20px);
  transition:border-color .4s var(--ease);
}
.step.aktiv{border-color:rgba(143,211,244,.4)}
.step-kopf{display:flex;align-items:center;gap:14px;margin-bottom:22px}
.step-no{
  flex:none;width:30px;height:30px;border-radius:9px;display:grid;place-items:center;
  font-family:var(--mono);font-size:11px;font-weight:700;
  border:1px solid var(--line-2);color:var(--soft);
  transition:border-color .35s,color .35s,background .35s;
}
.step.aktiv .step-no,.step.fertig .step-no{
  border-color:rgba(143,211,244,.55);color:var(--ice);background:rgba(143,211,244,.10);
}
.step.fertig .step-no::after{content:'✓'}
.step.fertig .step-no span{display:none}
/* Überschrift und Erklärzeile klebten mit 3 px aneinander und lasen
   sich als ein Block — der Abstands-Prüfer setzt die Grenze bei 6. */
.step-kopf h2,.step-kopf h3{
  font-family:var(--disp);font-weight:800;font-variation-settings:'wdth' 106;
  font-size:clamp(1.05rem,1.5vw,1.28rem);color:var(--snow);line-height:1.15;
;margin:0 0 8px}
.step-kopf p{font-size:.84rem;color:var(--soft);margin-top:8px}

/* ---------- Felder ---------- */
.feld{display:flex;flex-direction:column;gap:7px}
.feld > label,.feld-t{
  font-family:var(--mono);font-size:10px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--soft);
}
.feld input[type=text],.feld input[type=date],.feld input[type=email],
.feld input[type=tel],.feld input[type=number],.feld select,.feld textarea{
  width:100%;min-height:46px;padding:11px 14px;
  background:rgba(255,255,255,.03);border:1px solid var(--line);border-radius:12px;
  color:var(--snow);font-size:.94rem;
  transition:border-color .28s,background .28s;
}
.feld textarea{min-height:96px;resize:vertical;line-height:1.5}
.feld input:focus,.feld select:focus,.feld textarea:focus{
  outline:none;border-color:rgba(143,211,244,.55);background:rgba(143,211,244,.05);
}
.feld input::placeholder,.feld textarea::placeholder{color:var(--dim)}
.feld select{appearance:none;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237C8B99' stroke-width='1.5'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.feld-fehler input,.feld-fehler select{border-color:rgba(255,120,110,.6)}
.feld .hint{font-size:.76rem;color:var(--dim)}

.reihe{display:grid;gap:14px}
.reihe-2{grid-template-columns:1fr 1fr}
.reihe-3{grid-template-columns:repeat(3,1fr)}
@media(max-width:620px){.reihe-2,.reihe-3{grid-template-columns:1fr}}

.tage-info{
  margin-top:14px;padding:12px 16px;border-radius:12px;
  background:rgba(143,211,244,.08);border:1px solid rgba(143,211,244,.24);
  font-size:.88rem;color:var(--text);
}
.tage-info b{color:var(--snow)}

/* ---------- Reiter für die Positionsarten ---------- */
.arten{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:22px}
.art{
  flex:1 1 auto;min-height:44px;padding:9px 14px;
  background:rgba(255,255,255,.025);border:1px solid var(--line);border-radius:12px;
  color:var(--text);font-size:.86rem;cursor:pointer;text-align:center;
  transition:border-color .28s,background .28s,color .28s;
}
.art:hover{border-color:var(--line-2);color:var(--snow)}
.art[aria-selected="true"]{
  background:rgba(143,211,244,.12);border-color:rgba(143,211,244,.55);color:var(--snow);
}
.art small{display:block;font-family:var(--mono);font-size:9px;letter-spacing:.1em;color:var(--soft);margin-top:2px}
.art[aria-selected="true"] small{color:var(--ice)}

.gruppe{margin-bottom:22px}
.gruppe+.gruppe{padding-top:22px;border-top:1px solid var(--line)}

/* ---------- Warenkorb ---------- */
.korb{
  position:sticky;top:calc(var(--nav-h) + 20px);
  background:linear-gradient(160deg,var(--panel-2),var(--panel));
  border:1px solid rgba(143,211,244,.30);border-radius:var(--r-l);
  padding:clamp(22px,3vw,28px);
  display:flex;flex-direction:column;
}
@media(max-width:1000px){.korb{position:static}}
.korb h2,.korb h3{
  font-family:var(--disp);font-weight:800;font-variation-settings:'wdth' 108;
  font-size:1.15rem;color:var(--snow);display:flex;align-items:center;gap:10px;
}
.korb h3 .anz{
  font-family:var(--mono);font-size:10px;padding:3px 8px;border-radius:20px;
  background:rgba(143,211,244,.16);color:var(--ice);border:1px solid rgba(143,211,244,.35);
}
.korb-leer{margin-top:18px;font-size:.88rem;color:var(--soft);line-height:1.55;max-width:52ch}

.korb-list{margin-top:18px;display:flex;flex-direction:column;gap:10px;max-height:44vh;overflow-y:auto;
  scrollbar-width:thin;scrollbar-color:var(--line-2) transparent}
.korb-list::-webkit-scrollbar{width:5px}
.korb-list::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:5px}
.ki{
  padding:13px 14px;border:1px solid var(--line);border-radius:14px;
  background:rgba(255,255,255,.02);position:relative;
}
.ki-kopf{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.ki-t{font-size:.9rem;color:var(--snow);font-weight:600;line-height:1.3}
.ki-p{font-family:var(--mono);font-size:.86rem;color:var(--ice);white-space:nowrap}
.ki-d{margin-top:6px;font-size:.78rem;color:var(--soft);line-height:1.5}
.ki-w{
  margin-top:9px;display:flex;gap:8px;
}
.ki-w button{
  min-height:32px;padding:5px 11px;border-radius:9px;cursor:pointer;
  background:none;border:1px solid var(--line);color:var(--soft);
  font-family:var(--mono);font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
  transition:border-color .25s,color .25s,background .25s;
}
.ki-w button:hover{border-color:var(--line-3);color:var(--snow)}
.ki-w .del:hover{border-color:rgba(255,120,110,.6);color:#ff8a80;background:rgba(255,120,110,.08)}

.korb-sum{margin-top:20px;padding-top:16px;border-top:1px solid var(--line)}
.korb-sum li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;font-size:.88rem}
.korb-sum li span:first-child{color:var(--soft)}
.korb-sum li span:last-child{font-family:var(--mono);color:var(--text)}
.korb-sum li.rab span{color:var(--flut)}
.korb-total{
  margin-top:14px;padding-top:14px;border-top:1px solid var(--line-2);
  display:flex;align-items:flex-end;justify-content:space-between;gap:12px;
}
.korb-total .lbl{font-family:var(--mono);font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--soft)}
.korb-total .val{
  font-family:var(--disp);font-weight:900;font-variation-settings:'wdth' 116;
  font-size:clamp(2rem,3.6vw,2.7rem);color:var(--snow);line-height:.9;
}
.korb-total .val em{font-style:normal;font-size:.42em;color:var(--soft);margin-left:3px}
.korb .btn{width:100%;margin-top:18px}
.korb-note{margin-top:12px;font-size:.72rem;line-height:1.5;color:var(--dim)}

/* ---------- Bestätigung ---------- */
.ok{
  padding:clamp(26px,4vw,40px);border-radius:var(--r-l);
  border:1px solid rgba(143,211,244,.4);
  background:radial-gradient(80% 100% at 50% 0%,rgba(143,211,244,.12),transparent 66%),
             linear-gradient(160deg,var(--panel-2),var(--panel));
  text-align:center;
}
.ok .hk{
  width:56px;height:56px;margin:0 auto 18px;border-radius:50%;display:grid;place-items:center;
  background:rgba(143,211,244,.15);border:1px solid rgba(143,211,244,.5);
  color:var(--ice);font-size:1.5rem;
}
.ok h2,.ok h3{font-family:var(--disp);font-weight:800;font-size:1.5rem;color:var(--snow);margin-bottom:12px}
.ok p{font-size:.95rem;color:var(--text);max-width:56ch;margin:0 auto 8px}
.ok .row{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:24px}

/* ---------- Fehlerhinweis ---------- */
.shop-fehler{
  margin-top:14px;padding:12px 16px;border-radius:12px;
  border:1px solid rgba(255,120,110,.45);background:rgba(255,120,110,.08);
  font-size:.86rem;color:#ffb3ad;
}
.shop-fehler:empty{display:none}

/* ---------- Größen- und Verfügbarkeitswahl ---------- */
.arten.groessen{gap:6px}
.art.groesse{
  flex:0 0 auto;min-width:86px;padding:8px 12px;font-family:var(--mono);font-size:.82rem;
}
.art.groesse small{font-size:9px;letter-spacing:.08em;text-transform:none}
.art.groesse.leer{opacity:.4;cursor:not-allowed;border-style:dashed}
.art.groesse.leer small{color:#ff8a80}
.art.groesse[aria-selected="true"] small{color:var(--ice)}

@media(max-width:560px){
  .art small{font-size:11px;letter-spacing:.06em}
  .art.groesse small{font-size:11px}
}

/* ---------- Übergabe vom Merkzettel ---------- */
.merk-band{
  display:grid;gap:6px;margin-bottom:16px;
  padding:16px 18px;border-radius:var(--r-m,16px);
  background:linear-gradient(150deg,rgba(255,178,92,.13),rgba(255,255,255,.015));
  border:1px solid rgba(255,178,92,.3);
}
.merk-band b{
  font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.15em;
  text-transform:uppercase;color:var(--flut);
}
.merk-band span{font-size:.92rem;color:var(--text);line-height:1.55}
.merk-band small{font-size:.78rem;color:var(--soft);line-height:1.5}
