/* =====================================================
   view_layout.css — yeyak.jne.kr 스타일 레이아웃
   [id^="rsvt"] 로 specificity 강제 적용
   ===================================================== */

/* ── 주의사항 안내바 ── */
[id^="rsvt"] .rsvt-notice-bar {
    background: #f0f5ff;
    border: 1px solid #c8d8f0;
    border-left: 4px solid #1e4da4;
    border-radius: 6px;
    padding: 10px 16px;
    font-size: 15px;
    color: #444;
    margin-bottom: 20px;
    line-height: 1.6;
    text-align: center;
}
[id^="rsvt"] .rsvt-notice-bar strong { color: #1e4da4; margin-right: 6px; }

/* ── 섹션 공통 ── */
[id^="rsvt"] .rsvt-section {
    border: 1px solid #e0e4ea;
    border-radius: 12px;
    background: #fff;
    margin-bottom: 20px;
    overflow: hidden;
    width: 100%;
}
[id^="rsvt"] .section-title-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 18px;
    background: #f5f6f8;
    border-bottom: 1px solid #e0e4ea;
}
[id^="rsvt"] .section-title {
    font-size: 15px;
    font-weight: 600;
    color: #1a1f2e;
}
[id^="rsvt"] .selected-cl-name {
    font-size: 13px;
    color: #888;
}

/* ── 상단 2단: 이미지(좌) + 정보(우) ── */
[id^="rsvt"] .rsvt-top-wrap {
    display: flex;
    gap: 0;
    border: 1px solid #e0e4ea;
    border-radius: 12px;
    overflow: hidden;
    background: #fff;
    margin-bottom: 20px;
}

/* 갤러리 좌측 */
[id^="rsvt"] .rsvt-gallery {
    flex: 0 0 45%;
    min-height: 260px;
    background: #f5f6f8;  /* 연한 회색으로 변경 */
    position: relative;
    overflow: hidden;
    display: flex;          /* 추가 */
    align-items: center;    /* 추가 */
    justify-content: center; /* 추가 */
}
[id^="rsvt"] .rsvt-gallery .slickGallery {
    width: 100%;
    margin: 0;
    padding: 0;
}
[id^="rsvt"] .rsvt-gallery .slickGallery li { display: block; }
[id^="rsvt"] .rsvt-gallery .slickGallery img {
    width: 100%;
    height: 260px;
    object-fit: contain;        /* cover → contain */
    object-position: center center;
    display: block;
    margin: 0 auto;
}
[id^="rsvt"] .rsvt-gallery .slick-prev,
[id^="rsvt"] .rsvt-gallery .slick-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    z-index: 10;
    background: rgba(0,0,0,0.45);
    color: #fff;
    border: none;
    width: 32px;
    height: 48px;
    font-size: 22px;
    cursor: pointer;
    border-radius: 4px;
    line-height: 1;
}
[id^="rsvt"] .rsvt-gallery .slick-prev { left: 0; }
[id^="rsvt"] .rsvt-gallery .slick-next { right: 0; }
[id^="rsvt"] .gallery-loading,
[id^="rsvt"] .no-image {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 260px;
    color: #aaa;
    font-size: 13px;
}

/* 시설 정보 우측 */
[id^="rsvt"] .rsvt-info-side {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 0;
    border-left: 1px solid #e8eaee;
}
[id^="rsvt"] .rsvt-info-table { flex: 1; overflow-y: auto; }
[id^="rsvt"] .info-tbl { width: 100%; border-collapse: collapse; font-size: 13px; }
[id^="rsvt"] .info-tbl th {
    width: 26%;
    background: #f5f6f8;
    color: #555;
    font-weight: 500;
    padding: 11px 14px;
    border-bottom: 1px solid #eee;
    text-align: left;
    vertical-align: top;
    white-space: nowrap;
}
[id^="rsvt"] .info-tbl td {
    padding: 11px 14px;
    border-bottom: 1px solid #eee;
    color: #333;
    font-size: 13px;
    line-height: 1.6;
    vertical-align: top;
}
[id^="rsvt"] .info-tbl tr:last-child th,
[id^="rsvt"] .info-tbl tr:last-child td { border-bottom: none; }

/* 버튼 그룹 */
[id^="rsvt"] .rsvt-btn-group {
    display: flex;
    gap: 8px;
    padding: 12px 14px;
    border-top: 1px solid #e8eaee;
    background: #fafbfc;
    flex-wrap: wrap;
}

/* ── 공통 버튼 ── */
[id^="rsvt"] .rbtn {
    display: inline-block;
    padding: 8px 16px;
    font-size: 13px;
    font-weight: 500;
    border-radius: 6px;
    cursor: pointer;
    border: none;
    transition: background .15s;
    text-align: center;
    font-family: 'Noto Sans KR', sans-serif;
    text-decoration: none;
    box-sizing: border-box;
}
[id^="rsvt"] .rbtn-gray { background: #fff; color: #555; border: 1px solid #ccc; }
[id^="rsvt"] .rbtn-gray:hover { background: #f2f2f2; }
[id^="rsvt"] .rbtn-blue { background: #1e4da4; color: #fff !important; border: 1px solid #1e4da4; }
[id^="rsvt"] .rbtn-blue:hover { background: #163a82; }
[id^="rsvt"] .rbtn-green { background: #1e9e6e; color: #fff !important; border: none; }
[id^="rsvt"] .rbtn-green:hover { background: #167a55; }
[id^="rsvt"] .rbtn-lg { padding: 11px 32px; font-size: 14px; }

/* ── 달력 헤더 ── */
[id^="rsvt"] .cal-header {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    padding: 14px 20px;
    border-bottom: 1px solid #f0f2f5;
}
[id^="rsvt"] .cal-title { font-size: 17px; font-weight: 600; color: #1a1f2e; }
[id^="rsvt"] .cal-nav {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px; height: 32px;
    border-radius: 8px;
    border: 1px solid #ddd;
    font-size: 22px;
    color: #555;
    background: #fff;
    cursor: pointer;
    transition: all .15s;
    text-decoration: none;
    line-height: 1;
}
[id^="rsvt"] .cal-nav:hover { background: #eef3fb; border-color: #1e4da4; color: #1e4da4; }

/* 달력 범례 */
[id^="rsvt"] .cal-legend-inline {
    display: flex;
    gap: 12px;
    font-size: 12px;
    color: #888;
}
[id^="rsvt"] .cal-legend-inline span { display: flex; align-items: center; gap: 4px; }
[id^="rsvt"] .dot {
    width: 8px; height: 8px;
    border-radius: 50%;
    display: inline-block;
    flex-shrink: 0;
}
[id^="rsvt"] .dot.step02 { background: #3aaa5c; }
[id^="rsvt"] .dot.step03 { background: #e07010; }
[id^="rsvt"] .dot.dot-off { background: #ccc; }
[id^="rsvt"] .stepColor { display: inline-block; width: 8px; height: 8px; border-radius: 50%; }
[id^="rsvt"] .stepColor.step02 { background: #3aaa5c; }
[id^="rsvt"] .stepColor.step03 { background: #e07010; }

/* ── 달력 테이블 오버라이드 ── */
[id^="rsvt"] .rsvt-section .monthTable { border-top: none; padding: 10px; }
[id^="rsvt"] .rsvt-section .monthTable table { width: 100%; }
[id^="rsvt"] .rsvt-section .monthTable table thead th {
    border-top: none;
    font-size: 13px;
    padding: 10px 0;
    background: transparent;
    color: #666;
    font-weight: 500;
}
[id^="rsvt"] .rsvt-section .monthTable table td {
    height: auto;        /* ← 고정 해제 */
    min-height: 80px;    /* ← 최소 높이만 유지 */
    font-size: 11px;
    border: 1px solid #f0f2f5;
    padding: 5px 6px;
    vertical-align: top;
    border-radius: 4px;
    overflow: visible;
}
[id^="rsvt"] .rsvt-section .monthTable table td p {
    font-size: 10px;
    color: #888;
    line-height: 1.4;
    margin-top: 4px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
[id^="rsvt"] .rsvt-section .monthTable table td.today {
    border: 2px solid #1e4da4;
    background: #f0f5ff;
}

/* 클릭 가능 날짜 */
[id^="rsvt"] .cal-day-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px; height: 26px;
    border-radius: 50%;
    font-size: 13px;
    font-weight: 500;
    color: #222;
    cursor: pointer;
    transition: background .15s, color .15s;
    text-decoration: none;
}
[id^="rsvt"] .cal-day-link:hover { background: #eef3fb; color: #1e4da4; }
[id^="rsvt"] .monthTable table td a.cal-day-link.selected { background: #e8f0fe; border: 1.5px solid #1e4da4; color: #1e4da4; font-weight: 700; border-radius: 8px; }
[id^="rsvt"] .cal-day-disabled {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px; height: 26px;
    font-size: 13px;
    color: #bbb;
    cursor: default;
}
[id^="rsvt"] .cal-limit { font-size: 10px; color: #ccc; }

/* ── 시간 슬롯 ── */
[id^="rsvt"] .slot-wrap { padding: 16px 18px; }
[id^="rsvt"] .slot-group { margin-bottom: 16px; }
[id^="rsvt"] .slot-group:last-child { margin-bottom: 0; }
[id^="rsvt"] .slot-group-label {
    font-size: 13px;
    font-weight: 500;
    color: #555;
    margin-bottom: 10px;
    border-left: 3px solid #1e4da4;
    padding-left: 8px;
}
[id^="rsvt"] .slot-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
[id^="rsvt"] .slot-btn {
    padding: 7px 14px;
    font-size: 13px;
    font-weight: 400;
    border: 1px solid #d0d8e8;
    border-radius: 6px;
    background: #fff;
    color: #333;
    cursor: pointer;
    transition: all .15s;
    font-family: 'Noto Sans KR', sans-serif;
    min-width: 110px;
    text-align: center;
    line-height: 1.4;
}
[id^="rsvt"] .slot-btn:hover { background: #eef3fb; border-color: #1e4da4; color: #1e4da4; }
[id^="rsvt"] .slot-btn.active {
    background: #1e4da4;
    color: #fff;
    border-color: #1e4da4;
    font-weight: 500;
}
[id^="rsvt"] .slot-btn.disabled {
    background: #f5f5f5;
    color: #ccc;
    border-color: #eee;
    cursor: not-allowed;
    text-decoration: line-through;
}

/* ── 유의정보 textarea ── */
[id^="rsvt"] .rsvt-caution-wrap {
    display: flex;
    gap: 16px;
    padding: 16px 18px;
    border-bottom: 1px solid #f0f2f5;
}
[id^="rsvt"] .caution-box { flex: 1; }
[id^="rsvt"] .caution-label {
    display: block;
    font-size: 13px;
    font-weight: 500;
    color: #555;
    margin-bottom: 6px;
}
[id^="rsvt"] .caution-textarea {
    width: 100%;
    height: 100px;
    border: 1px solid #ddd;
    border-radius: 6px;
    padding: 8px 10px;
    font-size: 13px;
    font-family: 'Noto Sans KR', sans-serif;
    resize: vertical;
    box-sizing: border-box;
    color: #333;
}
[id^="rsvt"] .caution-textarea:focus { outline: none; border-color: #1e4da4; }

/* ── 예약 폼 내부 오버라이드 ── */
[id^="rsvt"] #rsvtFormContent { padding: 0 18px; }
[id^="rsvt"] #rsvtFormContent .inner-scroll { height: auto; overflow: visible; padding: 0; }
[id^="rsvt"] #rsvtFormContent h3 { display: none; }
[id^="rsvt"] #rsvtFormContent .tableWrap { margin-bottom: 16px; }
[id^="rsvt"] #rsvtFormContent a.close { display: none !important; }
[id^="rsvt"] #rsvtFormContent .artclInsert > div {height: auto !important;overflow: visible !important;}
Q
/* 예약 폼 하단 버튼 */
[id^="rsvt"] .rsvt-form-footer {
    display: flex;
    justify-content: center;
    gap: 12px;
    padding: 20px 18px;
    border-top: 1px solid #f0f2f5;
}

/* 안내로 돌아가기 버튼 */
input._btnA._btnMa._btnC1a {
    background: #fff;
    color: #555;
    border: 1px solid #ccc;
    border-radius: 6px;
    padding: 8px 24px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    font-family: 'Noto Sans KR', sans-serif;
    transition: background .15s;
    display: block;
    margin: 0 auto;
}
input._btnA._btnMa._btnC1a:hover {
    background: #f2f2f2;
    border-color: #aaa;
}

/* 나의 예약 내역 */
[id^="rsvt"] #rsvtMyListContent { padding: 18px; }
[id^="rsvt"] #rsvtMyListContent a.close { display: none !important; }
[id^="rsvt"] #rsvtMyListContent h3 {
    font-size: 15px;
    font-weight: 600;
    color: #1a1f2e;
    padding-bottom: 10px;
    border-bottom: 2px solid #1e4da4;
    margin-bottom: 14px;
}
[id^="rsvt"] #rsvtMyListContent h3:before { display: none; }

/* ── 반응형 ── */
@media only screen and (max-width: 1024px) {
    [id^="rsvt"] .rsvt-gallery { flex: 0 0 50%; }
}
@media only screen and (max-width: 768px) {
    [id^="rsvt"] .rsvt-top-wrap { flex-direction: column; }
    [id^="rsvt"] .rsvt-gallery { flex: none; width: 100%; }
    [id^="rsvt"] .rsvt-gallery .slickGallery img { height: 200px; }
    [id^="rsvt"] .gallery-loading,
    [id^="rsvt"] .no-image { height: 200px; }
    [id^="rsvt"] .rsvt-info-side { border-left: none; border-top: 1px solid #e8eaee; }
    [id^="rsvt"] .rsvt-caution-wrap { flex-direction: column; }
    [id^="rsvt"] .slot-btn { min-width: calc(50% - 4px); }
    [id^="rsvt"] .section-title-bar { flex-direction: column; align-items: flex-start; gap: 6px; }
}
@media only screen and (max-width: 480px) {
    [id^="rsvt"] .slot-btn { min-width: 100%; }
    [id^="rsvt"] .rsvt-form-footer { flex-direction: column; }
    [id^="rsvt"] .rbtn-lg { width: 100%; }
}



/* ── artclRegistView 폼 스타일 재정의 ── */
[id^="rsvt"] #rsvtFormContent .artclItem { margin-bottom: 20px; }
[id^="rsvt"] #rsvtFormContent .artclForm {
    position: relative;
    border-bottom: 1px #dcdcdc solid;
    display: table;
    width: 100%;
    font-size: 14px;
}
[id^="rsvt"] #rsvtFormContent .artclLabel {
    position: relative;
    font-weight: 500;
    color: #000;
    width: 160px;
    background: #f5f5f5;
    padding: 15px 30px 15px 20px;
    display: table-cell;
    text-align: left;
    box-sizing: border-box;
}
[id^="rsvt"] #rsvtFormContent .artclInsert {
    display: table-cell;
    padding: 10px;
    vertical-align: middle;
    width: calc(100% - 160px);
}
[id^="rsvt"] #rsvtFormContent .artclInsert input[type="text"],
[id^="rsvt"] #rsvtFormContent .artclInsert select {
    line-height: 40px;
    height: 40px;
    padding: 0 9px;
    box-sizing: border-box;
    font-weight: 300;
    border: 1px solid #ddd;
    border-radius: 4px;
    font-family: 'Noto Sans KR', sans-serif;
}
[id^="rsvt"] #rsvtFormContent .artclInsert input[type="text"] { width: 80%; }
[id^="rsvt"] #rsvtFormContent .artclInsert textarea {
    font-family: 'Noto Sans KR', sans-serif;
    width: 80%;
    min-height: 100px;
    font-weight: 300;
    border: 1px solid #ddd;
    border-radius: 4px;
    box-sizing: border-box;
    padding: 8px;
}
[id^="rsvt"] #rsvtFormContent ._full { width: 84%; text-align: left; }
[id^="rsvt"] #rsvtFormContent ._half { width: 50%; float: left; }
[id^="rsvt"] #rsvtFormContent .ad { width: 84%; }
[id^="rsvt"] #rsvtFormContent mark.must {
    margin-left: 5px;
    width: 8px; height: 11px;
    text-indent: -5000px;
    background: url(/Web-home/fnct/rsvt/JW_rsvt_bass/images/must.gif) no-repeat;
    overflow: hidden;
    padding: 0;
    display: inline-block;
}
[id^="rsvt"] #rsvtFormContent .not-okay {
    color: #1e4da4;
    font-weight: 500;
}
[id^="rsvt"] #rsvtFormContent .stplatCn {
    padding: 10px 18px;
    font-size: 13px;
    color: #555;
    line-height: 1.6;
    text-align: center;
}
[id^="rsvt"] #rsvtFormContent .stplat-agree-wrap {
    text-align: center;
    padding: 6px 0 12px;
    font-size: 14px;
}
[id^="rsvt"] #rsvtFormContent input[type="button"]._bgstyle,
[id^="rsvt"] #rsvtFormContent ._button._bgstyle {
    background-color: #1e4da4;
    color: #fff;
    border: none;
    border-radius: 6px;
    padding: 7px 16px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: background .15s;
    font-family: 'Noto Sans KR', sans-serif;
}
[id^="rsvt"] #rsvtFormContent input[type="button"]._bgstyle:hover,
[id^="rsvt"] #rsvtFormContent ._button._bgstyle:hover {
    background-color: #163a82;
}
[id^="rsvt"] #rsvtFormContent input[type="button"]._bgstyle.dup-checked {
    background-color: #1e9e6e;
    color: #fff;
}
[id^="rsvt"] #rsvtFormContent input[type="button"]._bgstyle.dup-checked:hover {
    background-color: #167a55;
}
[id^="rsvt"] #rsvtFormContent ._button._bgstyle._hidden {
    display: none !important;
}
[id^="rsvt"] #rsvtFormContent .tableWrap table {
    border-top: 2px solid #353e4d;
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
[id^="rsvt"] #rsvtFormContent .tableWrap table th {
    background-color: #f5f6f8;
    color: #333;
    font-weight: 600;
    border-bottom: 1px solid #ddd;
    padding: 10px 5px;
    font-size: 14px;
}
[id^="rsvt"] #rsvtFormContent .tableWrap table td {
    border-bottom: 1px solid #e8eaee;
    padding: 10px;
    font-size: 14px;
    vertical-align: middle;
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

[id^="rsvt"] .slot-btn,
[id^="rsvt"] .slot-btn:hover,
[id^="rsvt"] .slot-btn:focus,
[id^="rsvt"] .slot-btn:active {
    text-decoration: none !important;
    outline: none !important;
    box-shadow: none !important;
    background-image: none !important;  
}

[id^="rsvt"] .slot-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    overflow: hidden;  
}
/* 달력 td 고정 높이 해제 */
[id^="rsvt"] .monthTable table td {
    height: auto !important;
    min-height: 70px !important;
    overflow: visible !important;
}
[id^="rsvt"] .monthTable table td .cal-day-link,
[id^="rsvt"] .monthTable table td .cal-day-disabled {
    display: block !important;
    margin-bottom: 4px !important;
    position: relative !important;
}
[id^="rsvt"] .monthTable table td ul {
    position: relative !important;
    margin-top: 2px !important;
}
[id^="rsvt"] .monthTable table td p {
    position: relative !important;
    font-size: 10px;
    line-height: 1.4;
    margin-top: 2px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
[id^="rsvt"] .slot-btn-booked {
    background: #fff0f0 !important;
    color: #c0392b !important;
    border-color: #e74c3c !important;
    cursor: not-allowed !important;
    opacity: 0.8;
}
[id^="rsvt"] .slot-btn-booked:hover {
    background: #fff0f0 !important;
}
[id^="rsvt"] .slot-btn-approved {
    background: #fde8e8 !important;
    color: #922b21 !important;
    border-color: #c0392b !important;
}
/* 대기중(미승인) — 주황색 */
[id^="rsvt"] .slot-btn-waiting {
    background: #fff;
    color: #f07000;
    border-color: #f07000;
}

/* 첨부파일 가져오기 버튼 강제 표시 */
[id^="rsvt"] #rsvtFormContent ._button._small._white {
    display: inline-block !important;
    visibility: visible !important;
}

[id^="rsvt"] #rsvtFormContent ._button._small {
    display: inline-block !important;
    visibility: visible !important;
}

/* td 전체를 클릭 가능하게 */
[id^="rsvt"] .monthTable table td {
  cursor: pointer;
}

/* td 안의 a 태그를 td 전체 크기로 확장 */
[id^="rsvt"] .monthTable table td a.cal-day-link {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  padding: 8px;
  box-sizing: border-box;
}

/* spopup05 — 예약 상세 팝업 */
#spopup05 {
    position: fixed;
    top: 0; left: 0;
    width: 100%; height: 100%;
    background: rgba(0,0,0,0.55);
    z-index: 3000;  /* guestFindOverlay(9999)보다 높게 */
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;  /* ✅ 추가 */
}

#spopup05 .popupInner {
    background: #fff;
    width: 90%;
    max-width: 680px;
    max-height: calc(85vh - 40px);
    overflow-y: auto;
    border-radius: 8px;
    padding: 28px;
    position: relative;
    box-shadow: 0 8px 30px rgba(0,0,0,0.2);
}

#spopup05 .popupHeader {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #e0e0e0;
}

#spopup05 .popupHeader strong {
    font-size: 18px;
}

#spopup05 .popupHeader button {
    background: none;
    border: 1px solid #ccc;
    border-radius: 4px;
    padding: 4px 10px;
    cursor: pointer;
    font-size: 14px;
}
#slotWrap {
    width: 100%;
    padding: 8px 0;
}