:root{
    --modal-bg:#1d2228;
    --text:#fff;
    --muted:#aab0b7;
    --accent:#00d4a6;
    --shadow: 0 12px 40px rgba(0,0,0,.35);
    --radius:16px;
  }
  
  /* 오버레이 */
  .holiday-overlay{
    position: fixed; inset:0;
    background: rgba(0,0,0,.55);
    opacity:0; visibility:hidden;
    transition: opacity .25s ease, visibility .25s ease;
    z-index: 9998;
  }
  
  /* 모달 기본 */
  .holiday-modal{
    position: fixed; left:50%; top:50%;
    transform: translate(-50%,-50%) scale(.98);
    width: min(92vw, 560px);
    max-height: 90vh;
    overflow: auto;
    background: var(--modal-bg);
    color: var(--text);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
    opacity:0; visibility:hidden;
    transition: opacity .25s ease, transform .25s ease, visibility .25s ease;
    z-index: 9999;
    padding: 22px 20px;
  }
  
  /* 열렸을 때 */
  .holiday-overlay.show{ opacity:1; visibility:visible; }
  .holiday-modal.show{ opacity:1; visibility:visible; transform: translate(-50%,-50%) scale(1); }
  
  /* 헤더 */
  .holiday-header{ display:flex; align-items:center; gap:10px; margin-bottom:8px;}
  .holiday-badge{
    font-size: 11px; letter-spacing:.12em; color:#111;
    background: linear-gradient(90deg, #74f9c6, #00d4a6);
    border-radius: 999px; padding:6px 10px; font-weight:700;
  }
  .holiday-header h2{ font-size: 22px; line-height:1.2; margin:0; }
  
  /* 본문 */
  .holiday-body{ margin-top:10px; }
  .holiday-dates{ font-size:15px; margin:0 0 8px; }
  .holiday-msg{ color: var(--muted); font-size:14px; line-height:1.7; margin:0; }
  
  /* 푸터 */
  .holiday-footer{
    display:flex; align-items:center; justify-content:space-between; gap:12px;
    margin-top:16px;
  }
  .holiday-check{ display:flex; align-items:center; gap:8px; font-size:13px; color:#dbe1e7; }
  .holiday-ok{
    background: var(--accent); color:#07221a; border:0; border-radius:10px;
    font-weight:700; padding:10px 16px; cursor:pointer;
  }
  .holiday-ok:hover{ filter:brightness(1.05); }
  
  /* 닫기 버튼 */
  .holiday-close{
    position:absolute; right:10px; top:8px;
    width:34px; height:34px; border:0; border-radius:8px;
    background: rgba(255,255,255,.08); color:#fff; font-size:22px; line-height:1;
    cursor:pointer;
  }
  .holiday-close:hover{ background: rgba(255,255,255,.14); }
  
  /* ===== 반응형 ===== */
  
  /* 모바일: 아래에서 올라오는 카드(바텀시트 느낌) + 폭 넓게 */
  @media (max-width: 767px){
    .holiday-modal{
      width: 100vw; max-width: 100%;
      bottom: 0; top: auto; transform: translate(-50%, 20px);
      border-bottom-left-radius: 0; border-bottom-right-radius:0;
      padding: 18px 16px 20px;
    }
    .holiday-modal.show{ transform: translate(-50%, 0); }
    .holiday-header h2{ font-size: 18px; }
    .holiday-msg{ font-size: 13px; }
  }
  
  /* 태블릿: 조금 더 넓게, 여백 여유 */
  @media (min-width: 768px) and (max-width: 1024px){
    .holiday-modal{
      width: min(88vw, 640px);
      padding: 24px 22px;
    }
    .holiday-header h2{ font-size: 20px; }
  }
  
  /* 데스크탑: 기본 크기 유지, 본문 가독성 향상 */
  @media (min-width: 1025px){
    .holiday-body{ font-size:15px; }
  }