/* Scoped to this dialog; existing partner/cart modals keep their styles. */
#service-modal.nhou-booking {width:min(720px,calc(100% - 32px));max-width:720px;max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:18px;background:#fff;color:#2f2e2e;box-shadow:0 24px 80px #0003;overflow:auto;font:16px/1.5 Arial,Helvetica,sans-serif;overscroll-behavior:contain;}
#service-modal.nhou-booking::backdrop {background:rgba(20,20,20,.65);}
#service-modal.nhou-booking *,#service-modal.nhou-booking *::before,#service-modal.nhou-booking *::after {box-sizing:border-box;}
#service-modal .nhb-shell {padding:24px 32px 28px;}
#service-modal .nhb-top {display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;}
#service-modal .nhb-brand {font-size:18px;font-weight:800;letter-spacing:.02em;color:#d91a32;}
#service-modal .nhb-brand span {font-size:11px;font-weight:600;color:#747474;margin-left:6px;letter-spacing:.1em;}
#service-modal .nhb-close {display:grid;place-items:center;border:0;background:#f3f3f3;border-radius:50%;width:34px;height:34px;font-size:25px;color:#444;cursor:pointer;line-height:1;}
#service-modal .nhb-progress {display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 28px;padding:0;}
#service-modal .nhb-progress span {font-size:12px;color:#737373;padding-top:10px;border-top:3px solid #e7e7e7;white-space:nowrap;}
#service-modal .nhb-progress .is-current {border-color:#d91a32;color:#2f2e2e;font-weight:700;}
#service-modal .nhb-progress .is-done {border-color:#d91a32;}
#service-modal .nhb-progress[hidden] {display:none;}
#service-modal h2 {font-size:clamp(23px,4vw,29px);line-height:1.2;margin:0 38px 12px 0;font-weight:750;letter-spacing:-.025em;}
#service-modal .nhb-description {color:#666;margin:0 0 24px;max-width:550px;font-size:15px;}
#service-modal p {margin:0 0 12px;}
#service-modal .nhb-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
#service-modal .nhb-stack {display:grid;gap:12px;}
#service-modal .nhb-option {text-align:left;width:100%;border:1px solid #ddd;border-radius:10px;padding:18px;background:#fff;color:inherit;cursor:pointer;position:relative;transition:border-color .15s,background .15s;}
#service-modal .nhb-option:hover {border-color:#a4a4a4;background:#fafafa;}
#service-modal .nhb-option[aria-pressed="true"] {border-color:#d91a32;background:#fff7f8;box-shadow:inset 0 0 0 1px #d91a32;}
#service-modal .nhb-option strong {display:block;font-size:16px;font-weight:700;padding-right:18px;}
#service-modal .nhb-option small {display:block;margin-top:5px;font-size:13px;color:#666;}
#service-modal .nhb-option .nhb-radio {position:absolute;right:17px;top:21px;width:14px;height:14px;border:1px solid #bbb;border-radius:50%;}
#service-modal .nhb-option[aria-pressed="true"] .nhb-radio {border:4px solid #d91a32;}
#service-modal .nhb-car {display:block;height:72px;max-width:160px;width:100%;object-fit:contain;object-position:left center;margin:0 0 12px;}
#service-modal .nhb-car-placeholder {height:58px;display:flex;align-items:center;margin-bottom:12px;}
#service-modal .nhb-car-placeholder svg {width:115px;height:48px;stroke:#686868;fill:none;stroke-width:1.4;}
#service-modal .nhb-detail {margin-top:10px;padding:15px 17px;background:#f7f7f7;border-radius:8px;font-size:14px;color:#595959;line-height:1.6;}
#service-modal .nhb-note {font-size:12px;color:#727272;margin:14px 0 0;}
#service-modal .nhb-draft {border-radius:7px;background:#fff5e5;color:#77511e;font-size:12px;padding:10px 12px;margin-bottom:16px;}
#service-modal .nhb-actions {display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:28px;padding-top:20px;border-top:1px solid #eee;}
#service-modal .nhb-button {border:1px solid #d91a32;background:#d91a32;color:#fff;min-height:46px;padding:12px 21px;border-radius:8px;font-size:14px;font-weight:700;line-height:1.4;cursor:pointer;}
#service-modal .nhb-button:hover {background:#b9162a;border-color:#b9162a;}
#service-modal .nhb-button:disabled {opacity:.45;cursor:not-allowed;}
#service-modal .nhb-button--secondary {background:#fff;color:#333;border-color:#ddd;}
#service-modal .nhb-button--secondary:hover {background:#f5f5f5;border-color:#bbb;}
#service-modal .nhb-back {border:0;background:transparent;padding:10px 0;color:#666;font-size:14px;cursor:pointer;}
#service-modal .nhb-back::before {content:'‹';font-size:20px;margin-right:7px;vertical-align:-1px;}
#service-modal .nhb-intro-actions {display:grid;gap:10px;margin-top:26px;}
#service-modal .nhb-intro-actions .nhb-button {width:100%;}
#service-modal .nhb-field {display:grid;gap:7px;font-size:14px;font-weight:600;}
#service-modal .nhb-field + .nhb-field {margin-top:16px;}
#service-modal input:not([type=checkbox]),#service-modal textarea {width:100%;padding:12px 13px;border:1px solid #d8d8d8;border-radius:8px;background:#fff;color:#333;font:16px/1.4 Arial,Helvetica,sans-serif;}
#service-modal textarea {min-height:90px;resize:vertical;}
#service-modal .nhb-field small {font-size:12px;font-weight:400;color:#777;}
#service-modal .nhb-check {display:flex;align-items:flex-start;gap:10px;border:1px solid #e1e1e1;padding:14px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;}
#service-modal input[type=checkbox] {width:18px;height:18px;flex-shrink:0;accent-color:#d91a32;margin:2px 0 0;}
#service-modal .nhb-check.is-included {background:#f7f7f7;color:#555;cursor:default;}
#service-modal .nhb-check small {color:#666;display:block;font-size:12px;margin-top:3px;}
#service-modal .nhb-fields {display:grid;grid-template-columns:1fr 1fr;gap:16px;}
#service-modal .nhb-fields .nhb-field {margin:0;}
#service-modal .nhb-form {display:grid;gap:16px;}
#service-modal .nhb-form > .nhb-field {margin:0;}
#service-modal .nhb-policy {display:flex;align-items:flex-start;gap:10px;font-size:12px;color:#666;}
#service-modal .nhb-policy a {color:#444;text-decoration:underline;}
#service-modal .nhb-result-price {font-size:48px;font-weight:750;line-height:1.1;letter-spacing:-.04em;margin:10px 0 22px;}
#service-modal .nhb-result-price small {font-size:20px;letter-spacing:0;}
#service-modal .nhb-summary {background:#f7f7f7;border-radius:10px;padding:18px;margin-bottom:18px;}
#service-modal .nhb-summary strong {display:block;font-size:15px;margin-bottom:4px;}
#service-modal .nhb-summary p {font-size:13px;color:#666;margin:0;}
#service-modal .nhb-summary ul {list-style:none;padding:0;margin:12px 0 0;display:grid;gap:5px;font-size:13px;color:#595959;}
#service-modal .nhb-breakdown {display:grid;gap:8px;margin:16px 0;}
#service-modal .nhb-breakdown div {display:flex;gap:12px;justify-content:space-between;font-size:13px;color:#666;}
#service-modal .nhb-breakdown span:last-child {white-space:nowrap;color:#333;}
#service-modal .nhb-slots {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px;}
#service-modal .nhb-slot {border:1px solid #ddd;border-radius:7px;padding:10px 5px;font-size:14px;background:#fff;color:#333;cursor:pointer;}
#service-modal .nhb-slot[aria-pressed=true] {background:#d91a32;border-color:#d91a32;color:#fff;}
#service-modal .nhb-time-info {font-size:12px;color:#777;margin-top:8px;}
#service-modal .nhb-message {padding:14px;background:#f5f5f5;color:#666;border-radius:8px;font-size:14px;margin:14px 0;}
#service-modal .nhb-message--error {color:#a32336;background:#fff1f3;}
#service-modal .nhb-message button {margin-top:10px;}
#service-modal .nhb-success-icon {display:grid;place-items:center;width:58px;height:58px;margin:10px 0 22px;border-radius:50%;background:#f1f8f3;color:#347d47;font-size:28px;}
#service-modal .nhb-success-id {font-size:12px;color:#777;word-break:break-all;}
#service-modal button:focus-visible,#service-modal input:focus-visible,#service-modal textarea:focus-visible,#service-modal a:focus-visible {outline:2px solid #d91a32;outline-offset:3px;}
body.nhou-booking-open {overflow:hidden;}
@media(max-width:540px){
  #service-modal.nhou-booking {width:calc(100% - 16px);max-height:calc(100dvh - 16px);border-radius:13px;}
  #service-modal .nhb-shell {padding:20px;}
  #service-modal .nhb-top {margin-bottom:20px;}
  #service-modal .nhb-progress {gap:6px;margin-bottom:22px;}
  #service-modal .nhb-progress span {font-size:10px;}
  #service-modal .nhb-option {padding:15px;}
  #service-modal .nhb-option strong {font-size:14px;}
  #service-modal .nhb-option .nhb-radio {right:12px;top:19px;}
  #service-modal .nhb-fields {grid-template-columns:1fr;}
  #service-modal .nhb-actions .nhb-button {max-width:75%;}
  #service-modal .nhb-result-price {font-size:42px;}
  #service-modal .nhb-slots {grid-template-columns:repeat(3,minmax(0,1fr));}
}
@media(prefers-reduced-motion:reduce){#service-modal * {transition:none!important;}}

#service-modal [hidden] {display:none!important;}

#service-modal #nhou-booking-title:focus {
  outline: none;
}