:root{--hb-red:#ed1c24;--hb-black:#090909;--hb-border:#dedede}
.hb-booking{max-width:1050px;margin:30px auto;background:#fff;border-radius:18px;box-shadow:0 12px 40px rgba(0,0,0,.1);overflow:hidden;font-family:inherit;color:#111}
.hb-progress{display:flex;align-items:center;justify-content:center;padding:18px 20px;border-bottom:1px solid var(--hb-border)}
.hb-progress-step{display:flex;align-items:center;gap:8px;color:#999;font-size:14px}.hb-progress-step span{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:#eee;font-weight:700}.hb-progress-step.active,.hb-progress-step.done{color:#111}.hb-progress-step.active span{background:var(--hb-red);color:#fff}.hb-progress-step.done span{background:var(--hb-black);color:#fff}.hb-progress i{width:65px;height:2px;background:#ddd;margin:0 10px}
.hb-panel{display:none;padding:34px}.hb-panel.active{display:block}.hb-success{display:none;text-align:center;padding:70px 30px}.hb-success.active{display:block}
.hb-success-icon{width:65px;height:65px;border-radius:50%;background:var(--hb-red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:36px;font-weight:800;margin:0 auto 18px}
.hb-booking h2{font-size:30px;margin:0 0 8px}.hb-subtitle{color:#666;margin:0 0 25px}
.hb-vehicle-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.hb-vehicle,.hb-service{font:inherit;background:#fff;border:2px solid var(--hb-border);cursor:pointer;border-radius:14px;text-align:center;transition:.2s}.hb-vehicle{padding:22px 12px}.hb-vehicle:hover,.hb-service:hover{border-color:#aaa;transform:translateY(-2px)}.hb-vehicle.selected,.hb-service.selected{border-color:var(--hb-red);background:#fff6f6}
.hb-icon{display:block;font-size:42px;margin-bottom:9px}.hb-vehicle strong,.hb-vehicle small{display:block}.hb-vehicle small{color:#777;margin-top:5px}
.hb-service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.hb-service{position:relative;text-align:left;padding:20px}.hb-service strong{display:block;font-size:20px;margin-bottom:8px}.hb-service p{font-size:13px;line-height:1.45;color:#666;min-height:65px;margin:0 0 12px}.hb-service span{font-weight:700}.hb-service span b{color:var(--hb-red);font-size:20px}.hb-service em{position:absolute;right:12px;top:12px;background:var(--hb-red);color:#fff;border-radius:20px;padding:4px 8px;font-style:normal;font-size:10px}
.hb-upgrades{margin-top:26px}.hb-upgrade-title{display:flex;align-items:baseline;gap:10px}.hb-upgrade-title h3{margin:0}.hb-upgrade-title span{color:#777;font-size:13px}#hb-addons{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}.hb-addon{display:flex;align-items:center;gap:9px;padding:12px;border:1px solid var(--hb-border);border-radius:10px;background:#fafafa}.hb-addon span{flex:1;font-size:14px}.hb-addon input{accent-color:var(--hb-red)}
.hb-summary{background:var(--hb-black);color:#fff;padding:19px;border-radius:14px;margin-top:25px}.hb-summary>div{display:flex;justify-content:space-between;gap:20px;padding:6px 0;color:#ddd}.hb-summary hr{border:0;border-top:1px solid #444;margin:10px 0}.hb-summary .hb-total{font-size:22px;color:#fff}.hb-summary .hb-total strong{color:#ff3340}
.hb-estimate-note{margin-top:14px;padding:13px 15px;border-left:4px solid var(--hb-red);background:#fff4f4;color:#555;font-size:13px;line-height:1.5}.hb-actions{display:flex;justify-content:space-between;gap:12px;margin-top:27px}.hb-actions button{border:0;border-radius:9px;padding:14px 22px;font-weight:800;cursor:pointer;font:inherit}.hb-next,.hb-submit{background:var(--hb-red);color:#fff}.hb-back{background:#eee;color:#111}
.hb-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.hb-form-grid label{font-size:13px;font-weight:700}.hb-form-grid input,.hb-form-grid select,.hb-form-grid textarea{width:100%;margin-top:7px;border:1px solid #ccc;border-radius:8px;padding:13px;font:inherit;box-sizing:border-box}.hb-form-grid textarea{min-height:100px;resize:vertical}.hb-full{grid-column:1/-1}.hb-message{margin-top:14px;color:var(--hb-red);font-weight:700}
@media(max-width:700px){.hb-vehicle-grid,.hb-service-grid,#hb-addons,.hb-form-grid{grid-template-columns:1fr 1fr}.hb-panel{padding:23px}}
@media(max-width:500px){.hb-vehicle-grid,.hb-service-grid,#hb-addons,.hb-form-grid{grid-template-columns:1fr}.hb-full{grid-column:auto}.hb-progress-step b{display:none}.hb-progress i{width:35px}.hb-booking h2{font-size:24px}}

/* v1.0.1: clearer price breakdown and theme-safe contrast */
.hb-summary { background:#090909 !important; color:#fff !important; }
.hb-summary > div { color:#fff !important; align-items:center; }
.hb-summary > div span { color:#fff !important; font-weight:600; opacity:1 !important; }
.hb-summary > div strong { color:#fff !important; font-weight:700; opacity:1 !important; }
.hb-summary .hb-total { color:#fff !important; border-top:0; margin-top:2px; padding-top:12px; }
.hb-summary .hb-total span { color:#fff !important; font-size:20px; font-weight:800; }
.hb-summary .hb-total strong { color:#ff3340 !important; font-size:28px; font-weight:900; }
.hb-summary hr { border-top:1px solid #555 !important; }
.hb-estimate-note { color:#333 !important; }
.hb-estimate-note b { color:#111 !important; }
.hb-service span { color:#222 !important; font-weight:700; }
.hb-service span b { color:#ed1c24 !important; font-size:21px; }
@media(max-width:500px){
  .hb-summary .hb-total span{font-size:18px}
  .hb-summary .hb-total strong{font-size:25px}
}

/* v1.0.3: upgraded realistic vehicle illustrations */
.hb-progress{min-height:72px;background:#fff;position:relative}
.hb-progress-step{position:relative;z-index:2;gap:9px;font-size:13px;font-weight:600}
.hb-progress-step span{width:30px;height:30px;flex:0 0 30px}
.hb-progress-step.active b,.hb-progress-step.done b{color:#111}
.hb-progress i{height:2px;background:#e1e1e1;position:relative;z-index:1}
.hb-progress-step.active span{box-shadow:0 0 0 4px rgba(237,28,36,.10)}
.hb-vehicle{min-height:132px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.hb-icon{height:52px;width:76px;display:flex;align-items:center;justify-content:center;margin-bottom:9px;color:#1f2937}
.hb-icon svg{width:74px;height:52px;fill:none;stroke:currentColor;stroke-width:3.2;stroke-linecap:round;stroke-linejoin:round}
.hb-vehicle:hover .hb-icon,.hb-vehicle.selected .hb-icon{color:var(--hb-red)}
.hb-vehicle.selected .hb-icon svg{stroke-width:3.5}
.hb-vehicle strong{font-size:15px}
.hb-vehicle small{font-size:12px}
@media(max-width:500px){.hb-progress{padding:15px 12px}.hb-progress i{width:28px;margin:0 6px}.hb-vehicle{min-height:120px}.hb-icon{height:46px;width:68px}.hb-icon svg{width:68px;height:46px}}

/* v1.0.3 vehicle illustration treatment */
.hb-icon{height:64px;width:132px;margin-bottom:10px;color:#111;filter:drop-shadow(0 3px 3px rgba(0,0,0,.10));}
.hb-icon svg{width:132px;height:64px;display:block;overflow:visible;}
.hb-vehicle:hover .hb-icon,.hb-vehicle.selected .hb-icon{color:#111;}
.hb-vehicle.selected .hb-icon svg{filter:drop-shadow(0 3px 5px rgba(237,28,36,.18));}
.hb-vehicle.selected .hb-icon svg path[stroke="#ed1c24"]{stroke:#ed1c24;}
@media(max-width:500px){.hb-icon{height:56px;width:116px}.hb-icon svg{width:116px;height:56px}}

/* v1.0.4: real vehicle photography in selection cards */
.hb-vehicle{overflow:hidden;padding:12px 12px 18px;min-height:170px;}
.hb-icon{height:96px;width:100%;margin:0 0 10px;display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:10px;background:#f5f5f5;}
.hb-icon img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 65%;border-radius:10px;transition:transform .25s ease,filter .25s ease;}
.hb-vehicle:hover .hb-icon img{transform:scale(1.035);}
.hb-vehicle.selected .hb-icon{box-shadow:inset 0 0 0 2px var(--hb-red);}
.hb-vehicle.selected .hb-icon img{filter:saturate(1.08) contrast(1.03);}
.hb-vehicle strong{font-size:15px;margin-top:2px;}
.hb-vehicle small{font-size:12px;margin-top:4px;}
@media(max-width:700px){.hb-icon{height:105px;}}
@media(max-width:500px){.hb-vehicle{min-height:155px;padding:10px 10px 16px}.hb-icon{height:92px;}}

/* v1.0.5: bundled white-background vehicle photos from approved Hillside booking mockup */
.hb-vehicle .hb-icon{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:100% !important;
  height:108px !important;
  margin:0 0 10px !important;
  overflow:hidden !important;
  border-radius:10px !important;
  background:#fff !important;
}
.hb-vehicle .hb-icon img{
  display:block !important;
  width:100% !important;
  height:100% !important;
  object-fit:contain !important;
  object-position:center !important;
  mix-blend-mode:multiply !important;
  transition:transform .2s ease !important;
}
.hb-vehicle:hover .hb-icon img,
.hb-vehicle.selected .hb-icon img{
  transform:scale(1.035);
}
