/* ===== product.view2 (WAUG 스타일 v2) ===== */
.v2-wrap{max-width:1180px;margin:0 auto;padding:0 16px 120px;color:#1a1a1a;font-size:14px;}
.v2-wrap *{box-sizing:border-box;}
.v2-detail .v2-hero{width:100%;border-radius:14px;overflow:hidden;background:#f4f4f4;margin-top:16px;}
.v2-detail .v2-hero img{width:100%;display:block;}
.v2-detail .v2-title{font-size:22px;font-weight:800;line-height:1.4;margin:18px 0 8px;}
.v2-detail .v2-price{font-size:24px;font-weight:800;color:#29bcf0;}
.v2-detail .v2-price small{font-size:13px;color:#888;font-weight:500;margin-right:4px;}
.v2-detail .v2-desc{margin-top:24px;line-height:1.7;}
.v2-detail .v2-desc img{max-width:100%;height:auto;}

/* 하단 고정 결제하기 바 */
.v2-fixbar{position:fixed;left:0;right:0;bottom:0;z-index:120;background:#fff;border-top:1px solid #eee;padding:12px 16px;display:flex;align-items:center;gap:14px;box-shadow:0 -4px 16px rgba(0,0,0,.06);}
.v2-fixbar .pinfo{flex:1;min-width:0;}
.v2-fixbar .pinfo .pn{font-size:13px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.v2-fixbar .pinfo .pp{font-size:20px;font-weight:800;color:#1a1a1a;}
.v2-btn-pay{flex:0 0 auto;min-width:200px;height:54px;border:0;border-radius:12px;background:#111;color:#fff;font-size:17px;font-weight:700;cursor:pointer;}
.v2-btn-pay:active{opacity:.9;}

/* booking */
.v2-booking{display:flex;gap:32px;align-items:flex-start;padding-top:18px;}
.v2-cal-col{flex:1 1 auto;min-width:0;}
.v2-cal-head{position:relative;text-align:center;font-size:18px;font-weight:800;padding:6px 0 14px;}
.v2-cal-back{display:none;position:absolute;left:0;top:50%;transform:translateY(-50%);width:36px;height:36px;border:0;background:transparent;color:#333;cursor:pointer;padding:0;align-items:center;justify-content:center;}
.v2-cal-back svg{width:22px;height:22px;display:block;}
.v2-cal-scroll{max-height:calc(100vh - 160px);overflow-y:auto;padding-right:6px;}
.v2-month{margin-bottom:30px;}
.v2-month-label{font-size:18px;font-weight:800;margin:6px 0 12px;}
.v2-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px 0;}
.v2-dow{text-align:center;font-size:13px;color:#999;padding:6px 0;font-weight:600;}
.v2-dow.sun{color:#ff5b5b;}.v2-dow.sat{color:#5b7bff;}
.v2-cell{height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:10px;cursor:pointer;position:relative;}
.v2-cell.empty{cursor:default;}
.v2-cell .d{font-size:15px;font-weight:600;}
.v2-cell.sun .d{color:#ff5b5b;}.v2-cell.sat .d{color:#5b7bff;}
.v2-cell.disabled{cursor:default;}
.v2-cell.disabled .d{color:#d2d2d2;text-decoration:line-through;}
.v2-cell.ok:hover{background:#f3f3f3;}
.v2-cell.selected{background:#111;}
.v2-cell.selected .d{color:#fff;}
.v2-cell .today-mark{font-size:10px;color:#29bcf0;line-height:1;}
.v2-cell.selected .today-mark{color:#fff;}
/* (구) 셀 말풍선 로딩 — 화면 중앙 오버레이로 대체하여 미사용 */
.v2-cell .loading-tip{display:none !important;}

/* 화면 중앙 로딩 오버레이 */
.v2-loading-center{
 position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);
 display:none;align-items:center;gap:16px;
 background:rgba(17,17,17,.92);color:#fff;
 font-size:17px;font-weight:600;letter-spacing:-.2px;
 padding:20px 28px;border-radius:16px;white-space:nowrap;
 z-index:99999;box-shadow:0 10px 40px rgba(0,0,0,.35);
 pointer-events:none;
}
.v2-loading-center.show{display:inline-flex;}
.v2-spin{
 width:34px;height:34px;border-radius:50%;
 border:4px solid rgba(41,188,240,.25);border-top-color:#29bcf0;
 animation:v2spin .7s linear infinite;display:inline-block;vertical-align:middle;flex:0 0 auto;
}
@keyframes v2spin{to{transform:rotate(360deg);}}

/* 옵션 패널 (PC 우측 / 모바일 바텀시트) */
.v2-opt-col{flex:0 0 380px;width:380px;position:sticky;top:18px;}
/* 달력 미사용 booking: 옵션 패널만 풀폭 */
.v2-no-cal .v2-cal-scroll{display:none !important;}
.v2-no-cal.v2-booking{flex-direction:column;align-items:stretch;gap:0;}
.v2-no-cal .v2-cal-col{width:100%;flex:0 0 auto;}
.v2-no-cal .v2-opt-col{flex:1 1 auto;width:100%;max-width:720px;margin:0 auto;position:static;}
@media (min-width:901px){
 .v2-no-cal .v2-cal-back{display:inline-flex;}
}
.v2-panel{background:#fff;border:1px solid #e8e8e8;border-radius:16px;padding:0;box-shadow:0 6px 24px rgba(0,0,0,.05);display:flex;flex-direction:column;max-height:calc(100vh - 36px);overflow:hidden;}
.v2-panel-main{flex:1 1 auto;min-height:0;overflow-y:visible;overscroll-behavior:auto;padding:20px;padding-bottom:8px;}
.v2-panel-main.has-scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:auto;}
.v2-panel-date{font-size:17px;font-weight:800;text-align:center;margin-bottom:14px;}
.v2-panel-sticky-foot{flex-shrink:0;border-top:1px solid #eee;padding:12px 20px calc(12px + env(safe-area-inset-bottom));background:#fff;box-shadow:0 -4px 16px rgba(0,0,0,.06);}
.v2-panel-empty{color:#9aa0a6;text-align:center;padding:40px 0;}
.v2-cal-empty{color:#9aa0a6;text-align:center;padding:56px 16px;line-height:1.7;font-weight:600;}
.v2-acc{background:#fff;border:1px solid #ececec;border-radius:12px;margin-bottom:10px;overflow:hidden;}
.v2-acc-head{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;cursor:pointer;font-weight:700;}
.v2-acc-head .chev{transition:transform .2s;color:#bbb;}
.v2-acc.open .v2-acc-head .chev{transform:rotate(180deg);}
.v2-acc-body{display:none;padding:4px 16px 14px;}
.v2-acc.open .v2-acc-body{display:block;}
.v2-opt-row{padding:12px 0;border-top:1px solid #f2f2f2;}
.v2-opt-row:first-child{border-top:0;}
.v2-opt-name{font-size:14px;line-height:1.4;margin-bottom:8px;}
.v2-opt-name .v2-opt-desc-sub{display:block;margin-top:4px;font-size:12.5px;font-weight:500;color:#8a9099;line-height:1.45;}
.v2-opt-name .v2-opt-age{display:inline;margin-left:6px;font-size:inherit;font-weight:inherit;color:#8a9099;}
.v2-opt-bottom{display:flex;justify-content:space-between;align-items:center;}
.v2-opt-price{font-size:16px;font-weight:800;}
.v2-opt-price.soldout{color:#c9c9c9;font-weight:600;}
.v2-sale-box{display:flex;flex-direction:column;align-items:flex-end;gap:2px;text-align:right;}
.v2-original-price{text-decoration:line-through;color:#999;font-size:13px;font-weight:500;}
.v2-coupon-price{font-size:16px;font-weight:800;line-height:1.25;}
.v2-coupon-label{font-size:12px;font-weight:700;color:#e51212;margin-right:4px;}
.v2-acc-price-coupon{display:flex;flex-direction:column;align-items:flex-end;gap:2px;line-height:1.25;}
.v2-acc-price-coupon .v2-original-price{font-size:12px;}
.v2-acc-price-coupon .v2-coupon-label{font-size:11px;}
.v2-acc-price-coupon strong{font-size:15px;font-weight:800;}
.v2-stepper{display:flex;align-items:center;gap:14px;}
.v2-stepper button{width:30px;height:30px;border:1px solid #ddd;background:#fff;border-radius:8px;font-size:18px;line-height:1;cursor:pointer;color:#333;}
.v2-stepper button:disabled{color:#ddd;cursor:default;}
.v2-stepper .qty{min-width:18px;text-align:center;font-weight:700;color:#0e6def;}
.v2-soldout-badge{font-size:12px;color:#c9c9c9;}
/* 3단: 매진 안내 + 시간(중간단계) 선택 */
.v2-note{display:flex;gap:8px;align-items:flex-start;background:#f6f7f9;color:#7b8088;font-size:12.5px;line-height:1.5;border-radius:10px;padding:11px 13px;margin-bottom:14px;}
.v2-note .ic{color:#0e6def;flex:0 0 auto;}
.v2-sel-label{font-size:13px;font-weight:700;color:#333;margin:4px 0 8px;}
.v2-select{position:relative;margin-bottom:16px;}
.v2-select select{appearance:none;-webkit-appearance:none;width:100%;height:50px;border:1px solid #e2e2e2;border-radius:12px;background:#fafafa;padding:0 40px 0 15px;font-size:15px;font-weight:600;color:#222;cursor:pointer;}
.v2-select:after{content:"\25BE";position:absolute;right:16px;top:50%;transform:translateY(-50%);color:#999;pointer-events:none;}
.v2-select select option:disabled{color:#c9c9c9;}
.v2-time-group-mode .v2-acc-head{gap:12px;}
.v2-time-group-mode .v2-group.open{border-color:#d7e7ff;}
.v2-time-group-mode .v2-group.open .v2-acc-head{background:#eef5ff;}
.v2-time-group-mode .v2-group.open .v2-acc-body{background:#eef5ff;}
.v2-time-group-mode .v2-time-radio{width:18px;height:18px;border-radius:50%;border:2px solid #d4d8df;background:#fff;position:relative;flex:0 0 auto;}
.v2-time-group-mode .v2-group.open .v2-time-radio{border-color:#0e6def;background:#0e6def;}
.v2-time-group-mode .v2-group.open .v2-time-radio:after{content:"";position:absolute;left:4px;top:1px;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);}
.v2-time-group-mode .v2-acc-price,
.v2-time-group-mode .v2-coupon-price strong,
.v2-time-group-mode .v2-acc-price-coupon strong{color:#0e6def;}
.v2-panel-foot{margin-top:14px;border-top:1px solid #eee;padding-top:14px;}
.v2-total{display:flex;justify-content:space-between;align-items:center;font-size:15px;margin-bottom:12px;}
.v2-total strong{font-size:22px;font-weight:800;}
.v2-btn-next{width:100%;height:54px;border:0;border-radius:12px;background:#111;color:#fff;font-size:17px;font-weight:700;cursor:pointer;}
.v2-btn-next:disabled{background:#dcdcdc;cursor:default;}
.v2-skel{height:14px;border-radius:4px;background:linear-gradient(90deg,#eee 25%,#f5f5f5 37%,#eee 63%);background-size:400% 100%;animation:v2sk 1.2s ease-in-out infinite;}
@keyframes v2sk{0%{background-position:100% 50%;}100%{background-position:0 50%;}}

/* 모바일 바텀시트 */
.v2-sheet-dim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;}
.v2-sheet-dim.show{display:block;}
@media (max-width:900px){
 .v2-booking{display:block;}
 .v2-cal-head{padding:8px 36px 16px;}
 .v2-cal-back{display:inline-flex;}
 .v2-opt-col{position:fixed;left:0;right:0;bottom:0;top:0;width:100%;z-index:210;transform:translateY(100%);transition:transform .28s ease;display:flex;flex-direction:column;justify-content:flex-end;pointer-events:none;}
 .v2-opt-col.show{transform:translateY(0);pointer-events:auto;overscroll-behavior:contain;}
 .v2-opt-col.show .v2-panel{overscroll-behavior:contain;-webkit-overflow-scrolling:touch;}
 .v2-panel{
   border-radius:16px 16px 0 0;
   width:100%;
   height:calc(100dvh - env(safe-area-inset-top, 0px));
   max-height:calc(100dvh - env(safe-area-inset-top, 0px));
   min-height:0;
   flex:1 1 auto;
   display:flex;
   flex-direction:column;
   overflow:hidden;
   box-shadow:0 -6px 24px rgba(0,0,0,.08);
 }
 .v2-panel-main{
   flex:1 1 auto;
   min-height:0;
   overflow-y:auto;
   -webkit-overflow-scrolling:touch;
   overscroll-behavior:contain;
   padding:16px 16px 8px;
   padding-top:calc(16px + env(safe-area-inset-top, 0px) * 0);
 }
 .v2-panel-sticky-foot{
   padding:12px 16px calc(12px + env(safe-area-inset-bottom));
 }
 .v2-cal-scroll{max-height:none;}
 html.v2-sheet-open,
 html.v2-sheet-open body{
   overflow:hidden;
   height:100%;
 }
 html.v2-sheet-open body{
   position:static;
   left:0;
   right:0;
   width:100%;
 }
 html.v2-sheet-open .v2-cal-scroll{
   overflow:hidden !important;
   touch-action:none;
 }
 .v2-sheet-handle{width:42px;height:4px;border-radius:2px;background:#e0e0e0;margin:0 auto 12px;}
 .v2-sheet-close{position:absolute;right:12px;top:10px;border:0;background:none;font-size:32px;color:#999;cursor:pointer;width:44px;height:44px;display:flex;align-items:center;justify-content:center;}
 /* 달력 미사용: 바텀시트·딤 없이 헤더 아래 인라인 옵션 */
 .v2-no-cal .v2-opt-col{
   position:static;
   transform:none;
   z-index:auto;
   width:100%;
   padding:0 16px 16px;
 }
 .v2-no-cal .v2-opt-col.show{transform:none;}
 .v2-no-cal .v2-sheet-dim,
 .v2-no-cal .v2-sheet-dim.show{display:none !important;}
 .v2-no-cal .v2-sheet-handle,
 .v2-no-cal .v2-sheet-close{display:none !important;}
 .v2-no-cal .v2-panel-date{display:none;}
 .v2-no-cal .v2-panel{
   height:auto;
   max-height:none;
   border-radius:12px;
   box-shadow:0 2px 12px rgba(0,0,0,.06);
 }
 .v2-no-cal .v2-panel-main{padding-top:12px;}
}
@media (min-width:901px){
 .v2-sheet-handle,.v2-sheet-close{display:none;}
 /* PC: 우측 패널을 항상 노출, 바텀시트 딤(검은 오버레이)은 사용하지 않음 */
 .v2-sheet-dim,.v2-sheet-dim.show{display:none !important;}
}

/* 안내 모달 — 헤더/확인 고정, 본문만 스크롤 */
.v2-modal-dim{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:300;align-items:center;justify-content:center;padding:20px;}
.v2-modal-dim.show{display:flex;}
.v2-modal{background:#fff;border-radius:16px;max-width:460px;width:100%;max-height:min(90vh,640px);display:flex;flex-direction:column;overflow:hidden;padding:0;}
.v2-modal h3{font-size:19px;font-weight:800;margin:0;padding:20px 24px 12px;flex-shrink:0;display:flex;justify-content:space-between;align-items:center;}
.v2-modal .x{border:0;background:none;font-size:22px;color:#999;cursor:pointer;}
.v2-modal-body{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 24px;}
.v2-modal ul{margin:0;padding-left:18px;line-height:1.65;color:#444;}
.v2-modal ul li{margin-bottom:8px;word-break:keep-all;overflow-wrap:break-word;}
.v2-modal ul li:last-child{margin-bottom:0;}
.v2-modal .v2-btn-confirm{flex-shrink:0;width:calc(100% - 48px);height:52px;margin:16px 24px 24px;border:0;border-radius:12px;background:#111;color:#fff;font-size:16px;font-weight:700;cursor:pointer;}
@media (max-width:700px){
 .v2-modal-dim{padding:12px;}
 .v2-modal{max-height:85dvh;border-radius:14px;}
 .v2-modal h3{padding:16px 18px 10px;font-size:17px;}
 .v2-modal-body{padding:0 18px;}
 .v2-modal .v2-btn-confirm{width:calc(100% - 36px);margin:12px 18px 18px;}
 .v2-rt-modal .v2-rt-msg{margin:0 18px 16px;}
 .v2-rt-modal .v2-rt-btns{padding:0 18px 18px;}
}

/* 상위옵션(1단) 다중 아코디언 */
.v2-group{margin-bottom:10px;}
.v2-acc-head{align-items:flex-start;}
.v2-acc-htext{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1;}
.v2-acc-title{font-weight:700;font-size:15px;line-height:1.4;}
.v2-acc-subtitle{font-size:13px;font-weight:600;color:#5c6370;line-height:1.4;}
.v2-acc-price{font-size:15px;font-weight:800;color:#111;}
.v2-acc-price.soldout{color:#c9c9c9;font-weight:600;}
.v2-acc.open .v2-acc-price{display:none;}
.v2-acc-head .chev{margin-top:2px;}

/* 옵션 설명 + 더보기 */
.v2-desc-wrap{margin:2px 0 16px;}
.v2-opt-desc{color:#8a9099;font-size:12.5px;line-height:1.65;}
.v2-opt-desc.clamp{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.v2-desc-more{display:inline-block;margin-top:5px;color:#9aa0a6;font-size:12.5px;text-decoration:none;cursor:pointer;}
.v2-desc-more:hover{text-decoration:underline;}

/* 그룹 카드 내부 합계/버튼 */
.v2-btn-row{display:flex;gap:8px;}
.v2-btn-cart{display:none !important;}
.v2-btn-row .v2-btn-next{flex:1;width:auto;}

/* 왕복 분리구매: 임시 선택 내역 */
.v2-trip-cart-wrap{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #eee;}
.v2-trip-cart-hd{font-size:13px;font-weight:700;color:#333;margin-bottom:8px;display:flex;justify-content:space-between;align-items:center;gap:8px;}
.v2-trip-cart-hd-txt{flex:1;min-width:0;}
.v2-trip-cart-chev{display:none;flex-shrink:0;align-items:center;justify-content:center;width:20px;height:20px;color:#555;transition:transform .2s ease;}
.v2-trip-cart-chev svg{display:block;width:100%;height:100%;}
.v2-trip-cart-body{overflow:hidden;}
.v2-trip-cart{display:flex;flex-direction:column;gap:8px;}
@media (max-width:900px){
 .v2-trip-cart-wrap.is-acc .v2-trip-cart-hd{
   margin-bottom:0;
   padding:11px 12px;
   border:1px solid #e5e5e5;
   border-radius:10px;
   background:#fff;
   cursor:pointer;
   -webkit-tap-highlight-color:transparent;
 }
 .v2-trip-cart-wrap.is-acc .v2-trip-cart-chev{
   display:flex;
   width:44px;
   height:44px;
   min-width:44px;
   min-height:44px;
   margin:-11px -8px -11px 0;
 }
 .v2-trip-cart-wrap.is-acc .v2-trip-cart-chev svg{width:28px;height:28px;}
 .v2-trip-cart-wrap.is-acc.is-collapsed .v2-trip-cart-body{
   max-height:0;
   margin-top:0;
   opacity:0;
   pointer-events:none;
 }
 .v2-trip-cart-wrap.is-acc:not(.is-collapsed) .v2-trip-cart-body{
   max-height:2400px;
   margin-top:8px;
   opacity:1;
   transition:max-height .28s ease,opacity .2s ease,margin-top .2s ease;
 }
 .v2-trip-cart-wrap.is-acc.is-collapsed .v2-trip-cart-chev{transform:rotate(0deg);}
 .v2-trip-cart-wrap.is-acc:not(.is-collapsed) .v2-trip-cart-chev{transform:rotate(180deg);}
}
.v2-trip-leg{background:#f7f8fa;border:1px solid #ececec;border-radius:10px;padding:10px 12px;}
.v2-trip-leg.is-preview{border-style:dashed;background:#fafbfc;}
.v2-trip-leg-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:4px;}
.v2-trip-date{font-size:13px;font-weight:700;color:#111;}
.v2-trip-del{border:0;background:none;color:#999;font-size:12px;cursor:pointer;padding:2px 0;text-decoration:underline;}
.v2-trip-dir{font-size:12.5px;color:#444;line-height:1.45;margin-bottom:3px;}
.v2-trip-lines{font-size:12px;color:#666;line-height:1.5;}
.v2-trip-empty{font-size:12px;color:#999;}

/* 왕복 확인 모달 — .v2-modal padding:0 변경 후 본문/버튼 좌우 여백 별도 지정 */
.v2-rt-modal .v2-rt-msg{font-size:15px;line-height:1.6;color:#333;margin:0 24px 20px;padding:0;}
.v2-rt-modal .v2-rt-btns{display:flex;gap:10px;padding:0 24px 24px;flex-shrink:0;}
.v2-rt-btns button{flex:1;height:50px;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;}
.v2-btn-rt-add{border:1px solid #111;background:#fff;color:#111;}

/* nova3 예약 페이지: 모바일 풀스크린 달력 */
@media (max-width: 900px) {
    body.page-booking header,
    body.page-booking footer {
        display: none !important;
    }
    body.page-booking main.booking-root,
    body.page-booking #bookingApp {
        padding: 0 !important;
    }
    body.page-booking .v2-wrap {
        padding-bottom: 24px;
        max-width: none;
    }
}
