@charset "UTF-8";

/* ==========================================================================
   DaeguWhere Design System v3.0 - Monochrome Elegance
   컨셉: CatchTable-inspired, 화이트 중심, 최소한의 색상
   ========================================================================== */

/* 1. Typography & Reset (Pretendard) */
@import url("https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css");

:root {
  /* ========== DaeguWhere Color System (Indigo Blue) ========== */

  /* Primary - Indigo Blue (강조용만!) */
  --dw-primary: #4f46e5;
  --dw-primary-dark: #4338ca;
  --dw-primary-light: #818cf8;

  /* Accent Colors */
  --dw-accent: #f59e0b; /* 즐겨찾기, 별점 (주황-금색) */
  --dw-danger: #ef4444; /* 무료 배지, 긴급 알림 */
  --dw-success: #10b981; /* 성공, 확인 */

  /* Text Colors - 기본은 검정/회색! */
  --dw-text-primary: #000000; /* 제목 - 순흑 */
  --dw-text-secondary: #6b7280; /* 본문 - 회색 */
  --dw-text-tertiary: #9ca3af; /* 메타 정보 - 연한 회색 */

  /* Background & Surface */
  --dw-bg: #ffffff;
  --dw-surface: #ffffff;
  --dw-surface-alt: #f9fafb; /* 연한 회색 배경 */

  /* Borders */
  --dw-border: #e5e7eb;
  --dw-border-strong: #d1d5db;

  /* Shadows */
  --dw-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.05);
  --dw-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  --dw-shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
  --dw-shadow-lg: 0 8px 24px rgba(0, 0, 0, 0.15);

  /* Layout */
  --dw-max-width: 480px; /* Global Mobile View: 480px */
  --dw-radius: 8px;
}

body,
button,
input,
select,
textarea {
  font-family: "Pretendard Variable", Pretendard, -apple-system,
    BlinkMacSystemFont, system-ui, Roboto, "Helvetica Neue", "Segoe UI",
    "Apple SD Gothic Neo", "Noto Sans KR", "Malgun Gothic", "Apple Color Emoji",
    "Segoe UI Emoji", "Segoe UI Symbol", sans-serif !important;
  color: var(--dw-text-primary) !important; /* 검정 텍스트 */
  background-color: var(--dw-surface-alt) !important;
  -webkit-font-smoothing: antialiased;
}

/* ==========================================================================
   2. Mobile-First Layout (CatchTable Style)
   ========================================================================== */
/* 데스크톱에서도 모바일처럼 보이게 강제 */
#page,
.site-content,
.ast-container {
  width: 100% !important;
  max-width: var(--dw-max-width) !important; /* Catch Table 스타일: 720px */
  margin: 0 auto !important;
  margin: 0 auto !important;
  padding: 0 !important;
  padding-bottom: calc(50px + env(safe-area-inset-bottom, 0px)) !important; /* Bottom Nav + iOS Safe Area */
  background-color: var(--dw-bg) !important; /* 안쪽 콘텐츠는 흰색 */
  min-height: 100vh;
  box-shadow: 0 0 40px rgba(0, 0, 0, 0.05); /* 은은한 양쪽 그림자 */
  position: relative;
  overflow-x: hidden;
}

#primary {
  width: 100% !important;
  flex: 1 !important;
}

/* 모바일에서는 꽉 차게 */
@media (max-width: 600px) {
  #page,
  .site-content,
  .ast-container {
    width: 100% !important;
    box-shadow: none !important;
  }
}

/* ==========================================================================
   2. Headerless Design (CatchTable Style)
   ========================================================================== */
/* 
 * This site now uses a headerless design for maximum content focus.
 * All branding is handled by favicon and page title.
 * Navigation is handled by Bottom Navigation.php (bottom bar).
 */

/* Hide all theme headers completely */
.site-header,
#masthead,
.ast-mobile-header-wrap {
  display: none !important;
}

/* ==========================================================================
   3. Global Layout & Components
   ========================================================================== */

/* Main Container Limit - 이미 위에서 전역으로 제어하므로 기존 미디어 쿼리 삭제 */
/* 삭제된 Desktop 1200px 규칙 */

/* Modern Card Style */
.evocard_box,
.box_shadow,
.dw-card {
  background: var(--dw-surface) !important;
  border-radius: var(--dw-radius) !important;
  box-shadow: var(--dw-shadow) !important;
  border: 1px solid var(--dw-border) !important;
  overflow: hidden !important;
  transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}

.evocard_box:hover,
.dw-card:hover {
  transform: translateY(-4px) !important;
  box-shadow: var(--dw-shadow-hover) !important;
}

/* Buttons (Premium Style) */
button,
input[type="submit"],
.dw-link-btn,
.copy-address-btn {
  background: var(--dw-primary) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 8px !important;
  padding: 10px 20px !important;
  font-weight: 600 !important;
  font-size: 14px !important;
  letter-spacing: 0.5px !important;
  box-shadow: 0 4px 12px rgba(26, 31, 44, 0.2) !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
  cursor: pointer !important;
}

button:hover,
input[type="submit"]:hover,
.dw-link-btn:hover,
.copy-address-btn:hover {
  background: var(--dw-secondary) !important;
  transform: translateY(-2px) !important;
  box-shadow: 0 6px 16px rgba(212, 175, 55, 0.3) !important;
}

/* Detail Page Link Buttons Override (Inverted Style) */
.dw-link-btn,
.copy-address-btn {
  background: #ffffff !important;
  color: var(--dw-text-primary) !important;
  border: 1px solid var(--dw-border-strong) !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05) !important;
}

.dw-link-btn:hover,
.copy-address-btn:hover {
  background: var(--dw-primary) !important;
  color: #ffffff !important;
  border-color: var(--dw-primary) !important;
  box-shadow: 0 4px 12px rgba(79, 70, 229, 0.3) !important;
}

/* ==========================================================================
   3. Featured Slider (Modern Minimal Cards)
   ========================================================================== */

.dw-featured-slider-wrapper {
  margin: 24px 0;
  padding: 0 12px; /* 좌우 여백 추가 */
}

.dw-slider-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--dw-primary);
  margin-bottom: 16px;
  letter-spacing: -0.5px;
}

.dw-featured-slider .swiper-slide {
  width: 280px;
  height: auto; /* 내용물 크기에 맞춰 자동 조절 */
}

.dw-slide-card-modern {
  display: flex;
  flex-direction: column;
  background: var(--dw-surface);
  border-radius: var(--dw-radius);
  overflow: hidden;
  box-shadow: var(--dw-shadow);
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  text-decoration: none !important;
  border: 1px solid var(--dw-border);
  color: inherit;
  height: auto; /* 내용물 크기에 맞춰 자동 조절 */
}

/* 링크 밑줄 완전 제거 */
.dw-slide-card-modern:link,
.dw-slide-card-modern:visited,
.dw-slide-card-modern:hover,
.dw-slide-card-modern:active {
  text-decoration: none !important;
}

.dw-slide-card-modern:hover {
  transform: translateY(-4px);
  box-shadow: var(--dw-shadow-hover);
  text-decoration: none !important; /* 호버 시에도 밑줄 없음 */
}

.dw-slide-image-wrapper {
  position: relative;
  width: 100%;
  padding-top: 85%; /* 이미지 비율 조정 */
  overflow: hidden;
  background: #f5f5f5;
  flex-shrink: 0;
}

.dw-slide-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.dw-slide-card-modern:hover .dw-slide-image {
  transform: scale(1.05);
}

.dw-slide-content {
  padding: 10px 8px; /* 컨텐츠 영역 축소 */
  flex: 0 0 auto; /* 내용물 크기에 맞춤 */
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}

.dw-slide-title-modern {
  font-size: 14px;
  font-weight: 600;
  color: #000 !important; /* 검은색으로 변경 */
  margin: 0 0 4px 0;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 1; /* 1줄로 제한하여 공간 절약 */
  -webkit-box-orient: vertical;
  overflow: hidden;
  text-decoration: none !important;
}

.dw-slide-date-modern {
  font-size: 11px; /* 가독성 있는 크기로 조정 */
  color: var(--dw-text-sub) !important;
  margin: 0;
  font-weight: 500;
}

/* ==========================================================================
   5. EventON & List Specifics
   ========================================================================== */

/* Remove Old Borders & Backgrounds */
.eventon_eventcard,
.eventon_eventcard .evcal_evdata_row,
.eventon_eventcard .eventon_details_event {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

/* Modern Calendar Header */
#evcal_cur.evo_month_title {
  font-family: Pretendard !important;
  font-weight: 800 !important;
  color: var(--dw-primary) !important;
  letter-spacing: -0.5px !important;
}

/* Date Circle Style */
.evo_day_in_num {
  font-family: Pretendard !important;
  font-weight: 600 !important;
}

/* ==========================================================================
   6. Custom Component Adjustments
   ========================================================================== */

/* Basic Info Section */
#event_basicinfo .dw-basicinfo .dw-title {
  font-size: 26px !important;
  font-weight: 800 !important;
  color: var(--dw-primary) !important;
  line-height: 1.3 !important;
  letter-spacing: -0.5px !important;
}

#event_basicinfo .dw-basicinfo .dw-subtitle {
  font-size: 16px !important;
  color: var(--dw-text-sub) !important;
  font-weight: 500 !important;
}

/* Favorite Button (Star) - 가시성 개선 */
.dw-favorite-btn {
  background: rgba(255, 255, 255, 0.95) !important;
  border-radius: 50% !important;
  padding: 8px !important;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15) !important;
  transition: all 0.2s ease !important;
  width: 36px !important;
  height: 36px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

.dw-favorite-btn:hover {
  transform: scale(1.1) !important;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2) !important;
}

.dw-favorite-btn:not(.active) svg {
  stroke: var(--dw-secondary) !important; /* Gold Stroke */
  stroke-width: 2px !important;
  width: 20px !important;
  height: 20px !important;
}

.dw-favorite-btn.active svg {
  fill: var(--dw-secondary) !important; /* Gold Fill */
  stroke: var(--dw-secondary) !important;
  width: 20px !important;
  height: 20px !important;
}

/* Ticket Badge */
.dw-ticket-text {
  background: #e3f2fd !important;
  color: #1976d2 !important;
  border-radius: 6px !important;
  padding: 4px 8px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
}

/* Hide Unwanted Elements */
.ast-site-title-wrap,
.site-title,
.site-description,
.evosin_event_title,
#respond,
.comments-area {
  display: none !important;
}

/* Footer Minimalist */
.site-primary-footer-wrap {
  background-color: var(--dw-primary) !important;
  color: rgba(255, 255, 255, 0.7) !important;
}

/* Mobile Adjustments */
@media (max-width: 768px) {
  .site-header {
    padding: 5px 0 !important;
  }

  .dw-featured-slider-wrapper .dw-slide-title {
    font-size: 18px !important;
  }
}

/* ==========================================================================
   7. EventON Modern Redesign 2025
   ========================================================================== */

/* 전체 폰트 적용 (강제) */
.ajde_evcal_calendar * {
  font-family: "Pretendard", sans-serif !important;
}

/* 달력 컨테이너 좌우 여백 */
.ajde_evcal_calendar {
  padding: 0 12px !important;
}

/* 달력 헤더 (월/년) */
.eventon_header {
  background: transparent !important;
  border-bottom: none !important;
  padding-bottom: 20px !important;
}
.eventon_header p.evo_month_title {
  font-size: 24px !important;
  font-weight: 700 !important;
  color: var(--dw-text-primary) !important;
  text-transform: none !important;
}

/* 요일 헤더 (일, 월, 화...) */
.evcal_cblock .evo_days_list .evo_day {
  color: var(--dw-text-secondary) !important;
  font-weight: 600 !important;
  font-size: 14px !important;
}

/* 날짜 그리드 */
.evo_calendar_body .evo_days .evo_day {
  border: none !important;
  color: var(--dw-text-primary) !important;
}
.evo_calendar_body .evo_days .evo_day:hover {
  background-color: var(--dw-surface-alt) !important;
  border-radius: 50%;
}
.evo_calendar_body .evo_days .evo_day.today .evo_day_num {
  background-color: var(--dw-text-primary) !important; /* 검정 포인트 */
  color: white !important;
  border-radius: 50%;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3);
}

/* 이벤트 리스트 카드 스타일 */
.eventon_list_event {
  background: var(--dw-surface) !important;
  border: 1px solid var(--dw-border) !important;
  border-radius: 16px !important;
  box-shadow: var(--dw-shadow-md) !important;
  margin-bottom: 20px !important;
  padding: 20px !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}
.eventon_list_event:hover {
  transform: translateY(-2px);
  box-shadow: var(--dw-shadow-lg) !important;
}

/* 이벤트 타이틀 */
.evcal_event_title {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: var(--dw-text-primary) !important;
  margin-bottom: 5px !important;
}

/* 이벤트 부가 정보 (시간, 장소 등) */
.evcal_desc .evcal_desc2,
.evo_event_time_loc {
  font-size: 14px !important;
  color: var(--dw-text-secondary) !important;
  font-weight: 500 !important;
}

/* 모바일 전용 미세 조정 */
@media only screen and (max-width: 600px) {
  .eventon_list_event {
    border-radius: 12px !important;
    padding: 15px !important;
    margin-bottom: 15px !important;
  }
  .eventon_header p.evo_month_title {
    font-size: 20px !important;
  }
}

/* ==========================================================================
   8. Merged Styles from 'DaeguWhere Unified Styles.php'
   (Feature Slider, Date Filters, Badges)
   ========================================================================== */

/* Date Filters (Modernized) */
#dw-datefilter {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}

.dw-date-display {
  flex: 1;
  background: var(--dw-bg-card) !important;
  border: 1px solid var(--dw-border) !important;
  border-radius: var(--dw-radius) !important;
  padding: 10px 16px !important;
  font-size: 15px !important;
  height: auto !important;
  min-height: 44px;
  color: var(--dw-text-primary) !important;
  box-shadow: var(--dw-shadow-sm);
}

#dw-date-text {
  color: var(--dw-text-primary) !important;
  font-weight: 500;
}

.dw-date-hint {
  color: var(--dw-text-secondary) !important;
}

/* Filter Bar (Scrollable Pills) */
#dw-filterbar {
  display: flex;
  overflow-x: auto;
  gap: 8px;
  padding: 4px 0 12px;
  scrollbar-width: none;
}
#dw-filterbar::-webkit-scrollbar {
  display: none;
}

.dw-cat-btn {
  background: var(--dw-surface) !important;
  border: 1px solid var(--dw-border) !important;
  color: var(--dw-text-secondary) !important;
  border-radius: 20px !important;
  padding: 8px 16px !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  white-space: nowrap;
  transition: all 0.2s ease !important;
}

.dw-cat-btn.active,
.dw-cat-btn:hover {
  background: var(--dw-text-primary) !important; /* 검정 포인트 */
  color: white !important;
  border-color: var(--dw-text-primary) !important;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3);
}

/* Featured Slider (Updated Responsive) */
/* 이미 상단에 정의되어 있지만, Unified Style의 반응형 규칙이 더 구체적이면 여기서 보강 */
@media (min-width: 768px) {
  .dw-featured-slider .swiper-slide {
    width: 45% !important;
    max-width: 320px !important;
  }
}
@media (min-width: 1024px) {
  .dw-featured-slider .swiper-slide {
    width: 30% !important;
  }
}

/* Ticket Status Badges (Unified Style) */
.dw-ticket-status {
  border-radius: 6px;
  font-weight: 600;
  padding: 4px 8px;
  font-size: 12px;
}
.dw-ticket-status.available {
  background: #dcfce7;
  color: #166534;
}
.dw-ticket-status.upcoming {
  background: #fef9c3;
  color: #854d0e;
}
.dw-ticket-status.closed {
  background: #fee2e2;
  color: #991b1b;
}

/* Legacy Fixes */
.evo_lightbox #event_ftimage {
  display: none !important;
}

/* ==========================================================================
   9. Bottom Navigation & Modals (Merged from Bottom Navigation.php)
   ========================================================================== */

/* Bottom Navigation - Modern Glassmorphism (Forced) */
#dwBottomNav.dw-bottom-nav {
  position: fixed !important;
  bottom: 0 !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  max-width: var(--dw-max-width) !important;
  width: 100% !important;
  background: rgba(255, 255, 255, 0.85) !important; /* Light Glass */
  backdrop-filter: blur(12px) !important;
  -webkit-backdrop-filter: blur(12px) !important;
  border-top: 1px solid rgba(0, 0, 0, 0.05) !important;
  display: flex !important;
  justify-content: space-around !important;
  padding-top: 8px !important;
  padding-bottom: calc(8px + env(safe-area-inset-bottom, 0px)) !important; /* iOS Safe Area 대응 */
  z-index: 9999 !important;
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.05) !important;
}

#dwBottomNav .dw-nav-item {
  flex: 1 !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 4px !important;
  text-decoration: none !important;
  /* Flexbox Centering - 강제 적용 */
  justify-content: center !important;
  text-align: center !important;

  /* Visibility Fixes */
  z-index: 9999 !important; /* Force on top */
  opacity: 1 !important;
  visibility: visible !important;
  color: #64748b !important; /* Slate 500 */
  padding: 8px 0 4px !important;
  transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
  cursor: pointer !important;
  border-radius: 12px !important;
  margin: 0 !important;
  background: transparent;
}

#dwBottomNav .dw-nav-item:active {
  transform: scale(0.95);
}

#dwBottomNav .dw-nav-item.active {
  color: var(--dw-text-primary) !important; /* Black Active */
  background: rgba(0, 0, 0, 0.05) !important;
}

#dwBottomNav .dw-nav-icon {
  width: 24px !important;
  height: 24px !important;
  transition: all 0.2s ease !important;
}

#dwBottomNav .dw-nav-item.active .dw-nav-icon path,
#dwBottomNav .dw-nav-item.active .dw-nav-icon circle,
#dwBottomNav .dw-nav-item.active .dw-nav-icon line,
#dwBottomNav .dw-nav-item.active .dw-nav-icon rect {
  stroke: var(--dw-text-primary) !important;
  stroke-width: 2.5 !important;
}

#dwBottomNav .dw-nav-item:not(.active) .dw-nav-icon path,
#dwBottomNav .dw-nav-item:not(.active) .dw-nav-icon circle,
#dwBottomNav .dw-nav-item.active .dw-nav-icon line,
#dwBottomNav .dw-nav-item.active .dw-nav-icon rect {
  stroke: #94a3b8 !important; /* Slate 400 */
}

.dw-nav-label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: -0.2px;
}

/* Bottom Sheet - Modernized */
.dw-bottom-sheet-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
  backdrop-filter: blur(4px);
  display: none;
  z-index: 998;
  opacity: 0;
  transition: opacity 0.3s ease;
}
.dw-bottom-sheet-overlay.show {
  display: block;
  opacity: 1;
}

.dw-bottom-sheet {
  position: fixed;
  bottom: 80px;
  left: 10px;
  right: 10px;
  background: #ffffff;
  border-radius: 20px;
  transform: translateY(calc(100% + 100px));
  transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
  z-index: 999;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
  overflow: hidden;
  max-width: 500px;
  margin: 0 auto;
}
.dw-bottom-sheet.show {
  transform: translateY(0);
}

.dw-sheet-header {
  padding: 16px 20px;
  border-bottom: 1px solid #f1f5f9;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.dw-sheet-title {
  font-size: 18px;
  font-weight: 700;
  color: #1e293b;
}
.dw-sheet-close {
  background: #f1f5f9;
  border: none;
  color: #64748b;
  font-size: 20px;
  cursor: pointer;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dw-sheet-body {
  padding: 8px 0;
}

.dw-menu-item {
  display: flex;
  align-items: center;
  gap: 16px; /* 아이콘과 텍스트 간격 */
  padding: 14px 20px; /* 12px → 14px */
  text-decoration: none;
  color: #333;
  transition: background 0.2s;
}
.dw-menu-item:hover {
  background: #f8fafc;
}

.dw-menu-icon {
  width: 24px !important;
  height: 24px !important;
  stroke: #4f46e5 !important; /* 인디고 블루 */
  flex-shrink: 0;
}

/* Instagram 아이콘의 filled circle */
.dw-menu-icon circle[fill] {
  fill: #4f46e5 !important;
}

/* 나머지는 stroke만 */
.dw-menu-icon path,
.dw-menu-icon circle:not([fill]),
.dw-menu-icon rect {
  fill: none !important;
}
.dw-menu-title {
  font-size: 16px;
  font-weight: 500; /* 600 → 500 */
  color: #1e293b;
  flex: 1; /* 남은 공간 차지 */
}

/* 알림 설정 토글 스타일 */
.dw-menu-item-toggle {
  justify-content: space-between;
}

/* App Modal Modernized */
/* Modern App Modal Styles 2025 */
.dw-app-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.4); /* 조금 더 투명하게 */
  backdrop-filter: blur(8px); /* 블러 강화 */
  -webkit-backdrop-filter: blur(8px);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 10000; /* 네비게이션(9999)보다 위 */
  opacity: 0;
  transition: opacity 0.3s ease;
  padding: 20px;
}

.dw-app-modal.show {
  display: flex;
  opacity: 1;
}

.dw-app-box {
  background: #ffffff;
  border-radius: 32px;
  width: 100%;
  max-width: 380px; /* 모바일 최적화 너비 */
  padding: 40px 30px;
  text-align: center;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
  position: relative;
  transform: scale(0.95);
  transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
  animation: modalPop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

/* PC Responsive Width */
@media (min-width: 1024px) {
  .dw-app-box {
    max-width: 1140px; /* PC 너비 3배 확장 */
    padding: 60px 40px;
  }

  .dw-app-header {
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }
}

@keyframes modalPop {
  from {
    transform: scale(0.9);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}

.dw-app-header {
  margin-bottom: 32px;
}

.dw-app-icon-wrapper {
  width: 80px;
  height: 80px;
  margin: 0 auto 20px;
  border-radius: 22px;
  overflow: hidden;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
  background: #fff;
}

.dw-app-logo {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dw-app-box h2 {
  font-size: 24px;
  font-weight: 800;
  color: #1a1a1a;
  margin: 0 0 10px 0;
  line-height: 1.3;
  letter-spacing: -0.5px;
}

.dw-app-box p {
  font-size: 15px;
  color: #666;
  margin: 0;
  line-height: 1.5;
  font-weight: 500;
}

/* Store Buttons */
.dw-btn-container {
  display: flex;
  flex-direction: column;
  gap: 12px;
  width: 100%;
}

.dw-store-btn {
  display: flex;
  align-items: center;
  padding: 12px 20px;
  border-radius: 16px;
  text-decoration: none !important;
  transition: transform 0.2s ease, box-shadow 0.2s ease;
  border: 1px solid rgba(0, 0, 0, 0.05);
}

.dw-store-btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.dw-store-btn:active {
  transform: scale(0.98);
}

/* Play Store Style */
.dw-play-store {
  background: #ffffff;
  border: 1px solid #e5e7eb;
  color: #3c4043;
}

.dw-app-store {
  background: #000000;
  color: #ffffff;
  border: 1px solid #000000;
}

.dw-store-icon {
  width: 28px;
  height: 28px;
  margin-right: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.dw-store-icon svg {
  width: 100%;
  height: 100%;
}

.dw-store-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  line-height: 1.1;
}

.dw-store-sub {
  font-size: 10px;
  font-weight: 600;
  opacity: 0.8;
  text-transform: uppercase;
  margin-bottom: 2px;
}

.dw-store-main {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: -0.5px;
}

/* Play Store Specific Colors */
.dw-play-store .dw-store-icon svg {
  color: #3c4043; /* Standard Dark Grey (Solves 'Strange Green' issue) */
}
.dw-play-store .dw-store-text {
  color: #3c4043;
}

/* Close Button Round */
.dw-app-close-round {
  position: absolute;
  top: 16px;
  right: 16px;
  background: #f5f5f5 !important; /* Override Global Button Style */
  border: none !important;
  border-radius: 50% !important;
  width: 36px !important;
  height: 36px !important;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: #666 !important;
  transition: all 0.2s;
  padding: 0 !important;
  box-shadow: none !important; /* Reset potential global shadow */
}

.dw-app-close-round:hover {
  background: #eeeeee !important;
  transform: rotate(90deg);
  color: #333 !important;
}

/* Fix Google Play/AppStore Icon Styles */
.dw-store-icon img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

.dw-store-icon {
  width: 28px;
  height: 28px;
  margin-right: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}

/* Remove SVG-specific overrides */
/* Play Store Specific Colors - No longer needed as we use full color image */
/*
.dw-play-store .dw-store-icon svg {
  color: #3c4043;
}
*/
.dw-play-store .dw-store-text {
  color: #3c4043;
}

/* Extra padding for bottom nav space */
body {
  padding-bottom: 90px;
}

/* iOS Share Modal */
.dw-ios-modal {
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.75);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 2001;
}
.dw-ios-modal.show {
  display: flex;
}
.dw-ios-box {
  background: #232f3e;
  border-radius: 16px;
  width: 85%;
  max-width: 320px;
  padding: 30px 24px;
  color: white;
  text-align: center;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
  animation: fadeIn 0.25s ease;
}
.dw-ios-share-icon {
  width: 48px;
  height: 48px;
  margin: 0 auto 20px;
  background: #007aff;
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.dw-ios-box .ios-text {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255, 255, 255, 0.9);
  margin-bottom: 20px;
}
.dw-ios-ok {
  background: #007aff;
  color: #fff;
  border: none;
  padding: 12px 40px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
}

/* QR Code Modal (PC) */
.dw-qr-container {
  display: flex;
  justify-content: space-between; /* 양끝에 배치 */
  margin-bottom: 32px;
  padding: 20px 0;
  width: 100%; /* 전체 너비 사용 */
}
.dw-qr-item {
  text-align: center;
  flex: 0 0 auto; /* 고정 크기 */
}
.dw-qr-item img {
  width: 200px;
  height: 200px;
  border-radius: 16px;
  background: white;
  padding: 16px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}
.dw-qr-label {
  margin-top: 16px;
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
}
.dw-btn-container {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

@keyframes fadeIn {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* ==========================================================================
   10. UI Components Styles (Merged from UI Components.php)
   ========================================================================== */

/* Daily Class Basic Info Box */
.dw-basicinfo-daily {
  border-left: 4px solid #232f3e;
}

/* Link Buttons (Map, Share, Etc) */
.dw-links-row {
  display: flex;
  gap: 8px;
  margin-bottom: 8px;
  flex-wrap: wrap;
  padding: 0 10px;
}
.dw-link-btn {
  flex: 1;
  min-width: 80px;
  padding: 10px 12px;
  background: #f5f5f5;
  border: 1px solid #ddd;
  border-radius: 6px;
  text-align: center;
  font-size: 13px;
  font-weight: 500;
  color: #333;
  text-decoration: none;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s;
}
.dw-link-btn:hover {
  background: #e8e8e8;
  transform: translateY(-1px);
}

/* Swiper Gallery Styles */
body.single-ajde_events #event_ftimage {
  display: none !important;
}

.dw-gallery-wrap {
  position: relative;
  margin: 10px 0 24px 0;
}

/* PC: Fix Width */
@media (min-width: 1025px) {
  body.single-ajde_events .dw-gallery-wrap {
    width: 520px !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

.dw-gallery-track {
  display: flex;
  align-items: flex-start;
  overflow-x: auto;
  gap: 0;
  padding-bottom: 16px;
  scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  /* 최소 높이 설정으로 이미지 로드 전 레이아웃 시프트 방지 */
  min-height: 400px;
  transition: height 0.3s ease;
}
.dw-gallery-track::-webkit-scrollbar {
  display: none;
}

.dw-gallery-slide {
  scroll-snap-align: center;
  flex: 0 0 100%;
  width: 100%;
  /* 슬라이드 최소 높이 설정 */
  min-height: 400px;
}

.dw-gallery-slide img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
  /* 이미지 로딩 중에도 공간 확보 */
  min-height: 300px;
  object-fit: contain;
  background: #f5f5f5;
}

/* Pagination Dot */
.dw-pagination {
  text-align: center;
  margin-top: -6px;
}
.dw-dot {
  display: inline-block;
  width: 7px;
  height: 7px;
  margin: 0 4px;
  background: #ddd;
  border-radius: 50%;
  transition: background 0.25s;
}
.dw-dot.active {
  background: #5168b2;
}

/* Nav Buttons (PC) */
.dw-nav-btn {
  position: absolute;
  top: 45%;
  transform: translateY(-50%);
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.45);
  color: white;
  font-size: 18px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  opacity: 0;
  transition: opacity 0.25s;
  user-select: none;
}
.dw-gallery-wrap:hover .dw-nav-btn {
  opacity: 1;
}
.dw-nav-prev {
  left: 6px;
}
.dw-nav-next {
  right: 6px;
}

@media (max-width: 768px) {
  .dw-nav-btn {
    display: none;
  }
}

/* ==========================================================================
   상세 페이지 레이아웃 개선 (Detail Page Layout)
   ========================================================================== */

/* EventON 기본 카드 숨김 */
.eventon_list_event .evcal_list_a {
  display: none !important;
}

/* 상세페이지에서는 .eventon_list_event 컨테이너 스타일 제거 */
body.single-ajde_events .eventon_list_event {
  padding: 0 !important;
  margin: 0 !important;
  border: none !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

/* 상세페이지의 모든 evocard_box 섹션에 통일된 좌우 패딩 적용 */
body.single-ajde_events .evocard_box {
  padding-left: 10px !important;
  padding-right: 10px !important;
}

/* 상세페이지 메인 컨텐츠 패딩 제거 (Astra 테마 기본 40px -> 0) */
.ast-article-single.evo_event_content {
  padding: 0 !important;
  margin-top: 0 !important;
}

/* 기본정보 박스 - Catch Table 스타일 (1열 세로 리스트) */
.dw-basicinfo {
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
  padding: 0 10px 0 10px !important;
  background: transparent !important;
  border: none !important;
  border-radius: 0 !important;
  margin-bottom: 20px !important;
}

/* 기본정보 각 라인 */
.dw-basicinfo .dw-line {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid #f0f0f0 !important;
  background: transparent !important;
  border-radius: 0 !important;
}

.dw-basicinfo .dw-line:last-child {
  border-bottom: none !important;
}

/* 아이콘 */
.dw-basicinfo .dw-icon {
  width: 20px !important;
  height: 20px !important;
  flex-shrink: 0 !important;
  color: #6b7280 !important;
  font-size: 16px !important;
}

/* 텍스트 */
.dw-basicinfo .dw-line span {
  color: #1f2937 !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
  word-break: keep-all !important;
}

/* 장소명 라인 */
.dw-basicinfo .dw-place {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid #f0f0f0 !important;
}

/* 주소 라인 - 박스 없이 깔끔하게 */
.dw-basicinfo .dw-address {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 12px 0 !important;
  border-bottom: 1px solid #f0f0f0 !important;
  background: transparent !important;
  border-radius: 0 !important;
}

.dw-basicinfo .dw-address .dw-icon {
  width: 20px !important;
  height: 20px !important;
  color: #6b7280 !important;
}

.dw-basicinfo .dw-address span {
  color: #1f2937 !important;
}

/* 주소 복사 버튼 - 인라인, 스페이스 3개 간격 */
.dw-basicinfo .dw-copy-btn,
.dw-basicinfo .dw-address button {
  margin-left: 1em !important;
  padding: 4px 10px !important;
  font-size: 12px !important;
  background: #f3f4f6 !important;
  color: #374151 !important;
  border: 1px solid #e5e7eb !important;
  border-radius: 4px !important;
  cursor: pointer !important;
  transition: all 0.2s !important;
  white-space: nowrap !important;
}

.dw-basicinfo .dw-copy-btn:hover,
.dw-basicinfo .dw-address button:hover {
  background: #e5e7eb !important;
}

/* 갤러리 이미지 크기 수정 - 전체 이미지 표시 */
.dw-gallery-slide {
  flex-shrink: 0;
  width: 100%;
  height: auto !important;
}

.dw-gallery-slide img {
  width: 100%;
  height: auto !important;
  object-fit: contain !important;
  display: block;
}

/* 모바일 대응 */
@media (max-width: 720px) {
  .dw-basicinfo {
    padding: 0 10px 0 10px !important;
  }

  .dw-basicinfo .dw-line {
    padding: 10px 0 !important;
  }
}

/* ==========================================================================
   플로팅 액션 버튼 (Floating Action Buttons)
   ========================================================================== */

/* 플로팅 버튼 컨테이너 - 데스크톱에서 모바일 영역 내 고정 */
.dw-floating-actions {
  position: fixed;
  top: 24px;
  right: calc(50% - 360px + 16px); /* 720px 컨테이너 기준 우측 16px */
  z-index: 9999;
  display: flex;
  gap: 8px;
}

.dw-floating-back {
  position: fixed;
  top: 24px;
  left: calc(50% - 360px + 16px); /* 720px 컨테이너 기준 좌측 16px */
  z-index: 9999;
}

/* 플로팅 버튼 기본 스타일 */
.dw-floating-btn {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.2s;
  padding: 0;
  text-decoration: none;
}

/* 버튼 태그 리셋 */
button.dw-floating-btn {
  appearance: none;
  -webkit-appearance: none;
  outline: none;
}

/* 플로팅 버튼 배경색 강제 적용 (다른 CSS 덮어쓰기 방지) */
.dw-floating-btn,
.dw-favorite-floating-btn,
.dw-back-btn,
.dw-home-btn {
  background: rgba(255, 255, 255, 0.95) !important;
  backdrop-filter: blur(10px) !important;
  border-radius: 50% !important;
}

.dw-floating-btn:hover {
  background: rgba(255, 255, 255, 1);
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.18);
  transform: translateY(-1px);
}

.dw-floating-btn:active {
  transform: translateY(0);
}

/* 버튼 아이콘 */
.dw-floating-btn svg {
  width: 24px;
  height: 24px;
  color: #1f2937;
  stroke: #1f2937;
  fill: none;
}

/* 즐겨찾기 버튼 활성화 상태 */
.dw-floating-btn.dw-bookmark-active svg {
  fill: #f59e0b;
  stroke: #f59e0b;
  color: #f59e0b;
}

/* 즐겨찾기 버튼 SVG 크기 강제 적용 */
.dw-favorite-floating-btn svg {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
}

/* 뒤로가기 버튼 SVG 크기 강제 적용 */
.dw-back-btn svg {
  width: 24px !important;
  height: 24px !important;
  min-width: 24px !important;
  min-height: 24px !important;
}

/* 모바일 대응 - 화면 끝에서 고정 */
@media (max-width: 720px) {
  .dw-floating-actions {
    top: 16px;
    right: 16px;
    gap: 6px;
  }

  .dw-floating-back {
    top: 16px;
    left: 16px;
  }

  .dw-floating-btn {
    width: 40px;
    height: 40px;
  }

  .dw-floating-btn svg {
    width: 22px;
    height: 22px;
  }
}

/* 기본정보의 즐겨찾기 버튼 숨김 (플로팅 버튼으로 대체) */
.dw-basicinfo .dw-favorite-btn,
.dw-basicinfo-daily .dw-favorite-btn,
.evoextra1 .dw-favorite-btn,
.eventon_list_event .evoextra1 .dw-favorite-btn {
  display: none !important;
}

/* ==========================================================================
   대구시 정보 페이지 (dw_city_info)
   ========================================================================== */
.dw-city-container {
  max-width: 720px;
  margin: 0 auto;
  background: #fff;
  min-height: 100vh;
  border-left: 1px solid #f1f5f9;
  border-right: 1px solid #f1f5f9;
  font-family: "Pretendard", sans-serif;
}

/* Header */
.dw-city-header {
  padding: 20px;
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid #f1f5f9;
  position: sticky;
  top: 0;
  z-index: 50;
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.dw-page-title h1 {
  font-size: 24px;
  font-weight: 700;
  color: #111418;
  margin: 0;
  line-height: 1.2;
}
.dw-page-title p {
  font-size: 14px;
  color: #64748b;
  margin: 4px 0 0 0;
  line-height: 1.4;
}

/* Main Tabs (Detail Page Style Replica) */
.dw-city-tabs-wrapper {
  position: relative;
  margin: 0 0 0 0;
  background: #fff;
}

.dw-city-tabs-nav {
  display: flex;
  gap: 0;
  border-bottom: 2px solid #e5e7eb;
  padding: 0 10px;
}

.dw-city-tab-btn {
  flex: 1;
  padding: 14px 8px !important;
  background: transparent !important;
  background-color: transparent !important;
  border: none !important;
  border-color: transparent !important;
  font-size: 15px;
  font-weight: 600;
  color: #666 !important;
  cursor: pointer;
  position: relative;
  -webkit-tap-highlight-color: transparent !important;
  outline: none !important;
  box-shadow: none !important;
}

.dw-city-tab-btn:hover,
.dw-city-tab-btn:active,
.dw-city-tab-btn:focus {
  background: transparent !important;
  background-color: transparent !important;
  border-color: transparent !important;
  color: #666 !important;
  transform: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.dw-city-tab-btn.active {
  color: #232f3e !important;
  background: transparent !important;
  background-color: transparent !important;
}

.dw-city-tab-btn.active:hover,
.dw-city-tab-btn.active:active,
.dw-city-tab-btn.active:focus {
  color: #232f3e !important;
  background: transparent !important;
  background-color: transparent !important;
  border-color: transparent !important;
  box-shadow: none !important;
}

.dw-city-tab-btn.active::after {
  content: "";
  position: absolute;
  bottom: -2px;
  left: 0;
  right: 0;
  height: 2px;
  background: #232f3e;
}

/* Sub Filters (Chips) */
.dw-sub-filters-container {
  background: #fff;
  padding: 12px 20px;
}
.dw-sub-filters {
  display: flex;
  gap: 8px;
  overflow-x: auto;
  scrollbar-width: none;
  padding-bottom: 4px;
}
.dw-sub-filters::-webkit-scrollbar {
  display: none;
}

/* Filter Chips (Reused & Adjusted) */
.dw-filter-chip {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 14px;
  border-radius: 99px;
  background: #f1f5f9;
  border: 1px solid transparent;
  font-size: 13px;
  font-weight: 500;
  color: #64748b;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.2s;
}
.dw-filter-chip span {
  font-size: 16px;
  margin-right: 2px;
}
.dw-filter-chip:hover {
  background: #e2e8f0;
  color: #475569;
}
.dw-filter-chip.active {
  background: #111827;
  color: #fff;
  border-color: #111827;
}

/* List Item */
.dw-city-item {
  display: flex;
  padding: 20px;
  gap: 16px;
  border-bottom: 1px solid #f1f5f9;
  cursor: pointer;
  transition: background 0.2s;
  background: #fff;
}
.dw-city-item:hover {
  background: #f8fafc;
}

/* Thumbnail (Left) */
.dw-city-thumb {
  width: 100px;
  height: 100px;
  border-radius: 12px;
  overflow: hidden;
  position: relative;
  flex-shrink: 0;
  background: #f1f5f9;
}
.dw-city-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s;
}
.dw-city-item:hover .dw-city-thumb img {
  transform: scale(1.05);
}

/* Badges */
.dw-badge-new {
  position: absolute;
  top: 0;
  left: 0;
  background: #4f46e5;
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 4px 8px;
  border-bottom-right-radius: 8px;
}
.dw-badge-dday {
  position: absolute;
  top: 6px;
  left: 6px;
  background: rgba(0, 0, 0, 0.7);
  color: #fff;
  font-size: 11px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  backdrop-filter: blur(4px);
}
.dw-badge-end {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.6);
  color: #fff;
  font-size: 12px;
  font-weight: 600;
  text-align: center;
  padding: 4px 0;
}

/* Content (Right) */
.dw-city-content {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.dw-meta-top {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.dw-meta-cat {
  font-size: 12px;
  font-weight: 600;
  color: #4f46e5;
  background: #eef2ff;
  padding: 2px 6px;
  border-radius: 4px;
}
.dw-meta-date {
  font-size: 13px;
  color: #94a3b8;
}
.dw-item-title {
  font-size: 16px;
  font-weight: 700;
  color: #1e293b;
  margin: 0 0 6px 0;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dw-item-desc {
  font-size: 14px;
  color: #64748b;
  margin: 0 0 10px 0;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Meta Bottom (Tags) */
.dw-meta-bottom {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-top: auto;
}
.dw-tag {
  font-size: 12px;
  color: #64748b;
  background: #f1f5f9;
  padding: 2px 8px;
  border-radius: 4px;
}
.dw-view-count {
  font-size: 12px;
  color: #94a3b8;
}
.dw-info-text {
  font-size: 12px;
  color: #64748b;
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Text Only Item */
.dw-city-thumb.text-only {
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
}

/* Load More */
.dw-load-more {
  padding: 32px 20px 60px;
  display: flex;
  justify-content: center;
}
.dw-load-more button {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 30px;
  font-size: 14px;
  font-weight: 600;
  color: #1e293b;
  cursor: pointer;
  transition: all 0.2s;
}
.dw-load-more button:hover {
  background: #f8fafc;
  border-color: #cbd5e1;
}
