/* =========================
   Booking Page
   Scoped: [data-vk-scope]
   radius=0, compact, pro look
   ========================= */
/* 구글 폰트 (Inter & Noto Sans KR 조합) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;800&family=Noto+Sans+KR:wght@400;700;900&display=swap');

/*
[data-vk-scope] {
    !* 폰트 패밀리 설정 *!
    font-family: 'Inter', 'Noto Sans KR', -apple-system, sans-serif;
    -webkit-font-smoothing: antialiased;

    !* 변수 추가 *!
    --vk-navy: #0f172a; !* 조금 더 깊고 세련된 다크 네이비 *!
    --vk-red: #e11d48;  !* 생기 있는 레드 *!
}
*/

/* ===========================
   BOOKING: PRINT SUMMARY ONLY (LETTER)
   target: .vk-right .vk-summary
   =========================== */
@media print {

    @page { size: letter; margin: 0.5in; }

    html, body{
        background:#fff !important;
        color:#111 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    /* 1) Hide everything */
    body *{
        visibility: hidden !important;
    }

    /* 2) Show ONLY the summary card */
    .vk-right .vk-summary,
    .vk-right .vk-summary *{
        visibility: visible !important;
    }

    /* 3) Place summary at top-left and full width */
    .vk-right .vk-summary{
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: auto !important;

        width: 100% !important;
        max-width: 100% !important;

        margin: 0 !important;
        padding: 16px !important;

        background: #fff !important;
        border: 2px solid #062952 !important;
        box-shadow: none !important;
        border-radius: 0 !important;

        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    /* 4) Hide other sticky summary component (your @component) */
    .vk-right .booking-summary,
    .vk-right .vk-booking-summary,
    .vk-right .vk-summary + *{
        display: none !important;
        visibility: hidden !important;
    }

    /* 5) Header */
    .vk-summary-hd{
        font-size: 18pt !important;
        font-weight: 900 !important;
        letter-spacing: .6px !important;
        color: #062952 !important;

        padding-bottom: 10px !important;
        margin-bottom: 12px !important;

        border-bottom: 3px solid #062952 !important;
    }

    /* 6) Rows layout (label/value) */
    .vk-sum-row{
        display: grid !important;
        grid-template-columns: 1fr auto !important;
        gap: 12px !important;

        padding: 8px 0 !important;
        border-bottom: 1px solid #e8e8e8 !important;
    }

    .vk-sum-row .k{
        font-size: 11pt !important;
        font-weight: 800 !important;
        color: #062952 !important;
    }

    .vk-sum-row .v{
        font-size: 11pt !important;
        font-weight: 700 !important;
        color: #111 !important;
        text-align: right !important;
        white-space: nowrap !important;
    }

    /* long names wrap nicely */
    #S_Names{
        white-space: normal !important;
        text-align: right !important;
        max-width: 4.2in !important;
        word-break: break-word !important;
    }

    /* 7) Divider */
    .vk-sum-hr{
        height: 0 !important;
        border: 0 !important;
        border-top: 2px dashed #f8b600 !important;
        margin: 12px 0 !important;
    }

    /* 8) Total emphasis */
    .vk-strong,
    #S_Total{
        font-size: 13pt !important;
        font-weight: 900 !important;
        color: #111 !important;
    }

    /* Add highlight box just for Total row (CSS-only via :has) */
    .vk-sum-row:has(#S_Total){
        border: 2px solid #062952 !important;
        padding: 10px !important;
        margin-top: 10px !important;
        background: #f7f7ff !important;
    }

    /* 9) Hide print button itself when printing */
    .vk-print{
        display: none !important;
    }

    /* 10) Avoid weird breaks */
    .vk-summary, .vk-sum-row{
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
}

/* =========================
   TOP BAR 폰트 디테일
========================= */
[data-vk-scope] .vk-logo {
    font-weight: 800;
    font-size: 16px;
    letter-spacing: -0.02em; /* 약간 좁게 설정하면 더 단단해 보임 */
    color: #fff;
}

[data-vk-scope] .vk-title {
    font-weight: 400;
    font-size: 11px;
    letter-spacing: 0.05em; /* 타이틀은 오히려 살짝 띄우면 고급스러움 */
    text-transform: uppercase;
    opacity: 0.6;
}

[data-vk-scope] .vk-step {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: -0.01em;
}

/* =========================
   OFFER 폰트 디테일
========================= */
[data-vk-scope] .vk-offer-text {
    font-size: 13px;
    font-weight: 600;
    letter-spacing: -0.01em;
    line-height: 1; /* 갭 제거를 위해 높이 최적화 */
}

[data-vk-scope] .vk-pill {
    font-size: 10px;
    font-weight: 800;
    padding: 2px 6px;
    margin-right: 4px;
    border-radius: 2px; /* 아주 살짝 둥글게 하면 더 세련되어 보임 */
}

/* 10인 이상 강조 링크 스타일 */
[data-vk-scope] .vk-offer-text a {
    text-decoration: none;
    border-bottom: 1.5px solid rgba(255,255,255,0.6);
    padding-bottom: 1px;
    transition: all 0.2s ease;
}

[data-vk-scope] .vk-offer-text a:hover {
    border-bottom-color: #fff;
    opacity: 0.9;
}
[data-vk-scope]{
    --vk-ink:#0f172a;
    --vk-muted:#64748b;
    --vk-line:#e5e7eb;
    --vk-bg:#ffffff;
    --vk-navy:#0b1f3a;
    --vk-red:#b1002a;
    --vk-primary:#1d4ed8;
    --vk-pad:14px;
    --vk-gap:10px;
    --inp-h:40px;
    font-family: "Aptos", "Segoe UI", system-ui, sans-serif;
    letter-spacing: -0.02em; /* 타호마는 자간을 살짝 줄이면 더 예쁩니다 */
    color:var(--vk-ink);
}

[data-vk-scope], [data-vk-scope] *{ box-sizing:border-box; }
[data-vk-scope] .is-hidden{ display:none; }

/* =========================
   VK SCOPE BASE
========================= */
[data-vk-scope], [data-vk-scope] *{ box-sizing:border-box; }
[data-vk-scope] .is-hidden{ display:none; }

/* ✅ 기본 헤더 높이에 맞춰 조절 (필요시 값만 바꾸기) */
[data-vk-scope]{
    --vk-sticky-top: 115px; /* 기본 헤더 높이 (대충 70~110 사이로 맞추면 됨) */
}
.vk-pay-grid.is-disabled {
    opacity: .45;
    pointer-events: none;
    filter: grayscale(1);
}
.vk-pill{
    font-size:11px;
    font-weight:800;
    padding:6px 10px;
    border:1px solid #e2e8f0;
    border-radius:999px;
    background:#f8fafc;
    color:#0f172a;
}

.vk-pay-row{
    display:grid;
    grid-template-columns: 1fr 1fr;
    gap:12px;
}
@media (max-width: 768px){
    .vk-pay-row{ grid-template-columns: 1fr; }
}

.vk-pay-choice{
    margin-top:12px;
    display:grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap:12px;
    padding:12px;
    border:1px solid #e2e8f0;
    background:#f8fafc;
}
@media (max-width: 768px){
    .vk-pay-choice{ grid-template-columns: 1fr; }
}

.vk-check-row{
    display:flex;
    align-items:center;
    gap:10px;
    font-weight:700;
}

.accepted-cards{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    align-items:center;
    margin:10px 0;
}
.accepted-cards img{ height:24px; }

.vk-pay-grid{
    margin-top:12px;
    display:grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap:10px;
}
@media (max-width: 768px){
    .vk-pay-grid{ grid-template-columns: 1fr; }
}
.is-hidden { display:none !important; }

#CardGrid.is-disabled{
    opacity:.45;
    pointer-events:none;
    filter:grayscale(1);
}

.vk-pay-grid.is-disabled{
    opacity:.45;
    pointer-events:none;
    filter:grayscale(1);
}

#TermsLinkInline{
    font-weight:800;
    text-decoration: underline;
}
#TermsLinkInline:hover{
    opacity: .85;
}

.vk-actions{
    margin-top:14px;
    display:flex;
    gap:10px;
    flex-wrap:wrap;
}
.vk-btn[disabled]{ opacity:.5; cursor:not-allowed; }

.vk-btn-primary{
    background:#0f172a;
    color:#fff;
    border:1px solid #0f172a;
}
.vk-btn-outline{
    background:#fff;
    border:1px solid #0f172a;
    color:#0f172a;
}

.vk-footnote{
    margin-top:10px;
    font-size:12px;
    color:#64748b;
}


/* =========================
   HERO
========================= */
[data-vk-scope] .vk-hero{
    max-width:1140px;
    margin:0 auto;
    padding:12px 14px 0 14px;
}

[data-vk-scope] .vk-hero-img{
    width:100%;
    height:220px;
    background:#dbeafe;
    background-size:cover;
    background-position:center;
    border:1px solid var(--vk-line);
}

[data-vk-scope] .vk-hero-overlay{
    border:1px solid var(--vk-line);
    border-top:0;
    padding:14px;
    background:#fff;
}

[data-vk-scope] .vk-hero-kicker{
    font-size:22px;
    font-weight:1000;
}

[data-vk-scope] .vk-hero-sub{
    color:var(--vk-muted);
    margin-top:4px;
}


/* (가끔 필요한 경우) 달력 overlay도 같이 */
.ui-widget-overlay{
    z-index: 999998 !important;
}

/* =========================
   Address: 미국식 비율 (City 넓게 / State 중간 / Zip 좁게)
   ========================= */
[data-vk-scope] .vk-grid-addr{
    display:grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap:10px;
}
@media (max-width: 640px){
    [data-vk-scope] .vk-grid-addr{
        grid-template-columns: 1fr;
    }
}


/* =========================
   UL/LI "탭처럼" 들여쓰기
   ========================= */
[data-vk-scope] ul{
    padding-left: 1.25rem;
    margin: .5rem 0;
}
[data-vk-scope] ul li{
    padding-left: .25rem;
}

/* layout */
[data-vk-scope] .vk-hero-sub ul,
[data-vk-scope] .vk-hero-sub ol{
    list-style: disc;
/*    padding-left: 18px;*/
    padding-left: 1.2em;   /* ← TAB 한 칸 느낌 */
/*    margin: 5px 0 10px;*/
}

[data-vk-scope] .vk-hero-sub ol{
    list-style: decimal;
}

[data-vk-scope] .vk-hero-sub li{
/*    margin-bottom: 6px;*/
    line-height: 1.5;
}

[data-vk-scope] .vk-page{
    max-width:1140px;
    margin:0 auto;
    padding:12px 14px 28px 14px;
}
[data-vk-scope] .vk-shell{
    display:grid;
    grid-template-columns: minmax(0,1fr) 360px;
    gap:16px;
    align-items:start;
}
@media (max-width: 992px){
    [data-vk-scope] .vk-shell{ grid-template-columns:1fr; }
}

/* cards */
[data-vk-scope] .vk-card{
    background:#fff;
    border:1px solid var(--vk-line);
    border-radius:0;
    padding:var(--vk-pad);
}

[data-vk-scope] .vk-card-hd{
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:10px;
    border-bottom:1px solid var(--vk-line);
    padding-bottom:10px;
    margin-bottom:10px;
}
[data-vk-scope] .vk-card-title{ font-weight:1000; font-size:14px; }
[data-vk-scope] .vk-card-mini{ font-size:12px; color:var(--vk-muted); }
.insurance-simple {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 4px;
}

.insurance-simple-img {
    width: 40px;
    height: 25px;
    object-fit: cover;
    border-radius: 3px;
}

.insurance-simple .vk-label {
    position: static;
    transform: none;
    font-size: 11px;
    font-weight: 1000;
    color: #334155;
    text-transform: uppercase;
    padding: 0;
    background: none;
}
/* 이미지 기본 스타일 */
img[alt="Travel Insurance"] {
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
    border: 1px solid #e2e8f0;
}

/* 선택박스 hover 효과 */
/* =========================
   VK INPUT: label inside (row1) + value row2
   ========================= */
/* =========================
   VK INPUT: persistent in-field label (row1) + value row2
   ========================= */

/* 1) field를 라벨 오버레이용으로 */
[data-vk-scope] .vk-field{
    position:relative;
    display:block;
    min-width:0;
    margin-top:0;
}

/* 2) 라벨을 input 안으로 고정 배치 (항상 보임) */
/* =========================
   VK LABEL — subtitle style
   ========================= */
/* intl-tel-input wrapper full width */
.iti { width: 100%; display: block; }

/* keep existing input look */
.iti input.form-control {
    width: 100%;
    box-sizing: border-box;
}

/* space for flag + dial code */
.iti--separate-dial-code input.form-control{
    padding-left: 92px; /* 필요 시 80~110 조정 */
}

.iti__selected-flag{
    height: 100%;
    display: flex;
    align-items: center;
    padding: 0 10px;
}

.iti__country-list{ z-index: 99999; }

/* 기본 서브타이틀 (input 안 상단 고정) */
[data-vk-scope] .vk-field .vk-label{
    display:block !important;
    position:absolute;
    left:12px;
    top:8px;
    z-index:2;

    font-size:10px;          /* 🔹 subtitle 적정 사이즈 */
    line-height:1.2;
    color:#94a3b8;
    letter-spacing:.03em;
    font-weight:500;

    pointer-events:none;
}

/* 타이틀용 라벨 (조금 더 강조) */
[data-vk-scope] .vk-field-title .vk-label{
    display:block !important;
    position:absolute;
    left:12px;
    top:4px;
    z-index:2;

    font-size:14px;          /* 🔹 section / title 느낌 */
    line-height:1.25;
    font-weight:700;
    letter-spacing:.02em;
    color:#0f172a;

    pointer-events:none;
}
@media (max-width: 640px){
    [data-vk-scope] .vk-field .vk-label{
        font-size:11px;
    }
    [data-vk-scope] .vk-field-title .vk-label{
        font-size:13px;
    }
}

/* 3) input/select는 2줄 공간 확보 (값은 아래줄) */
[data-vk-scope] .vk-input{
    width:100%;
    border:1px solid var(--vk-line, #cbd5e1);
    background:#fff;
    color:var(--vk-ink, #0f172a);

    min-height:52px;
    padding:24px 12px 8px 12px;  /* ✅ 라벨자리(위) + 값(아래) */

    line-height:16px;
    font-weight: 900;
}

/* placeholder는 이제 필요 없으니 더 연하게 */
[data-vk-scope] .vk-input::placeholder{
    color:#cbd5e1;
}

/* hover/focus */
[data-vk-scope] .vk-input:hover{ border-color:#94a3b8; }
[data-vk-scope] .vk-input:focus{
    outline:none;
    border-color:#3b82f6;
    box-shadow:0 0 0 3px rgba(59,130,246,.1);
}

/* select도 동일하게 높이 맞춤 */
[data-vk-scope] select.vk-input{
    padding-top:22px;
    padding-bottom:10px;
}


/*[data-vk-scope] .vk-input{
    width:100%;
    height:var(--inp-h);
    padding:8px 10px;
    border:1px solid var(--vk-line);
    border-radius:0;
    font-size:13px;
    background:#fff;
    color:var(--vk-ink);
}*/

/* =========================
   NUMBER OF GUESTS – visible title inside input
   ========================= */

/* 타이틀용 필드 */
[data-vk-scope] .vk-field-title{
    position:relative;
}

/* 타이틀을 인풋 안 상단에 고정 */
[data-vk-scope] .vk-field-title .vk-label{
    display:block !important;
    position:absolute;
    left:12px;
    top:3px;
    z-index:2;
    margin-bottom:30px;   /* 👈 타이틀과 입력 사이 간격 */
    font-size:14px;
    font-weight:700;
    letter-spacing:.04em;
   /* text-transform:uppercase;*/
    color: #000000;

    pointer-events:none;
}

/* NUMBER OF GUESTS 영역 여백 확보 */
[data-vk-scope] .vk-field-title .vk-radio-row,
[data-vk-scope] .vk-field-title .vk-input{
    margin-top:30px;     /* 👈 기존 18px → 22px (여유 있게) */

}


[data-vk-scope] .vk-hint{ font-size:12px; color:var(--vk-muted); margin-top:2px; }

/* grids */
[data-vk-scope] .vk-grid-2{
    display:grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap:var(--vk-gap);
}
[data-vk-scope] .vk-grid-1{ display:grid; grid-template-columns:1fr; gap:10px; }
[data-vk-scope] .vk-grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
@media (max-width: 820px){
    [data-vk-scope] .vk-grid-3{ grid-template-columns:1fr; }
}


@media (max-width: 768px){
    [data-vk-scope] .vk-grid-2{ grid-template-columns:1fr; }
}
[data-vk-scope] .vk-inline{
    display:flex;
    gap:8px;
    align-items:center;
}
[data-vk-scope] .vk-radio-row{ display:flex; gap:10px; flex-wrap:wrap; }
[data-vk-scope] .vk-radio{
    display:flex; align-items:center; gap:8px;
    border:1px solid var(--vk-line);
    padding:8px 10px;
    border-radius:0;
    font-weight:900;
    cursor:pointer;
}
[data-vk-scope] .vk-radio input{ transform:translateY(1px); }

[data-vk-scope] .vk-radio input:checked + span{
    font-weight:800;
    color:#0f172a;
}

/* 선택 안 된 상태는 살짝 연하게 */
[data-vk-scope] .vk-radio span{
    font-weight:500;
    color:#475569;
}

/* guest cards */
[data-vk-scope] .vk-guest-grid{
    display:grid;
    grid-template-columns: repeat(2, minmax(0,1fr));
    gap:12px;
}
@media (max-width: 992px){
    [data-vk-scope] .vk-guest-grid{ grid-template-columns:1fr; }
}
[data-vk-scope] .vk-guest-card{
    border:1px solid var(--vk-line);
    background:#f8fafc;
    padding:12px;
}
[data-vk-scope] .vk-guest-hd{
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-bottom:1px solid var(--vk-line);
    padding-bottom:8px;
    margin-bottom:8px;
}
[data-vk-scope] .vk-guest-title{ font-weight:1000; font-size:13px; }
[data-vk-scope] .vk-chip{
    font-size:11px;
    font-weight:1000;
    padding:3px 8px;
    border:1px solid var(--vk-line);
    background:#fff;
}
[data-vk-scope] .vk-check{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:12px;
    font-weight:900;
    color:var(--vk-muted);
}
[data-vk-scope] .vk-same{ color:var(--vk-ink); }

/* payment */
[data-vk-scope] .vk-pay-row{
    display:grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap:var(--vk-gap);
}
@media (max-width: 992px){
    [data-vk-scope] .vk-pay-row{ grid-template-columns:1fr; }
}
[data-vk-scope] .vk-secure{
    margin-top:12px;
    border:1px solid var(--vk-line);
    background:#f8fafc;
    padding:12px;
}
[data-vk-scope] .vk-secure-hd{ font-weight:1000; margin-bottom:6px; }
[data-vk-scope] .vk-pay-grid{
    display:grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap:var(--vk-gap);
    margin-top:10px;
}
@media (max-width: 992px){
    [data-vk-scope] .vk-pay-grid{ grid-template-columns:1fr; }
}

/* buttons */
[data-vk-scope] .vk-actions{
    display:flex;
    justify-content:space-between;
    gap:10px;
    margin-top:12px;
}
[data-vk-scope] .vk-btn{
    height:40px;
    padding:0 14px;
    border:1px solid var(--vk-line);
    background:#fff;
    font-weight:1000;
    border-radius:0;
    cursor:pointer;
}
[data-vk-scope] .vk-btn-primary{
    background:var(--vk-red);
    border-color:var(--vk-red);
    color:#fff;
}
[data-vk-scope] .vk-btn-ghost{
    background:#fff;
}
[data-vk-scope] .vk-btn:disabled{ opacity:.45; cursor:not-allowed; }

/* summary sticky */
[data-vk-scope] .vk-right{ position:relative; }
[data-vk-scope] .vk-summary{
    position:sticky;
    top:74px;
    border:1px solid var(--vk-line);
    background:#fff;
    padding:14px;
}
[data-vk-scope] .vk-summary-hd{
    font-weight:1000;
    font-size:12px;
    letter-spacing:.08em;
    color:#334155;
    border-bottom:1px solid var(--vk-line);
    padding-bottom:10px;
    margin-bottom:10px;
}
[data-vk-scope] .vk-sum-row{
    display:flex;
    justify-content:space-between;
    gap:10px;
    padding:7px 0;
    border-bottom:1px dashed var(--vk-line);
    font-size:13px;
}
[data-vk-scope] .vk-sum-row .k{ color:var(--vk-muted); }
[data-vk-scope] .vk-sum-row .v{ font-weight:900; text-align:right; }
[data-vk-scope] .vk-sum-hr{ height:1px; background:var(--vk-line); margin:10px 0; }
[data-vk-scope] .vk-strong{ font-size:16px; }
[data-vk-scope] .vk-print{ width:100%; margin-top:12px; }

/* modal */
[data-vk-scope] .vk-modal{
    position:fixed; inset:0;
    background:rgba(0,0,0,.55);
    z-index:2000;
    display:flex;
    align-items:flex-start;
    justify-content:center;
    padding-top:6vh;
}
[data-vk-scope] .vk-modal{
    position: fixed;
    inset: 0;                     /* top/right/bottom/left = 0 */
    display: flex;
    align-items: center;          /* 세로 중앙 */
    justify-content: center;      /* 가로 중앙 */
    background: rgba(0,0,0,.5);
    z-index: 1000;
}

[data-vk-scope] .vk-modal-card{
    width: min(740px, 92vw);
    background: #fff;
    border-radius: 0;
    border: 1px solid var(--vk-line);
    max-height: 90vh;
    overflow-y: auto;
}

[data-vk-scope] .vk-modal-hd{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:12px 14px;
    border-bottom:1px solid var(--vk-line);
}
[data-vk-scope] .vk-modal-title{ font-weight:1000; }
[data-vk-scope] .vk-modal-body{
    padding:14px;
    color:#111;
    line-height:1.6;
}
[data-vk-scope] .vk-modal-ft{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    padding:12px 14px;
    border-top:1px solid var(--vk-line);
}

/* print */
@media print{
    [data-vk-scope] .vk-topbar,
    [data-vk-scope] .vk-offer,
    [data-vk-scope] .vk-hero{ display:none !important; }

    [data-vk-scope] .vk-shell{ grid-template-columns:1fr; }
    [data-vk-scope] .vk-summary{ position:static; top:auto; }
}

     /* ===== HOLD / RESERVE 버튼 활성 시 강조 ===== */
 #ReserveOnlyBtn{
     transition: background .15s ease, border-color .15s ease, color .15s ease;
 }

     /* =========================================================
        STEP 3 (Payment) - VKStep4Payment ONLY
        ========================================================= */

     /* 기본 hidden */
 #VKStep4Payment .is-hidden{
     display:none !important;
 }



/* =========================================================
   Payment choice (radio-like checkbox)
   ========================================================= */

#VKStep4Payment .vk-pay-choice{
    display:flex;
    flex-direction:column;
    gap:10px;
}

#VKStep4Payment .vk-choice-row{
    display:flex;
    align-items:center;
    gap:12px;
    padding:10px 12px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#fff;
    cursor:pointer;
    user-select:none;
    transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}

#VKStep4Payment .vk-choice-row:hover{
    border-color:#cbd5e1;
}

/* native checkbox 숨김 */
#VKStep4Payment .vk-choice-row input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

/* dot */
#VKStep4Payment .vk-dot{
    width:22px;
    height:22px;
    border:2px solid #94a3b8;
    border-radius:999px;
    display:inline-block;
    background:#fff;
    box-sizing:border-box;
}

/* checked dot */
#VKStep4Payment .vk-choice-row input:checked + .vk-dot{
    border-color:#1e3a8a;
    background: radial-gradient(circle at center, #1e3a8a 0 42%, #fff 44% 100%);
}

/* 선택된 row 강조 */
#VKStep4Payment .vk-choice-row:has(input:checked){
    border-color:#1e3a8a;
    box-shadow:0 0 0 3px rgba(30,58,138,.10);
    background:#f8fafc;
}

/* choice text (크게 유지) */
#VKStep4Payment .vk-choice-text{
    font-size:18px;
    font-weight:900;
    letter-spacing:.2px;
    color:#0f172a;
}

/* terms link */
#VKStep4Payment #TermsLinkInline{
    font-weight:900;
    text-decoration:underline;
}

/* =========================================================
   HOLD / RESERVE 버튼: HOLD 선택 시 연한 파랑 강조
   (동일 기능 유지 + UX 인지 강화)
   ========================================================= */

#ReserveOnlyBtn{
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

/* HOLD 선택 상태면 HOLD 버튼 파랑빛 */
#VKStep4Payment .vk-choice-row:has(#OptHold:checked)
~ #Step4Actions #ReserveOnlyBtn{
    background:#e0ebff;
    border-color:#1e3a8a;
    color:#1e3a8a;
    font-weight:900;
}

/* PAY NOW 선택이면 HOLD 버튼 원복 */
#VKStep4Payment .vk-choice-row:has(#OptPayNow:checked)
~ #Step4Actions #ReserveOnlyBtn{
    background:transparent;
    border-color:#cbd5e1;
    color:#0f172a;
    font-weight:700;
}

/* =========================================================
   Card fields grid (60 / 20 / 10 / 10)
   ========================================================= */

#VKStep4Payment #CardGrid{
    display:flex;
    flex-wrap:wrap;
    gap:12px;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}

/* field wrapper */
#VKStep4Payment .vk-card-field{
    position:relative;
    min-width:0;
    box-sizing:border-box;
}

/* floating label */
#VKStep4Payment .vk-card-field .vk-label{
    display:block !important;
    position:absolute;
    left:12px;
    top:8px;
    z-index:2;
    font-size:10px;
    line-height:1.2;
    color:#94a3b8;
    letter-spacing:.03em;
    font-weight:500;
    pointer-events:none;
}

/* input */
#VKStep4Payment .vk-card-field input{
    height:48px;
    padding:20px 12px 8px;  /* label 공간 확보 */
    font-weight:700;
    min-width:0;
    box-sizing:border-box;
}

/* disabled card grid */
#VKStep4Payment #CardGrid.is-disabled{
    opacity:.45;
    pointer-events:none;
    filter:grayscale(1);
}

/* desktop proportions */
#VKStep4Payment .card-number{ flex:1 1 50%; }
#VKStep4Payment .card-exp{    flex:0 1 20%; }
#VKStep4Payment .card-cvv{    flex:0 1 10%; }
#VKStep4Payment .card-zip{    flex:0 1 10%; }

/* responsive */
@media (max-width: 820px){
    #VKStep4Payment .card-number{ flex:1 1 100%; }
    #VKStep4Payment .card-exp{    flex:1 1 calc(50% - 6px); }
    #VKStep4Payment .card-cvv{    flex:1 1 calc(25% - 6px); }
    #VKStep4Payment .card-zip{    flex:1 1 calc(25% - 6px); }
}


/* =========================================================
   PRINT FIX: Summary 2개 나오는 문제 해결 + Summary 전문 스타일
   - Tour booking: .vk-summary가 있으면 → vk-summary 1개만 출력
   - Edit/Create: .reservation-side-panel이 있으면 → 그쪽 summary만 출력
   - 서로 동시에 있으면 2개 출력 방지 (has 사용)
   ========================================================= */
@media print {

    @page { size: letter; margin: 0.6in; }

    /* ---------- A) "2개 나오는 것"만 확실히 제거 ---------- */

    /* 1) vk-summary가 여러 개면 첫 번째만 남김 */
    body:has(.vk-summary) .vk-summary:not(:first-of-type){
        display: none !important;
    }

    /* 2) booking-summary(컴포넌트) 같이 있으면 숨김 (중복 원인 1순위) */
    body:has(.vk-summary) .booking-summary,
    body:has(.vk-summary) .vk-booking-summary,
    body:has(.vk-summary) .vk-summary + .booking-summary,
    body:has(.vk-summary) .vk-summary + *{
        display: none !important;
    }

    /* 3) booking 페이지에서 reservation-side-panel(dynamicSummary)까지 같이 있으면 숨김 */
    body:has(.vk-summary) .reservation-side-panel{
        display: none !important;
    }

    /* 4) 반대로, edit/create 페이지에서 reservation-side-panel이 있으면 vk-summary 숨김 */
    body:has(.reservation-side-panel) .vk-summary{
        display: none !important;
    }


    /* ---------- B) Summary "전문적으로" 보이게 스타일 ---------- */

    /* ====== 1) vk-summary 인쇄 스타일 (Tour booking) ====== */
    .vk-summary{
        background:#fff !important;
        border: 2px solid #062952 !important;
        box-shadow:none !important;
        padding: 22px !important;
    }

    .vk-summary::before{
        content:"";
        display:block;
        height:70px;
        background: url("/img/logo.png") left center / 160px auto no-repeat;
        border-bottom:3px solid #062952;
        margin-bottom:12px;
    }

    .vk-summary-hd{
        font-size: 18pt !important;
        font-weight: 900 !important;
        color:#062952 !important;
        letter-spacing:.4px !important;
        margin: 0 0 6px 0 !important;
    }

    .vk-summary-hd::after{
        content:
                "OlleKorea  |  info@OlleKorea.com  |  www.OlleKorea.com\A"

        white-space: pre-line;
        display:block;
        font-size:10pt;
        font-weight:600;
        color:#444;
        margin-top:6px;
        line-height:1.45;
    }

    .vk-sum-row{
        display:grid !important;
        grid-template-columns: 1fr auto !important;
        gap: 12px !important;
        padding: 10px 0 !important;
        border-bottom: 1px solid #e5e5e5 !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .vk-sum-row .k{
        font-weight: 900 !important;
        color:#062952 !important;
        font-size: 11.5pt !important;
    }

    .vk-sum-row .v{
        font-weight: 700 !important;
        font-size: 11.5pt !important;
        text-align: right !important;
        max-width: 4.6in !important;
        word-break: break-word !important;
        white-space: normal !important;
    }

    /* Total 강조 */
    .vk-sum-row:has(#S_Total){
        border: 2px solid #062952 !important;
        padding: 12px !important;
        margin-top: 12px !important;
        background: #f7f7ff !important;
    }

    /* Print 버튼 숨김 */
    .vk-print{ display:none !important; }

    /* Footer */
    .vk-summary::after{
        content:
                "\A\AThis document serves as an official Booking Summary and may be used as proof of reservation.\A"
                "© OlleKorea";
        white-space: pre-line;
        display:block;
        margin-top: 18px;
        padding-top: 12px;
        border-top: 1px solid #cfcfcf;
        font-size: 9.5pt;
        color:#555;
        line-height: 1.5;
    }


    /* ====== 2) reservation-side-panel 인쇄 스타일 (Edit/Create) ====== */
    .reservation-form-section{
        background:#fff !important;
        border: 2px solid #062952 !important;
        box-shadow:none !important;
        padding: 22px !important;
    }

    .reservation-form-section::before{
        content:"";
        display:block;
        height:70px;
        background: url("/img/logo.png") left center / 160px auto no-repeat;
        border-bottom:3px solid #062952;
        margin-bottom:12px;
    }

    .section-title-main{
        font-size: 18pt !important;
        font-weight: 900 !important;
        color:#062952 !important;
        letter-spacing:.4px !important;
        margin: 0 0 6px 0 !important;
    }

    .section-title-main::after{
        content:
                "OlleKorea  |  info@OlleKorea.com  |  www.OlleKorea.com\A"

        white-space: pre-line;
        display:block;
        font-size:10pt;
        font-weight:600;
        color:#444;
        margin-top:6px;
        line-height:1.45;
    }

    .summary-row{
        display:grid !important;
        grid-template-columns: 1fr auto !important;
        gap: 12px !important;
        padding: 10px 0 !important;
        border-bottom: 1px solid #e5e5e5 !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }

    .summary-label{
        font-weight: 900 !important;
        color:#062952 !important;
        font-size: 11.5pt !important;
    }

    .summary-value{
        font-weight: 700 !important;
        font-size: 11.5pt !important;
        text-align:right !important;
        max-width: 4.6in !important;
        word-break: break-word !important;
        white-space: normal !important;
    }

    .summary-value table{
        width:100% !important;
        border-collapse:collapse !important;
        font-size: 10.5pt !important;
        margin-top: 6px !important;
    }

    .summary-value td{
        padding:4px 0 !important;
    }

    /* 마지막 Total 행 강조(테이블에서 border-top 쓰는 케이스) */
    .summary-value tr:last-child td{
        border-top: 2px solid #062952 !important;
        padding-top: 8px !important;
        font-weight: 900 !important;
        font-size: 12pt !important;
    }

    /* printSummary 버튼 숨김 */
    button[onclick="printSummary()"]{
        display:none !important;
    }
}



     /* HOLD 활성화 시 파란색 스타일 */
 .vk-btn-hold-active {
     background-color: #1e3a8a !important;
     color: #ffffff !important;
     border: none !important;
     opacity: 1 !important;
 }

/* PAY NOW 선택 시 HOLD 버튼 투명 비활성화 */
#HoldSelectBtn:disabled {
    background-color: transparent !important;
    border: 1px solid #ddd !important;
    color: #ccc !important;
    opacity: 0.3 !important;
    cursor: not-allowed;
    pointer-events: none;
}

/* PAY NOW 버튼 기본 비활성화 스타일 */
#PayNowBtn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
