/* Clean For Care Festival Booking — standalone stylesheet */
.festival-booking-banner{--navy-950:#071224;--navy-900:#0A1E33;--navy-800:#0F2A47;--blue-700:#14568E;--blue-500:#2885C6;--blue-100:#E7F2FB;--yellow-500:#FFC800;--yellow-400:#FFD84D;--yellow-100:#FFF6D8;--ink-900:#0D1521;--ink-700:#33404F;--ink-500:#5B6B7C;--line:#DCE5EE;}
.festival-booking-banner,.festival-booking-banner *{box-sizing:border-box;}
/* ==================== Festival Inline Booking Banner ==================== */
.festival-booking-banner{margin-top:82px;background:linear-gradient(135deg,var(--navy-950),var(--navy-800));color:#fff;padding:34px 0 30px;position:relative;overflow:hidden;box-shadow:0 18px 45px rgba(7,18,36,.18)}
.festival-booking-banner:before{content:"";position:absolute;width:480px;height:480px;border-radius:50%;right:-180px;top:-260px;background:radial-gradient(circle,rgba(255,200,0,.20),transparent 68%)}
.festival-banner-head{position:relative;display:grid;grid-template-columns:1fr auto;gap:28px;align-items:center}
.festival-banner-head h1{color:#fff;font-size:clamp(25px,3.2vw,42px);margin:10px 0 8px;max-width:780px}
.festival-banner-head p{color:rgba(255,255,255,.76);margin:0;max-width:760px;font-size:15px}
.festival-badge{width:142px;height:142px;border-radius:50%;border:1px solid rgba(255,255,255,.22);background:rgba(255,255,255,.07);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;box-shadow:0 18px 40px rgba(0,0,0,.18)}
.festival-badge strong{font-size:20px;color:var(--yellow-400);letter-spacing:.08em}.festival-badge span{font-weight:700;font-size:13px}.festival-badge small{color:rgba(255,255,255,.62);margin-top:5px}
.festival-progress{position:relative;display:flex;align-items:center;gap:12px;margin:25px 0 14px;color:rgba(255,255,255,.55);font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.06em}.festival-progress span.active{color:var(--yellow-400)}.festival-progress i{height:1px;flex:0 1 80px;background:rgba(255,255,255,.18)}
.festival-booking-form{position:relative;background:#fff;color:var(--ink-900);border-radius:20px;padding:22px;box-shadow:0 22px 55px rgba(0,0,0,.22)}
.festival-step{display:none}.festival-step.active{display:block;animation:festivalIn .3s ease}@keyframes festivalIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.festival-step-title{display:flex;align-items:center;gap:12px;margin-bottom:16px}.festival-step-title>span{width:38px;height:38px;border-radius:12px;background:var(--blue-100);color:var(--blue-700);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:12px}.festival-step-title strong{display:block;font-family:'Poppins';font-size:17px;color:var(--navy-900)}.festival-step-title small{display:block;color:var(--ink-500);margin-top:2px;font-size:12px}
.festival-service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.festival-service{border:1px solid var(--line);border-radius:13px;padding:13px;cursor:pointer;transition:.2s;background:#fff}.festival-service:hover{border-color:var(--blue-400);transform:translateY(-1px)}.festival-service.selected{border-color:var(--yellow-500);box-shadow:0 0 0 2px rgba(255,200,0,.18);background:var(--yellow-100)}.festival-service strong{display:block;font-size:13px;color:var(--navy-900)}.festival-service small{display:block;margin-top:5px;color:var(--ink-500);font-size:11px}
.festival-mini-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}.festival-mini-row label,.festival-date-time label,.festival-fields label{font-size:12px;font-weight:700;color:var(--ink-700)}.festival-mini-row input,.festival-date-time input,.festival-fields input,.festival-fields textarea{display:block;width:100%;margin-top:6px;border:1px solid var(--line);border-radius:10px;padding:10px 12px;font:inherit;font-size:13px;outline:none}.festival-mini-row label{max-width:220px}.festival-estimate{font-size:12px;color:var(--ink-500);text-align:right}.festival-estimate strong{display:block;color:var(--navy-900);font-size:22px;margin-top:2px}
.festival-next,.festival-submit{border:0;border-radius:999px;padding:12px 18px;background:var(--yellow-500);color:var(--navy-950);font-weight:800;cursor:pointer}.festival-next{display:flex;align-items:center;gap:10px;margin:18px 0 0 auto}.festival-date-time{display:grid;grid-template-columns:260px 1fr;gap:18px}.festival-date-time>div>span{display:block;font-size:12px;font-weight:700;color:var(--ink-700);margin-bottom:6px}.festival-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.festival-slots button{border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 6px;font-size:12px;font-weight:700;color:var(--ink-700);cursor:pointer}.festival-slots button.selected{border-color:var(--blue-500);background:var(--blue-100);color:var(--blue-700)}.festival-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px}.festival-back{border:1px solid var(--line);background:#fff;border-radius:999px;padding:11px 17px;font-weight:700;color:var(--ink-700);cursor:pointer}.festival-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.festival-fields .wide{grid-column:1/-1}.festival-message{min-height:20px;color:#b42318;font-size:12px;margin-top:8px}.festival-submit:disabled{opacity:.6;cursor:wait}.festival-success{background:#fff;border-radius:20px;padding:30px;text-align:center;color:var(--navy-900);box-shadow:0 22px 55px rgba(0,0,0,.22);margin-top:14px}.festival-success strong{font-size:20px}.festival-success span{display:block;color:var(--ink-500);margin-top:7px}
@media(max-width:900px){.festival-service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.festival-date-time{grid-template-columns:1fr}.festival-slots{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.festival-booking-banner{margin-top:66px;padding:24px 0}.festival-banner-head{grid-template-columns:1fr}.festival-badge{width:92px;height:92px;position:absolute;right:0;top:0}.festival-badge strong{font-size:14px}.festival-badge span{font-size:10px}.festival-badge small{font-size:8px}.festival-banner-head{padding-right:105px}.festival-banner-head h1{font-size:25px}.festival-banner-head p{font-size:13px}.festival-progress{gap:6px;font-size:9px}.festival-progress i{flex-basis:18px}.festival-booking-form{padding:15px;border-radius:15px}.festival-service-grid{grid-template-columns:1fr}.festival-mini-row{display:grid;grid-template-columns:1fr}.festival-estimate{text-align:left}.festival-fields{grid-template-columns:1fr}.festival-fields .wide{grid-column:auto}.festival-next,.festival-submit{width:100%;justify-content:center}.festival-nav{align-items:stretch;flex-direction:column-reverse}.festival-back{width:100%}}
