/* ==========================================================================
   (주)투어수다 - 공통 헤더 / GNB
   head.php 에서 add_stylesheet() 로 default.css 뒤에 적재됩니다.
   ========================================================================== */

/* 사이트 전체 폰트 : Pretendard
   기존에는 외부 CDN(jsdelivr)의 가변 폰트를 @import로 불러왔는데, @import는 렌더링을 막는
   직렬(순차) 체인(gnb.css 파싱 → 외부 CSS 요청 → 그 안의 폰트 파일 요청)인 데다 그 가변 폰트
   파일 자체가 2MB(!)나 돼서 - 폰트가 늦게 로딩되고 나서 전체 텍스트가 한꺼번에 리플로우되며
   "메뉴/콘텐츠가 하나씩 나타나는" 것처럼 보이는 원인이었다.
   실제 사이트에서 쓰는 굵기(400/500/600/700, 900은 1곳뿐이라 700 파일로 대체)만 자체 호스팅
   서브셋(각 ~260KB, 한글 전체+영문 포함)으로 교체 - 외부 CDN 왕복 없이 병렬 로딩되고 실제
   쓰는 굵기만 필요할 때 개별적으로 받아온다. */
@font-face{ font-family:'Pretendard Variable'; font-weight:400; font-display:swap; src:url('../fonts/pretendard/Pretendard-Regular.subset.woff2') format('woff2'); }
@font-face{ font-family:'Pretendard Variable'; font-weight:500; font-display:swap; src:url('../fonts/pretendard/Pretendard-Medium.subset.woff2') format('woff2'); }
@font-face{ font-family:'Pretendard Variable'; font-weight:600; font-display:swap; src:url('../fonts/pretendard/Pretendard-SemiBold.subset.woff2') format('woff2'); }
@font-face{ font-family:'Pretendard Variable'; font-weight:700 900; font-display:swap; src:url('../fonts/pretendard/Pretendard-Bold.subset.woff2') format('woff2'); }
body{ font-family: "Pretendard Variable", Pretendard, -apple-system, "Malgun Gothic", sans-serif; font-size: 16px; }
/* default.css의 h1~h6 기본값('Malgun Gothic', dotum, sans-serif / font-size:1em) 오버라이드 (사이트 전체 공통) */
h1, h2, h3, h4, h5, h6{ font-family: "Pretendard Variable", Pretendard, -apple-system, "Malgun Gothic", sans-serif; font-size: 30px; }

/* 포커스 시 브라우저 기본 외곽선 제거 (사이트 전체 공통) */
input, select, button, textarea{ outline: none; }
input:focus, select:focus, button:focus, textarea:focus{ outline: none; }
/* default.css의 input/select/textarea 포커스 시 파란 box-shadow+border(!important)도 함께 제거 */
input[type=text]:focus, input[type=password]:focus, textarea:focus, select:focus{
    box-shadow: none !important;
    border-color: transparent !important;
}

/* lucide SVG 아이콘 공통 (거래처 원본과 동일 아이콘, gnb.icons.php의 suda_icon() 에서 출력)
   기존 Font Awesome <i> 에 걸려있던 font-size(+반응형 vw) 규칙을 그대로 재사용하기 위해
   <i class="suda-icon"><svg width/height="1em">...</svg></i> 구조로 감싼다. */
.suda-icon{ display: inline-flex; align-items: center; justify-content: center; vertical-align: -0.125em; }
.suda-icon svg{ display: block; }

/* 닫기(X) 버튼 공통 : Font Awesome fa-times 대신 얇은 선 2개로 직접 그림 (사이트 전체 공통) */
.suda-x-close{ position: relative; }
.suda-x-close i{ display: none; }
.suda-x-close::before,
.suda-x-close::after{
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 1.5px;
    background: currentColor;
    border-radius: 999px;
}
.suda-x-close::before{ transform: translate(-50%, -50%) rotate(45deg); }
.suda-x-close::after{ transform: translate(-50%, -50%) rotate(-45deg); }

/* ---------- 반응형 브레이크포인트 기준 (사이트 전체 공통) ----------
   1024px / 768px / 480px 각 미디어쿼리 안에서, 그 폭 기준으로 계산한
   고정 vw값(px ÷ 브레이크포인트 × 100)을 오버라이드로 적용 */

/* tail.php에서 #aside(외부로그인/설문조사 사이드바)를 완전히 제거했으므로,
   #aside를 위해 #container를 930px로 좁혀 float:left 하던 default.css 규칙도
   함께 해제 - 전체 폭으로 사용 (사이트 전체 적용, #aside가 없으니 부작용 없음) */
#container{ float: none; width: auto; margin: 0; }

/* default.css가 #container_wr에 width:1200px 고정값을 걸어놔서, 히어로 배너처럼
   화면 전체 폭(100%)으로 나와야 하는 요소가 실제로는 1200px 안에 갇혀버리는 문제가
   있었음 (콘텐츠 최대폭은 각 섹션에서 1280px로 개별 지정하므로, 바깥 컨테이너 자체는
   화면 크기와 무관하게 항상 풀어준다) */
#container_wr{ width: 100%; }

/* default.css가 #hd, #wrapper, #ft에 min-width:1200px를 걸어놔서, 1024px
   미디어쿼리 안에서만 풀어주면 1024~1200px 사이 구간은 여전히 1200px min-width가
   살아있어 그 구간에서 가로 스크롤/잘림이 발생했음. 미디어쿼리 없이 항상 해제 */
#hd, #wrapper, #ft{ min-width: 0; }

:root{
    --suda-blue: #4154ff;
    --suda-blue-dark: #3443cc;
    --suda-red: #fb2c36;
    --suda-red-dark: #dc2626;
    --suda-purple: #9333ea;
    --suda-purple-dark: #7e22ce;
    --suda-purple-dot: #a855f7;
    --suda-gray-50: #f9fafb;
    --suda-gray-100: #f3f4f6;
    --suda-gray-200: #e5e7eb;
    --suda-gray-400: #9ca3af;
    --suda-gray-500: #6b7280;
    --suda-gray-700: #374151;
    --suda-gray-900: #111827;
    --suda-header-h: 96px;
}

/* ---------- 공통 체크박스/라디오 (회원가입 화면의 .suda-join-checkbox/.suda-gender-radio input과 동일한 톤) ----------
   기획/디자인/퍼블리셔 공통 규칙: 사이트 전체에서 체크박스·라디오는 이 클래스로 통일한다.
   네이티브 accent-color만으로는 브라우저마다 체크 전/후 테두리 색·모서리가 제각각이라(체크 전 테두리가
   진하게 나오는 문제 등) appearance:none으로 직접 그린다 - 이미지 파일 없이 CSS만 사용. */
.suda-form-check{
    -webkit-appearance: none;
    appearance: none;
    margin: 0;
    padding: 0;
    border: 1px solid var(--suda-gray-400);
    background: #fff;
    cursor: pointer;
    flex-shrink: 0;
    position: relative;
    transition: background .15s ease, border-color .15s ease;
}
/* 체크박스/라디오 기본 크기는 예전(통일 전) 사이즈로 되돌린다 - 체크박스 22px, 라디오 20px */
input[type="checkbox"].suda-form-check{ width: 22px; height: 22px; border-radius: 6px; }
input[type="radio"].suda-form-check{ width: 20px; height: 20px; border-radius: 50%; }
.suda-form-check:checked{ background: var(--suda-blue); border-color: var(--suda-blue); }
input[type="checkbox"].suda-form-check:checked::after{
    content: "";
    position: absolute;
    left: 7px;
    top: 3px;
    width: 5px;
    height: 11px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
}
input[type="radio"].suda-form-check:checked::after{
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 8px;
    height: 8px;
    background: #fff;
    border-radius: 50%;
    transform: translate(-50%, -50%);
}

/* ---------- 공통 셀렉트(ul/li 커스텀 드롭다운) ----------
   기획/디자인/퍼블리셔 공통 규칙: 사이트 전체에서 셀렉트는 네이티브 <select> 대신 이 ul/li
   패턴으로 통일한다(원래 1:1문의 상담유형/예약코드에서 처음 만들었고, 여기로 옮겨서 모든
   게시판/폼에서 공통으로 재사용). 실제 제출값은 별도 hidden input에 담아서 쓴다. */
.suda-qa-select{ --suda-qa-resv-accent: #7b6ef0; position: relative; flex: 1 1 auto; min-width: 0; }
.suda-qa-select-btn{ box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; gap: 8px; width: 100%; height: 52px; padding: 0 20px; border: 1px solid var(--suda-gray-200); border-radius: 12px; background: #fff; font-size: 15px; color: var(--suda-gray-400); text-align: left; cursor: pointer; }
.suda-qa-select-btn:disabled{ background: var(--suda-gray-50); color: var(--suda-gray-300); cursor: not-allowed; }
.suda-qa-select.has-value .suda-qa-select-btn{ color: var(--suda-gray-900); }
.suda-qa-select-btn span{ overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.suda-qa-select-btn .fa{ flex: 0 0 auto; color: var(--suda-gray-700); font-size: 18px; transition: transform .15s ease; }
.suda-qa-select.is-open .suda-qa-select-btn{ border-color: var(--suda-qa-resv-accent); border-bottom-left-radius: 0; border-bottom-right-radius: 0; }
.suda-qa-select.is-open .suda-qa-select-btn .fa{ transform: rotate(180deg); }
.suda-qa-select-list{ box-sizing: border-box; position: absolute; top: 100%; left: 0; right: 0; margin-top: -1px; z-index: 20; max-height: 200px; overflow-y: auto; padding: 4px 0; list-style: none; background: #fff; border: 1px solid var(--suda-qa-resv-accent); border-top: 1px solid var(--suda-gray-200); border-radius: 0 0 12px 12px; box-shadow: 0 16px 40px rgba(17,17,17,.12); }
.suda-qa-select-list li{ padding: 10px 19px; font-size: 14px; color: var(--suda-gray-700); cursor: pointer; }
.suda-qa-select-list li:hover{ background: var(--suda-gray-50); }
.suda-qa-select-list li.is-selected{ background: var(--suda-gray-100); color: var(--suda-gray-900); font-weight: 700; }
@media (max-width: 1024px){
    .suda-qa-select-btn{ height: 5.08vw; padding: 0 1.95vw; gap: 0.78vw; border-radius: 1.17vw; font-size: 1.46vw; }
    .suda-qa-select-btn .fa{ font-size: 1.76vw; }
    .suda-qa-select-list{ border-radius: 0 0 1.17vw 1.17vw; }
    .suda-qa-select-list li{ padding: 0.98vw 1.86vw; font-size: 1.37vw; }
}
@media (max-width: 768px){
    .suda-qa-select-btn{ height: 6.77vw; padding: 0 2.60vw; gap: 1.04vw; border-radius: 1.56vw; font-size: 1.95vw; }
    .suda-qa-select-btn .fa{ font-size: 2.34vw; }
    .suda-qa-select-list{ border-radius: 0 0 1.56vw 1.56vw; }
    .suda-qa-select-list li{ padding: 1.30vw 2.47vw; font-size: 1.82vw; }
}
@media (max-width: 480px){
    .suda-qa-select-btn{ height: 10.83vw; padding: 0 4.17vw; gap: 1.67vw; border-radius: 2.50vw; font-size: 3.12vw; }
    .suda-qa-select-btn .fa{ font-size: 3.75vw; }
    .suda-qa-select-list{ border-radius: 0 0 2.50vw 2.50vw; }
    .suda-qa-select-list li{ padding: 2.08vw 3.96vw; font-size: 2.92vw; }
}

/* sticky가 일부 환경에서 고정되지 않는 문제가 있어 fixed로 전환, 본문은 헤더 높이만큼 padding-top으로 보정 */
body{ padding-top: var(--suda-header-h); }
.suda-header{
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 500;
    background: #fff;
    border-bottom: 1px solid var(--suda-gray-100);
    box-shadow: 0 1px 2px rgba(0,0,0,.04);
}

/* ---------- 상단 유틸리티 바 ---------- */
.suda-topbar{
    display: none;
    background: var(--suda-gray-50);
    border-bottom: 1px solid var(--suda-gray-100);
    font-size: 13px;
    color: var(--suda-gray-500);
}
.suda-topbar-inner{
    padding-block: 8px;
    padding-inline: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}
.suda-topbar-left{
    display: flex;
    align-items: center;
    gap: 16px;
    white-space: nowrap;
}
.suda-topbar-left i{ margin-right: 4px; color: var(--suda-gray-400); }
.suda-topbar-right{
    display: flex;
    align-items: center;
    gap: 16px;
}
.suda-topbar-group{
    display: flex;
    align-items: center;
    gap: 14px;
    padding-right: 16px;
    border-right: 1px solid var(--suda-gray-200);
}
.suda-topbar-group:last-child{ border-right: 0; padding-right: 0; }
.suda-topbar a{ color: inherit; }
.suda-topbar a:hover{ color: var(--suda-blue); }

/* 인기검색어 롤링 */
.suda-ticker{
    display: flex;
    align-items: center;
    gap: 8px;
}
.suda-ticker-label{ font-weight: 700; color: var(--suda-blue); }
.suda-ticker-view{
    position: relative;
    height: 16px;
    width: 140px;
    overflow: hidden;
}
.suda-ticker-item{
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    font-weight: 500;
    color: var(--suda-gray-700);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.suda-ticker-item.is-active{ display: flex; }

/* AI 비서 버튼 */
.suda-ai-btn{
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 4px 10px;
    border-radius: 999px;
    background: var(--suda-blue);
    color: #fff !important;
    font-weight: 700;
    font-size: 11px;
}
.suda-ai-btn:hover{ background: var(--suda-blue-dark); }

/* 아이콘 버튼(쿠폰/주문내역/알림/장바구니) */
.suda-icon-btn{
    position: relative;
    display: inline-flex;
    color: var(--suda-gray-700);
    padding: 2px;
}
.suda-icon-btn:hover{ color: var(--suda-blue); }

/* 아이콘 위에 올렸을 때 뜨는 말풍선 툴팁 */
.suda-icon-btn .suda-tooltip{
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 8px;
    padding: 4px 8px;
    background: var(--suda-gray-900);
    color: #fff;
    font-size: 10px;
    border-radius: 4px;
    white-space: nowrap;
    opacity: 0;
    pointer-events: none;
    transition: opacity .15s ease;
    z-index: 50;
}
.suda-icon-btn:hover .suda-tooltip{ opacity: 1; }
.suda-icon-badge{
    position: absolute;
    top: -4px;
    right: -6px;
    background: var(--suda-red);
    color: #fff;
    font-size: 9px;
    font-weight: 700;
    line-height: 1;
    padding: 2px 3px;
    border-radius: 999px;
}
.suda-icon-dot{
    position: absolute;
    top: -1px;
    right: -1px;
    width: 6px;
    height: 6px;
    background: var(--suda-blue);
    border: 1px solid #fff;
    border-radius: 999px;
}
/* P4: 알림센터 - 안 읽은 알림이 있을 때만 렌더링되는 빨간 점(head.php) */
.suda-icon-dot.is-unread{ background: var(--suda-red); }
.suda-m-noti-count{ display: inline-block; min-width: 18px; padding: 1px 5px; margin-left: 2px; border-radius: 999px; background: var(--suda-red); color: #fff; font-size: 11px; line-height: 16px; text-align: center; vertical-align: middle; }

/* 언어 선택 (마우스오버 드롭다운) */
.suda-lang{
    position: relative;
}
.suda-lang-trigger{
    display: flex;
    align-items: center;
    gap: 5px;
    border: 0;
    background: transparent;
    padding: 0;
    font-size: 11px;
    font-weight: 700;
    color: var(--suda-gray-500);
    cursor: pointer;
}
.suda-lang-trigger:hover{ color: var(--suda-blue); }
.suda-lang-trigger i{ font-size: 9px; opacity: .6; }
.suda-lang-menu{
    display: none;
    position: absolute;
    top: 100%;
    left: 50%;
    transform: translateX(-50%);
    margin-top: 0;
    padding-top: 10px; /* 트리거와 메뉴 사이를 margin(빈 공간)이 아니라 padding(요소 안쪽)으로 띄워서
                           그 구간에서 마우스가 :hover 영역을 벗어나 메뉴가 사라지던 문제를 없앰 */
    min-width: 100px;
    background: #fff;
    border: 1px solid var(--suda-gray-100);
    border-radius: 12px;
    box-shadow: 0 16px 32px rgba(17,24,39,.14);
    padding-left: 6px;
    padding-right: 6px;
    padding-bottom: 6px;
    z-index: 60;
}
.suda-lang:hover .suda-lang-menu,
.suda-lang.is-open .suda-lang-menu{
    display: block;
}
.suda-lang-item{
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--suda-gray-700);
    white-space: nowrap;
}
.suda-lang-item:hover{ background: var(--suda-gray-50); color: var(--suda-blue); }
.suda-lang-item.is-active{ color: var(--suda-blue); font-weight: 700; }

/* ---------- 메인 헤더(로고 + GNB + 검색) ---------- */
.suda-header-main{
    max-width: 1280px;
    margin: 0 auto;
    padding-inline: 48px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--suda-header-h);
    gap: 12px;
}

.suda-logo{
    display: flex;
    align-items: center;
    gap: 10px;
    flex-shrink: 0;
    color: var(--suda-gray-900) !important;
}
.suda-logo img{
    width: 80px;
    height: 80px;
    border-radius: 999px;
    object-fit: cover;
    box-shadow: 0 1px 2px rgba(0,0,0,.08);
}
/* 데스크톱 GNB */
.suda-gnb{
    display: none;
    position: relative;
    align-items: center;
    gap: 2px;
    flex: 1 1 auto;
    justify-content: center;
}
.suda-gnb-item{ position: relative; }
.suda-gnb-link{
    display: flex;
    align-items: center;
    gap: 3px;
    padding-block: 10px;
    padding-inline: 6px;
    font-size: 14px;
    font-weight: 700;
    color: var(--suda-gray-900);
    white-space: nowrap;
}
.suda-gnb-link:hover{ color: var(--suda-blue); }
.suda-gnb-link i{ font-size: 11px; opacity: .5; }

.suda-gnb-special{
    display: flex;
    align-items: center;
    gap: 16px;
    margin-left: 8px;
    flex-shrink: 0;
}
.suda-live-link{
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 14px;
    font-weight: 700;
    color: var(--suda-red) !important;
    animation: suda-pulse 1.6s infinite;
}
.suda-live-link:hover{ color: var(--suda-red-dark) !important; }
.suda-live-dot{
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--suda-red);
    flex-shrink: 0;
}
.suda-kwave-link{
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 14px;
    font-weight: 700;
    color: var(--suda-purple) !important;
}
.suda-kwave-link:hover{ color: var(--suda-purple-dark) !important; }
.suda-kwave-dot{
    width: 7px;
    height: 7px;
    border-radius: 999px;
    background: var(--suda-purple-dot);
    flex-shrink: 0;
    animation: suda-ping 1.6s cubic-bezier(0,0,.2,1) infinite;
}
/* SUDA CUSTOM (2026-10-24): 지금 방송중인 LIVE 가 있을 때만 GNB LIVE 점이 깜빡인다 (head.php .suda-live-link.is-onair) */
.suda-live-link.is-onair .suda-live-dot{ animation: suda-pulse 1.2s ease-in-out infinite; box-shadow: 0 0 0 3px rgba(251, 44, 54, .18); }
@media (prefers-reduced-motion: reduce){ .suda-live-link.is-onair .suda-live-dot{ animation: none; } }
@keyframes suda-pulse{
    0%, 100%{ opacity: 1; }
    50%{ opacity: .3; }
}
@keyframes suda-ping{
    0%{ transform: scale(1); opacity: 1; }
    75%, 100%{ transform: scale(2); opacity: 0; }
}

/* 메가메뉴
   - 참고 시안(Navbar.tsx)처럼 메뉴 트리거의 왼쪽 끝에 맞춰 펼쳐짐(left:0).
   - 단, 오른쪽 끝 항목(맞춤여행/대한민국여행)은 그대로 두면 화면 밖으로 넘치므로
     오른쪽 정렬로 보정 (시안에는 없는 개선사항). */
.suda-mega{
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    width: 760px;
    max-width: 90vw;
    background: #fff;
    border: 1px solid var(--suda-gray-100);
    border-radius: 0 0 18px 18px;
    box-shadow: 0 20px 40px rgba(17,24,39,.12);
    padding: 28px;
    z-index: 50;
}
.suda-gnb-item:hover .suda-mega,
.suda-gnb-item.is-open .suda-mega{
    display: block;
}
.suda-gnb-item:nth-last-child(-n+3) .suda-mega{
    left: auto;
    right: 0;
}
/* region 공유 메가메뉴 - .suda-gnb-item과 형제 관계라 기존 :hover .suda-mega(자손 선택자)로는
   안 잡혀서 별도 규칙 필요. 어느 region 탭을 열어도 항상 같은(왼쪽 고정) 위치에 뜬다.
   패널 자체에도 :hover를 걸어야 함 - 형제 선택자라 탭에서 패널로 마우스를 내리는 순간 탭의
   :hover가 풀리는데, 패널 자체 hover 규칙이 없으면 패널에 마우스가 닿기도 전에 사라져버림 */
.suda-gnb-item.is-region-trigger:hover ~ .suda-mega-shared[data-mega="region"],
.suda-gnb-item.is-region-trigger.is-open ~ .suda-mega-shared[data-mega="region"],
.suda-mega-shared[data-mega="region"]:hover{
    display: block;
}
/* korea만 원본처럼 2단(600px), region/cruise는 원본처럼 동일하게 3단(800px) */
.suda-mega[data-mega="korea"]{ width: 600px; }
.suda-mega[data-mega="region"],
.suda-mega[data-mega="cruise"]{ width: 800px; }

.suda-mega-grid{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px 32px;
}
.suda-mega[data-mega="korea"] .suda-mega-grid{
    grid-template-columns: repeat(2, 1fr);
}
.suda-mega-col-title{
    display: flex;
    align-items: center;
    gap: 6px;
    font-weight: 700;
    font-size: 14px;
    color: var(--suda-blue);
    border-bottom: 1px solid #eef2ff;
    padding-bottom: 8px;
    margin-bottom: 10px;
}
/* 국가 플래그 이미지(flagcdn.com svg) 기본 크기 — 지정 안 하면 원본 svg 크기로 커짐 */
.suda-region-flag{
    display: inline-block;
    width: 20px;
    height: 20px;
    object-fit: cover;
    border-radius: 3px;
    flex-shrink: 0;
}
/* korea 전용 (2단: 지역명 + 도시 나열) */
.suda-mega-leaf-list{
    display: flex;
    flex-wrap: wrap;
    gap: 4px 10px;
}
.suda-mega-leaf{
    font-size: 13px;
    color: var(--suda-gray-500);
}
.suda-mega-leaf:hover{ color: var(--suda-blue); }
/* region/cruise 전용 (3단: 지역명 > 국가/항구 > 도시/노선) */
.suda-mega-mid-list{
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.suda-mega-mid-name{
    display: block;
    font-size: 14px;
    font-weight: 700;
    color: var(--suda-gray-900);
    margin-bottom: 4px;
}
.suda-mega-mid-name:hover{ color: var(--suda-blue); }
.suda-mega-more{
    font-size: 13px;
    color: var(--suda-gray-400);
}

/* QuickMenu (헤더 하단 10아이콘 퀵메뉴) */
.suda-quickmenu{
    background: #fff;
}
.suda-quickmenu-inner{
    max-width: 1280px;
    margin: 0 auto;
    padding-block: 48px;
    padding-inline: 32px;
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 16px 8px;
}
.suda-quickmenu-item{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 12px;
    text-align: center;
}
.suda-quickmenu-icon{
    position: relative;
    width: 64px;
    height: 64px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
    transition: transform .2s ease, box-shadow .2s ease;
}
.suda-quickmenu-item:hover .suda-quickmenu-icon{
    transform: translateY(-4px);
    box-shadow: 0 10px 20px rgba(37,99,235,.12);
}
.suda-quickmenu-live-badge{
    position: absolute;
    top: -2px;
    right: -2px;
    width: 12px;
    height: 12px;
}
.suda-quickmenu-live-ping{
    position: absolute;
    inset: 0;
    border-radius: 999px;
    background: var(--suda-red);
    opacity: .75;
    animation: suda-ping 1.6s cubic-bezier(0,0,.2,1) infinite;
}
.suda-quickmenu-live-dot{
    position: relative;
    box-sizing: border-box;
    width: 12px;
    height: 12px;
    border-radius: 999px;
    background: var(--suda-red);
}
.suda-quickmenu-label{
    font-size: 14px;
    font-weight: 700;
    color: var(--suda-gray-700);
}
.suda-quickmenu-item:hover .suda-quickmenu-label{ color: var(--suda-blue); }

/* 검색창 : 1280px 미만(햄버거 모드)에서는 로고-검색-햄버거 3분할로 가운데 꽉 채워 노출 */
.suda-search{
    position: relative;
    display: flex;
    flex: 1 1 auto;
    min-width: 0;
}
.suda-search fieldset{ flex: 1 1 auto; min-width: 0; }
.suda-search input{
    width: 100%;
    background: var(--suda-gray-100);
    border: 0;
    border-radius: 999px;
    padding: 8px 14px 8px 34px;
    font-size: 14px;
    transition: width .2s ease, background .2s ease;
}
.suda-search input:focus{
    outline: 2px solid var(--suda-blue);
    background: #fff;
}
.suda-search i{
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--suda-gray-400);
    font-size: 14px;
}

/* 모바일 햄버거 버튼 */
.suda-burger{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    color: var(--suda-gray-700);
    background: none;
    border: 0;
    font-size: 21px;
}

/* ---------- 모바일 패널 ---------- */
.suda-mobile-panel{
    display: none;
    border-top: 1px solid var(--suda-gray-100);
    padding: 16px 20px 24px;
    max-height: calc(100vh - var(--suda-header-h));
    overflow-y: auto;
}
.suda-mobile-panel.is-open{ display: block; }

.suda-mobile-search{
    position: relative;
    margin-bottom: 14px;
}
.suda-mobile-search input{
    width: 100%;
    background: var(--suda-gray-100);
    border: 0;
    border-radius: 10px;
    padding: 10px 14px 10px 36px;
    font-size: 15px;
    box-sizing: border-box;
}
.suda-mobile-search i{
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--suda-gray-400);
}

.suda-m-toggle{
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    padding: 12px 2px;
    background: none;
    border: 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--suda-gray-900);
    text-align: left;
}
.suda-m-toggle i{ font-size: 20px; transition: transform .15s ease; color: var(--suda-gray-400); }
.suda-m-item.is-open .suda-m-toggle i{ transform: rotate(180deg); }
.suda-m-body{ display: none; padding: 0 2px 14px; }
.suda-m-item.is-open .suda-m-body{ display: block; }
.suda-m-region + .suda-m-region{ margin-top: 22px; }
.suda-m-region-title{
    font-size: 14px;
    font-weight: 700;
    color: var(--suda-blue);
    margin-bottom: 10px;
}
.suda-m-mid + .suda-m-mid{ margin-top: 14px; }
.suda-m-mid-name{
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--suda-gray-700);
    margin-bottom: 8px;
}
.suda-m-region-items{
    display: flex;
    flex-wrap: wrap;
    gap: 10px 14px;
    padding-left: 4px;
}
.suda-m-region-items a{ font-size: 14px; color: var(--suda-gray-700); }

.suda-m-special{
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 14px 2px;
    border-top: 1px solid var(--suda-gray-100);
    margin-top: 4px;
}
.suda-m-auth{
    display: flex;
    align-items: center;
    gap: 16px;
    padding: 14px 2px 2px;
    border-top: 1px solid var(--suda-gray-100);
    margin-top: 4px;
}
.suda-m-auth a, .suda-m-auth button{
    display: block;
    width: auto;
    text-align: left;
    background: none;
    border: 0;
    padding: 8px 0;
    font-size: 15px;
    font-weight: 700;
    color: var(--suda-gray-700);
}

.suda-bg-dim{
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(17,24,39,.35);
    z-index: 480;
}
.suda-bg-dim.is-open{ display: block; }

/* ---------- 브레이크포인트 ---------- */

@media (min-width: 768px){
    .suda-quickmenu-inner{ grid-template-columns: repeat(10, 1fr); }
}

@media (min-width: 1024px){
    .suda-topbar{ display: block; }
    body{ padding-top: calc(var(--suda-header-h) + 40px); }
}

/* PC 메뉴(GNB)/검색창은 1280px부터, 그 아래(1024~1279px 포함)는 햄버거 메뉴 유지 */
@media (min-width: 1280px){
    .suda-gnb{ display: flex; }
    .suda-search{ display: block; flex: 0 0 auto; }
    .suda-search input{ width: 192px; }
    .suda-search input:focus{ width: 256px; }
    .suda-burger{ display: none; }
}




@media screen and (max-width:1024px) {
    :root{ --suda-header-h: 9.38vw; }
    .suda-logo img{ width: 7.81vw; height: 7.81vw; }
    body{ font-size: 1.56vw; }
    h1, h2, h3, h4, h5, h6{ font-size: 2.93vw; }
    .suda-topbar{ font-size: 1.27vw; }
    .suda-ai-btn{ font-size: 1.07vw; }
    .suda-icon-btn .suda-tooltip{ font-size: 0.98vw; }
    .suda-icon-badge{ font-size: 0.88vw; }
    .suda-lang-trigger{ font-size: 1.07vw; }
    .suda-lang-trigger i{ font-size: 0.88vw; }
    .suda-lang-item{ font-size: 1.27vw; }
    .suda-gnb{ gap: 0.20vw; }
    .suda-gnb-link{ font-size: 1.37vw; }
    .suda-gnb-link{ padding-inline: 0.59vw; }
    .suda-gnb-link i{ font-size: 1.07vw; }
    .suda-live-link{ font-size: 1.37vw; }
    .suda-kwave-link{ font-size: 1.37vw; }
    .suda-mega-col-title{ font-size: 1.37vw; }
    .suda-mega-leaf{ font-size: 1.27vw; }
    .suda-mega-mid-name{ font-size: 1.37vw; }
    .suda-mega-more{ font-size: 1.27vw; }
    .suda-quickmenu-item{ gap: 1.17vw; }
    .suda-quickmenu-icon{ font-size: 2.93vw; width: 6.25vw; height: 6.25vw; }
    .suda-quickmenu-label{ font-size: 1.37vw; }
    .suda-search input{ font-size: 1.37vw; }
    .suda-search i{ font-size: 1.37vw; }
    .suda-burger{ font-size: 2.05vw; }
    .suda-mobile-search input{ font-size: 1.46vw; }
    .suda-m-toggle{ font-size: 1.46vw; }
    .suda-m-region-title{ font-size: 1.37vw; }
    .suda-m-region-items a{ font-size: 1.37vw; }
    .suda-m-auth a, .suda-m-auth button{ font-size: 1.46vw; }
    .suda-topbar-inner{ padding-block: 0.78vw; }
    .suda-topbar-inner{ padding-inline: 4.69vw; }
    .suda-header-main{ padding-inline: 4.69vw; }
    .suda-quickmenu-inner{ padding-block: 4.69vw; }
    .suda-quickmenu-inner{ padding-inline: 3.13vw; }
}




@media screen and (max-width:768px) {
    :root{ --suda-header-h: 12.50vw; }
    .suda-logo img{ width: 10.42vw; height: 10.42vw; }
    body{ font-size: 2.08vw; }
    h1, h2, h3, h4, h5, h6{ font-size: 3.91vw; }
    .suda-topbar{ font-size: 1.69vw; }
    .suda-ai-btn{ font-size: 1.43vw; }
    .suda-icon-btn .suda-tooltip{ font-size: 1.30vw; }
    .suda-icon-badge{ font-size: 1.17vw; }
    .suda-lang-trigger{ font-size: 1.43vw; }
    .suda-lang-trigger i{ font-size: 1.17vw; }
    .suda-lang-item{ font-size: 1.69vw; }
    .suda-gnb{ gap: 0.26vw; }
    .suda-gnb-link{ font-size: 1.82vw; }
    .suda-gnb-link{ padding-inline: 0.78vw; }
    .suda-gnb-link i{ font-size: 1.43vw; }
    .suda-live-link{ font-size: 1.82vw; }
    .suda-kwave-link{ font-size: 1.82vw; }
    .suda-mega-col-title{ font-size: 1.82vw; }
    .suda-mega-leaf{ font-size: 1.69vw; }
    .suda-mega-mid-name{ font-size: 1.82vw; }
    .suda-mega-more{ font-size: 1.69vw; }
    .suda-quickmenu-item{ gap: 1.56vw; }
    .suda-quickmenu-icon{ font-size: 3.91vw; width: 8.33vw; height: 8.33vw; }
    .suda-quickmenu-label{ font-size: 1.82vw; }
    .suda-search input{ font-size: 1.82vw; }
    .suda-search i{ font-size: 1.82vw; }
    .suda-burger{ font-size: 2.73vw; }
    .suda-mobile-search input{ font-size: 1.95vw; }
    .suda-m-toggle{ font-size: 1.95vw; }
    .suda-m-region-title{ font-size: 1.82vw; }
    .suda-m-region-items a{ font-size: 1.82vw; }
    .suda-m-auth a, .suda-m-auth button{ font-size: 1.95vw; }
    .suda-topbar-inner{ padding-block: 1.04vw; }
    .suda-topbar-inner{ padding-inline: 6.25vw; }
    .suda-header-main{ padding-inline: 6.25vw; }
    .suda-quickmenu-inner{ padding-block: 6.25vw; }
    .suda-quickmenu-inner{ padding-inline: 4.17vw; }
}




@media screen and (max-width:480px) {
    :root{ --suda-header-h: 20.00vw; }
    .suda-logo img{ width: 16.67vw; height: 16.67vw; }
    body{ font-size: 3.33vw; }
    h1, h2, h3, h4, h5, h6{ font-size: 6.25vw; }
    .suda-topbar{ font-size: 2.71vw; }
    .suda-ai-btn{ font-size: 2.29vw; }
    .suda-icon-btn .suda-tooltip{ font-size: 2.08vw; }
    .suda-icon-badge{ font-size: 1.88vw; }
    .suda-lang-trigger{ font-size: 2.29vw; }
    .suda-lang-trigger i{ font-size: 1.88vw; }
    .suda-lang-item{ font-size: 2.71vw; }
    .suda-gnb{ gap: 0.42vw; }
    .suda-gnb-link{ font-size: 2.92vw; }
    .suda-gnb-link{ padding-inline: 1.25vw; }
    .suda-gnb-link i{ font-size: 2.29vw; }
    .suda-live-link{ font-size: 2.92vw; }
    .suda-kwave-link{ font-size: 2.92vw; }
    .suda-mega-col-title{ font-size: 2.92vw; }
    .suda-mega-leaf{ font-size: 2.71vw; }
    .suda-mega-mid-name{ font-size: 2.92vw; }
    .suda-mega-more{ font-size: 2.71vw; }
    .suda-quickmenu-item{ gap: 2.50vw; }
    .suda-quickmenu-icon{ font-size: 6.25vw; width: 13.33vw; height: 13.33vw; }
    .suda-quickmenu-label{ font-size: 2.92vw; }
    .suda-search input{ font-size: 2.92vw; }
    .suda-search i{ font-size: 2.92vw; }
    .suda-burger{ font-size: 4.38vw; }
    .suda-mobile-search input{ font-size: 3.12vw; }
    .suda-m-toggle{ font-size: 3.12vw; }
    .suda-m-region-title{ font-size: 2.92vw; }
    .suda-m-region-items a{ font-size: 2.92vw; }
    .suda-m-auth a, .suda-m-auth button{ font-size: 3.12vw; }
    .suda-topbar-inner{ padding-block: 1.67vw; }
    .suda-topbar-inner{ padding-inline: 10.00vw; }
    .suda-header-main{ padding-inline: 10.00vw; }
    .suda-quickmenu-inner{ padding-block: 10.00vw; }
    .suda-quickmenu-inner{ padding-inline: 6.67vw; }
}



/* ==========================================================================
   로그인 모달
   ========================================================================== */
body.suda-modal-open{ overflow: hidden; }

.suda-login-overlay{
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.6);
    z-index: 2000;
    align-items: center;
    justify-content: center;
    padding: 20px;
    overflow-y: auto;
}
.suda-login-overlay.is-open{ display: flex; }

.suda-login-modal{
    position: relative;
    width: 100%;
    max-width: 460px;
    max-height: calc(100vh - 40px);
    overflow-y: auto;
    background: #fff;
    border-radius: 24px;
    padding: 44px 36px 32px;
    box-sizing: border-box;
    box-shadow: 0 24px 60px rgba(17,24,39,.25);
}
.suda-login-close{
    position: absolute;
    top: 16px;
    right: 16px;
    width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: 0;
    border-radius: 999px;
    color: var(--suda-gray-400);
    font-size: 18px;
    cursor: pointer;
}
.suda-login-close:hover{ background: var(--suda-gray-50); color: var(--suda-gray-700); }

.suda-login-title{
    text-align: center;
    font-size: 26px;
    font-weight: 700;
    letter-spacing: -0.02em;
    color: var(--suda-gray-900);
    margin: 0 0 28px;
}

.suda-login-form{ display: flex; flex-direction: column; gap: 12px; }
.suda-login-field{
    position: relative;
    display: flex;
    align-items: center;
}
.suda-login-field .suda-icon{
    position: absolute;
    left: 16px;
    font-size: 18px;
    color: var(--suda-gray-400);
    pointer-events: none;
}
/* SUDA CUSTOM (2026-10-24): 선택박스·여러 줄 입력칸도 같은 모양 (K-컬처 제휴 문의 폼 등) */
.suda-login-field input,
.suda-login-field select,
.suda-login-field textarea{
    width: 100%;
    height: 52px;
    box-sizing: border-box;
    padding: 0 44px 0 44px;
    background: var(--suda-gray-50);
    border: 1px solid var(--suda-gray-200);
    border-radius: 12px;
    font-size: 15px;
    color: var(--suda-gray-900);
    transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.suda-login-field input::placeholder,
.suda-login-field textarea::placeholder{ color: var(--suda-gray-400); }
/* default.css의 input[type=text]:focus{ border:1px solid #558ab7 !important } 를 이겨야 해서 !important 사용 */
.suda-login-field input:focus,
.suda-login-field select:focus,
.suda-login-field textarea:focus{
    outline: none;
    background: #fff;
    border: 1px solid var(--suda-blue) !important;
    box-shadow: 0 0 0 3px rgba(65,84,255,.12);
}
.suda-login-field input:-webkit-autofill,
.suda-login-field input:-webkit-autofill:hover,
.suda-login-field input:-webkit-autofill:focus{
    -webkit-box-shadow: 0 0 0 1000px #fff inset;
    -webkit-text-fill-color: var(--suda-gray-900);
    border: 1px solid var(--suda-blue) !important;
}
/* SUDA CUSTOM (2026-10-24): 흰 배경 입력칸 - 회원가입(약관·이메일 인증·정보입력)·아이디/비밀번호 찾기(.suda-join/.suda-reginfo)와
   K-컬처 제휴 문의(.suda-login-field--plain)가 같이 쓴다. 예전에는 css/register.css 에 있던 규칙을 여기로 옮김 (한 곳만 고치면 같이 바뀜) */
.suda-join .suda-login-field input,
.suda-reginfo .suda-login-field input,
.suda-login-field--plain input,
.suda-login-field--plain select,
.suda-login-field--plain textarea{ background: #fff; padding: 0 20px; }
.suda-join .suda-login-field input:focus,
.suda-reginfo .suda-login-field input:focus,
.suda-login-field--plain input:focus,
.suda-login-field--plain select:focus,
.suda-login-field--plain textarea:focus{ box-shadow: none; }
/* 선택박스: 브라우저 기본 모양 대신 같은 칸 + 오른쪽 화살표 */
.suda-login-field select{
    -webkit-appearance: none;
    appearance: none;
    padding-right: 44px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23374151' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 18px center;
    cursor: pointer;
}
.suda-login-field select:invalid{ color: var(--suda-gray-400); }
.suda-login-field select option{ color: var(--suda-gray-900); }
/* 여러 줄 입력칸: 높이만 자유 */
.suda-login-field textarea{ height: auto; min-height: 160px; padding-top: 14px !important; padding-bottom: 14px !important; line-height: 1.6; resize: vertical; }
@media screen and (max-width:1024px){
    .suda-join .suda-login-field input, .suda-reginfo .suda-login-field input,
    .suda-login-field--plain input, .suda-login-field--plain select, .suda-login-field--plain textarea{ padding: 0 1.95vw; }
}
@media screen and (max-width:768px){
    .suda-join .suda-login-field input, .suda-reginfo .suda-login-field input,
    .suda-login-field--plain input, .suda-login-field--plain select, .suda-login-field--plain textarea{ padding: 0 2.60vw; }
}
@media screen and (max-width:480px){
    .suda-join .suda-login-field input, .suda-reginfo .suda-login-field input,
    .suda-login-field--plain input, .suda-login-field--plain select, .suda-login-field--plain textarea{ padding: 0 4.17vw; }
}

/* SUDA CUSTOM (2026-10-24): 회원가입 "다음/회원가입/정보수정" 버튼 - K-컬처 제휴 문의 버튼과 공용 (예전 css/register.css 에서 옮김) */
.suda-join-next{
    width: 100%;
    height: 52px;
    border: 0;
    border-radius: 12px;
    background: var(--suda-blue);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease;
}
.suda-join-next:hover{ background: var(--suda-blue-dark); }
.suda-join-next[disabled]{ background: var(--suda-gray-200); color: var(--suda-gray-400); cursor: not-allowed; }
.suda-join-next:focus-visible{ outline: 3px solid rgba(65, 84, 255, .35); outline-offset: 2px; }
@media screen and (max-width:1024px){ .suda-join-next{ height: 5.08vw; font-size: 1.56vw; } }
@media screen and (max-width:768px){ .suda-join-next{ height: 6.77vw; font-size: 2.08vw; } }
@media screen and (max-width:480px){ .suda-join-next{ height: 10.83vw; font-size: 3.33vw; } }

.suda-login-eye{
    position: absolute;
    right: 14px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: none;
    border: 0;
    color: var(--suda-gray-400);
    font-size: 18px;
    cursor: pointer;
}
.suda-login-eye:hover{ color: var(--suda-gray-700); }

.suda-login-submit{
    height: 52px;
    margin-top: 4px;
    background: var(--suda-blue);
    color: #fff;
    font-size: 16px;
    font-weight: 700;
    border: 0;
    border-radius: 12px;
    cursor: pointer;
    transition: background .15s ease;
}
.suda-login-submit:hover{ background: var(--suda-blue-dark); }

.suda-login-links{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 18px;
    font-size: 13px;
}
.suda-login-links a{ color: var(--suda-gray-500); }
.suda-login-links a:hover{ color: var(--suda-blue); }
.suda-login-find{ display: flex; align-items: center; gap: 12px; }
.suda-login-divider{ width: 1px; height: 12px; background: var(--suda-gray-200); }
.suda-login-join{ font-weight: 700; color: var(--suda-blue) !important; }
.suda-login-join:hover{ color: var(--suda-blue-dark) !important; }

.suda-login-or{
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 36px 0 28px;
    color: var(--suda-gray-400);
    font-size: 13px;
}
.suda-login-or::before,
.suda-login-or::after{
    content: '';
    flex: 1 1 auto;
    height: 1px;
    background: var(--suda-gray-100);
}

.suda-login-social{ display: flex; flex-direction: column; gap: 10px; }
.suda-social-btn{
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    height: 50px;
    border-radius: 12px;
    font-size: 15px;
    font-weight: 700;
    border: 1px solid transparent;
}
.suda-social-btn .suda-icon{ font-size: 18px; }
.suda-social-naver{ background: #03C75A; color: #fff; }
.suda-social-naver:hover{ background: #02b350; }
.suda-social-mark{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 13px;
    font-weight: 900;
    color: #03C75A;
    background: #fff;
    border-radius: 3px;
}
.suda-social-kakao{ background: #FEE500; color: #191600; }
.suda-social-kakao:hover{ background: #f5dc00; }
.suda-social-google,
.suda-social-facebook{ background: #fff; color: var(--suda-gray-900); border-color: var(--suda-gray-200); }
.suda-social-google:hover,
.suda-social-facebook:hover{ background: var(--suda-gray-50); }
.suda-social-google-icon{ flex-shrink: 0; }
.suda-social-facebook .suda-icon{ color: #1877F2; }

.suda-login-terms{
    margin: 22px 0 0;
    font-size: 12px;
    line-height: 1.6;
    color: var(--suda-gray-400);
    text-align: center;
}
.suda-login-terms a{ color: var(--suda-gray-500); text-decoration: underline; }
.suda-login-terms a:hover{ color: var(--suda-blue); }

@media (max-width: 480px){
    .suda-login-modal{ padding: 7.50vw 4.58vw 5.42vw; border-radius: 4.17vw; }
    .suda-login-title{ font-size: 4.58vw; margin-bottom: 4.58vw; }
    .suda-login-field input, .suda-login-field select{ height: 10.00vw; font-size: 2.92vw; }
    .suda-login-field textarea{ font-size: 2.92vw; }
    .suda-login-submit{ height: 10.00vw; font-size: 3.12vw; }
    .suda-social-btn{ height: 9.58vw; font-size: 2.92vw; }
}

/* ==========================================================================
   공통 레이아웃 클래스 (전 페이지 공용 - 메인/서브 게시판/마이페이지 등에서 재사용)

   [사용법]
   1) 배경 없이 컨텐츠만: <div class="contBox"> ... </div>
   2) 배경이 있는 섹션: <div style="background:#f7f7f7"> <div class="contBox"> ... </div> </div>
      (contBox는 폭만 잡고, 배경은 항상 그 바깥의 별도 div가 화면 끝까지 채운다)
   3) 서브페이지 상단 공통 타이틀: <div class="top-tltBox"><h2>페이지 제목</h2><p>부제목(선택)</p></div>
      그누보드가 자동으로 찍는 #container_title(왼쪽 정렬) 대신 각 스킨에서 이 마크업으로 교체해서 쓴다.
   ========================================================================== */
.contBox{
    max-width: 1280px;
    margin: 0 auto;
    padding-inline: 48px;
}

/* 메인(index)은 제외하고 서브페이지 #container(head.php에서 _INDEX_ 아닐 때만 이 클래스가 붙음)만
   위아래 여백을 준다 */
#container.suda-sub-container{ padding: 100px 0 150px; }

.top-tltBox{
    max-width: 1280px;
    margin: 0 auto;
    padding: 48px 48px 32px;
    text-align: center;
}
.top-tltBox h2{
    font-size: 28px;
    font-weight: 700;
    line-height: 1.35;
    letter-spacing: -0.01em;
    color: var(--suda-gray-900);
    margin: 0;
}
.top-tltBox p{
    font-size: 14px;
    color: var(--suda-gray-500);
    margin: 8px 0 0;
}

@media (max-width: 1024px){
    .contBox{ padding-inline: 5vw; }
    .top-tltBox{ padding: 4.69vw 4.69vw 3.13vw; }
    .top-tltBox h2{ font-size: 2.73vw; }
    .top-tltBox p{ font-size: 1.37vw; margin-top: 0.78vw; }
    #container_title{ padding-bottom: 3.13vw; font-size: 3.42vw; }
    #container.suda-sub-container{ padding: 9.77vw 0 14.65vw; }
    input[type="checkbox"].suda-form-check{ width: 2.15vw; height: 2.15vw; border-radius: 0.59vw; }
    input[type="radio"].suda-form-check{ width: 1.95vw; height: 1.95vw; }
    input[type="checkbox"].suda-form-check:checked::after{ left: 0.68vw; top: 0.29vw; width: 0.49vw; height: 1.07vw; }
    input[type="radio"].suda-form-check:checked::after{ width: 0.78vw; height: 0.78vw; }
}
@media (max-width: 768px){
    .contBox{ padding-inline: 5vw; }
    .top-tltBox{ padding: 6.25vw 6.25vw 4.17vw; }
    .top-tltBox h2{ font-size: 3.65vw; }
    .top-tltBox p{ font-size: 1.82vw; margin-top: 1.04vw; }
    #container_title{ padding-bottom: 4.17vw; font-size: 4.56vw; }
    #container.suda-sub-container{ padding: 13.02vw 0 19.53vw; }
    input[type="checkbox"].suda-form-check{ width: 2.86vw; height: 2.86vw; border-radius: 0.78vw; }
    input[type="radio"].suda-form-check{ width: 2.60vw; height: 2.60vw; }
    input[type="checkbox"].suda-form-check:checked::after{ left: 0.91vw; top: 0.39vw; width: 0.65vw; height: 1.43vw; }
    input[type="radio"].suda-form-check:checked::after{ width: 1.04vw; height: 1.04vw; }
}
@media (max-width: 480px){
    .contBox{ padding-inline: 5vw; }
    .top-tltBox{ padding: 10.00vw 10.00vw 6.67vw; }
    .top-tltBox h2{ font-size: 5.83vw; }
    .top-tltBox p{ font-size: 2.92vw; margin-top: 1.67vw; }
    #container_title{ padding-bottom: 6.67vw; font-size: 7.29vw; }
    #container.suda-sub-container{ padding: 20.83vw 0 31.25vw; }
    input[type="checkbox"].suda-form-check{ width: 4.58vw; height: 4.58vw; border-radius: 1.25vw; }
    input[type="radio"].suda-form-check{ width: 4.17vw; height: 4.17vw; }
    input[type="checkbox"].suda-form-check:checked::after{ left: 1.46vw; top: 0.63vw; width: 1.04vw; height: 2.29vw; }
    input[type="radio"].suda-form-check:checked::after{ width: 1.67vw; height: 1.67vw; }
}

/* ==========================================================================
   고객센터 섹션 (좌측메뉴 2단 레이아웃)
   head.php/tail.php가 $suda_is_cs 조건에서 아래 마크업을 씌운다:
   <div class="suda-cs-layout"><aside class="suda-cs-sidebar">...</aside>
   <div class="suda-cs-content"> (기존 게시판/FAQ/1:1문의 스킨이 그대로 여기 들어감) </div></div>
   대상 페이지: 공지사항 게시판(bo_table=notice), faq.php, qawrite.php, qalist.php, qaview.php
   ========================================================================== */
.suda-cs-layout{
    max-width: 1280px;
    margin: 0 auto;
    padding-inline: 48px;
    display: flex;
    align-items: flex-start;
    gap: 48px;
}
.suda-cs-sidebar{
    flex: 0 0 220px;
    width: 220px;
}
.suda-cs-sidebar-title{
    font-size: 22px;
    font-weight: 800;
    color: var(--suda-gray-900);
    padding-bottom: 16px;
    margin: 0 0 8px;
    border-bottom: 2px solid var(--suda-gray-900);
}
.suda-cs-sidebar-menu{ list-style: none; margin: 0; padding: 0; }
.suda-cs-sidebar-menu > li{ border-bottom: 1px solid var(--suda-gray-100); }
.suda-cs-sidebar-menu a{
    display: block;
    padding: 16px 4px;
    font-size: 15px;
    font-weight: 600;
    color: var(--suda-gray-700);
}
.suda-cs-sidebar-menu a:hover{ color: var(--suda-blue); }
.suda-cs-sidebar-menu a.is-active{ color: var(--suda-blue); font-weight: 800; }

.suda-cs-content{
    flex: 1 1 auto;
    min-width: 0; /* flex 아이템 안의 테이블/검색폼이 넓어져도 컬럼 밖으로 안 밀려나가게 */
}

/* 콘텐츠 영역 상단 제목줄 - 그누보드가 자동으로 찍는 큰 #container_title 대신,
   "현재 선택된 좌측메뉴 이름"을 사이드바 제목(.suda-cs-sidebar-title)보다 작게 여기 띄운다.
   head.php가 이 안에 제목(h3)을 넣고 div를 연 채로 두면, 뒤이어 렌더링되는 각 페이지의
   검색폼이 바로 이어서 같은 줄 오른쪽에 자연스럽게 배치되고, head.php가 바로 닫아버리면
   (검색폼을 안 옮기는 페이지) 제목 혼자만 한 줄을 차지한다. */
.suda-cs-content-header{
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 16px;
    margin-bottom: 24px;
}
.suda-cs-content-title{
    font-size: 20px;
    font-weight: 700;
    color: var(--suda-gray-900);
    margin: 0;
}
/* 기존 게시판/FAQ/QA 스킨이 자체적으로 .contBox(max-width:1280px + padding-inline:48px)로
   한번 더 가운데정렬/여백을 잡는데, 이미 .suda-cs-layout이 그 역할을 하고 있어서
   .suda-cs-content 안에서는 그 로직을 꺼서 이중 여백/이중 중앙정렬이 안 생기게 한다. */
.suda-cs-content .contBox{ max-width: none; margin: 0; padding-inline: 0; }
/* 스킨들이 #container_title을 감추고 쓰는 .top-tltBox(가운데정렬 큰 제목)도 폭 기준을
   .suda-cs-content로 맞춘다 */
.suda-cs-content .top-tltBox{ max-width: none; margin: 0; padding: 0 0 32px; text-align: left; }

/* 1024px부터 스택 레이아웃 - FAQ와 동일하게 좌측메뉴(게시판 탭)가 DOM 순서 그대로 위쪽에
   나오고, 콘텐츠가 그 아래에 옴(순서를 따로 안 바꿈). 사이트 공통 규칙대로 1024/768/480
   구간 전부 vw로(같은 목표 px를 각 구간 기준폭으로 나눠서 계산 - px/1024, px/768, px/480). */
@media (max-width: 1024px){
    .suda-cs-layout{ flex-direction: column; gap: 0; padding-inline: 5vw; }
    .suda-cs-content{ width: 100%; }
    .suda-cs-sidebar{
        position: static;
        width: 100%;
        flex-basis: auto;
        margin-bottom: 3.91vw;
    }
    .suda-cs-sidebar-title{ font-size: 1.76vw; padding-bottom: 1.17vw; }
    .suda-cs-sidebar-menu{
        display: flex;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        border-bottom: 1px solid var(--suda-gray-100);
    }
    .suda-cs-sidebar-menu li{ border-bottom: 0; flex: 0 0 auto; }
    .suda-cs-sidebar-menu a{ padding: 0.98vw 1.37vw; white-space: nowrap; }
    .suda-cs-content .top-tltBox{ padding-bottom: 1.95vw; }
    .suda-cs-content-header{ align-items: flex-start; margin-bottom: 1.56vw; }
    .suda-cs-content-header .suda-bo-search{ width: 100%; }
    .suda-cs-content-title{ font-size: 1.66vw; }
}
@media (max-width: 768px){
    .suda-cs-layout{ padding-inline: 5vw; }
    .suda-cs-sidebar{ margin-bottom: 5.21vw; }
    .suda-cs-sidebar-title{ font-size: 2.34vw; padding-bottom: 1.56vw; }
    .suda-cs-sidebar-menu a{ padding: 1.30vw 1.82vw; }
    .suda-cs-content .top-tltBox{ padding-bottom: 2.60vw; }
    .suda-cs-content-header{ margin-bottom: 2.08vw; }
    .suda-cs-content-title{ font-size: 2.21vw; }
}
@media (max-width: 480px){
    .suda-cs-layout{ padding-inline: 5vw; }
    .suda-cs-sidebar{ margin-bottom: 8.33vw; }
    .suda-cs-sidebar-title{ font-size: 3.75vw; padding-bottom: 2.50vw; }
    .suda-cs-sidebar-menu a{ padding: 2.08vw 2.92vw; }
    .suda-cs-content .top-tltBox{ padding-bottom: 4.17vw; }
    .suda-cs-content-header{ margin-bottom: 3.33vw; }
    .suda-cs-content-title{ font-size: 3.54vw; }
}

/* 반려 사유 박스 - 마이페이지(입점 신청 내역)와 입점 재신청 화면(/partner/apply/) 둘 다에서 씀 */
.suda-reject-box{ padding: 20px; border-radius: 12px; background: rgba(251,44,54,.06); margin-bottom: 20px; }
.suda-reject-box b{ display: block; margin-bottom: 8px; color: var(--suda-red); font-size: 15px; }
.suda-reject-box p{ margin: 0; color: var(--suda-gray-700); font-size: 14px; line-height: 1.6; white-space: pre-line; }
@media (max-width: 1024px){
    .suda-reject-box{ padding: 1.95vw; margin-bottom: 1.95vw; }
    .suda-reject-box b{ font-size: 1.46vw; margin-bottom: 0.78vw; }
    .suda-reject-box p{ font-size: 1.37vw; }
}
@media (max-width: 768px){
    .suda-reject-box{ padding: 2.60vw; margin-bottom: 2.60vw; }
    .suda-reject-box b{ font-size: 1.95vw; margin-bottom: 1.04vw; }
    .suda-reject-box p{ font-size: 1.82vw; }
}
@media (max-width: 480px){
    .suda-reject-box{ padding: 4.17vw; margin-bottom: 4.17vw; }
    .suda-reject-box b{ font-size: 3.13vw; margin-bottom: 1.67vw; }
    .suda-reject-box p{ font-size: 2.92vw; }
}

/* 상단바 AI 비서 버튼 (하단 AI 챗봇을 연다) */
.suda-topbar-ai{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border:0;border-radius:999px;background:#2563eb;color:#fff;font-size:12px;font-weight:700;cursor:pointer;line-height:1.6}
.suda-topbar-ai:hover{background:#1d4ed8}
.suda-topbar-ai svg{width:14px;height:14px}

/* SUDA CUSTOM (2026-10-24): 페이지 배경 흰색(css/default_shop.css #wrapper) - 회색 배경 위에서 선 없이 구분되던 흰 박스에 옅은 테두리 */
#sit_ov_from{ border: 1px solid var(--suda-gray-200); border-radius: 12px; }
