/* ==========================================================================
   Beauty Lounge – Online-Buchung (mobile first)
   Farben/Schriften kommen aus dem Theme, mit Ersatzwerten für sich allein.
   ========================================================================== */

.bl-booking{
	--b-wine:var(--wine,#43192a);
	--b-wine-2:var(--wine-2,#5a2337);
	--b-nude:var(--nude,#ebcfc6);
	--b-cream:var(--cream,#fbf5ee);
	--b-cream-2:var(--cream-2,#f3e8dd);
	--b-ink:var(--ink,#2a2023);
	--b-ink-2:var(--ink-2,#54474b);
	--b-line:var(--line,#e2d4c8);
	--b-white:var(--white,#fffdfa);
	--b-polish:var(--polish,#b3262e);
	--b-ok:#2f7d4a;
	--b-display:var(--display,"Young Serif",Georgia,serif);
	--b-text:var(--text,"Commissioner","Segoe UI",Roboto,Arial,sans-serif);
	--b-radius:14px;
	position:relative;
	max-width:760px;
	margin:0 auto;
	color:var(--b-ink);
	font-family:var(--b-text);
	font-size:17px;
	line-height:1.55;
}
.bl-booking *,.bl-booking *::before,.bl-booking *::after{box-sizing:border-box}
.bl-booking [hidden]{display:none!important}
.bl-booking :focus-visible{outline:3px solid var(--b-polish);outline-offset:2px}
.bl-booking button{font:inherit;color:inherit}

/* Fortschritt */
.bl-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0 0 22px;padding:0;list-style:none;counter-reset:step}
.bl-steps li{position:relative;padding-top:12px;color:var(--b-ink-2);font-size:13px;font-weight:600;letter-spacing:.02em}
.bl-steps li::before{content:"";position:absolute;inset:0 0 auto;height:4px;border-radius:4px;background:var(--b-line)}
.bl-steps li.is-done::before,.bl-steps li.is-current::before{background:var(--b-wine)}
.bl-steps li.is-current{color:var(--b-wine)}

/* Kopf je Schritt */
.bl-head{margin-bottom:18px}
.bl-head h2{margin:0;font:400 clamp(26px,7vw,38px)/1.12 var(--b-display);color:var(--b-ink)}
.bl-head p{margin:8px 0 0;color:var(--b-ink-2)}
.bl-back{display:inline-flex;align-items:center;gap:6px;margin:0 0 12px;padding:6px 0;border:0;background:none;color:var(--b-wine);font-weight:700;cursor:pointer}
.bl-back::before{content:"←"}

/* Person */
.bl-staff{display:flex;align-items:center;gap:14px;margin-bottom:18px;padding:12px 14px;border:1px solid var(--b-line);border-radius:var(--b-radius);background:var(--b-white)}
.bl-staff img{width:52px;height:52px;border-radius:50%;object-fit:cover}
.bl-staff strong{display:block;font-size:17px}
.bl-staff span span{display:block;color:var(--b-ink-2);font-size:15px}
.bl-staff-pick{width:100%;text-align:left;cursor:pointer}
.bl-staff-pick:hover{border-color:var(--b-wine)}

/* Leistungen */
.bl-services{display:grid;gap:10px;margin:0;padding:0;border:0}
.bl-service{position:relative;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:4px 14px;padding:16px;border:1.5px solid var(--b-line);border-radius:var(--b-radius);background:var(--b-white);cursor:pointer;transition:border-color .15s,background .15s}
.bl-service:hover{border-color:var(--b-nude)}
.bl-service input{position:absolute;opacity:0;pointer-events:none}
.bl-check{grid-row:span 2;width:24px;height:24px;border:2px solid var(--b-line);border-radius:7px;background:var(--b-white);transition:all .15s}
.bl-service .name{font-weight:700}
.bl-service .price{font:400 19px/1.2 var(--b-display);color:var(--b-wine);white-space:nowrap;text-align:right}
.bl-service .meta{grid-column:2/-1;color:var(--b-ink-2);font-size:15px}
.bl-service:has(input:checked){border-color:var(--b-wine);background:#fff}
.bl-service input:checked ~ .bl-check{border-color:var(--b-wine);background:var(--b-wine) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/16px no-repeat}
.bl-service input:focus-visible ~ .bl-check{outline:3px solid var(--b-polish);outline-offset:2px}
.bl-service.is-disabled{opacity:.45;cursor:not-allowed}

/* Leiste unten mit Weiter-Button */
.bl-bar{position:sticky;bottom:calc(var(--bar,0px) + 10px + env(safe-area-inset-bottom));z-index:5;display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:20px;padding:12px 12px 12px 18px;border-radius:999px;background:var(--b-ink);color:#fff;box-shadow:0 12px 30px -12px rgba(42,32,35,.5)}
.bl-bar .sum{font-size:15px;line-height:1.3}
.bl-bar .sum strong{display:block;font-size:16px}
.bl-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:0 24px;border:2px solid var(--b-wine);border-radius:999px;background:var(--b-wine);color:#fff!important;font-weight:700;font-size:16px;text-decoration:none;cursor:pointer;transition:background .15s,opacity .15s}
.bl-btn:hover{background:var(--b-wine-2)}
.bl-btn:disabled{opacity:.45;cursor:not-allowed}
.bl-bar .bl-btn{border-color:#fff;background:#fff;color:var(--b-wine)!important}
.bl-btn-line{background:transparent;color:var(--b-wine)!important}
.bl-btn-line:hover{background:var(--b-wine);color:#fff!important}
.bl-btn.is-loading{position:relative;color:transparent!important}
.bl-btn.is-loading::after{content:"";position:absolute;width:20px;height:20px;border:2.5px solid currentColor;border-color:var(--b-wine) transparent var(--b-wine) transparent;border-radius:50%;animation:bl-spin .8s linear infinite}
@keyframes bl-spin{to{transform:rotate(360deg)}}

/* Kalender */
.bl-next{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:18px;padding:12px 16px;border-radius:var(--b-radius);background:var(--b-cream-2)}
.bl-next button{padding:0;border:0;background:none;color:var(--b-wine);font-weight:700;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}
.bl-cal{padding:16px;border:1px solid var(--b-line);border-radius:var(--b-radius);background:var(--b-white)}
.bl-cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.bl-cal-head strong{font:400 21px/1.2 var(--b-display)}
.bl-cal-nav{display:flex;gap:6px}
.bl-cal-nav button{width:42px;height:42px;border:1.5px solid var(--b-line);border-radius:50%;background:var(--b-white);font-size:18px;cursor:pointer}
.bl-cal-nav button:disabled{opacity:.35;cursor:not-allowed}
.bl-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;text-align:center}
.bl-grid .dow{padding:4px 0;color:var(--b-ink-2);font-size:12px;font-weight:700;text-transform:uppercase}
.bl-day{aspect-ratio:1/1;min-height:40px;border:0;border-radius:50%;background:none;color:var(--b-ink-2);font-size:16px;font-variant-numeric:tabular-nums}
.bl-day.is-free{background:var(--b-cream-2);color:var(--b-ink);font-weight:700;cursor:pointer}
.bl-day.is-free:hover{background:var(--b-nude)}
.bl-day.is-selected{background:var(--b-wine)!important;color:#fff}
.bl-day.is-today{box-shadow:inset 0 0 0 1.5px var(--b-nude)}
.bl-day:disabled{cursor:default;opacity:.4}
.bl-legend{margin:12px 0 0;color:var(--b-ink-2);font-size:14px}

.bl-times{margin-top:22px}
.bl-times h3{margin:0 0 4px;font:400 22px/1.2 var(--b-display)}
.bl-times .group{margin:14px 0 6px;color:var(--b-ink-2);font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}
.bl-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(84px,1fr));gap:8px}
.bl-chip{min-height:48px;border:1.5px solid var(--b-line);border-radius:999px;background:var(--b-white);font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;cursor:pointer}
.bl-chip:hover{border-color:var(--b-wine)}
.bl-chip[aria-pressed="true"]{border-color:var(--b-wine);background:var(--b-wine);color:#fff}

/* Zusammenfassung */
.bl-summary{margin-bottom:22px;padding:16px 18px;border-radius:var(--b-radius);background:var(--b-cream-2)}
.bl-summary dl{display:grid;grid-template-columns:auto 1fr;gap:4px 16px;margin:0}
.bl-summary dt{color:var(--b-ink-2);font-size:15px}
.bl-summary dd{margin:0;font-weight:700}

/* Formular */
.bl-form{display:grid;gap:16px}
.bl-field label{display:block;margin-bottom:6px;font-weight:700}
.bl-field .opt{color:var(--b-ink-2);font-weight:400}
.bl-field input,.bl-field textarea{width:100%;min-height:52px;padding:12px 14px;border:1.5px solid var(--b-line);border-radius:12px;background:var(--b-white);color:var(--b-ink);font:inherit;font-size:17px}
.bl-field textarea{min-height:96px;resize:vertical}
.bl-field input:focus,.bl-field textarea:focus{border-color:var(--b-wine);outline:none;box-shadow:0 0 0 3px rgba(67,25,42,.12)}
.bl-field.has-error input,.bl-field.has-error textarea{border-color:var(--b-polish)}
.bl-error{display:block;margin-top:6px;color:var(--b-polish);font-size:15px;font-weight:600}
.bl-consent{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;padding:14px;border:1.5px solid var(--b-line);border-radius:12px;background:var(--b-white);font-size:15px;cursor:pointer}
.bl-consent input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--b-wine)}
.bl-consent.has-error{border-color:var(--b-polish)}
.bl-consent a{color:var(--b-wine);font-weight:700}
.bl-hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.bl-note{margin:2px 0 0;color:var(--b-ink-2);font-size:15px}

/* Meldungen */
.bl-alert{margin:0 0 16px;padding:14px 16px;border-left:4px solid var(--b-polish);border-radius:10px;background:#fbeeee;color:var(--b-ink)}
.bl-alert.is-info{border-left-color:var(--b-wine);background:var(--b-cream-2)}
.bl-alert a{color:var(--b-wine);font-weight:700}
.bl-loading{padding:40px 0;color:var(--b-ink-2);text-align:center}
.bl-loading::before{content:"";display:block;width:28px;height:28px;margin:0 auto 12px;border:3px solid var(--b-nude);border-top-color:var(--b-wine);border-radius:50%;animation:bl-spin .8s linear infinite}

/* Danke */
.bl-done{padding:8px 0 20px;text-align:center}
.bl-done .seal{display:inline-grid;place-items:center;width:72px;height:72px;margin-bottom:14px;border-radius:50%;background:var(--b-nude);color:var(--b-wine);font-size:34px}
.bl-done h2{margin:0 0 10px;font:400 clamp(28px,7vw,40px)/1.12 var(--b-display)}
.bl-done p{max-width:34em;margin:0 auto 12px;color:var(--b-ink-2)}
.bl-done .bl-summary{margin:22px auto;max-width:460px;text-align:left}
.bl-done ol{max-width:460px;margin:0 auto 20px;padding-left:1.2em;text-align:left;color:var(--b-ink-2)}
.bl-done ol li{margin-bottom:6px}

/* Termin verwalten */
.bl-status{display:inline-block;margin-bottom:12px;padding:5px 14px;border-radius:999px;background:var(--b-cream-2);color:var(--b-wine);font-weight:700;font-size:15px}
.bl-status.is-confirmed{background:#e3f1e8;color:var(--b-ok)}
.bl-status.is-cancelled,.bl-status.is-declined{background:#fbeeee;color:var(--b-polish)}

@media (min-width:720px){
	.bl-booking{font-size:18px}
	.bl-services{grid-template-columns:1fr 1fr}
	.bl-form .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
	.bl-cal{padding:22px}
	.bl-layout-time{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:start}
	.bl-layout-time .bl-times{margin-top:0}
	.bl-bar{bottom:20px}
}
@media (prefers-reduced-motion:reduce){.bl-booking *{transition:none!important;animation-duration:.01ms!important}}
