/* === Erlebnisreich Campus — Brand Tokens === */
/* Navy: #1e2a38  |  Gold: #b8a46a  |  Gold light: #c9b87e  |  Bg: #fff  |  Bg-alt: #f8f7f4 */
/* Font: Barlow Condensed (headlines) + Barlow (body) from Google Fonts */
.fw{
  --er-navy:#1e2a38;
  --er-gold:#b8a46a;
  --er-gold-light:#c9b87e;
  --er-gold-bg:#f5f1e8;
  --er-bg:#ffffff;
  --er-bg-alt:#f8f7f4;
  --er-border:#e2ddd4;
  --er-border-light:#ede9e1;
  --er-text:#1e2a38;
  --er-text-mid:#4a5568;
  --er-text-light:#8a9ab0;
  --er-red:#c0392b;
  --font-head: "Erlebnisreich Font", Sans-serif;
  --font-body: "Erlebnisreich Font", Sans-serif;
}

.fw *{box-sizing:border-box;margin:0;padding:0}
.fw{font-family:var(--font-body);font-size:1em;width:100%;padding-bottom:2rem;color:var(--er-text)}
.fw .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}

/* Header */
.fw .fhdr{background:var(--er-navy);border-radius:4px 4px 0 0;padding:1.5rem 1.75rem;margin-bottom:0;display:flex;align-items:center;gap:14px;border-bottom:3px solid var(--er-gold)}
.fw .fhdr-icon{width:44px;height:44px;border-radius:4px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fw .fhdr-title{font-family:var(--font-head);font-size:1em;font-weight:700;color:#fff;letter-spacing:.5px;text-transform:uppercase}
.fw .fhdr-sub{font-size:0.9em;color:rgba(255,255,255,.5);margin-top:2px;font-family:var(--font-body)}
.fw .fhdr-badge{margin-left:auto;background:var(--er-gold);color:#fff;font-size:0.75em;font-weight:600;padding:5px 12px;border-radius:20px;white-space:nowrap;font-family:var(--font-body);letter-spacing:.3px}

/* Progress bar */
.fw .pbar{display:flex;align-items:flex-start;gap:0;margin:1.5rem 0 1.75rem}
.fw .sdot{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px;position:relative}
.fw .sdot:not(:last-child)::after{content:'';position:absolute;top:25px;left:50%;width:100%;height:2px;background:var(--er-border);z-index:0;transition:background .3s}
.fw .sdot.done:not(:last-child)::after{background:var(--er-gold)}
.fw .dc{width:50px;height:50px;border-radius:50%;border:2px solid var(--er-border);background:var(--er-bg);display:flex;align-items:center;justify-content:center;font-size:2em;font-weight:600;color:var(--er-text-light);z-index:1;position:relative;transition:all .25s;font-family:var(--font-body)}
.fw .sdot.active .dc{border-color:var(--er-gold);background:var(--er-gold);color:#fff}
.fw .sdot.done .dc{border-color:var(--er-navy);background:var(--er-navy);color:#fff}
.fw .dl{font-size:1.2em;color:var(--er-text-light);text-align:center;white-space:nowrap;font-family:var(--font-body)}
.fw .sdot.active .dl{color:var(--er-navy);font-weight:600}
.fw .sdot.done .dl{color:var(--er-navy)}

/* Step cards */
.fw .scard{background:var(--er-bg);border:1px solid var(--er-border);border-radius:0 0 4px 4px;overflow:hidden;display:none}
.fw .scard.vis{display:block}

/* Step hero bar */
.fw .step-hero{background:var(--er-navy);padding:1.5rem 1.75rem;display:flex;align-items:center;gap:16px;border-bottom:3px solid var(--er-gold)}
.fw .hero-num{font-size:1em;color:var(--er-gold);margin-bottom:3px;letter-spacing:1px;text-transform:uppercase;font-family:var(--font-body);font-weight:600}
.fw .hero-title{font-family:var(--font-head);font-size:3em;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:.5px}
.fw .hero-sub{font-size:1.2em;color:#fff;margin-top:3px;font-family:var(--font-body)}
.fw .hero-icon{width:52px;height:52px;border-radius:4px;background:rgba(184,164,106,.2);border:1px solid rgba(184,164,106,.3);display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-left:auto}

.fw .sbody{padding:1.5rem 1.75rem;background:var(--er-bg)}

/* Event type cards */
.fw .egrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.fw .ecard{border:2px solid var(--er-border);border-radius:4px;padding:16px 14px;cursor:pointer;transition:all .18s;display:flex;flex-direction:column;gap:10px;background:var(--er-bg)}
.fw .ecard:hover{border-color:var(--er-gold);background:var(--er-gold-bg)}
.fw .ecard.sel{border-color:var(--er-gold);background:var(--er-gold-bg)}
.fw .ei{width:40px;height:40px;border-radius:4px;background:var(--er-bg-alt);display:flex;align-items:center;justify-content:center;transition:all .18s;flex-shrink:0}
.fw .ecard.sel .ei{background:var(--er-gold)}
.fw .ecard.sel .ei svg{stroke:#fff}
.fw .ecard>div:not(.ei){min-width:0;overflow:hidden}
.fw .el{font-size:1.4em;font-weight:600;color:var(--er-text);line-height:1.3;font-family:var(--font-body);hyphens:auto;overflow-wrap:break-word}
.fw .es{font-size:1em;color:var(--er-text-light);margin-top:1px;font-family:var(--font-body)}

/* Guest size options */
.fw .gopts{display:grid;grid-template-columns:repeat(2,1fr);gap:9px}
.fw .gopt{border:2px solid var(--er-border);border-radius:4px;padding:14px 16px;cursor:pointer;display:flex;align-items:center;gap:14px;transition:all .18s;background:var(--er-bg);overflow:hidden}
.fw .gopt:hover{border-color:var(--er-gold);background:var(--er-gold-bg)}
.fw .gopt.sel{border-color:var(--er-gold);background:var(--er-gold-bg)}
.fw .gr{width:20px;height:20px;border-radius:50%;border:2px solid var(--er-border);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .18s}
.fw .gopt.sel .gr{border-color:var(--er-gold);background:var(--er-gold)}
.fw .gopt.sel .gr::after{content:'';display:block;width:7px;height:7px;border-radius:50%;background:#fff}
.fw .gi{width:36px;height:36px;border-radius:4px;background:var(--er-bg-alt);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .18s}
.fw .gopt.sel .gi{background:var(--er-gold)}
.fw .gopt.sel .gi svg{stroke:#fff}
.fw .gl{font-size:1.2em;font-weight:600;color:var(--er-text);font-family:var(--font-body);hyphens:auto}
.fw .gs{font-size:1.1em;color:var(--er-text-light);margin-top:1px;font-family:var(--font-body);hyphens:auto}
.fw .gbadge{margin-left:auto;font-size:1em;font-weight:600;padding:3px 9px;border-radius:20px;white-space:nowrap;font-family:var(--font-body)}

/* Calendar */
.fw .cw{margin-top:.25rem}
.fw .chdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.fw .cnav{background:none;border:1px solid var(--er-border);border-radius:4px;width:32px;height:32px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1em;color:var(--er-text);transition:all .15s}
.fw .cnav:hover{background:var(--er-gold-bg);border-color:var(--er-gold)}
.fw .cgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.fw .cdn{text-align:center;font-size:0.75em;color:var(--er-text-light);padding:5px 0;font-weight:600;font-family:var(--font-body)}
.fw .cd{text-align:center;padding:8px 3px;border-radius:4px;font-size:1.2em;cursor:pointer;color:var(--er-text);transition:all .15s;font-family:var(--font-body)}
.fw .cd:hover:not(.ep):not(.pp){background:var(--er-gold-bg)}
.fw .cd.td{font-weight:700;color:var(--er-navy);border:1px solid var(--er-gold)}
.fw .cd.sd{background:var(--er-gold);color:#fff;font-weight:600}
.fw .cd.pp{color:var(--er-border);cursor:default}
.fw .cd.ep{cursor:default}

.fw .dlabel{font-size:1.2em;color:var(--er-text-mid);margin-top:10px;min-height:18px;font-family:var(--font-body)}

/* Flex date checkbox */
.fw .fcheck{margin-top:1rem;display:flex;align-items:center;gap:12px;padding:14px 16px;border:2px solid var(--er-border);border-radius:4px;cursor:pointer;transition:all .18s;background:var(--er-bg)}
.fw .fcheck:hover{border-color:var(--er-gold)}
.fw .fcheck.on{border-color:var(--er-gold);background:var(--er-gold-bg)}
.fw .fbox{width:20px;height:20px;border-radius:3px;flex-shrink:0;margin-top:1px;border:2px solid var(--er-border);display:flex;align-items:center;justify-content:center;transition:all .18s}
.fw .fcheck.on .fbox{background:var(--er-gold);border-color:var(--er-gold);color:#fff;font-size:0.75em;font-weight:700}
.fw .ftext{font-size:1.2em;color:var(--er-text);font-weight:600;font-family:var(--font-body)}
.fw .fsub{font-size:1.1em;color:var(--er-text-light);margin-top:2px;font-family:var(--font-body)}

/* Booking add-ons */
.fw .bgrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fw .bcard{border:2px solid var(--er-border);border-radius:4px;padding:16px 14px;cursor:pointer;transition:all .18s;display:flex;flex-direction:column;gap:10px;background:var(--er-bg)}
.fw .bcard:hover{border-color:var(--er-gold);background:var(--er-gold-bg)}
.fw .bcard.sel{border-color:var(--er-gold);background:var(--er-gold-bg)}
.fw .bcheck{width:20px;height:20px;border-radius:3px;border:2px solid var(--er-border);display:flex;align-items:center;justify-content:center;font-size:0.75em;font-weight:700;color:#fff;transition:all .18s}
.fw .bcard.sel .bcheck{background:var(--er-gold);border-color:var(--er-gold)}
.fw .bi{width:40px;height:40px;border-radius:4px;background:var(--er-navy);display:flex;align-items:center;justify-content:center;transition:all .18s}
.fw .bcard.sel .bi{background:var(--er-gold)}
.fw .bt{font-size:1.4em;font-weight:600;color:var(--er-text);font-family:var(--font-body);hyphens:auto}
.fw .bd{font-size:1.1em;color:var(--er-text-light);line-height:1.5;font-family:var(--font-body);hyphens:auto}

/* Contact form */
.fw .cgrd{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fw .cgrd .full{grid-column:1/-1}
.fw .fl{font-size:1em;font-weight:600;color:var(--er-text-mid);margin-bottom:5px;display:block;text-transform:uppercase;letter-spacing:.4px;font-family:var(--font-body)}
.fw input[type=text],.fw input[type=email],.fw input[type=tel],.fw textarea{width:100%;padding:10px 13px;border-radius:4px;border:1.5px solid var(--er-border);font-size:1.1em;font-family:var(--font-body);background:var(--er-bg);color:var(--er-text);outline:none;transition:border .15s}
.fw input:focus,.fw textarea:focus{border-color:var(--er-gold);box-shadow:0 0 0 3px rgba(184,164,106,.15)}
.fw textarea{min-height:200px;resize:vertical}

/* Summary */
.fw .sumrow{display:flex;align-items:flex-start;gap:14px;padding:13px 0;border-bottom:1px solid var(--er-border-light)}
.fw .sumrow:last-child{border-bottom:none}
.fw .sico{width:40px;height:40px;border-radius:4px;background:var(--er-navy);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.fw .sk{font-size:1em;color:var(--er-text-light);margin-bottom:3px;text-transform:uppercase;letter-spacing:.8px;font-family:var(--font-body);font-weight:600}
.fw .sv{font-size:1.2em;color:var(--er-text);font-weight:600;font-family:var(--font-body)}
.fw .ss{font-size:1.1em;color:var(--er-text-light);font-family:var(--font-body)}

/* Buttons */
.fw .brow{display:flex;align-items:center;gap:10px;margin-top:1.5rem;justify-content:space-between}
.fw .bp{background:var(--er-gold);color:#fff;border:none;border-radius:20px;padding:11px 24px;font-size:1.1em;font-weight:700;cursor:pointer;transition:background .15s;font-family:var(--font-body);display:flex;align-items:center;gap:8px;letter-spacing:.3px}
.fw .bp:hover{background:var(--er-gold-light)}
.fw .bp:disabled{opacity:.4;cursor:default}
.fw .bb{background:none;border:1.5px solid var(--er-border);border-radius:20px;padding:11px 18px;font-size:1.1em;cursor:pointer;color:var(--er-text-mid);font-family:var(--font-body);font-weight:600;transition:all .15s;display:flex;align-items:center;gap:8px}
.fw .bb:hover{border-color:var(--er-gold);color:var(--er-navy);background:var(--er-gold-bg)}
.fw .emsg{font-size:1.2em;color:#fff;background:red;padding:5px;margin-top:6px;display:none;font-family:var(--font-body)}
.fw .dsgvo{font-size:1.1em;color:var(--er-text-light);margin-top:1.25rem;font-family:var(--font-body)}
.fw .dsgvo a{color:var(--er-gold);text-decoration:underline}

@media(max-width:600px){
  .fw .egrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fw .bgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fw .gopts{grid-template-columns:1fr}
  .fw .cgrd{grid-template-columns:1fr}
  .fw .dl{font-size:0.8em}
  .fw .dc{width:26px;height:26px;font-size:0.9em}
  .fw .sdot:not(:last-child)::after{top:13px}
  .fw .hero-title{font-size:2.3em}
  .fw .el{font-size:1em}
  .fw .bt{font-size:1.2em}
  .fw .brow{flex-direction:column-reverse;align-items:stretch}
  .fw .brow .bp{justify-content:center}
  .fw .brow .bb{justify-content:center;font-size:0.9em;padding:8px 14px}
}
.fw .sdot.done .dc{cursor:pointer}
.fw .sdot.done .dl{cursor:pointer}
.fw .hero-icon--photo{width:auto;height:auto;background:none;border:none}
.fw .hero-photo{border-radius:50%;display:block}
.fw .b-sec{margin-bottom:30px}
.fw .b-sec:last-of-type{margin-bottom:0}
.fw .b-sec-hdr{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.fw .b-sec-label{font-size:1.3em;font-weight:700;text-transform:uppercase;letter-spacing:1.2px;color:var(--er-navy);white-space:nowrap;font-family:var(--font-head)}
.fw .b-sec-line{flex:1;height:1px;background:var(--er-border)}
.fw .opt-row{display:flex;align-items:center;gap:14px;padding:13px 16px;border:1.5px solid var(--er-border);border-radius:4px;cursor:pointer;background:var(--er-bg);transition:border-color .15s,background .15s;margin-bottom:6px}
.fw .opt-row:last-child{margin-bottom:0}
.fw .opt-row:hover{border-color:var(--er-gold);background:var(--er-gold-bg)}
.fw .opt-row.sel{border-color:var(--er-gold);background:var(--er-gold-bg)}
.fw .opt-row .bcheck{position:static;width:20px;height:20px;border-radius:3px;border:2px solid var(--er-border);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:.75em;font-weight:700;color:#fff;transition:all .15s}
.fw .opt-row.sel .bcheck{background:var(--er-gold);border-color:var(--er-gold)}
.fw .opt-text{flex:1;min-width:0;hyphens:auto}
.fw .opt-icon{width:36px;height:36px;border-radius:4px;background:var(--er-bg-alt);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .18s}
.fw .opt-row.sel .opt-icon{background:var(--er-gold)}
.fw .opt-row.sel .opt-icon svg{stroke:#fff}
