/* ==========================================================================
   drt-booking-core.css — 예약 UI 공용 토큰 + 버튼 체계 + 화면 안 알림 + 막힘 안내 + 빈 결과 (v1.3, 2026-10-05)
   drt-rentalcar / dt-rv / dt-tour 세 플러그인에 **같은 파일**로 들어간다.
   공용 로더(includes/class-drt-frontend-assets.php)가 'drt-booking-core' 핸들로
   Bootstrap 다음, 각 플러그인 CSS 보다 먼저 로드한다. 한 곳을 고치면 세 곳에 복사한다.
   값의 출처: drt-design-guide/tokens.css, 02-foundations.md, 03-components.md 1절.
   ========================================================================== */

:root {
  /* ---------- 색: 브랜드 녹색 (hue 155°). 채움 위 글자는 흰색(기존 방식, 2026-10-01 확정), 표 머리글만 green-50 + 잉크 ---------- */
  --drt-green-50:  #F0FAF5;
  --drt-green-100: #C5EDD9;
  --drt-green-300: #7FDBB0;
  --drt-green-500: #36B77C;
  --drt-green-600: #2A9D6A;
  --drt-green-700: #2E9970;
  --drt-green-800: #1F7A55;
  --drt-green-900: #146C43;

  /* 중립 회색 */
  --drt-gray-0:   #FFFFFF;
  --drt-gray-50:  #F8F9F8;
  --drt-gray-100: #F2F3F2;
  --drt-gray-200: #E6E8E7;
  --drt-gray-300: #DFE4E2;
  --drt-gray-400: #C9D3CE;
  --drt-gray-500: #8A928F;
  --drt-gray-600: #6B7471;
  --drt-gray-700: #575757;
  --drt-gray-800: #313436;
  --drt-gray-900: #020F16;

  /* 의미색 */
  --drt-warning-50:  #FFF9E6;
  --drt-warning-300: #F0D86E;
  --drt-warning-500: #F0AD4E;
  --drt-warning-700: #9A5B00;
  --drt-danger-50:   #FFF8F8;
  --drt-danger-200:  #FFDDDD;
  --drt-danger-600:  #D92D20;
  --drt-danger-700:  #B42318;
  --drt-danger-800:  #912018;
  --drt-info-50:     #E7F3FF;
  --drt-info-600:    #1155CC;

  /* 역할 토큰 */
  --drt-color-bg-page:          var(--drt-gray-100);
  --drt-color-bg-surface:       var(--drt-gray-0);
  --drt-color-bg-subtle:        var(--drt-gray-50);
  --drt-color-bg-brand-subtle:  var(--drt-green-50);
  --drt-color-text:             var(--drt-gray-900);
  --drt-color-text-body:        var(--drt-gray-700);
  --drt-color-text-secondary:   var(--drt-gray-600);
  --drt-color-text-muted:       var(--drt-gray-500);
  --drt-color-text-brand:       var(--drt-green-800);
  --drt-color-link:             var(--drt-info-600);   /* 텍스트 링크는 파랑(2026-10-05 사용자 결정) */
  --drt-color-link-hover:       var(--drt-info-600);
  --drt-color-border:           var(--drt-gray-300);
  --drt-color-border-strong:    var(--drt-gray-400);
  --drt-color-divider:          var(--drt-gray-200);
  --drt-color-primary:          var(--drt-green-500);
  --drt-color-primary-hover:    var(--drt-green-600);
  --drt-color-primary-active:   var(--drt-green-900);
  --drt-color-on-primary:       var(--drt-gray-0);   /* 흰 글자. 대비 2.38 은 내부 리서치 근거의 의도된 예외 */
  --drt-color-secondary-border: var(--drt-green-700);
  --drt-color-secondary-text:   var(--drt-green-800);
  --drt-color-danger:           var(--drt-danger-600);
  --drt-color-on-danger:        var(--drt-gray-0);
  --drt-color-focus-ring:       rgba(69, 188, 138, .35);
  --drt-color-overlay:          rgba(2, 15, 22, .5);
  --drt-color-selected-bg:      rgba(69, 188, 138, .16);

  /* 글꼴 */
  --drt-font-sans: 'Pretendard', -apple-system, BlinkMacSystemFont, 'Apple SD Gothic Neo', 'Malgun Gothic', sans-serif;
  --drt-text-xs: 12px; --drt-text-sm: 13px; --drt-text-md: 14px; --drt-text-base: 15px; --drt-text-lg: 16px;
  --drt-text-xl: 17px; --drt-text-2xl: 18px; --drt-text-3xl: 20px; --drt-text-4xl: 22px; --drt-text-5xl: 24px;
  --drt-text-6xl: 28px; --drt-text-7xl: 32px; --drt-text-8xl: 40px;
  --drt-leading-tight: 1.2; --drt-leading-heading: 1.4; --drt-leading-ui: 1.5; --drt-leading-body: 1.6; --drt-leading-editorial: 1.8;

  /* 간격·크기 */
  --drt-space-1: 4px; --drt-space-2: 8px; --drt-space-3: 12px; --drt-space-4: 16px; --drt-space-5: 20px;
  --drt-space-6: 24px; --drt-space-8: 32px; --drt-space-10: 40px; --drt-space-12: 48px; --drt-space-16: 64px;
  --drt-container: 1200px; --drt-container-narrow: 800px; --drt-container-form: 650px; --drt-gutter: 20px;
  --drt-control-sm: 32px; --drt-control-md: 40px; --drt-control-lg: 48px;

  /* 모서리·테두리·그림자 */
  --drt-radius-sm: 4px; --drt-radius-md: 8px; --drt-radius-lg: 12px; --drt-radius-xl: 20px; --drt-radius-full: 999px;
  --drt-border: 1px solid var(--drt-color-border);
  --drt-border-strong: 1px solid var(--drt-color-border-strong);
  --drt-shadow-sm: 0 1px 2px rgba(2,15,22,.04), 0 4px 12px rgba(2,15,22,.04);
  --drt-shadow-md: 0 4px 12px rgba(2,15,22,.08);
  --drt-shadow-lg: 0 10px 30px rgba(2,15,22,.10);
  --drt-shadow-sticky: 0 -2px 12px rgba(2,15,22,.10);
  --drt-shadow-focus: 0 0 0 3px var(--drt-color-focus-ring);

  /* 모션·레이어 */
  --drt-duration-fast: 150ms; --drt-duration-base: 250ms; --drt-duration-slow: 350ms;
  --drt-ease: cubic-bezier(.4, 0, .2, 1);
  --drt-z-raised: 10; --drt-z-sticky: 100; --drt-z-bottom-bar: 500; --drt-z-dropdown: 1000;
  --drt-z-modal: 1055; --drt-z-overlay: 1080; --drt-z-toast: 1090;
}
@media (max-width: 767px) { :root { --drt-gutter: 16px; } }
@media (prefers-reduced-motion: reduce) {
  :root { --drt-duration-fast: 0ms; --drt-duration-base: 0ms; --drt-duration-slow: 0ms; }
}

/* ==========================================================================
   버튼 (03-components.md 1절)
   - .btn 기본 + 크기(sm/md/lg) + 역할(primary / outline-primary / secondary / outline-secondary / danger / warning)
   - Elementor 전역 kit 의 `.elementor-kit-XXXX button { background-color }` (0,1,1) 보다 높은 특이도
     (.drt-booking-ui .btn = 0,2,0) 로 background/color/border 를 직접 선언한다. !important 없음.
   - 기존 템플릿 호환: .btn-success 는 .btn-primary 와 같은 역할. 플러그인 CSS 에서 버튼 색·높이를 다시 정의하지 않는다.
   ========================================================================== */
.drt-booking-ui button { font-family: inherit; }

.drt-booking-ui .btn {
  --bs-btn-font-family: inherit;
  --bs-btn-font-size: var(--drt-text-base);
  --bs-btn-font-weight: 600;
  --bs-btn-line-height: 1;
  --bs-btn-border-radius: var(--drt-radius-md);
  --bs-btn-padding-x: var(--drt-space-4);
  --bs-btn-padding-y: 0;
  --bs-btn-disabled-opacity: .45;
  --bs-btn-focus-box-shadow: var(--drt-shadow-focus);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--drt-space-1);
  height: var(--drt-control-md);
  font-family: inherit;
  font-size: var(--bs-btn-font-size);
  font-weight: var(--bs-btn-font-weight);
  line-height: 1;
  white-space: nowrap;
  color: var(--bs-btn-color);
  background-color: var(--bs-btn-bg);
  border-color: var(--bs-btn-border-color);
  transition: background-color var(--drt-duration-fast) var(--drt-ease),
              border-color var(--drt-duration-fast) var(--drt-ease),
              color var(--drt-duration-fast) var(--drt-ease);
}
.drt-booking-ui .btn:hover {
  color: var(--bs-btn-hover-color);
  background-color: var(--bs-btn-hover-bg);
  border-color: var(--bs-btn-hover-border-color);
}
.drt-booking-ui .btn:focus-visible {
  color: var(--bs-btn-hover-color);
  background-color: var(--bs-btn-hover-bg);
  border-color: var(--bs-btn-hover-border-color);
  box-shadow: var(--drt-shadow-focus);
  outline: 0;
}
.drt-booking-ui .btn:active,
.drt-booking-ui .btn.active,
.drt-booking-ui .btn.show {
  color: var(--bs-btn-active-color);
  background-color: var(--bs-btn-active-bg);
  border-color: var(--bs-btn-active-border-color);
  box-shadow: none;
}
.drt-booking-ui .btn:disabled,
.drt-booking-ui .btn.disabled {
  color: var(--bs-btn-color);
  background-color: var(--bs-btn-bg);
  border-color: var(--bs-btn-border-color);
  opacity: var(--bs-btn-disabled-opacity);
  pointer-events: none;
}
/* 처리 중: 글자 대신 스피너, 폭과 색 유지. drt-booking-core.js 의 window.drtBtnBusy(btn, true) 가 붙인다.
   disabled 와 함께 붙어도 흐려지지 않는다(처리 중은 비활성과 다른 상태). */
.drt-booking-ui .btn.is-loading,
.drt-booking-ui .btn.is-loading:disabled {
  color: transparent;
  opacity: 1;
  pointer-events: none;
  position: relative;
}
.drt-booking-ui .btn.is-loading::after {
  content: "";
  position: absolute;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  border: 2px solid rgba(2, 15, 22, .25);
  border-top-color: var(--drt-gray-900);
  animation: drt-spin .8s linear infinite;
}
.drt-booking-ui .btn-primary.is-loading::after,
.drt-booking-ui .btn-success.is-loading::after,
.drt-booking-ui .btn-danger.is-loading::after {
  border-color: rgba(255, 255, 255, .35);
  border-top-color: var(--drt-gray-0);
}
@keyframes drt-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
  .drt-booking-ui .btn.is-loading::after { animation-duration: 1.6s; }
}

/* 크기 */
.drt-booking-ui .btn-sm {
  height: var(--drt-control-sm);
  --bs-btn-font-size: var(--drt-text-sm);
  --bs-btn-padding-x: var(--drt-space-3);
  --bs-btn-border-radius: var(--drt-radius-md);
}
.drt-booking-ui .btn-lg {
  height: var(--drt-control-lg);
  --bs-btn-font-size: var(--drt-text-lg);
  --bs-btn-padding-x: var(--drt-space-6);
  --bs-btn-border-radius: var(--drt-radius-md);
}
@media (max-width: 767px) {
  .drt-booking-ui .btn-lg { --bs-btn-font-size: var(--drt-text-base); }
}

/* Primary: 화면의 주 행동. 녹색 채움 + 흰 글자 (기존 방식 유지, 2026-10-01 확정) */
.drt-booking-ui .btn-primary,
.drt-booking-ui .btn-success {
  --bs-btn-color: var(--drt-color-on-primary);
  --bs-btn-bg: var(--drt-color-primary);
  --bs-btn-border-color: var(--drt-color-primary);
  --bs-btn-hover-color: var(--drt-color-on-primary);
  --bs-btn-hover-bg: var(--drt-color-primary-hover);
  --bs-btn-hover-border-color: var(--drt-color-primary-hover);
  --bs-btn-active-color: var(--drt-gray-0);
  --bs-btn-active-bg: var(--drt-color-primary-active);
  --bs-btn-active-border-color: var(--drt-color-primary-active);
}

/* Secondary(테두리형): 로그인, 목록으로, 지도 보기, 확인됨 */
.drt-booking-ui .btn-outline-primary {
  --bs-btn-color: var(--drt-color-secondary-text);
  --bs-btn-bg: var(--drt-gray-0);
  --bs-btn-border-color: var(--drt-color-secondary-border);
  --bs-btn-hover-color: var(--drt-green-900);
  --bs-btn-hover-bg: var(--drt-green-50);
  --bs-btn-hover-border-color: var(--drt-green-800);
  --bs-btn-active-color: var(--drt-green-900);
  --bs-btn-active-bg: var(--drt-green-100);
  --bs-btn-active-border-color: var(--drt-green-900);
}

/* Neutral: 닫기, 취소, 이전, 예약불가(disabled 와 함께) */
.drt-booking-ui .btn-secondary {
  --bs-btn-color: var(--drt-gray-900);
  --bs-btn-bg: var(--drt-gray-100);
  --bs-btn-border-color: var(--drt-gray-100);
  --bs-btn-hover-color: var(--drt-gray-900);
  --bs-btn-hover-bg: var(--drt-gray-200);
  --bs-btn-hover-border-color: var(--drt-gray-200);
  --bs-btn-active-color: var(--drt-gray-900);
  --bs-btn-active-bg: var(--drt-gray-300);
  --bs-btn-active-border-color: var(--drt-gray-300);
}

/* 입력 안 아이콘 버튼: 지우기 ×, 펼침 v */
.drt-booking-ui .btn-outline-secondary {
  --bs-btn-color: var(--drt-gray-600);
  --bs-btn-bg: transparent;
  --bs-btn-border-color: transparent;
  --bs-btn-hover-color: var(--drt-gray-900);
  --bs-btn-hover-bg: var(--drt-gray-100);
  --bs-btn-hover-border-color: transparent;
  --bs-btn-active-color: var(--drt-gray-900);
  --bs-btn-active-bg: var(--drt-gray-200);
  --bs-btn-active-border-color: transparent;
  --bs-btn-padding-x: var(--drt-space-2);
  min-width: 40px;
}

/* Danger: 취소 요청처럼 되돌리기 어려운 행동. 확인 단계와 함께 쓴다 */
.drt-booking-ui .btn-danger {
  --bs-btn-color: var(--drt-color-on-danger);
  --bs-btn-bg: var(--drt-color-danger);
  --bs-btn-border-color: var(--drt-color-danger);
  --bs-btn-hover-color: var(--drt-color-on-danger);
  --bs-btn-hover-bg: var(--drt-danger-700);
  --bs-btn-hover-border-color: var(--drt-danger-700);
  --bs-btn-active-color: var(--drt-color-on-danger);
  --bs-btn-active-bg: var(--drt-danger-800);
  --bs-btn-active-border-color: var(--drt-danger-800);
}

/* Warning: "요청 필요"(On Request) 전용 연한 호박색 테두리형. 결제·주 행동에는 쓰지 않는다 */
.drt-booking-ui .btn-warning {
  --bs-btn-color: var(--drt-warning-700);
  --bs-btn-bg: var(--drt-warning-50);
  --bs-btn-border-color: var(--drt-warning-300);
  --bs-btn-hover-color: var(--drt-warning-700);
  --bs-btn-hover-bg: #FFF3CC;
  --bs-btn-hover-border-color: var(--drt-warning-500);
  --bs-btn-active-color: var(--drt-warning-700);
  --bs-btn-active-bg: #FFEDB3;
  --bs-btn-active-border-color: var(--drt-warning-500);
}

/* 검색 박스의 버튼은 입력(48px)과 같은 높이 */
.drt-booking-ui .search_input > .btn { height: var(--drt-control-lg); }

/* ===== 확인 모달 (.drt-review) =====
   입력한 값을 다시 보여주고 진행하는 모달. 지금은 예약자 정보 확인(렌터카·캠핑카).
   마크업: .modal-content.drt-review > .modal-header.md_header(h2.modal-title) / .modal-body(.drt-review__lead, dl.drt-review__list, .drt-notice) / .modal-footer
   헤더 녹색은 각 플러그인의 .md_header(#36b77c = 브랜드 녹색 green-500)를 그대로 쓴다. */
.drt-booking-ui .drt-review {
  border: 0;
  border-radius: var(--drt-radius-lg);
  box-shadow: var(--drt-shadow-lg);
  overflow: hidden;
}
.drt-booking-ui .drt-review .modal-header { padding: var(--drt-space-3) var(--drt-space-3) var(--drt-space-3) var(--drt-space-6); border-bottom: 0; }
.drt-booking-ui .drt-review .modal-title { margin: 0; color: inherit; font-size: var(--drt-text-2xl); font-weight: 600; line-height: var(--drt-leading-heading); }
.drt-booking-ui .drt-review .btn-close {
  box-sizing: border-box;
  width: 40px;
  height: 40px;
  padding: 0;
  margin: 0 0 0 auto;
  border-radius: var(--drt-radius-md);
  background-size: 14px auto;
  opacity: .9;
}
.drt-booking-ui .drt-review .modal-body { padding: var(--drt-space-6); display: flex; flex-direction: column; gap: var(--drt-space-4); }
.drt-booking-ui .drt-review__lead { margin: 0; font-size: var(--drt-text-base); color: var(--drt-gray-700); }
.drt-booking-ui .drt-review__list { margin: 0; border: 1px solid var(--drt-gray-300); border-radius: var(--drt-radius-md); overflow: hidden; }
.drt-booking-ui .drt-review__row {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: var(--drt-space-3);
  align-items: baseline;
  padding: var(--drt-space-3) var(--drt-space-4);
}
.drt-booking-ui .drt-review__row + .drt-review__row { border-top: 1px solid var(--drt-gray-200); }
.drt-booking-ui .drt-review__row dt { font-size: var(--drt-text-md); font-weight: 500; color: var(--drt-gray-600); }
.drt-booking-ui .drt-review__row dd { margin: 0; font-size: var(--drt-text-lg); font-weight: 600; color: var(--drt-gray-900); word-break: break-all; }
.drt-booking-ui .drt-review__row.is-key { background: var(--drt-green-50); }
.drt-booking-ui .drt-review__row.is-key dd { font-size: var(--drt-text-2xl); font-weight: 700; }
.drt-booking-ui .drt-review .modal-footer { padding: 0 var(--drt-space-6) var(--drt-space-6); border-top: 0; gap: var(--drt-space-2); }
.drt-booking-ui .drt-review .modal-footer > * { margin: 0; }
.drt-booking-ui .drt-review .modal-footer .btn { min-width: 96px; }

/* 안내 상자 (.drt-notice). --danger: 결제 직전 주의 안내. 핑크 바탕 + 연한 테두리 + 빨강 글자(2026-10-01 사용자 결정), 링크는 파랑 */
.drt-booking-ui .drt-notice {
  display: flex;
  gap: var(--drt-space-2);
  align-items: flex-start;
  margin: 0;
  padding: 14px var(--drt-space-4);
  border-radius: var(--drt-radius-md);
  font-size: var(--drt-text-base);
  font-weight: 500;
  line-height: var(--drt-leading-body);
}
.drt-booking-ui .drt-notice > .bi { flex: none; font-size: 18px; line-height: 1.4; }
.drt-booking-ui .drt-notice a { color: var(--drt-info-600); font-weight: 700; text-decoration: underline; text-underline-offset: 2px; white-space: nowrap; }
.drt-booking-ui .drt-notice a .bi { font-size: .8em; margin-left: 2px; }
.drt-booking-ui .drt-notice--danger { background: var(--drt-danger-50); border: 1px solid var(--drt-danger-200); color: var(--drt-danger-600); }

@media (max-width: 600px) {
  .drt-booking-ui .drt-review .modal-header { padding-left: var(--drt-space-5); }
  .drt-booking-ui .drt-review .modal-body { padding: var(--drt-space-5); }
  .drt-booking-ui .drt-review__row { grid-template-columns: minmax(0, 1fr); gap: 2px; padding: 10px 14px; }
  .drt-booking-ui .drt-review .modal-footer { padding: 0 var(--drt-space-5) var(--drt-space-5); flex-direction: column-reverse; align-items: stretch; }
  .drt-booking-ui .drt-review .modal-footer .btn { width: 100%; height: var(--drt-control-lg); }
}

/* ===== 화면 안 알림 (drtNotify, 09 보드 3번 · 2026-10-05) =====
   브라우저 alert() 대신 그 자리에 남는 상자. 바탕색 + 아이콘으로 구분하고 테두리·왼쪽 선은 쓰지 않는다(03-9절).
   상자는 JS 가 넣으므로 .drt-booking-ui 밖(내 계정 등)에서도 보이도록 범위 없이 둔다. */
.drt-alert {
  display: flex;
  gap: var(--drt-space-2);
  align-items: flex-start;
  margin: 0;
  padding: var(--drt-space-3) 14px;
  border-radius: var(--drt-radius-md);
  font-family: var(--drt-font-sans);
  font-size: var(--drt-text-base);
  font-weight: 500;
  line-height: var(--drt-leading-body);
  text-align: left;
  white-space: pre-line;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.drt-alert--above { margin-bottom: var(--drt-space-3); }
.drt-alert--below { margin-top: var(--drt-space-3); }
.drt-alert__icon { flex: none; display: block; width: 18px; height: 18px; margin-top: 3px; }
.drt-alert__icon svg, .drt-field-error svg { display: block; width: 100%; height: 100%; }
.drt-alert__msg { min-width: 0; }
[data-drt-hidden] { display: none !important; }
.drt-alert--danger { background: var(--drt-danger-50); color: var(--drt-danger-600); }
.drt-alert--info { background: var(--drt-green-50); color: var(--drt-green-800); }
.drt-alert--warning { background: var(--drt-warning-50); color: var(--drt-warning-700); }

/* 칸 오류: 틀린 칸 빨간 테두리 + 칸 아래 빨간 글. 각 화면의 입력 테두리 규칙(!important 포함)보다 앞서야 해서 !important */
.drt-invalid { border-color: var(--drt-danger-600) !important; box-shadow: 0 0 0 3px rgba(217, 45, 32, .14) !important; }
.drt-field-error {
  display: flex;
  gap: 6px;
  align-items: flex-start;
  margin-top: 6px;
  color: var(--drt-danger-600);
  font-family: var(--drt-font-sans);
  font-size: var(--drt-text-md);
  font-weight: 500;
  line-height: var(--drt-leading-ui);
  text-align: left;
  white-space: pre-line;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.drt-field-error svg { flex: none; width: 14px; height: 14px; margin-top: 3px; }

/* ===== 입력 포커스·휴대폰 글자 크기 (07 B5, 2026-10-05) ===== */
.drt-booking-ui :is(.form-control, .form-select, input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea):focus {
  outline: none;
  border-color: var(--drt-color-primary);
  box-shadow: var(--drt-shadow-focus);
}
.drt-booking-ui :is(input[type="checkbox"], input[type="radio"]):focus-visible { outline: none; box-shadow: var(--drt-shadow-focus); }
/* 아이폰은 16px 보다 작은 입력 칸을 누르면 화면을 확대한다. 각 화면의 14px(!important 포함)보다 앞서야 해서 !important */
@media (max-width: 767.98px) {
  .drt-booking-ui :is(input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="button"]):not([type="submit"]), select, textarea, .form-control, .form-select) { font-size: 16px !important; }
}
/* ===== 아코디언 제목 줄 (09 보드 6-5, 2026-10-05) =====
   Elementor 사이트 설정의 전역 버튼 색(연두)이 Bootstrap 아코디언 버튼(<button>)에도 들어와, 하나를 펼치면 자동으로 접힌
   나머지 줄과 마우스를 올린 줄이 연두색이 됐다. 모양은 그대로 둔다: 접힘 = Bootstrap 기본(흰 바탕), 펼침 = #eee(각 화면 CSS),
   .accordion_2 는 늘 #eee. Elementor 의 button / button:hover 규칙보다 앞서도록 범위 클래스를 붙인다. */
.drt-booking-ui .accordion-button { background-color: var(--bs-accordion-btn-bg); }
.drt-booking-ui .accordion-button.collapsed:hover,
.drt-booking-ui .accordion-button.collapsed:focus { background-color: var(--bs-accordion-btn-bg); }
.drt-booking-ui .accordion-button:not(.collapsed):hover,
.drt-booking-ui .accordion-button:not(.collapsed):focus,
.drt-booking-ui .accordion_2 .accordion-button:hover,
.drt-booking-ui .accordion_2 .accordion-button:focus,
.drt-booking-ui .accordion_2 .accordion-button.collapsed:hover,
.drt-booking-ui .accordion_2 .accordion-button.collapsed:focus { background-color: #eee; }
.drt-booking-ui .accordion-button:focus-visible { box-shadow: var(--drt-shadow-focus); }
/* ===== 막힘 안내 화면 (PHP drt_booking_stop, 09 보드 6-1 · 2026-10-05) =====
   경고창 + 강제 이동 대신 그 자리에 안내 상자와 버튼. 편집 화면(Elementor)에서는 점선 자리 표시. */
.drt-alert__actions { display: flex; flex-wrap: wrap; gap: var(--drt-space-2); margin-top: var(--drt-space-2); white-space: normal; }
.drt-stop { max-width: 560px; margin: var(--drt-space-8) auto; display: grid; gap: var(--drt-space-3); font-family: var(--drt-font-sans); }
.drt-stop .drt-alert { margin: 0; }
.drt-stop__code { display: block; margin-top: var(--drt-space-1); font-size: var(--drt-text-xs); font-weight: 400; color: var(--drt-gray-600); }
.drt-stop__actions { display: flex; flex-wrap: wrap; gap: var(--drt-space-2); }
.drt-stop__actions .btn { flex: 1 1 180px; }
.drt-stop--editor { display: block; text-align: center; padding: 28px 16px; border: 1.5px dashed var(--drt-gray-400); border-radius: var(--drt-radius-md); background: var(--drt-gray-50); color: var(--drt-gray-800); }
.drt-stop--editor b { display: block; font-size: var(--drt-text-lg); font-weight: 700; color: var(--drt-gray-900); }
.drt-stop--editor span { display: block; margin-top: 6px; font-size: var(--drt-text-md); color: var(--drt-gray-600); }

/* ===== 빈 결과 (PHP drt_booking_empty, 09 보드 6-2 · 2026-10-05) =====
   아이콘 + 기존 문구 + 도움말 + "조건 바꿔 다시 검색". 높이는 내용만큼(예전 600px 빈 공간).
   .drt-empty--error: 불러오기 오류 — 제목·도움말 대신 오류 안내(전화 링크 파랑). */
.drt-empty { flex-direction: column; align-items: center; justify-content: flex-start; gap: var(--drt-space-2); width: auto; max-width: 560px; height: auto; margin: var(--drt-space-6) auto var(--drt-space-10); padding: var(--drt-space-8) var(--drt-space-4); text-align: center; word-break: keep-all; font-family: var(--drt-font-sans); }
.drt-empty p { margin: 0; }
.drt-empty__icon { display: block; width: 48px; height: 48px; color: var(--drt-gray-400); }
.drt-empty__icon svg { display: block; width: 100%; height: 100%; }
.drt-empty .drt-empty__title,
.drt-empty .drt-empty__error { font-size: var(--drt-text-2xl); font-weight: 600; line-height: 1.45; color: var(--drt-gray-900); }
.drt-empty .drt-empty__help { font-size: var(--drt-text-base); line-height: 1.6; color: var(--drt-gray-600); }
.drt-empty .drt-empty__btn { margin-top: var(--drt-space-3); min-width: 220px; }
.drt-empty .drt-empty__error a { color: var(--drt-color-link); text-decoration: underline; white-space: nowrap; }
.drt-empty .drt-empty__error,
.drt-empty--error .drt-empty__title,
.drt-empty--error .drt-empty__help { display: none; }
.drt-empty--error .drt-empty__error { display: block; }
