/* #main-section2 rules scoped to calendar v2 */
/* section2 horizontal padding = 20px.
   -60px 기본값은 뷰포트 1400px+ 에서만 여유 확보됨(margin≥40px).
   1280~1400px 구간은 -60px가 뷰포트 밖으로 벗어나므로 -10px로 통일. */
@media (max-width: 1400px) {
  /* 20px 패딩 - 10px = 뷰포트 10px 안 */
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card-arrow.left  { left: -10px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card-arrow.right { right: -10px; }
}


@media (max-width: 1024px) {
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-wrap,
  .ghm-event-calendar-v2 .ghm-cal-event-full-inner {
    padding: 0 20px;
  }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-wrap { padding: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-calendar { padding: 0 40px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-year  { font-size: 20px; font-weight: 500; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-month { font-size: 32px; font-weight: 700; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card-arrow.left  { left: -10px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card-arrow.right { right: -10px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover { padding: 26px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover h3 { font-size: 24px; line-height: 1.1; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover .date,
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover .desc { font-size: 18px; }
  .ghm-event-calendar-v2 #event-list .ghm-evlist__title { font-size:2.8125rem;}
}

@media (max-width: 900px) {
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover h3 { font-size: 20px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover .date,
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover .desc { font-size: 16px; }
  .ghm-event-calendar-v2 #event-list .ghm-evlist__title { font-size:2.5rem;}
}


/* ==============================
   768px 이하 — 모바일
============================== */
@media (max-width: 768px) {
  h2.sub-tit {
    padding: 50px 0px 30px 0;
}
      .ghm-event-calendar-v2 #ghm-cal-main-section2 .main-festival,
       .ghm-event-calendar-v2 .ghm-cal-event-full-inner {
        padding:0 20px;
      }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-wrap {
    padding: 0px;
  }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 { padding: 40px 0; }
  .ghm-event-calendar-v2 .ghm-cal-event-full-section { padding: 40px 0; }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-header { margin-bottom: 30px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-header h2 { font-size: 28px; }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-calendar {
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    padding: 16px 20px;
    gap: 10px;
  }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-wrap { padding: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-year  { font-size: 24px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-month { font-size: 24px; }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-info {
    display: flex;
    flex-direction: row;
    gap: 6px;
    align-items: baseline;
    padding-right: 0;
    border-right: none;
    justify-content: center;
    order: 1;
  }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-today {
    flex: 0 0 auto;
    font-size: 13px;
    padding: 6px 12px;
    order: 2;
    border-radius: 8px;
  }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-slider { order: 3;  flex: 0 0 100%;}
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-viewport { padding: 0 10px; }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn { width: 36px; min-height: 62px; justify-content: flex-end; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn__month { font-size: 11px; margin-bottom: 2px; min-height: 12px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn b { font-size: 20px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn__day { font-size: 16px; margin-top: 4px; }

  /* 14일 스트립 중 뷰포트에 7일만 표시 (main_responsive와 동일) */
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-list {
    display: grid;
    grid-template-columns: repeat(14, minmax(0, 1fr));
    width: 200%;
    box-sizing: border-box;
    gap: 4px;
  }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-list li {
    min-width: 0;
    display: flex;
    justify-content: center;
  }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tabs { gap: 6px; flex-wrap: wrap; margin: 16px 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tab-btn { font-size: 18px; padding: 8px 16px; }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-arrow:first-of-type { margin-right: 8px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-arrow:last-of-type  { margin-left: 8px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-arrow::before { width: 30px; height: 30px; }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn.sat .festival-btn__day    { color: #3b82f6; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn.sun .festival-btn__day    { color: #ef4444; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn.active .festival-btn__day { color: #003557; }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover h3 { font-size: 20px; font-weight: 700; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover .date,
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover .desc { font-size: 16px; }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card-arrow.left  { left: -20px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card-arrow.right { right: -20px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-badge { font-size: 14px; }

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tab-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card-wrap .more { display: flex; align-items: center; font-size: 16px; color: #333; margin-bottom: 0; padding-bottom: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tab-empty { min-height: 280px; font-size: 16px; }
  .ghm-event-calendar-v2 #event-list .event-list__title { font-size:20px;}
  .ghm-event-calendar-v2 #event-list .event-list__period {font-size: 18px;}
}


/* ==============================
   640px 이하
============================== */
@media (max-width: 640px) {
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn b { width: 35px; height: 35px; flex-shrink: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-list { gap: 5px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-list li { min-width: 0; }
}


/* ==============================
   480px 이하 — 소형 모바일
============================== */
@media (max-width: 480px) {
    .ghm-event-calendar-v2 #ghm-cal-main-section2 .main-festival { padding:0px;}
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-calendar { display: flex !important; align-items: center !important; justify-content: flex-start !important; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover h3 { font-size: 18px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tabs { flex-wrap: nowrap; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tabs::-webkit-scrollbar { display: none; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tab-btn { white-space: nowrap; flex-shrink: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-list { padding-left: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-arrow:first-of-type { margin-right: 8px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-arrow:last-of-type  { margin-left: 8px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-viewport { padding: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card { aspect-ratio: 3 / 4;  max-height: none;}
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card-wrap .more { flex-shrink: 0; white-space: nowrap; }
 .ghm-event-calendar-v2 .ghm-cal-event-full-inner { padding:0px;} 

  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-calendar { display: flex !important;  align-items: center !important;  justify-content: flex-start !important; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-swiper .swiper-slide {
    width: calc((100% - 12px) / 2) !important; 
    flex-shrink: 0;
  }
  
  
  html.ghm-main-root #main-section4 .ghm-enjoy-content h3 { font-size: 1.125rem; }
  #main-section5 .ghm-facility-icon { width: 56px; height: 56px; }
  #main-section5 .ghm-facility-label { font-size: 1rem; }
  #main-section6 .ghm-archive-item { width: calc(50% - 8px); }
  #main-section6 .ghm-archive-thumb { height: 100px; }
 #main-section6-7-wrapper { padding: 20px 0;}

  #main-section7 .ghm-sns-item { width: calc(50% - 6px); }

  #main-section3 .ghm-news-item .ghm-thumb-box { width: 100px; height: 90px; }
    .ghm-event-calendar-v2 #event-list .event-list__title { font-size:18px;}
  .ghm-event-calendar-v2 #event-list .event-list__period {font-size: 16px;}
}


/* ==============================
   390px 이하
============================== */
@media (max-width: 390px) {
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-header h2 { font-size: 22px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-calendar { gap: 8px; padding: 13px 20px;  flex-direction: row !important; flex-wrap: wrap !important; justify-content: center !important;  align-items: center;}
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-info { display: flex; flex-direction: row; gap: 6px; align-items: baseline; padding-right: 0; border-right: none; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-slider { width: 100%; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-year  { font-size: 20px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-month { font-size: 20px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn b    { width: 30px; height: 30px; font-size: 18px; flex-shrink: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn__month { font-size: 10px; margin-bottom: 1px; min-height: 10px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-btn__day { font-size: 15px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tab-btn  { font-size: 15px; padding: 6px 12px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-list { gap: 0; padding-left: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-list li { min-width: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-arrow { width: 15px; height: 15px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-arrow:first-of-type { margin-right: 4px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-arrow:last-of-type  { margin-left: 4px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-arrow::before { width: 20px; height: 20px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tab-header { flex-wrap: nowrap; align-items: center; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tabs {
    flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
    mask-image: linear-gradient(to right, black 90%, transparent 100%);
    -webkit-mask-image: linear-gradient(to right, black 90%, transparent 100%);
  }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-tabs::-webkit-scrollbar { display: none; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card-wrap .more { flex-shrink: 0; white-space: nowrap; font-size: 14px; padding-bottom: 0; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover h3 { font-size: 18px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover .date,
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-card-hover .desc { font-size: 14px; }
  .ghm-event-calendar-v2 #ghm-cal-main-section2 .festival-card .festival-badge { font-size: 13px; }
  .ghm-event-calendar-v2 #event-list .event-list__title { font-size:18px;}
  .ghm-event-calendar-v2 #event-list .event-list__period {font-size: 16px;}
  /* section3 */

 #main-section3 .ghm-left-box .ghm-news-title-wrap h2 {font-size: 1.375rem;}
 #main-section3 .ghm-news-list li { display: flex;  align-items: stretch;   gap: 12px; }
  #main-section3 .ghm-news-item .ghm-thumb-box {   width: 120px;  height: 100px;   aspect-ratio: 1 / 1; flex-shrink: 0; overflow: hidden;  }
  #main-section3 .ghm-news-item .ghm-thumb-box img { width: 100%; height: 100%; object-fit: cover;  }
  #main-section3 .ghm-news-item > p {  font-size: 0.875rem;  margin: 0;  display: flex;  align-items: center; line-height: 1.4; word-break: break-all; }
  #main-section3 .ghm-news-item .ghm-thumb-box .none-title {font-size:0.875rem;}
  #main-section3 .ghm-news-item .ghm-thumb-box p {font-size: 0.8125rem;}
 #main-section3 .ghm-right-box .ghm-news-title-wrap h2 {font-size: 1.375rem;}
  #main-section3 .ghm-notice strong {font-size: 1.375rem;}
  #main-section3 .ghm-notice-box .date { font-size: 0.875rem; width: auto; }
  #main-section3 .ghm-notice-box p     { font-size: 0.875rem; }
  #main-section3 .ghm-news-item > p { font-size: 0.875rem; margin-left: 0; }

  /* section4 */
  html.ghm-main-root #main-section4 .ghm-enjoy-header h2 {font-size: 1.375rem;}
  html.ghm-main-root #main-section4 .ghm-enjoy-swiper .swiper-slide {  width: 100%; }
  /* section5 */
  #main-section5 .ghm-facility-title {font-size: 1.375rem;}
  #main-section5 .ghm-facility-icon  { width: 48px; height: 48px; }
  #main-section5 .ghm-facility-label { font-size: 0.875rem; }

  /* section6 */
 #main-section6-7-wrapper { padding: 0px 0;}
  #main-section6-7-wrapper .ghm-combined-inner { gap: 24px; padding: 0 14px; }
  #main-section6 .ghm-archive-title, #main-section7 .ghm-sns-title { font-size: 1.375rem; }

  #main-section6 .ghm-archive-list,
  #main-section7 .ghm-sns-list {  gap: 8px;  }
  #main-section6 .ghm-archive-title, #main-section7 .ghm-sns-title { font-size: 1.375rem;}
  #main-section6 .ghm-archive-item   { width: auto; }    
  #main-section6 .ghm-archive-thumb  { height: auto; }    
    #main-section6 .ghm-archive-item .ghm-archive-link .ghm-archive-thumb .ghm-archive-badge {font-size:0.875rem;}
   #main-section6 .ghm-archive-list {  grid-template-columns: 1fr 1fr;  }
   #main-section6 .ghm-archive-item { width: auto; }
  #main-section6 .ghm-archive-thumb { height: auto; }
  /* section7 */
    #main-section7 .ghm-sns-item { width: auto; }

  #main-section7 .ghm-sns-list { grid-template-columns: 1fr 1fr; gap: 10px; }

  /* section8 */
  #main-section8 .ghm-related-card { height: 50px; padding: 8px 12px; }
}
