/* ============================================================================
      itinerary_v2.css  —  Best Itinerary 고객용 상품페이지 (v2)
      방향: 코퍼레이트/엔터프라이즈(정돈된 그리드·신뢰·차분한 색)
            + 모던/컨템포러리(큰 타이포·넉넉한 여백·얇은 글자)
      · 색/폰트: 사이트 공통 common_202410.css 디자인 시스템 기반
            - 메인 폰트 NanumSquareNeo (얇은 weight 위주)
            - 블루 스케일 #13469b 계열 / 상담(CTA) 오렌지 #ef770d
      · 모든 셀렉터는 .biv2-page 네임스페이스로 격리 (모달은 body 직속 → biv2- 접두사)
      · 본문 콘텐츠 최대 폭 1320px, 중앙 정렬
      ========================================================================== */

.biv2-page{
    --ink:#2D2D2C;          /* 본문 (b24-black-80) */
    --ink-2:#525050;        /* 보조 (b24-black-60) */
    --muted:#807D7D;        /* 캡션/라벨 (b24-black-40) */
    --line:#E5E8EE;         /* 헤어라인 (쿨 뉴트럴) */
    --line-2:#D2D8E2;       /* 강한 헤어라인/보더 */
    --bg:#FFFFFF;
    --bg-alt:#F3F7FD;       /* 섹션 틴트 (밝은 쿨 블루그레이) */

    --brand:#1A62D6;        /* b24-blue6 — 메인 강조 (밝게) */
    --brand-deep:#1654B9;   /* b24-blue5 — hover */
    --brand-bright:#3B7EE5; /* 더 밝은 하이라이트 */
    --brand-line:#D6E2F8;   /* 밝은 블루 헤어라인 */
    --brand-tint:#EAF2FD;

    --consult:#EF770D;      /* 상담 CTA 오렌지 */
    --consult-deep:#D96A09;

    --font-sans:'NanumSquareNeo','Pretendard',-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Malgun Gothic',system-ui,sans-serif;

    --maxw:1320px;
    --pad:clamp(20px,5vw,48px);
    --r:4px;
    --r-2:8px;
    --sec:clamp(64px,9vw,120px);

    color:var(--ink);
    font-family:var(--font-sans);
    font-size:16px;
    font-weight:400;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    text-rendering:optimizeLegibility;
    word-break:keep-all;
    overflow-x:clip;
}
.biv2-page *{box-sizing:border-box;}
.biv2-page img{max-width:100%;height:auto;display:block;}

.biv2-wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--pad);}

/* ----- 공통 타이포 / 섹션 헤더 ----- */
.biv2-eyebrow{
    font-size:12px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;
    color:var(--brand);margin:0 0 14px;
}
.biv2-h2{
    font-size:clamp(22px,2.6vw,30px);font-weight:500;letter-spacing:-.01em;
    line-height:1.25;margin:0;color:var(--ink);
    display:inline-flex;align-items:center;gap:10px;
}
.biv2-h2-ic{display:inline-flex;flex:none;}
.biv2-h2-ic svg{width:1.05em;height:1.05em;color:var(--brand);}
.biv2-head{margin-bottom:clamp(28px,4vw,44px);padding-bottom:18px;border-bottom:1px solid var(--line);}
.biv2-head .biv2-eyebrow{margin-bottom:10px;}
.biv2-head--inline{margin-bottom:0;padding-bottom:0;border-bottom:0;}

/* ----- 버튼 ----- */
.biv2-btn{
    display:inline-flex;align-items:center;gap:8px;cursor:pointer;text-decoration:none;
    font-family:inherit;font-size:15px;font-weight:500;line-height:1;
    padding:15px 26px;border-radius:var(--r);border:1px solid transparent;
    transition:background .2s ease,color .2s ease,border-color .2s ease;
}
.biv2-btn svg{width:18px;height:18px;}
.biv2-btn-primary{background:var(--consult);color:#fff;}    /* 상담 = 오렌지 (사이트 관례) */
.biv2-btn-primary:hover{background:var(--consult-deep);}

/* ----- 섹션 리듬 ----- */
.biv2-section{padding:var(--sec) 0;}
.biv2-section--alt{background:var(--bg-alt);}
/* 같은 배경 섹션 사이 구분선 (예: 갤러리 ↔ 전체동선) */
.biv2-section--ruled{border-top:1px solid var(--line-2);}
/* 하단 상담 배너 — 위 섹션과 배경이 겹치지 않도록 배경 없이 상단 라인으로만 구분 */
.biv2-section--cta{border-top:1px solid var(--line-2);}

/* ============================================================================
      1. HERO
      ========================================================================== */
.biv2-hero{padding:0 0 clamp(48px,6vw,88px);border-bottom:1px solid var(--line);}
.biv2-hero-top{padding-top:clamp(48px,7vw,96px);}
/* 배경 이미지 캐러셀 — hero-top(상담 버튼 아래)까지만 덮음 */
.biv2-hero--bg .biv2-hero-top{position:relative;padding-top:25vh;padding-bottom:clamp(40px,5vw,72px);color:#fff;}
.biv2-hero--bg .biv2-hero-top .biv2-wrap{position:relative;z-index:2;}
.biv2-hero-bg{position:absolute;inset:0;z-index:0;overflow:hidden;background:#0d1623;}
.biv2-hero-bg .swiper,.biv2-hero-bg .swiper-wrapper,.biv2-hero-bg .swiper-slide{height:100%;}
.biv2-hero-bg .swiper-slide{background-size:cover;background-position:center;}
.biv2-hero-scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(13,22,35,.42) 0%,rgba(13,22,35,.26) 38%,rgba(13,22,35,.66) 100%);}
/* 좌우 prev/next 버튼 (세로 중앙) */
.biv2-hero-nav{
    position:absolute;top:50%;transform:translateY(-50%);z-index:3;
    width:46px;height:46px;border-radius:50%;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    color:#fff;background:rgba(13,22,35,.34);border:1px solid rgba(255,255,255,.5);
    backdrop-filter:blur(4px);transition:background .2s ease,border-color .2s ease;
}
.biv2-hero-nav:hover{background:rgba(13,22,35,.62);border-color:#fff;}
.biv2-hero-nav svg{width:20px;height:20px;}
.biv2-hero-prev{left:clamp(12px,3vw,32px);}
.biv2-hero-next{right:clamp(12px,3vw,32px);}
.biv2-hero-nav.swiper-button-disabled{opacity:.4;cursor:default;}
/* 배경 위 텍스트 가독성 */
.biv2-hero--bg .biv2-eyebrow{color:#d3e2f5;}
.biv2-hero--bg .biv2-title{color:#fff;}
.biv2-hero--bg .biv2-lede{color:rgba(255,255,255,.94);}
/* 모바일: 상단 배경 밴드 (메인 제목 위주) */
@media (max-width:980px){
    .biv2-hero--bg .biv2-hero-top{padding-top:22vh;}
}
@media (max-width:600px){
    .biv2-hero-nav{width:38px;height:38px;}
    .biv2-hero-nav svg{width:17px;height:17px;}
}
.biv2-hero-grid{display:grid;grid-template-columns:1fr;gap:clamp(36px,5vw,64px);align-items:start;}
@media (min-width:980px){
    .biv2-hero-grid{grid-template-columns:minmax(0,1.55fr) minmax(330px,.95fr);gap:64px;}
}
.biv2-title{
    font-size:clamp(32px,5.2vw,62px);font-weight:300;letter-spacing:-.02em;line-height:1.1;
    margin:0 0 clamp(20px,2.5vw,28px);color:var(--ink);
}
.biv2-lede{
    font-size:clamp(16px,1.3vw,18px);font-weight:400;line-height:1.9;color:var(--ink-2);
    margin:0 0 32px;max-width:64ch;
}
.biv2-hero-main .biv2-btn{margin-top:4px;}

/* 여행 테마 + 여정 요약 : 흰색 블록으로 묶음 */
.biv2-hero-summary{
    position: relative;
    margin-top:clamp(48px,6vw,88px); /* 위 바깥 여백 = 히어로 하단 패딩(아래 여백)과 동일 */
    background:#fff;border:1px solid var(--line-2);border-radius:var(--r-2);
    padding:clamp(22px,3vw,32px);
}
/* 여행 테마 — 분리·강조 (아이콘 확대) */
.biv2-hero-theme{
    position: relative;
    margin: 0 0 22px;
    padding-top: 18px;
    border-bottom: 1px solid #efefef;
    padding-bottom: 40px;
    margin-bottom: 40px;
}
.biv2-hero-theme-cap{display:inline-flex;align-items:center;gap:8px;margin:0;font-size:15px;font-weight:700;letter-spacing:.01em;text-transform:uppercase;color:var(--brand);}
.biv2-hero-theme-cap svg{width:18px;height:18px;}
.biv2-hero-theme-cap i{width:26px;height:26px;font-weight:300;font-size:26px;}
/* 여행 테마 캡션 행: 캡션(좌) + 굴러가는 차량(우) */
.biv2-hero-theme-caprow{display:flex;align-items:center;gap:16px;margin:0 0 6px;}
/* Porsche 굴러가는 차량 컴포넌트 (네임스페이스: biv2-) */
.biv2-roll{
    position:absolute;
    bottom: 65px;
    left: 72%;
    margin-left: -60px;
    width:clamp(120px,22vw,220px);max-width:46%;aspect-ratio:692/212;user-select:none;
}
.biv2-roll .biv2-car{display:block;width:100%;height:100%;-webkit-user-drag:none;pointer-events:none;}
.biv2-roll .biv2-wheel{position:absolute;aspect-ratio:1;transform-origin:50% 50%;will-change:transform;animation:biv2-porsche-spin 1.2s linear infinite;}
.biv2-roll .biv2-wheel .biv2-wsvg{display:block;width:100%;height:100%;}
.biv2-roll .biv2-wheel--rear{left:17.3410%;top:42.9245%;width:14.4509%;}
.biv2-roll .biv2-wheel--front{left:68.9306%;top:42.4528%;width:14.4509%;}
@keyframes biv2-porsche-spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.biv2-roll .biv2-wheel{animation:none;}}
.biv2-hero-theme-list{display:flex;flex-wrap:wrap;gap:10px;}
.biv2-hero-theme-item{display:inline-flex;align-items:center;gap:10px;padding:12px 20px;border-radius:100px;background:var(--brand-tint);color:var(--brand-deep);font-size:16px;font-weight:600;}
.biv2-hero-theme-item svg{width:26px;height:26px;flex:none;}

@media (min-width:980px){
    .biv2-roll {
        bottom: auto;
        left: auto;
        margin-left: 0;
        top: 64px;
        right: 40px;
    }
}


/* 여정 요약 — v1 가로 라운드 박스 (5칸), 흰 블록 안에서는 외곽선 없이 내부 구분선만 */
.biv2-stats{
    display:grid;grid-template-columns:repeat(2,1fr);gap:1px;
    background:var(--line-2);
}
.biv2-hero-theme + .biv2-stats{margin-top:22px;}
@media (min-width:768px){.biv2-stats{grid-template-columns:repeat(5,1fr);}}
.biv2-stat{background:#fff;padding:18px 16px;display:flex;flex-direction:column;gap:7px;}
.biv2-stat .k{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);}
.biv2-stat .k em{display:block;margin-top:3px;font-style:normal;font-size:15px;font-weight:600;letter-spacing:0;color:var(--brand);}
.biv2-stat .v{font-size:20px;font-weight:700;letter-spacing:-.01em;color:var(--ink);}
.biv2-stat .v small{font-size:13px;font-weight:400;color:var(--ink-2);}

/* 여정 데이터시트 (시그니처) */
.biv2-spec{border:1px solid var(--line-2);border-radius:var(--r-2);background:var(--bg);overflow:hidden;}
.biv2-spec-cap{
    display:flex;align-items:baseline;gap:10px;margin:0;padding:17px 22px;
    background:var(--brand);color:#fff;
    font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
}
.biv2-spec-cap span{
    font-size:12px;font-weight:400;letter-spacing:.02em;text-transform:none;
    color:rgba(255,255,255,.72);margin-left:auto;
}
.biv2-spec-cap .biv2-spec-capic{display:inline-flex;align-self:center;margin-left:0;color:#fff;}
.biv2-spec-cap .biv2-spec-capic svg{width:16px;height:16px;}
.biv2-spec-list{margin:0;padding:6px 22px 10px;}
.biv2-spec-row{
    display:flex;align-items:baseline;justify-content:space-between;gap:16px;
    padding:15px 0;border-top:1px solid var(--line);
}
.biv2-spec-row:first-child{border-top:0;}
.biv2-spec-row dt{
    margin:0;display:inline-flex;align-items:center;gap:8px;
    font-size:13.5px;font-weight:400;color:var(--muted);letter-spacing:.01em;
}
.biv2-spec-ic{display:inline-flex;flex:none;}
.biv2-spec-ic svg{width:17px;height:17px;color:var(--brand);}
.biv2-spec-row dd{margin:0;font-size:16px;font-weight:600;color:var(--ink);text-align:right;}
.biv2-spec-row dd small{font-size:12.5px;font-weight:400;color:var(--muted);margin-left:3px;}
/* 폭이 넓은 컨트롤 행 — 라벨(dt)은 좌측 영역 유지, 컨트롤은 옆/우측에 배치 */
.biv2-spec-row--cal{align-items:center;}
.biv2-spec-row--cal dt{flex:none;}
.biv2-spec-row--seg{align-items:center;}

/* 추천 시기 — 1~12월 달력(전부 붙은 연결형, 활성=오렌지) : 라벨 옆 전체폭 */
.biv2-cal{
    flex:1;display:grid;grid-template-columns:repeat(6,1fr);
    border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;
}
.biv2-cal-m{
    display:flex;align-items:center;justify-content:center;height:29px;
    font-size:11.5px;font-weight:500;color:var(--muted);background:var(--bg);
    border-left:1px solid var(--line);border-top:1px solid var(--line);
    font-variant-numeric:tabular-nums;white-space:nowrap;
}
.biv2-cal-m:nth-child(-n+6){border-top:0;}
.biv2-cal-m:nth-child(6n+1){border-left:0;}
.biv2-cal-m.is-on{background:var(--consult);border-color:var(--consult);color:#fff;font-weight:700;}

/* 난이도 — 상·중상·중·중하·하 컴팩트 세그먼트 (우측, 현재 단계만 활성) */
.biv2-seg{
    display:inline-grid;grid-template-columns:repeat(5,auto);
    border:1px solid var(--line-2);border-radius:var(--r);overflow:hidden;
}
.biv2-seg-btn{
    display:flex;align-items:center;justify-content:center;height:27px;padding:0 9px;
    font-size:12px;font-weight:500;color:var(--ink-2);background:var(--bg);
    border-left:1px solid var(--line);
}
.biv2-seg-btn:first-child{border-left:0;}
.biv2-seg-btn.is-on{background:var(--brand);color:#fff;font-weight:700;}

/* ============================================================================
      2. POINT / EXPERIENCE
      ========================================================================== */
.biv2-twocol{display:grid;grid-template-columns:1fr;gap:clamp(40px,5vw,72px);}
@media (min-width:860px){.biv2-twocol{grid-template-columns:1fr 1fr;}}
.biv2-ruled{list-style:none;margin:0;padding:0;}
.biv2-ruled li{display:flex;gap:18px;align-items:baseline;padding:18px 0;border-top:1px solid var(--line);}
.biv2-ruled li:first-child{border-top:0;}
.biv2-ruled-no{
    flex:none;font-size:13px;font-weight:500;letter-spacing:.04em;
    color:var(--brand);min-width:26px;font-variant-numeric:tabular-nums;
}
.biv2-ruled-tx{font-size:16px;font-weight:400;line-height:1.75;color:var(--ink);}

/* ============================================================================
      여정 데이터시트 — 여행 테마 행 (다른 행과 동일하게 우측 정렬)
      ========================================================================== */
.biv2-spec-themes{
    display:flex;flex-wrap:wrap;justify-content:flex-end;gap:9px 16px;
    text-align:right;font-weight:400;
}
.biv2-spec-theme-item{display:inline-flex;align-items:center;gap:8px;font-size:16px;font-weight:600;color:var(--ink);}
.biv2-spec-theme-item svg{width:22px;height:22px;color:var(--brand);}

/* ============================================================================
      4. ROUTE
      ========================================================================== */
.biv2-route{list-style:none;margin:0 0 18px;padding:0;display:flex;flex-wrap:wrap;gap:10px;}
.biv2-route-node{
    display:inline-flex;align-items:baseline;gap:9px;
    padding:11px 16px;border:1px solid var(--line-2);border-radius:var(--r);background:var(--bg);
}
.biv2-route-no{font-size:12.5px;font-weight:500;color:var(--brand);font-variant-numeric:tabular-nums;}
.biv2-route-name{font-size:15px;font-weight:500;color:var(--ink);}
.biv2-route-eng{font-size:12px;font-weight:400;color:var(--muted);letter-spacing:.01em;}
.biv2-route-sum{margin:0 0 28px;font-size:15px;font-weight:400;color:var(--ink-2);}
/* 클릭 시 해당 도시로 지도 확대·이동 (JS가 좌표 노드에 is-clickable 부여) */
.biv2-route-node.is-clickable{cursor:pointer;transition:border-color .2s ease,background .2s ease;}
.biv2-route-node.is-clickable:hover{border-color:var(--brand);background:var(--brand-tint);}
.biv2-route-node.is-clickable:hover .biv2-route-name{color:var(--brand);}
.biv2-route-node.is-clickable:focus-visible{outline:2px solid var(--brand);outline-offset:2px;}

/* ----- Mapbox 부감 지도 ----- */
.bi-map{
    --map-accent:#FF9466;--map-accent-deep:#F0794A; /* 컨트롤 강조색(주황) — 경로 트레일(#ff5a36)보다 옅게 */
    position:relative;height:clamp(420px,64vh,640px);border-radius:var(--r-2);
    overflow:hidden;border:1px solid var(--line-2);background:#0b1830;isolation:isolate;
}
.bi-map-canvas{position:absolute;inset:0;}
.bi-map-canvas canvas{outline:none;}
/* 우측 상단 줌 +/- (다른 컨트롤러와 동일한 화이트 글래스 스타일) */
.bi-map-zoom{
    position:absolute;top:16px;right:16px;z-index:3;display:flex;flex-direction:column;
    background:rgba(255,255,255,.95);border:1px solid var(--line);border-radius:var(--r-2);
    overflow:hidden;backdrop-filter:blur(8px);
}
.bi-map-zbtn{
    width:38px;height:38px;display:flex;align-items:center;justify-content:center;
    background:transparent;border:0;cursor:pointer;color:var(--ink);font-family:inherit;
    transition:background .2s ease,color .2s ease;
}
.bi-map-zbtn svg{width:18px;height:18px;}
.bi-map-zbtn:hover{background:var(--map-accent);color:#fff;}
.bi-map-zbtn + .bi-map-zbtn{border-top:1px solid var(--line);}
.bi-map-banner{
    position:absolute;top:16px;left:50%;transform:translateX(-50%);z-index:3;
    padding:9px 18px;border-radius:100px;background:rgba(11,24,48,.82);
    color:#fff;font-size:13.5px;font-weight:500;backdrop-filter:blur(6px);
    white-space:nowrap;max-width:calc(100% - 32px);overflow:hidden;text-overflow:ellipsis;
}
.bi-map-banner b{color:var(--brand-line);font-style:normal;}
.bi-map-rail{
    position:absolute;top:16px;left:16px;z-index:3;width:212px;max-height:calc(100% - 32px);
    overflow:auto;padding:16px;border-radius:var(--r-2);
    background:rgba(255,255,255,.95);border:1px solid var(--line);backdrop-filter:blur(8px);
}
.bi-map-rail h3{margin:0 0 12px;font-size:11.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);}
.bi-map-stop{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:13.5px;font-weight:400;color:var(--ink-2);}
.bi-map-stop .n{
    flex:none;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;
    font-size:11.5px;font-weight:500;background:var(--line);color:var(--ink-2);
}
.bi-map-stop.done{color:var(--ink);}
.bi-map-stop.done .n{background:var(--map-accent);color:#fff;}
.bi-map-stop.active{color:var(--map-accent);font-weight:500;}
.bi-map-stop.active .n{background:#fff;color:var(--map-accent);box-shadow:0 0 0 2px var(--map-accent);}
.bi-map-dock{
    position:absolute;right:16px;bottom:16px;z-index:3;width:248px;
    padding:14px 16px;border-radius:var(--r-2);
    background:rgba(255,255,255,.96);border:1px solid var(--line);backdrop-filter:blur(8px);
}
.bi-map-statline{font-size:12.5px;font-weight:400;color:var(--ink-2);margin-bottom:10px;}
.bi-map-statline b{color:var(--map-accent);font-weight:600;}
.bi-map-row{display:flex;gap:8px;margin-top:8px;}
.bi-map-btn{
    flex:1;cursor:pointer;font-family:inherit;font-size:13px;font-weight:500;
    padding:9px 10px;border-radius:var(--r);border:1px solid var(--line-2);background:var(--bg);color:var(--ink);
    transition:background .2s,color .2s,border-color .2s;
}
.bi-map-btn:hover{border-color:var(--map-accent);color:var(--map-accent);}
.bi-map-btn.primary{background:var(--map-accent);border-color:var(--map-accent);color:#fff;}
.bi-map-btn.primary:hover{background:var(--map-accent-deep);}
.bi-map-seg{display:flex;align-items:center;gap:10px;width:100%;font-size:11.5px;color:var(--muted);}
.bi-map-seg input[type=range]{flex:1;accent-color:var(--map-accent);}
.bi-map-ph{
    position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;
    align-items:center;justify-content:center;gap:14px;color:rgba(255,255,255,.72);
    background:#0b1830;
}
.bi-map-ph svg{width:46px;height:46px;}
.bi-map-ph p{margin:0;font-size:13.5px;font-weight:400;}
.bi-map-city{display:flex;align-items:center;}
.bi-map-city .dot{width:11px;height:11px;border-radius:50%;background:var(--map-accent);border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.4);}
.bi-map-city .lbl{
    margin-left:7px;padding:3px 9px;border-radius:100px;background:rgba(255,255,255,.96);
    font-size:12px;font-weight:600;color:var(--ink);white-space:nowrap;display:inline-block;
}
@media (max-width:720px){
    .bi-map-rail{display:none;}
    .bi-map-dock{left:16px;right:16px;width:auto;}
    .bi-map-seg{display:none;}
}

/* ============================================================================
      5. DETAILED ITINERARY (좌 Day · 우 도시/설명 리포트)
      ========================================================================== */
.biv2-itin-sum{margin:0 0 28px;font-size:15px;font-weight:400;color:var(--ink-2);}
.biv2-itin{list-style:none;margin:0;padding:0;border-top:1px solid var(--line-2);}
.biv2-itin-row{
    display:grid;grid-template-columns:1fr;gap:6px 28px;
    padding:26px 0;border-bottom:1px solid var(--line);
}
@media (min-width:760px){
    .biv2-itin-row{grid-template-columns:210px 1fr;gap:28px;}
}
.biv2-itin-day{display:flex;flex-direction:column;align-items:flex-start;gap:2px;}
.biv2-itin-dtag{font-size:11px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);}
.biv2-itin-dnum{
    font-family:'Playfair Display',Georgia,'Nanum Myeongjo',serif;font-style:italic;font-weight:500;
    font-size:clamp(30px,3.4vw,40px);line-height:.95;color:var(--brand);
    font-variant-numeric:tabular-nums;
}
.biv2-itin-dist{margin-top:6px;font-size:12px;font-weight:400;color:var(--muted);}
.biv2-itin-city{
    margin:0 0 14px;padding-bottom:13px;border-bottom:1px solid var(--line);
    font-size:18px;font-weight:600;color:var(--ink);
}
.biv2-itin-desc{margin:0;font-size:15.5px;font-weight:300;line-height:1.95;color:var(--ink-2);max-width:74ch;}

/* ============================================================================
      6-8. SLIDER 공통 (호텔/관련상품/갤러리)
      ========================================================================== */
.biv2-slider-head{
    display:flex;justify-content:space-between;align-items:flex-end;gap:16px;
    border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:clamp(24px,3vw,36px);
}
.bi-slider{position:relative;}
.bi-slider-nav{display:none;gap:10px;}
@media (min-width:768px){.bi-slider-nav{display:flex;}}
.bi-nav-btn{
    width:42px;height:42px;border-radius:50%;background:var(--bg);border:1px solid var(--line-2);
    display:inline-flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);
    transition:background .2s,color .2s,border-color .2s;
}
.bi-nav-btn:hover{background:var(--brand);border-color:var(--brand);color:#fff;}
.bi-nav-btn:disabled{opacity:.35;cursor:default;background:var(--bg);color:var(--ink);border-color:var(--line-2);}
.bi-nav-btn svg{width:18px;height:18px;}

/* 카드 (호텔/관련) */
.biv2-card{
    display:block;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-2);
    overflow:hidden;text-decoration:none;color:inherit;height:100%;
    transition:border-color .2s ease,transform .2s ease,box-shadow .2s ease;
}
.biv2-card:hover{border-color:var(--brand-line);transform:translateY(-2px);box-shadow:0 10px 28px rgba(26,98,214,.12);}
.biv2-card-thumb{position:relative;width:100%;aspect-ratio:4/3;overflow:hidden;background:var(--bg-alt);}
.biv2-card-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease;}
.biv2-card:hover .biv2-card-thumb img{transform:scale(1.04);}
.biv2-card-ph{position:absolute;inset:0;background:linear-gradient(135deg,#EEF2F8,#E0E7F1);}
.biv2-card-tag{
    position:absolute;left:12px;top:12px;padding:5px 11px;border-radius:var(--r);
    background:rgba(255,255,255,.95);color:var(--brand);font-size:12px;font-weight:600;
}
.biv2-card-body{padding:18px 20px 20px;}
.biv2-card-body h3{margin:0 0 8px;font-size:17px;font-weight:600;line-height:1.45;color:var(--ink);}
.biv2-card-meta{
    margin:0;font-size:13.5px;font-weight:400;color:var(--ink-2);
    display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;
}
.biv2-grade{color:var(--brand);font-weight:600;}
.biv2-card-more{
    display:inline-flex;align-items:center;gap:6px;margin-top:16px;
    font-size:13.5px;font-weight:500;color:var(--brand);text-decoration:none;
}
.biv2-card-more svg{width:15px;height:15px;transition:transform .2s ease;}
.biv2-card-more:hover svg{transform:translateX(3px);}

/* 관련상품 카드 — 가격 / 기준일 / 포인트 (상품목록 소스 반영) */
.biv2-card-price{margin-top:13px;font-size:19px;font-weight:600;color:var(--ink);letter-spacing:-.01em;}
.biv2-card-price span{font-size:13px;font-weight:400;color:var(--ink-2);margin-left:1px;}
.biv2-card-std{margin-top:4px;font-size:12px;font-weight:400;color:var(--muted);}
.biv2-card-std i{color:var(--brand);cursor:help;margin-left:2px;}
.biv2-card-point{
    margin-top:13px;padding-top:13px;border-top:1px solid var(--line);
    font-size:13px;font-weight:400;color:var(--ink-2);display:flex;align-items:flex-start;gap:7px;line-height:1.6;
}
.biv2-card-point i{color:var(--brand);margin-top:3px;}

/* 갤러리 — 가운데 1장 1080px 고정·5:2 가로 비율 / 화면이 1080 넘으면 좌우 앞뒤 슬라이드 흑백 미리보기 */
.bi-gallery-swiper{
    width:100vw;
    margin-left:calc(50% - 50vw);
    margin-right:calc(50% - 50vw);
}
.bi-gallery-swiper .swiper-slide{
    width:1080px;max-width:calc(100vw - 40px);
    aspect-ratio:5/2;height:auto;
}
.biv2-gallery-item{
    position:relative;margin:0;height:100%;border-radius:var(--r-2);overflow:hidden;background:var(--bg-alt);
}
.biv2-gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease,filter .45s ease;}
.biv2-gallery-item:hover img{transform:scale(1.04);}
.biv2-gallery-ph{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);}
.biv2-gallery-ph svg{width:40px;height:40px;}
.biv2-gallery-cap{
    position:absolute;left:0;right:0;bottom:0;padding:30px 18px 16px;
    background:linear-gradient(to top,rgba(11,24,48,.8),transparent);
    color:#fff;opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease;
}
.biv2-gallery-item:hover .biv2-gallery-cap{opacity:1;transform:translateY(0);}
.biv2-gallery-cap strong{display:block;font-size:15px;font-weight:600;}
.biv2-gallery-cap span{display:block;font-size:12.5px;font-weight:400;color:rgba(255,255,255,.8);margin-top:2px;}
/* 페이지네이션은 full-bleed가 아닌 1080 영역 기준 중앙 */
.bi-gallery-swiper .bi-gallery-pg{max-width:1080px;margin:26px auto 0;text-align:center;}
/* ≥1080px: 가운데 활성만 컬러, 좌우 앞뒤 슬라이드는 흑백 */
@media (min-width:1080px){
    .bi-gallery-swiper .biv2-gallery-item img{filter:grayscale(1);}
    .bi-gallery-swiper .swiper-slide-active .biv2-gallery-item img{filter:grayscale(0);}
    .bi-gallery-swiper .swiper-slide-active .biv2-gallery-cap{opacity:1;transform:translateY(0);}
}
@media (max-width:760px){
    .biv2-gallery-cap{opacity:1;transform:none;}
}

/* Swiper 페이지네이션 (중앙) */
.biv2-page .swiper-pagination{position:static;text-align:center;margin-top:26px;}
.biv2-page .swiper-pagination-bullet{background:var(--line-2);opacity:1;width:7px;height:7px;}
.biv2-page .swiper-pagination-bullet-active{background:var(--brand);width:22px;border-radius:4px;}

.biv2-empty{
    padding:48px 20px;text-align:center;color:var(--muted);font-size:15px;font-weight:400;
    border:1px dashed var(--line-2);border-radius:var(--r-2);background:var(--bg);
}

/* ============================================================================
      CTA
      ========================================================================== */
.biv2-cta{
    display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;
    background:var(--brand);color:#fff;border-radius:var(--r-2);
    padding:clamp(32px,5vw,56px) clamp(28px,4vw,56px);
}
.biv2-cta-ic{display:inline-flex;margin:0 0 14px;color:#fff;}
.biv2-cta-ic svg{width:34px;height:34px;}
.biv2-cta-tx .biv2-eyebrow{color:rgba(255,255,255,.72);}
.biv2-cta-tx h2{margin:0 0 8px;font-size:clamp(22px,2.6vw,30px);font-weight:500;color:#fff;letter-spacing:-.01em;}
.biv2-cta-desc{margin:0;font-size:15.5px;font-weight:400;color:rgba(255,255,255,.85);}
.biv2-cta-btn{background:var(--consult);color:#fff;}
.biv2-cta-btn:hover{background:var(--consult-deep);color:#fff;}

/* ============================================================================
      접근성 / 모션
      ========================================================================== */
.biv2-page a:focus-visible,.biv2-page button:focus-visible,
.biv2-page input:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:3px;}
@media (prefers-reduced-motion:reduce){
    .biv2-page *{transition:none !important;animation:none !important;}
}

/* ============================================================================
      호텔 정보 모달 (body 직속 → .biv2-page 밖, biv2- 접두사로 격리)
      ========================================================================== */
.biv2-modal{position:fixed;inset:0;z-index:9999;display:none;
    font-family:'NanumSquareNeo','Pretendard',system-ui,sans-serif;}
.biv2-modal.is-open{display:block;}
.biv2-modal-backdrop{position:absolute;inset:0;background:rgba(11,24,48,.55);backdrop-filter:blur(2px);}
.biv2-modal-dialog{
    position:relative;width:100%;max-width:760px;height:min(82vh,720px);
    margin:max(24px,6vh) auto 0;background:#fff;border-radius:10px;overflow:hidden;
    display:flex;flex-direction:column;box-shadow:0 24px 60px rgba(0,0,0,.35);
}
.biv2-modal-head{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid #E5E8EE;}
.biv2-modal-title{font-size:15px;font-weight:600;color:#2D2D2C;}
.biv2-modal-close{width:34px;height:34px;border:0;background:transparent;cursor:pointer;font-size:24px;line-height:1;color:#807D7D;border-radius:6px;}
.biv2-modal-close:hover{background:#F4F6FA;color:#2D2D2C;}
.biv2-modal-body{position:relative;flex:1;min-height:0;}
.biv2-modal-loading{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#807D7D;font-size:14px;}
.biv2-modal-frame{width:100%;height:100%;border:0;display:block;}
body.biv2-modal-lock{overflow:hidden;}
@media (max-width:640px){
    .biv2-modal-dialog{max-width:100%;height:100%;margin:0;border-radius:0;}
}