/* ======================================
   AOS02 CSS - 정리본
   - 원본 스타일 유지
   - 동일 중복 규칙 제거
   - 공백/들여쓰기 정리
====================================== */

*{
    margin:0;
    padding:0;
    box-sizing:border-box;
}

html, body{
    width:100%;
    height:100%;
}

body{
    font-family:"Pretendard",sans-serif;
    font-size:14px;
    color:#222;
    line-height:1.5;
    background:#ffffff;
}


a{
    text-decoration:none;
}

img{
    display:block;
}

button{
    border:none;
    background:none;
    cursor:pointer;
}

input, select{
    outline:none;
}

.aos02_wrap{
    font-family:"Pretendard", "Noto Sans KR", sans-serif;
    color:#1f2937;
    background:#f6f8fb;
}

.aos02_top{
    background:#111827;
    color:#fff;
    font-size:13px;
}


.aos02_top strong{
    margin-left:8px;
    color:#7dd3fc;
}

.aos02_top_draft{
    display:flex;
    align-items:center;
    gap:0;
}

.aos02_top_draft strong{
    margin-left:0;
}

.aos02_top_draft strong + strong{
    margin-left:8px;
    padding-left:8px;
}

.aos02_top_draft a{
    margin-left:0;
}

.aos02_top a{
    margin-left:18px;
    color:#d1d5db;
}

.sns{
    display:flex;
    gap:10px;
}

.sns a{
    width:28px;
    height:28px;
    margin-left:0;
    border:1px solid rgba(255,255,255,.4);
    border-radius:50%;
    background:rgba(255,255,255,.06);
    display:flex;
    align-items:center;
    justify-content:center;
    transition:border-color .2s ease, background-color .2s ease;
}

.sns a:hover{
    border-color:#fff;
    background:rgba(255,255,255,.16);
}

.sns img{
    width:16px;
    height:16px;
    opacity:.88;
    transition:opacity .2s ease;
}

.sns a:hover img{
    opacity:1;
}

.aos02_top_links{
    display:flex;
    align-items:center;
}

.aos02_top_links a:first-child{
    margin-left:0;
}

.aos02_nav{
    background:rgba(255,255,255,.95);
    border-bottom:1px solid #e5e7eb;
    backdrop-filter:blur(10px);
}



/* Hash(.aos02_logo img{width:100%}) 후로드 대비 — 비율 유지 */
.aos02_header .aos02_logo img,
.aos02_nav .aos02_logo img{
    display:block;
    width:auto;
    max-width:100%;
    height:auto;
    object-fit:contain;
}

.aos02_header{
    position:relative;
    z-index:200;
}

/* PHASE09/08: mobile header shell — PC에서는 비노출·기존 GNB 레이아웃 유지 */
.aos02_nav_toggle{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0, 0, 0, 0);
    border:0;
    appearance:none;
}

.aos02_nav_btn,
.aos02_header_search,
.aos02_mobile_links,
.aos02_nav_dim,
.aos02_nav_close,
.aos02_panel_search{
    display:none;
}

.aos02_nav_panel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex:1 1 auto;
    min-width:0;
    gap:24px;
}

/* PC: Header 밖 초기 위치 FOUC 방지 — JS가 .aos02_nav .aos02_inner로 이동 */
@media (min-width:769px){
    .aos02_wrap > .aos02_nav_panel{
        position:absolute;
        left:-9999px;
        width:1px;
        height:1px;
        overflow:hidden;
        flex:none;
    }

    .aos02_nav .aos02_inner > .aos02_nav_panel{
        position:static;
        left:auto;
        width:auto;
        height:auto;
        overflow:visible;
        flex:1 1 auto;
    }
}

.aos02_depth2{
    position:absolute;
    top:calc(100% + 8px);
    left:50%;
    width:max-content;
    min-width:0;
    height:auto;
    margin:0;
    padding:8px;
    list-style:none;
    background:#fff;
    border:1px solid rgba(15,23,42,.08);
    border-radius:16px;
    box-shadow:0 18px 36px rgba(15,23,42,.12);
    transform:translateX(-50%) translateY(10px);
    opacity:0;
    visibility:hidden;
    overflow:hidden;
    transition:opacity .2s ease, visibility .2s ease, transform .2s ease;
}

.aos02_depth2:not(:has(li)){
    display:none !important;
}

ul.aos02_depth2,
.aos02_depth2 > ul{
    display:grid;
    grid-template-rows:repeat(8, max-content);
    grid-auto-flow:column;
    grid-auto-columns:max-content;
    align-content:start;
    justify-items:stretch;
    column-gap:6px;
    row-gap:4px;
    width:100%;
    height:auto;
    margin:0;
    padding:0;
    list-style:none;
}

.aos02_depth2 li{
    margin:0;
    padding:0;
    min-width:0;
    background:transparent;
}

.aos02_menu > li:hover .aos02_depth2{
    opacity:1;
    visibility:visible;
    transform:translateX(-50%) translateY(0);
}

.aos02_depth2 a{
    display:block;
    box-sizing:border-box;
    width:100%;
    min-width:0;
    padding:10px 16px;
    border-radius:10px;
    font-size:14px;
    font-weight:600;
    color:#1f2937;
    text-align:left;
    white-space:nowrap;
    transition:color .2s ease, background-color .2s ease;
}

.aos02_depth2 a:hover{
    background:#003b7a;
    color:#fff;
}

.aos02_util{
    display:flex;
    gap:10px;
}

.aos02_util a{
    padding:10px 15px;
    border-radius:999px;
    background:#eff6ff;
    color:#2563eb;
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
}

.aos02_visual{
    padding:30px 0 110px;
    background:linear-gradient(135deg, rgba(37,99,235,.78), rgba(14,165,233,.55)),
        url("/images/main/main02.jpeg") center/cover no-repeat;
    color:#fff;
    overflow:hidden;
}


.aos02_visual_text{
    flex:1;
    min-width:0;
}

.aos02_visual_text span:empty,
.aos02_visual_text h2:empty,
.aos02_visual_text p:empty{
    display:none !important;
}

.aos02_visual_points li:empty{
    display:none;
}

.aos02_visual_points:not(:has(li:not(:empty))){
    display:none;
}

.aos02_visual_text span{
    display:inline-block !important;
    margin-bottom:20px;
    padding:9px 18px;
    border-radius:999px;
    background:rgba(255,255,255,.18);
    font-size:13px;
    font-weight:800;
    letter-spacing:2px;
}

.aos02_visual_text h2{
    margin:0;
    font-size:58px;
    line-height:1.2;
    letter-spacing:-2px;
}

.aos02_visual_text p{
    margin:24px 0 28px;
    font-size:20px;
    color:rgba(255,255,255,.9);
    line-height:1.7;
}

.aos02_visual_text .aos02_visual_lead{
    margin:16px 0 0;
    font-size:20px;
    color:rgba(255,255,255,.9);
    line-height:1.7;
    font-weight:600;
}

.aos02_visual_points{
    display:flex;
    flex-wrap:wrap;
    gap:10px 24px;
    margin:0 0 32px;
    padding:0;
    list-style:none;
    padding-top: 20px;
}

.aos02_visual_points li{
    font-size:15px;
    font-weight:600;
    color:rgba(255,255,255,.92);
}

.aos02_visual_btns{
    font-size:20px;
    display:flex;
    flex-wrap:wrap;
    gap:12px;
}

.aos02_visual_text a{
    display:inline-flex;
    align-items:center;
    height:54px;
    padding:0 30px;
    border-radius:999px;
    background:#fff;
    color:#2563eb;
    font-weight:900;
}

.aos02_visual_text a.is-outline{
    border:1px solid rgba(255,255,255,.55);
    background:transparent;
    color:#fff;
}

.aos02_visual_btns a:empty{
    display:none;
}

.aos02_visual_btns:not(:has(a:not(:empty))){
    display:none;
}

.aos02_wrap a.aos02_visual_card,
a.aos02_visual_card{
    position:relative;
    display:block;
    width:360px;
    flex-shrink:0;
    color:#fff;
    text-decoration:none;
    transition:transform .2s ease, box-shadow .2s ease;
}

.aos02_wrap a.aos02_visual_card:hover,
a.aos02_visual_card:hover{
    color:#fff;
    transform:translateY(-4px);
    box-shadow:0 34px 74px rgba(0,0,0,.28);
}

.aos02_visual_card_badge:empty{
    display:none;
}

.aos02_visual_card span:empty,
.aos02_visual_card strong:empty,
.aos02_visual_card small:empty{
    display:none;
}

.aos02_visual_card_badge{
    position:absolute;
    top:30px;
    left:30px;
    z-index:1;
    padding:7px 14px;
    border-radius:999px;
    background:#003b7a;
    font-size:12px;
    font-style:normal;
    font-weight:700;
    letter-spacing:.5px;
}

.aos02_visual_card small{
    display:block;
    margin-top:8px;
    font-size:13px;
    font-weight:600;
    color:rgba(255,255,255,.78);
}



.aos02_quick li a:hover p{
    color:#2563eb;
}

.aos02_visual_card{
    width:360px;
    padding:18px;
    border-radius:34px;
    background:rgba(255,255,255,.18);
    box-shadow:0 30px 70px rgba(0,0,0,.25);
    backdrop-filter:blur(12px);
}



.aos02_visual_card div{
    padding:20px 10px 8px;
}

.aos02_visual_card span{
    display:block;
    margin-bottom:8px;
    font-size:13px;
    color:#dbeafe;
}

.aos02_visual_card strong{
    display:block;
    font-size:26px;
}

.aos02_visual_card p{
    margin:8px 0 0;
    font-size:22px;
    font-weight:900;
}

.aos02_quick{
    margin-top:-48px;
}



.aos02_quick li{
    background:#f8fafc;
}




.home_aos02_title{
    text-align:center;
    margin-bottom:50px;
}





.home_aos02_title p{
    font-size:18px;
    color:#777;
}

.home_aos02_category_wrap{
    display:flex;
    gap:30px;
    align-items:center;
}

.home_aos02_category_visual{
    width:70%;
    display:flex;
    gap:20px;
    align-items:center;
}

.travel_card{
    position:relative;
    overflow:hidden;
    border-radius:30px;
    transition:.35s;
    box-shadow:0 15px 40px rgba(0,0,0,.08);
}

.travel_card:hover{
    transform:translateY(-10px);
}

/* .travel_card img → /css/shared/ui-media.css (Phase6) */



.travel_card.side{
    width:220px;
    height:520px;
    flex-shrink:0;
}

.travel_card.center{
    flex:1;
    height:620px;
}

.travel_card_txt{
    position:absolute;
    left:30px;
    bottom:30px;
    z-index:2;
    color:#fff;
}

.travel_card_txt span{
    display:inline-block;
    padding:8px 16px;
    border-radius:30px;
    background:#2458ff;
    font-size:12px;
    font-weight:700;
    margin-bottom:15px;
}

.travel_card_txt strong{
    display:block;
    font-size:40px;
    font-weight:800;
    line-height:1.3;
}

.travel_card_txt p{
    margin-top:10px;
    font-size:16px;
    color:rgba(255,255,255,.9);
}

.home_aos02_category_menu{
    width:30%;
    display:flex;
    flex-direction:column;
    gap:12px;
}



.home_aos02_category_menu a:hover{
    background:#2458ff;
    transform:translateX(8px);
}

.home_aos02_category_menu strong{
    display:block;
    font-size:24px;
    font-weight:800;
    margin-bottom:5px;
    transition:.3s;
}

.home_aos02_category_menu a:hover strong, .home_aos02_category_menu a:hover span{
    color:#fff;
}

@media screen and (max-width:1200px){
    .home_aos02_category .aos02_wrap_inner{
        width:94%;
    }

    .home_aos02_category_wrap{
        flex-direction:column;
    }

    .home_aos02_category_visual{
        width:100%;
    }

    .home_aos02_category_menu{
        width:100%;
    }
}

@media screen and (max-width:768px){
    .home_aos02_title h2{
        font-size:34px;
    }

    .home_aos02_category_visual{
        flex-direction:column;
    }

    .travel_card.side, .travel_card.center{
        width:100%;
        height:320px;
    }

    .travel_card_txt strong{
        font-size:28px;
    }

    .home_aos02_category_menu strong{
        font-size:20px;
    }
}

.aos02_event{
    padding:70px 0 40px;
}

.aos02_event .aos02_inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:36px 46px;
    border-radius:30px;
    background:linear-gradient(135deg, #111827, #1d4ed8);
    color:#fff;
}

.aos02_event span{
    color:#93c5fd;
    font-weight:900;
    letter-spacing:2px;
}

.aos02_event h2{
    margin:10px 0;
    font-size:30px;
}

.aos02_event p{
    margin:0;
    color:#dbeafe;
}

.aos02_event a{
    padding:15px 26px;
    border-radius:999px;
    background:#fff;
    color:#1d4ed8;
    font-weight:900;
}

.aos02_best{
    padding:30px 0;
}

.aos02_best_list{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:26px;
}

.aos02_best_list article{
    overflow:hidden;
    border-radius:28px;
    background:#fff;
    box-shadow:0 18px 40px rgba(15,23,42,.08);
    transition:.25s;
}

.aos02_best_list article:hover{
    transform:translateY(-8px);
}

.aos02_best_list img{
    width:100%;
    height:210px;
    object-fit:cover;
}

.aos02_best_list div{
    padding:22px;
}

.aos02_best_list em{
    display:inline-block;
    margin-bottom:12px;
    padding:6px 12px;
    border-radius:999px;
    background:#dbeafe;
    color:#2563eb;
    font-size:12px;
    font-style:normal;
    font-weight:900;
}

.aos02_best_list h3{
    margin:0;
    font-size:20px;
}

.aos02_best_list p{
    color:#6b7280;
}

.aos02_best_list strong{
    color:#ef4444;
    font-size:22px;
}

.aos02_theme{
    padding:40px 0;
    background:#fff;
}

.aos02_theme_list{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr 1fr;
    gap:18px;
}

.aos02_theme_list a{
    position:relative;
    overflow:hidden;
    height:280px;
    border-radius:28px;
}

.aos02_theme_list img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:.3s;
}

.aos02_theme_list a:hover img{
    transform:scale(1.08);
}

.aos02_theme_list span{
    position:absolute;
    left:22px;
    bottom:22px;
    padding:10px 18px;
    border-radius:999px;
    background:rgba(255,255,255,.92);
    font-weight:900;
}

.aos02_about{
    padding:40px 0;
    background:#eff6ff;
}

.aos02_about .aos02_inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
}

.aos02_about_text span{
    color:#2563eb;
    font-weight:900;
}

.aos02_about_text h2{
    margin:12px 0;
    font-size:38px;
}

.aos02_about_text p{
    color:#6b7280;
    line-height:1.7;
}

.aos02_about_count{
    display:grid;
    grid-template-columns:repeat(2, 180px);
    gap:18px;
}

.aos02_about_count div{
    padding:30px 20px;
    border-radius:26px;
    background:#fff;
    text-align:center;
    box-shadow:0 14px 30px rgba(37,99,235,.08);
}

.aos02_about_count strong{
    display:block;
    color:#2563eb;
    font-size:34px;
}

.aos02_about_count span{
    display:block;
    margin-top:8px;
    color:#6b7280;
}



.aos02_customer .aos02_inner{
    display:grid;
    grid-template-columns:1fr 1fr 320px;
    gap:24px;
    align-items:stretch;
}

.aos02_account{
    grid-column:3;
    grid-row:1;
    display:flex;
    flex-direction:column;
    height:100%;
    padding:0;
    background:#fff;
    border:1px solid #ccc;
    overflow:hidden;
}



.aos02_account_body{
    flex:1;
    display:flex;
    flex-direction:column;
    padding:24px 28px;
}

.aos02_account_cs{
    padding-bottom:18px;
    border-bottom:1px solid #e4e7eb;
}

.aos02_account_cs strong{
    display:block;
    margin-bottom:6px;
    font-size:24px;
    font-weight:800;
    color:#003b7a;
    letter-spacing:0.5px;
}

.aos02_account_cs p{
    margin:0;
    font-size:13px;
    color:#666;
    line-height:1.5;
}

.aos02_account_bank{
    flex:1;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    padding-top:18px;
}

.aos02_account_bank h4{
    margin:0 0 12px;
    font-size:14px;
    font-weight:700;
    color:#111;
}

.aos02_account_bank dl{
    display:grid;
    grid-template-columns:64px 1fr;
    gap:8px 12px;
    margin:0;
}

.aos02_account_bank dt{
    font-size:13px;
    color:#888;
}

.aos02_account_bank dd{
    margin:0;
    font-size:13px;
    font-weight:600;
    color:#333;
}

.aos02_account_bank dd.is-num{
    font-size:16px;
    font-weight:800;
    color:#003b7a;
    letter-spacing:0.5px;
}

@media (max-width: 1200px){
    .aos02_inner{
        width:94%;
    }

    .aos02_best_list{
        grid-template-columns:repeat(2, 1fr);
    }

    .aos02_quick ul{
        grid-template-columns:repeat(4, 1fr);
    }
}

/* PHASE03 + early misc: inner overflow + best/about/theme grid (≤768) */
@media (max-width: 768px){
    .aos02_inner{
        width:min(1200px, 100%);
        max-width:100%;
        margin-left:auto;
        margin-right:auto;
        padding-left:16px;
        padding-right:16px;
        box-sizing:border-box;
    }

    .home_aos02_category .aos02_wrap_inner{
        width:min(1200px, 100%);
        max-width:100%;
        margin-left:auto;
        margin-right:auto;
        padding-left:16px;
        padding-right:16px;
        box-sizing:border-box;
    }

    /* magazine/customer는 PHASE13·14 Swiper·flex가 최종 — grid 미적용 */
    /* best_list / theme_list / about_count: 템플릿·핸들러 미검출이나 공용 클래스 가능 → KEEP */
    .aos02_best_list,
    .aos02_about .aos02_inner{
        grid-template-columns:1fr;
        display:grid;
    }

    .aos02_account{
        grid-column:auto;
        grid-row:auto;
    }

    .aos02_theme_list{
        grid-template-columns:1fr 1fr;
    }

    .aos02_theme_list a{
        width:100%;
        max-width:100%;
        height:210px;
        box-sizing:border-box;
    }

    .aos02_about_count{
        grid-template-columns:repeat(2, 1fr);
    }
}

/* PHASE07 + PHASE10_FIRSTVIEW: Top Utility — SNS左 / 계정右, 높이 최소화 (≤768) */
@media (max-width:768px){
    .aos02_header .aos02_top{
        display:block !important;
        background:#111827;
        color:#fff;
        font-size:11px;
    }

    .aos02_header .aos02_top .aos02_inner{
        display:flex;
        flex-wrap:nowrap;
        align-items:center;
        justify-content:space-between;
        height:36px;
        min-height:36px;
        max-height:36px;
        padding:0 12px;
        line-height:1.2;
        width:100%;
        box-sizing:border-box;
        gap:8px;
    }

    .aos02_header .aos02_top .sns{
        display:flex;
        flex-shrink:0;
        gap:6px;
    }

    .aos02_header .aos02_top .sns a{
        width:22px;
        height:22px;
        margin-left:0;
    }

    .aos02_header .aos02_top .sns img{
        width:12px;
        height:12px;
    }

    .aos02_header .aos02_top_links{
        display:flex;
        flex-wrap:nowrap;
        align-items:center;
        justify-content:flex-end;
        width:auto;
        min-width:0;
        padding:0;
        line-height:1.2;
        overflow:hidden;
    }

    .aos02_header .aos02_top_links a,
    .aos02_header .aos02_top .aos02_top_links a{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        width:auto;
        margin-left:10px;
        padding:0;
        line-height:1.2;
        white-space:nowrap;
        word-break:keep-all;
        overflow-wrap:normal;
        font-size:11px;
        color:#d1d5db;
    }

    .aos02_header .aos02_top_links a:first-child{
        margin-left:0;
    }

    .aos02_header .aos02_util a{
        display:flex;
        align-items:center;
        justify-content:center;
        width:auto;
        padding:8px 10px;
        line-height:1.3;
        white-space:nowrap;
        word-break:keep-all;
        overflow-wrap:normal;
    }
}

/* PHASE08 + PHASE10_FIRSTVIEW: Mobile Header — logo左 / 햄버거右, Overlay+Slide (≤768) */
@media (max-width:768px){
    .aos02_header{
        position:relative;
        z-index:1000;
    }

    .aos02_nav{
        position:relative;
        z-index:1001;
        background:#fff;
        border-bottom:1px solid #e5e7eb;
    }

    .aos02_nav .aos02_inner{
        height:64px;
        min-height:64px;
        max-height:70px;
        display:flex;
        align-items:center;
        justify-content:space-between;
        position:relative;
        padding-left:16px;
        padding-right:16px;
        background:#fff;
        z-index:1002;
        box-sizing:border-box;
    }

    .aos02_nav_toggle{
        position:absolute;
        width:1px;
        height:1px;
        opacity:0;
        pointer-events:none;
    }

    .aos02_logo{
        order:1;
        width:auto;
        max-width:min(160px, 55vw);
        margin:0;
        margin-right:auto;
        padding:0 !important;
        text-align:left;
        z-index:1003;
        flex-shrink:1;
        min-width:0;
        align-self:center;
        line-height:0;
    }

    .aos02_logo a{
        display:inline-flex;
        align-items:center;
        justify-content:flex-start;
        max-width:100%;
        line-height:0;
    }

    /* max-height + Hash width:100% 조합 시 가로만 늘어나 찌그러짐 → width/height auto + contain */
    .aos02_header .aos02_logo img,
    .aos02_nav .aos02_logo img{
        display:block;
        margin:0;
        width:auto;
        max-width:100%;
        height:auto;
        max-height:40px;
        object-fit:contain;
        flex-shrink:0;
    }

    .aos02_nav_btn{
        display:inline-flex !important;
        order:2;
        flex-direction:column;
        justify-content:center;
        align-items:center;
        gap:5px;
        flex-shrink:0;
        width:44px;
        height:44px;
        margin:0;
        padding:0;
        border:1px solid #e5e7eb;
        border-radius:12px;
        background:#f8fafc;
        cursor:pointer;
        position:relative;
        z-index:1003;
    }

    .aos02_nav_btn span{
        display:block;
        width:18px;
        height:2px;
        background:#111827;
        border-radius:1px;
        transition:transform .2s ease, opacity .2s ease;
    }

    .aos02_nav_toggle:checked + .aos02_nav_btn span:nth-child(1){
        transform:translateY(7px) rotate(45deg);
    }

    .aos02_nav_toggle:checked + .aos02_nav_btn span:nth-child(2){
        opacity:0;
    }

    .aos02_nav_toggle:checked + .aos02_nav_btn span:nth-child(3){
        transform:translateY(-7px) rotate(-45deg);
    }

    /* 검색: Header 밖 → 햄버거 패널 내부로 (모바일 UX) */
    .aos02_nav .aos02_inner > .aos02_header_search{
        display:none !important;
    }

    .aos02_panel_search{
        display:flex !important;
        align-items:center;
        justify-content:center;
        min-height:48px;
        margin:12px 16px 0;
        padding:0 16px;
        border-radius:12px;
        border:1px solid #e5e7eb;
        background:#f8fafc;
        color:#111827;
        font-size:15px;
        font-weight:700;
        text-decoration:none;
        box-sizing:border-box;
    }

    /* Overlay — Header 밖 Layer */
    .aos02_nav_dim{
        display:block;
        position:fixed;
        top:0;
        left:0;
        right:0;
        bottom:0;
        width:100%;
        height:100vh;
        margin:0;
        padding:0;
        z-index:11000;
        background:rgba(0, 0, 0, .45);
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transition:opacity .28s ease, visibility .28s ease;
        cursor:pointer;
    }

    body:has(#aos02NavToggle:checked) .aos02_nav_dim{
        opacity:1;
        visibility:visible;
        pointer-events:auto;
    }

    /* MobileMenu Layer — Header 밖, Header 높이 비의존 */
    .aos02_nav_panel{
        position:fixed;
        top:0;
        left:-100%;
        width:min(82vw, 300px);
        max-width:300px;
        height:100vh;
        margin:0;
        padding:0 0 24px;
        z-index:12000;
        display:flex !important;
        flex-direction:column;
        align-items:stretch;
        justify-content:flex-start;
        gap:0;
        background:#fff;
        box-shadow:8px 0 28px rgba(0, 0, 0, .18);
        overflow-x:hidden;
        overflow-y:auto;
        -webkit-overflow-scrolling:touch;
        transition:left .28s ease;
        visibility:visible;
        pointer-events:auto;
    }

    body:has(#aos02NavToggle:checked) .aos02_nav_panel{
        left:0;
    }

    .aos02_nav_close{
        display:flex !important;
        align-items:center;
        justify-content:flex-end;
        flex-shrink:0;
        height:56px;
        padding:0 16px;
        margin:0;
        box-sizing:border-box;
        font-size:22px;
        line-height:1;
        color:#111827;
        cursor:pointer;
        border-bottom:1px solid #e5e7eb;
        background:#fff;
    }

    .aos02_nav_panel .aos02_menu,
    .aos02_header .aos02_nav_panel .aos02_menu{
        display:flex !important;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        width:100%;
        margin:0;
        padding:0;
        flex:0 0 auto;
    }

    .aos02_nav_panel .aos02_menu > li{
        position:relative;
        width:100%;
        flex:none;
        flex-shrink:0;
        min-width:0;
        max-width:100%;
        border-bottom:1px solid #f3f4f6;
    }

    .aos02_nav_panel .aos02_menu > li::after{
        display:none;
    }

    .aos02_nav_panel .aos02_menu > li > a{
        display:flex;
        align-items:center;
        justify-content:space-between;
        min-height:48px;
        padding:12px 20px;
        font-size:15px;
        font-weight:700;
        color:#111827;
        white-space:nowrap;
        word-break:keep-all;
        border-bottom:0;
    }

    .aos02_nav_panel .aos02_depth2{
        position:static !important;
        left:auto !important;
        top:auto !important;
        transform:none !important;
        width:100% !important;
        max-width:100% !important;
        min-width:0 !important;
        margin:0 !important;
        padding:0 12px 12px !important;
        border:0 !important;
        border-radius:0 !important;
        box-shadow:none !important;
        background:#f8fafc !important;
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:auto !important;
        display:none;
        overflow:visible !important;
    }

    .aos02_nav_panel .aos02_menu > li.is-active > .aos02_depth2,
    .aos02_nav_panel .aos02_menu > li.active > .aos02_depth2{
        display:block !important;
    }

    .aos02_nav_panel .aos02_depth2 > ul,
    .aos02_nav_panel ul.aos02_depth2{
        display:flex !important;
        flex-direction:column !important;
        grid-auto-flow:row !important;
        gap:2px !important;
        width:100% !important;
    }

    .aos02_nav_panel .aos02_depth2 li{
        min-width:0;
        width:100%;
    }

    .aos02_nav_panel .aos02_depth2 a{
        display:block;
        width:100%;
        min-width:0;
        padding:10px 12px !important;
        white-space:normal !important;
        word-break:keep-all;
    }

    .aos02_nav_panel .aos02_util,
    .aos02_header .aos02_nav_panel .aos02_util{
        display:flex !important;
        flex-wrap:nowrap;
        align-items:center;
        gap:8px;
        width:100%;
        margin:0;
        padding:12px 16px;
        box-sizing:border-box;
        border-bottom:1px solid #e5e7eb;
    }

    .aos02_nav_panel .aos02_util a{
        flex:1 1 0;
        min-width:0;
        min-height:40px;
        display:inline-flex;
        align-items:center;
        justify-content:center;
        white-space:nowrap;
        word-break:keep-all;
    }

    .aos02_mobile_links{
        display:flex !important;
        flex-direction:column;
        gap:0;
        margin-top:auto;
        padding:8px 0 0;
        border-top:1px solid #e5e7eb;
    }

    .aos02_mobile_links a{
        display:flex;
        align-items:center;
        min-height:48px;
        padding:0 20px;
        color:#111827;
        font-size:15px;
        font-weight:600;
        text-decoration:none;
        white-space:nowrap;
        word-break:keep-all;
        border-bottom:1px solid #f3f4f6;
    }

    body:has(.aos02_nav_toggle:checked){
        overflow:hidden;
    }
}

/* PHASE11+12 MERGED: Hero 텍스트 중심 + 높이 축소 최종값 (≤768). PC 미변경 */
@media (max-width:768px){
    .aos02_visual{
        max-width:100%;
        overflow:visible;
        box-sizing:border-box;
        min-height:0;
        height:auto;
        max-height:none;
        padding:0;
        /* 브랜드 컬러 Gradient — 배경 이미지 미사용 */
        background:#2563eb !important;
        background-image:linear-gradient(180deg, #38bdf8 0%, #3b82f6 48%, #2563eb 100%) !important;
        background-size:auto !important;
        background-position:initial !important;
        background-repeat:no-repeat !important;
        position:relative;
        z-index:1;
        color:#fff;
    }

    .aos02_visual .aos02_inner{
        width:min(1200px, 100%);
        max-width:100%;
        height:auto;
        min-height:0;
        overflow:visible;
        padding:14px 16px 12px;
        display:flex;
        flex-direction:column;
        align-items:stretch;
        justify-content:flex-start;
        gap:0;
        box-sizing:border-box;
    }

    .aos02_visual_text{
        max-width:100%;
        width:100%;
        overflow:visible;
        padding:0 0 10px;
        transform:none;
        text-align:left;
        flex:0 0 auto;
        box-sizing:border-box;
    }

    .aos02_visual_text span,
    .aos02_visual_text h2,
    .aos02_visual_text h,
    .aos02_visual_text p,
    .aos02_visual_text .aos02_visual_lead{
        max-width:100%;
        overflow:visible;
        transform:none;
        text-align:left;
        color:#fff;
    }

    .aos02_visual_text > span{
        display:inline-block !important;
        margin-bottom:8px;
        padding:4px 10px;
        border-radius:999px;
        background:rgba(255,255,255,.22);
        font-size:10px !important;
        font-weight:800;
        letter-spacing:1px;
        color:#fff !important;
    }

    .aos02_visual_text h2{
        margin:0;
        font-size:22px !important;
        line-height:1.3;
        letter-spacing:-.5px;
        font-weight:800;
        color:#fff !important;
    }

    .aos02_visual_text h,
    .aos02_visual_text p,
    .aos02_visual_text .aos02_visual_lead{
        display:block;
        margin:8px 0 0;
        font-size:13px !important;
        line-height:1.4;
        font-weight:600;
        color:rgba(255,255,255,.95) !important;
    }

    .aos02_visual_points{
        margin:8px 0 0;
        padding:0;
        padding-top:0;
        gap:4px 10px;
        display:flex;
        flex-wrap:wrap;
        list-style:none;
    }

    .aos02_visual_points li{
        font-size:11px;
        font-weight:600;
        color:rgba(255,255,255,.92);
    }

    .aos02_visual_btns{
        max-width:100%;
        overflow:visible;
        margin-top:12px;
        gap:6px;
        display:flex;
        flex-wrap:nowrap;
    }

    .aos02_visual_text a,
    .aos02_visual_btns a{
        height:36px;
        padding:0 12px;
        font-size:12px;
        font-weight:800;
        border-radius:999px;
        box-sizing:border-box;
        flex:1 1 auto;
        justify-content:center;
        max-width:50%;
        background:#fff;
        color:#111827;
    }

    .aos02_visual_text a.is-outline,
    .aos02_visual_btns a.is-outline{
        background:transparent;
        border:1px solid rgba(255,255,255,.7);
        color:#fff;
    }

    .aos02_wrap a.aos02_visual_card,
    a.aos02_visual_card,
    .aos02_visual_card{
        display:block !important;
        position:relative;
        z-index:2;
        width:100%;
        max-width:100%;
        flex-shrink:0;
        margin:12px 0 0;
        padding:8px;
        border-radius:16px;
        background:rgba(255,255,255,.2);
        box-shadow:none;
        box-sizing:border-box;
        transform:none;
        color:#fff;
        text-decoration:none;
    }

    .aos02_wrap a.aos02_visual_card:hover,
    a.aos02_visual_card:hover{
        transform:none;
        box-shadow:none;
        color:#fff;
    }

    .aos02_visual_card img{
        width:100%;
        max-width:100%;
        min-height:0;
        max-height:140px;
        height:140px;
        aspect-ratio:auto;
        object-fit:cover;
        border-radius:16px;
        display:block;
    }

    .aos02_visual_card img[src*="blank.gif"],
    .aos02_visual_card img[style*="display:none"]{
        display:none !important;
        min-height:0;
        aspect-ratio:auto;
    }

    .aos02_visual_card_badge{
        top:14px;
        left:14px;
        padding:4px 10px;
        border-radius:999px;
        font-size:11px;
    }

    .aos02_visual_card div{
        padding:8px 6px 2px;
    }

    .aos02_visual_card span{
        font-size:11px;
        margin-bottom:2px;
    }

    .aos02_visual_card strong{
        font-size:18px;
    }

    .aos02_visual_card p{
        margin:4px 0 0;
        font-size:16px;
    }

    .aos02_visual_card small{
        font-size:11px;
        margin-top:4px;
    }

    /* PC -48px 오버랩 방지 — Category 그리드 규칙은 미변경 */
    .aos02_quick{
        margin-top:16px;
        transform:none;
    }
}

/* PHASE10: Category(.aos02_quick) 모바일 여행앱 스타일 — 2행×4열 카드. PC 미변경 */
@media (max-width: 768px){
    .aos02_quick .aos02_inner{
        width:min(1200px, 100%);
        max-width:100%;
        padding-left:16px;
        padding-right:16px;
        box-sizing:border-box;
    }

    .aos02_quick ul{
        display:grid;
        grid-template-columns:repeat(4, 1fr);
        grid-template-rows:repeat(2, 1fr);
        gap:10px;
        padding:14px;
        margin:0;
        list-style:none;
        border-radius:28px;
        box-sizing:border-box;
        max-width:100%;
    }

    .aos02_quick li,
    .aos02_quick .aos02_quick_item{
        aspect-ratio:1 / 1;
        width:100%;
        min-width:0;
        min-height:0;
        padding:0;
        margin:0;
        border-radius:20px;
        background:#f8fafc;
        background-image:none !important;
        box-sizing:border-box;
        overflow:hidden;
        text-align:center;
    }

    .aos02_quick li a{
        display:flex;
        flex-direction:column;
        align-items:center;
        justify-content:center;
        width:100%;
        height:100%;
        min-height:72px;
        padding:10px 4px;
        box-sizing:border-box;
        color:inherit;
        text-decoration:none;
        -webkit-tap-highlight-color:transparent;
    }

    .aos02_quick span,
    .aos02_quick .aos02_quick_icon{
        display:block;
        margin:0;
        padding:0;
        min-height:0 !important;
        font-size:26px;
        line-height:1;
        text-align:center;
    }

    /* has-img 첫 칸: 모바일에서는 배경 이미지 대신 아이콘 */
    .aos02_quick .aos02_quick_item.has-img .aos02_quick_icon:empty::before,
    .aos02_quick .aos02_quick_item.has-img .aos02_quick_icon::before{
        content:"✈️";
    }

    .aos02_quick p{
        display:block !important;
        margin:6px 0 0 !important;
        padding:0 !important;
        border-radius:0 !important;
        background:transparent !important;
        box-shadow:none !important;
        color:inherit !important;
        font-size:11px;
        font-weight:700;
        line-height:1.25;
        text-align:center;
        max-width:100%;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }
}

.sub_visual{
    padding:0;
    background:#111;
    color:#fff;
    text-align:center;
}

.sub_visual.has-banner{
    background:#000;
}

.sub_visual_banner_wrap{
    width:100%;
    min-height:0;
}

.sub_visual_banner{
    position:relative;
    width:100%;
    height:280px;
    overflow:hidden;
}

.sub_visual_banner_bg{
    position:absolute;
    inset:-24px;
    background-position:center;
    background-size:cover;
    background-repeat:no-repeat;
    filter:blur(10px);
    transform:scale(1.08);
}

.sub_visual_banner_bg::after{
    content:"";
    position:absolute;
    inset:0;
    background:rgba(0,0,0,.28);
}

.sub_visual_banner_front{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:100%;
}

.sub_visual_banner_front img{
    display:block;
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
}

.sub_visual_txt span{
    display:block;
    margin-bottom:8px;
    font-size:12px;
    font-weight:700;
    letter-spacing:1px;
    color:rgba(255,255,255,.85);
}

.sub_visual h2{
    font-size:32px;
    font-weight:700;
    margin:0 0 8px;
}

.sub_visual_txt p{
    margin:0;
    font-size:15px;
    color:rgba(255,255,255,.9);
}

.sub_category{
    padding:0;
    border-bottom:1px solid #ccc;
    background:#fff;
    box-shadow:0 2px 6px rgba(0,0,0,.05);
}

.sub_category ul{
    display:flex;
    justify-content:center;
    gap:0;
    flex-wrap:wrap;
}

.sub_category a{
    display:block;
    padding:14px 18px;
    border:none;
    border-bottom:2px solid transparent;
    font-size:14px;
    color:#666;
}

.sub_category a:hover, .sub_category .is-active a{
    color:#111;
    border-bottom-color:#003b7a;
    font-weight:700;
}

.sub_product_list{
    padding:32px 0 64px;
    background:#f3f5f8;
}

.sub_product_list .aos02_title{
    text-align:left;
    margin-bottom:20px;
    padding-bottom:18px;
    border-bottom:2px solid #222;
}

.sub_product_list .aos02_title span{
    font-size:12px;
    color:#003b7a;
    letter-spacing:1px;
}

.sub_product_list .aos02_title h2{
    margin:6px 0;
    font-size:22px;
    font-weight:700;
}

.sub_product_list .aos02_title p{
    font-size:14px;
    color:#888;
}

.aos02_product_layout{
    display:flex;
    align-items:flex-start;
    gap:24px;
}

.aos02_product_filter{
    flex:0 0 240px;
    background:#fff;
    border:1px solid #ccc;
}

.aos02_product_filter_head{
    padding:18px 20px;
    border-bottom:1px solid #e4e7eb;
    background:#f0f2f5;
}

.aos02_product_filter_head strong{
    display:block;
    margin-bottom:4px;
    font-size:16px;
    color:#111;
}

.aos02_product_filter_head span{
    font-size:12px;
    color:#888;
}

.aos02_product_filter_search{
    padding:16px 20px;
    border-bottom:1px solid #e4e7eb;
}

.aos02_product_filter_search input{
    width:100%;
    height:40px;
    padding:0 12px;
    border:1px solid #ddd;
    font-size:13px;
    color:#333;
}

.aos02_product_filter_group{
    padding:16px 20px;
    border-bottom:1px solid #e4e7eb;
}

.aos02_product_filter_group h4{
    margin:0 0 12px;
    font-size:14px;
    font-weight:700;
    color:#111;
}

.aos02_product_filter_group select{
    width:100%;
    height:36px;
    margin-bottom:10px;
    padding:0 10px;
    border:1px solid #ddd;
    font-size:13px;
    color:#333;
}

.aos02_product_filter_date{
    display:flex;
    align-items:center;
    gap:8px;
}

.aos02_product_filter_date input{
    flex:1;
    width:100%;
    height:36px;
    padding:0 8px;
    border:1px solid #ddd;
    font-size:12px;
    color:#333;
}

.aos02_product_filter_date span{
    font-size:13px;
    color:#888;
}

.aos02_product_filter_btns{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.aos02_product_filter_btns span{
    display:inline-flex;
    align-items:center;
    height:32px;
    padding:0 12px;
    border:1px solid #ddd;
    background:#fff;
    font-size:13px;
    color:#333;
    cursor:pointer;
}

.aos02_product_filter_btns span.is-active{
    border-color:#003b7a;
    background:#003b7a;
    color:#fff;
}

.aos02_product_filter_check label{
    display:flex;
    align-items:center;
    gap:8px;
    margin-bottom:8px;
    font-size:13px;
    color:#333;
    cursor:pointer;
}

.aos02_product_filter_check input{
    width:16px;
    height:16px;
    margin:0;
}

.aos02_product_content{
    flex:1;
    min-width:0;
}

.product_list_box{
    background:#fff;
    border:1px solid #ccc;
}

.product_sort{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin:0;
    padding:14px 24px;
    background:#f0f2f5;
    border-bottom:1px solid #ccc;
}

.product_sort p{
    font-size:14px;
    color:#333;
}

.product_sort strong{
    color:#003b7a;
}

.product_sort select{
    width:140px;
    height:36px;
    padding:0 12px;
    border:1px solid #ddd;
    font-size:13px;
    color:#333;
}

.product_sort_tabs{
    display:flex;
    gap:6px;
}

.product_sort_tabs button{
    height:36px;
    padding:0 16px;
    border:1px solid #ddd;
    background:#fff;
    font-size:13px;
    color:#666;
    cursor:pointer;
    transition:all .15s;
}

.product_sort_tabs button:hover{
    border-color:#003b7a;
    color:#003b7a;
}

.product_sort_tabs button.is-active{
    background:#003b7a;
    border-color:#003b7a;
    color:#fff;
    font-weight:600;
}

.product_item{
    display:flex;
    align-items:stretch;
    gap:28px;
    padding:28px 24px;
}

.product_item + .product_item{
    border-top:1px solid #ddd;
}

.product_thumb_wrap{
    position:relative;
    flex:0 0 200px;
    height:156px;
    align-self:flex-start;
}

.product_thumb{
    display:block;
    width:100%;
    height:100%;
    overflow:hidden;
}

/* .product_thumb img → /css/shared/ui-media.css (Phase6) */

.product_wish_heart{
    position:absolute;
    top:10px;
    right:10px;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    width:32px;
    height:32px;
    margin:0;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(0,0,0,.35);
    color:#fff;
    cursor:pointer;
    box-sizing:border-box;
    font:inherit;
    line-height:1;
    -webkit-appearance:none;
    appearance:none;
    transition:background-color .2s, color .2s;
}

.product_wish_heart::before{
    content:'♡';
    font-size:16px;
    line-height:1;
    transform:translateY(1px);
}

.product_wish_heart:hover{
    background:rgba(0,0,0,.5);
}

.product_wish_heart.is-active{
    background:rgba(255,77,109,.92);
    color:#fff;
}

.product_wish_heart.is-active::before{
    content:'♥';
}

.product_info{
    flex:1;
    min-width:0;
}

/* .product_badge / .product_badge_row base → /css/shared/ui-badge.css (Phase6) */

.product_badge.hot{
    background:#ff6b00;
}

.product_badge.sale{
    background:#e60012;
}

.product_badge.confirm{
    background:var(--aos-surface, #fff);
    border:1px solid var(--aos-brand-aos02, #003b7a);
    color:var(--aos-brand-aos02, #003b7a);
}

.product_code{
    margin-bottom:4px;
    font-size:12px;
    color:#999;
}

.product_info h3{
    margin-bottom:8px;
    font-size:18px;
    font-weight:700;
    color:#111;
    line-height:1.4;
}

.product_info h3 a{
    color:inherit;
}

.product_info p{
    margin-bottom:10px;
    font-size:14px;
    color:#666;
    line-height:1.6;
}

.product_desc{
    margin-bottom:0;
}

.product_meta{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:8px 20px;
    margin:0 0 12px;
    padding:4px 16px;
    background:#f7f8fa;
    border:1px solid #e4e7eb;
    list-style:none;
}

.product_meta li{
    display:flex;
    gap:8px;
    margin:0;
    font-size:13px;
}

.product_meta li span{
    flex:0 0 52px;
    color:#888;
}

.product_meta li strong{
    color:#333;
    font-weight:600;
}


.product_meta--row{
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:0;
    grid-template-columns:unset;
}

.product_meta--row .product_meta_icon{
    display:inline-block;
    width:18px;
    height:18px;
    border-radius:50%;
    background:#003b7a;
    color:#fff;
    font-size:9px;
    font-style:normal;
    font-weight:700;
    line-height:18px;
    text-align:center;
    flex-shrink:0;
}

.product_meta--row .product_meta_icon::after{
    content:"";
}

.product_meta_air.airline-korean .product_meta_icon{
    background:#0b4ea2;
}

.product_meta_air.airline-korean .product_meta_icon::after{
    content:"KE";
}

.product_meta_air.airline-asiana .product_meta_icon{
    background:#c41e3a;
}

.product_meta_air.airline-asiana .product_meta_icon::after{
    content:"OZ";
}

.product_meta_air.airline-jeju .product_meta_icon{
    background:#ff6b00;
}

.product_meta_air.airline-jeju .product_meta_icon::after{
    content:"7C";
}

.product_meta_air.airline-jinair .product_meta_icon{
    background:#7cc242;
}

.product_meta_air.airline-jinair .product_meta_icon::after{
    content:"LJ";
}

.product_meta_air.airline-tway .product_meta_icon{
    background:#d71920;
}

.product_meta_air.airline-tway .product_meta_icon::after{
    content:"TW";
}

.product_meta_air.airline-airseoul .product_meta_icon{
    background:#00a651;
}

.product_meta_air.airline-airseoul .product_meta_icon::after{
    content:"RS";
}

.product_meta_air.airline-airbusan .product_meta_icon{
    background:#1f76d2;
}

.product_meta_air.airline-airbusan .product_meta_icon::after{
    content:"BX";
}

.product_meta_air.airline-eastar .product_meta_icon{
    background:#e60012;
}

.product_meta_air.airline-eastar .product_meta_icon::after{
    content:"ZE";
}

.product_meta--row strong{
    font-size:13px;
    font-weight:600;
    color:#333;
}

.product_meta--row > * + *{
    margin-left:16px;
    padding-left:16px;
    border-left:1px solid #d0d4da;
}


.product_icons{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    margin:0 0 10px;
}

.product_icons span{
    padding:3px 8px;
    border:1px solid #e8e8e8;
    background:#fafafa;
    font-size:11px;
    color:#666;
}

.product_tags{
    display:flex;
    flex-wrap:wrap;
    gap:4px;
}

.product_tags span{
    padding:2px 8px;
    background:#f5f5f5;
    font-size:11px;
    color:#888;
}

.product_info ul li{
    margin-top:3px;
    font-size:13px;
    color:#888;
}

.product_price{
    flex:0 0 168px;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-end;
    text-align:right;
    padding:8px 0 8px 24px;
    border-left:1px solid #e0e0e0;
}

.product_seat{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    color:#003b7a;
    font-weight:600;
}

.product_seat.urgent{
    color:#e60012;
}

.product_origin{
    display:block;
    margin-bottom:2px;
    font-size:13px;
    color:#bbb;
    text-decoration:line-through;
}

.product_price span{
    display:block;
    margin-bottom:4px;
    font-size:12px;
    color:#888;
}

.product_price strong{
    display:block;
    margin-bottom:12px;
    font-size:20px;
    font-weight:800;
    color:#003b7a;
}

.product_price a{
    display:inline-block;
    padding:10px 35px;
    background:#003b7a;
    color:#fff;
    font-size:14px;
    font-weight:700;
}

.product_paging{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:4px;
    margin-top:28px;
    padding:20px 24px;
    background:#fff;
    border:1px solid #ccc;
}

.product_paging a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:36px;
    height:36px;
    padding:0 10px;
    border:1px solid #ddd;
    font-size:14px;
    color:#666;
}

.product_paging a.is-active{
    border-color:#003b7a;
    background:#003b7a;
    color:#fff;
    font-weight:700;
}

.product_paging a.next{
    padding:0 14px;
    font-size:13px;
}

.product_notice{
    margin-top:16px;
    padding:18px 24px;
    background:#fff;
    border:1px solid #ddd;
}

.product_notice{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.product_notice p{
    margin:0;
    font-size:13px;
    color:#888;
    line-height:1.6;
}

.china_main_visual{
    background:linear-gradient(rgba(0,0,0,.5), rgba(0,0,0,.5)),
        url("../images/main/c02.png") center center / cover no-repeat;
}

.china_dest_quick{
    padding:24px 0;
    background:#fff;
    border-bottom:1px solid #ccc;
}

.china_dest_quick ul{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:12px;
    list-style:none;
}

.china_dest_quick a{
    display:block;
    padding:12px;
    border:1px solid #ddd;
    background:#fff;
    text-align:center;
    color:#333;
}

.china_dest_quick a:hover{
    border-color:#003b7a;
}

.china_dest_quick img{
    width:100%;
    height:90px;
    object-fit:cover;
    margin-bottom:10px;
    border:1px solid #eee;
}

.china_dest_quick strong{
    display:block;
    margin-bottom:4px;
    font-size:15px;
    font-weight:700;
    color:#111;
}

.china_dest_quick span{
    font-size:12px;
    color:#888;
}

.aos02_product_region .aos02_dest_panel{
    display:none;
    margin:0;
    padding:0;
    list-style:none;
}

.aos02_product_region .is-panel-all{
    display:grid;
}

.aos02_product_region .sub_category li{
    position:relative;
}

.aos02_product_region .sub_category li.is-tab-sea:hover::after,
.aos02_product_region .sub_category li.is-tab-japan:hover::after,
.aos02_product_region .sub_category li.is-tab-europe:hover::after,
.aos02_product_region .sub_category li.is-tab-america:hover::after,
.aos02_product_region .sub_category li.is-tab-china:hover::after,
.aos02_product_region .sub_category li.is-tab-aus:hover::after{
    content:'';
    position:absolute;
    left:0;
    right:0;
    top:100%;
    height:48px;
    z-index:5;
}

.aos02_product_region .china_dest_quick{
    padding-top:0;
}

.aos02_product_region .china_dest_quick .aos02_inner{
    padding-top:24px;
}

.aos02_product_region:has(.is-tab-sea:hover) .is-panel-all,
.aos02_product_region:has(.is-panel-sea:hover) .is-panel-all,
.aos02_product_region:has(.is-tab-japan:hover) .is-panel-all,
.aos02_product_region:has(.is-panel-japan:hover) .is-panel-all,
.aos02_product_region:has(.is-tab-europe:hover) .is-panel-all,
.aos02_product_region:has(.is-panel-europe:hover) .is-panel-all,
.aos02_product_region:has(.is-tab-america:hover) .is-panel-all,
.aos02_product_region:has(.is-panel-america:hover) .is-panel-all,
.aos02_product_region:has(.is-tab-china:hover) .is-panel-all,
.aos02_product_region:has(.is-panel-china:hover) .is-panel-all,
.aos02_product_region:has(.is-tab-aus:hover) .is-panel-all,
.aos02_product_region:has(.is-panel-aus:hover) .is-panel-all{
    display:none;
}

.aos02_product_region:has(.is-tab-sea:hover) .is-panel-sea,
.aos02_product_region:has(.is-panel-sea:hover) .is-panel-sea{
    display:grid;
}

.aos02_product_region:has(.is-tab-japan:hover) .is-panel-japan,
.aos02_product_region:has(.is-panel-japan:hover) .is-panel-japan{
    display:grid;
}

.aos02_product_region:has(.is-tab-europe:hover) .is-panel-europe,
.aos02_product_region:has(.is-panel-europe:hover) .is-panel-europe{
    display:grid;
}

.aos02_product_region:has(.is-tab-america:hover) .is-panel-america,
.aos02_product_region:has(.is-panel-america:hover) .is-panel-america{
    display:grid;
}

.aos02_product_region:has(.is-tab-china:hover) .is-panel-china,
.aos02_product_region:has(.is-panel-china:hover) .is-panel-china{
    display:grid;
}

.aos02_product_region:has(.is-tab-aus:hover) .is-panel-aus,
.aos02_product_region:has(.is-panel-aus:hover) .is-panel-aus{
    display:grid;
}

.aos02_product_region:has(.is-tab-all:hover) .is-tab-all a,
.aos02_product_region:has(.is-panel-all:hover) .is-tab-all a,
.aos02_product_region:has(.is-tab-sea:hover) .is-tab-sea a,
.aos02_product_region:has(.is-panel-sea:hover) .is-tab-sea a,
.aos02_product_region:has(.is-tab-japan:hover) .is-tab-japan a,
.aos02_product_region:has(.is-panel-japan:hover) .is-tab-japan a,
.aos02_product_region:has(.is-tab-europe:hover) .is-tab-europe a,
.aos02_product_region:has(.is-panel-europe:hover) .is-tab-europe a,
.aos02_product_region:has(.is-tab-america:hover) .is-tab-america a,
.aos02_product_region:has(.is-panel-america:hover) .is-tab-america a,
.aos02_product_region:has(.is-tab-china:hover) .is-tab-china a,
.aos02_product_region:has(.is-panel-china:hover) .is-tab-china a,
.aos02_product_region:has(.is-tab-aus:hover) .is-tab-aus a,
.aos02_product_region:has(.is-panel-aus:hover) .is-tab-aus a{
    color:#111;
    border-bottom-color:#003b7a;
    font-weight:700;
}

.aos02_product_region:has(.is-tab-sea:hover) .is-tab-all a,
.aos02_product_region:has(.is-panel-sea:hover) .is-tab-all a,
.aos02_product_region:has(.is-tab-japan:hover) .is-tab-all a,
.aos02_product_region:has(.is-panel-japan:hover) .is-tab-all a,
.aos02_product_region:has(.is-tab-europe:hover) .is-tab-all a,
.aos02_product_region:has(.is-panel-europe:hover) .is-tab-all a,
.aos02_product_region:has(.is-tab-america:hover) .is-tab-all a,
.aos02_product_region:has(.is-panel-america:hover) .is-tab-all a,
.aos02_product_region:has(.is-tab-china:hover) .is-tab-all a,
.aos02_product_region:has(.is-panel-china:hover) .is-tab-all a,
.aos02_product_region:has(.is-tab-aus:hover) .is-tab-all a,
.aos02_product_region:has(.is-panel-aus:hover) .is-tab-all a{
    color:#666;
    border-bottom-color:transparent;
    font-weight:400;
}

.aos02_product_region .is-panel-cols-4{
    grid-template-columns:repeat(4,1fr);
}

.china_promo{
    padding:24px 0;
    background:#f3f5f8;
}

.china_promo_box{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    padding:24px 32px;
    background:#003b7a;
    border:1px solid #003b7a;
    color:#fff;
}

.china_promo_txt span{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:700;
    letter-spacing:1px;
    color:rgba(255,255,255,.8);
}

.china_promo_txt h3{
    margin:0 0 6px;
    font-size:22px;
    font-weight:700;
}

.china_promo_txt p{
    margin:0;
    font-size:14px;
    color:rgba(255,255,255,.9);
}

.china_promo_box > a{
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:44px;
    padding:0 24px;
    background:#fff;
    color:#003b7a;
    font-size:14px;
    font-weight:700;
}

.china_section{
    padding:32px 0;
}

.china_section .aos02_title{
    text-align:left;
    margin-bottom:20px;
    padding-bottom:18px;
    border-bottom:2px solid #222;
}

.china_section .aos02_title span{
    font-size:12px;
    color:#003b7a;
    letter-spacing:1px;
    font-weight:700;
}

.china_section .aos02_title h2{
    margin:6px 0;
    font-size:22px;
    font-weight:700;
    letter-spacing:0;
}

.china_section .aos02_title p{
    font-size:14px;
    color:#888;
}

.china_best{
    background:#f3f5f8;
}

.china_best_grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:16px;
}

.china_best_card{
    background:#fff;
    border:1px solid #ccc;
    overflow:hidden;
}

.china_best_card a{
    display:block;
    color:inherit;
}

.china_best_card img{
    width:100%;
    height:180px;
    object-fit:cover;
    display:block;
    border-bottom:1px solid #eee;
}

.china_best_card div{
    padding:16px;
}

.china_best_card em{
    display:inline-block;
    margin-bottom:8px;
    padding:3px 8px;
    background:#003b7a;
    color:#fff;
    font-size:11px;
    font-style:normal;
    font-weight:700;
}

.china_best_card em.hot{
    background:#ff6b00;
}

.china_best_card em.is-sale{
    background:#e60012;
}

.china_best_card em.is-outline{
    background:#fff;
    border:1px solid #003b7a;
    color:#003b7a;
}

.china_best_card h3{
    margin:0 0 6px;
    font-size:16px;
    font-weight:700;
    color:#111;
    line-height:1.4;
}

.china_best_card p{
    margin:0 0 10px;
    font-size:13px;
    color:#666;
    line-height:1.5;
}

.china_best_card strong{
    font-size:18px;
    font-weight:800;
    color:#003b7a;
}

.china_spotlight{
    background:#fff;
    border-top:1px solid #ccc;
    border-bottom:1px solid #ccc;
}

.china_spotlight_grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr;
    gap:12px;
}

.china_spotlight_card{
    position:relative;
    display:block;
    height:280px;
    overflow:hidden;
    border:1px solid #ccc;
    color:#fff;
}

.china_spotlight_card img{
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .3s;
}

.china_spotlight_card:hover img{
    transform:scale(1.05);
}

.china_spotlight_card::after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(to top, rgba(0,0,0,.65), rgba(0,0,0,.1));
}

.china_spotlight_txt{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:1;
    padding:20px;
}

.china_spotlight_txt span{
    display:block;
    margin-bottom:6px;
    font-size:11px;
    font-weight:700;
    letter-spacing:1px;
    color:rgba(255,255,255,.85);
}

.china_spotlight_txt strong{
    display:block;
    font-size:20px;
    font-weight:700;
}

.china_spotlight_txt p{
    margin:8px 0 0;
    font-size:13px;
    color:rgba(255,255,255,.9);
    line-height:1.5;
}

.china_spotlight_card.is-large{
    height:280px;
}

.china_theme{
    background:#f3f5f8;
}

.china_theme_list{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:10px;
}

.china_theme_list a{
    display:flex;
    align-items:center;
    justify-content:center;
    height:52px;
    background:#fff;
    border:1px solid #ccc;
    font-size:14px;
    font-weight:600;
    color:#333;
}

.china_theme_list a:hover{
    border-color:#003b7a;
    color:#003b7a;
}

.china_theme_product{
    margin-top:24px;
}

.china_theme_panel{
    display:none;
}

.china_theme_panel.is-active{
    display:grid;
}

.china_theme_list a.is-active{
    background:#003b7a;
    border-color:#003b7a;
    color:#fff;
}

.china_theme_product .china_best_card em{
    background:#f0f2f5;
    border:1px solid #e4e7eb;
    color:#003b7a;
}

@media (max-width:768px){
    .sub_visual{
        padding:0;
    }

    .sub_visual_banner{
        height:220px;
    }

    .sub_visual h2{
        font-size:24px;
    }

    .sub_category ul{
        overflow-x:auto;
        flex-wrap:nowrap;
    }

    .sub_category a{
        white-space:nowrap;
        padding:12px 14px;
        font-size:13px;
    }

    .aos02_product_layout{
        flex-direction:column;
    }

    .aos02_product_filter{
        flex:0 0 auto;
        width:100%;
    }

    .product_item{
        flex-direction:column;
        gap:14px;
        padding:20px 16px;
    }

    .product_thumb_wrap{
        width:100%;
        flex:0 0 auto;
        height:180px;
    }

    .product_thumb{
        width:100%;
        height:100%;
    }

    .product_meta{
        grid-template-columns:1fr;
    }

    .product_icons{
        gap:4px;
    }

    .product_price{
        width:100%;
        flex:0 0 auto;
        flex-direction:row;
        align-items:center;
        justify-content:space-between;
        text-align:left;
        padding:16px 0 0;
        border-left:none;
        border-top:1px solid #e0e0e0;
    }

    .product_sort{
        padding:12px 16px;
    }

    .product_price strong{
        margin-bottom:0;
    }

    .china_dest_quick ul,
    .aos02_product_region .aos02_dest_panel{
        grid-template-columns:repeat(3,1fr);
        gap:8px;
    }

    .aos02_product_region .is-panel-cols-4{
        grid-template-columns:repeat(2,1fr);
    }

    .china_dest_quick img{
        height:70px;
    }

    .china_promo_box{
        flex-direction:column;
        align-items:flex-start;
        padding:20px;
    }

    .china_promo_box > a{
        width:100%;
    }

    .china_best_grid{
        grid-template-columns:repeat(2,1fr);
        gap:12px;
    }

    .china_spotlight_grid{
        grid-template-columns:1fr;
    }

    .china_spotlight_card, .china_spotlight_card.is-large{
        height:200px;
    }

    .china_theme_list{
        grid-template-columns:repeat(3,1fr);
    }
}

.tour_view{
    background:#f3f5f8;
}

.view_top{
    padding:32px 0 36px;
    background:#fff;
    border-bottom:1px solid #ccc;
    box-shadow:0 2px 6px rgba(0,0,0,.05);
}

.view_title{
    margin-bottom:28px;
    padding-bottom:24px;
    border-bottom:2px solid #111;
}

.view_title > div{
    display:flex;
    align-items:center;
    gap:15px;
    margin-bottom:14px;
}

.view_badge{
    display:inline-block;
    padding:4px 8px;
    background:#003b7a;
    color:#fff;
    border-radius:0;
    font-size:11px;
    font-weight:700;
}

.view_title_badges{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.view_code{
    color:#555;
    font-size:14px;
}

.view_title h2{
    margin-bottom:16px;
    font-size:34px;
    line-height:1.35;
    color:#111;
    font-weight:800;
}

.view_title p{
    color:#333;
    font-size:16px;
}

.view_layout{
    display:flex;
    gap:36px;
    align-items:flex-start;
}

.view_left{
    flex:1;
    min-width:0;
}

.reserve_box{
    width:280px;
    flex-shrink:0;
    align-self:stretch;
}

.reserve_inner{
    position:sticky;
    top:24px;
    padding:24px;
    background:#fff;
    border:1px solid #ccc;
}

.reserve_inner h3{
    margin-bottom:14px;
    padding-bottom:10px;
    border-bottom:1px solid #222;
    font-size:18px;
    font-weight:700;
    color:#111;
}

.reserve_date{
    padding-bottom:12px;
    border-bottom:1px solid #eee;
}

.reserve_date dl{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:8px;
}

.reserve_date dt{
    color:#888;
    font-size:13px;
}

.reserve_date dd{
    color:#111;
    font-size:13px;
    font-weight:700;
}

.date_btn{
    width:100%;
    height:36px;
    margin:12px 0;
    border:1px solid #ccc;
    background:#fff;
    color:#333;
    font-size:13px;
    font-weight:600;
    cursor:pointer;
}

.date_btn.is-active{
    border-color:#2563eb;
    background:#eff6ff;
    color:#2563eb;
}

.reserve_box.is-calendar-open,
.reserve_box.is-calendar-open .reserve_inner{
    overflow:visible;
}

.tour_departure_calendar_slot{
    display:none;
    position:fixed;
    z-index:9999;
    max-height:min(520px, 70vh);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    box-sizing:border-box;
}

.tour_departure_calendar_slot.is-open{
    display:block;
}

.tour_departure_calendar_slot .avn_sub_detail_calendar{
    padding:16px 18px 14px;
    border:1px solid #333;
    border-radius:12px;
    background:#fff;
    box-shadow:0 16px 40px rgba(15,23,42,.15);
}

.avn_sub_detail_top{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    margin-bottom:14px;
}

.avn_sub_detail_center{
    display:flex;
    align-items:center;
    gap:10px;
    font-size:15px;
}

.avn_sub_detail_center strong{
    font-weight:800;
}

.avn_sub_detail_arrow{
    cursor:pointer;
    color:#64748b;
    font-size:22px;
    line-height:1;
    user-select:none;
}

.avn_sub_detail_week{
    display:grid;
    grid-template-columns:repeat(7, 1fr);
    gap:4px;
    margin-bottom:6px;
    text-align:center;
    font-size:12px;
    font-weight:600;
    color:#64748b;
}

.avn_sub_detail_week .sat{ color:#2563eb; }
.avn_sub_detail_week .sun{ color:#ef4444; }

.avn_sub_detail_days{
    display:grid;
    grid-template-columns:repeat(7, 1fr);
    gap:6px;
}

.avn_sub_detail_days > div{
    min-height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.avn_sub_detail_days > div button{
    width:100%;
    min-height:48px;
    padding:4px 2px;
    border:0;
    border-radius:8px;
    background:transparent;
    font-size:13px;
    font-weight:600;
    line-height:1.2;
    cursor:pointer;
}

.avn_sub_detail_days > div.available button:hover{
    filter:brightness(0.97);
    color:#2563eb;
}

.avn_sub_detail_days > div.disabled button,
.avn_sub_detail_days > div button:disabled{
    color:#cbd5e1;
    cursor:default;
}

.avn_sub_detail_days > div button em{
    display:block;
    margin-top:2px;
    font-style:normal;
    font-size:10px;
    font-weight:600;
    color:#2563eb;
}

@media (max-width: 991px){
    .tour_departure_calendar_slot.is-open{
        left:12px !important;
        right:12px !important;
        width:auto !important;
    }
}

.reserve_people{
    display:flex;
    flex-direction:column;
    gap:12px;
    padding:12px 0;
    border-bottom:1px solid #eee;
}

.people_row{
    display:flex;
    justify-content:space-between;
    align-items:center;
}

.people_row span{
    display:block;
    margin-bottom:2px;
    color:#888;
    font-size:12px;
}

.people_row strong{
    color:#111;
    font-size:14px;
    font-weight:700;
}

.count_box{
    display:flex;
    align-items:center;
}

.count_box button, .count_box input{
    width:28px;
    height:28px;
    border:1px solid #ddd;
    background:#fff;
    font-size:13px;
    text-align:center;
}

.count_box input{
    width:32px;
    border-left:none;
    border-right:none;
}

.coupon_box{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:12px 0;
    border-bottom:1px solid #eee;
}

.coupon_box span{
    color:#666;
    font-size:13px;
}

.coupon_box button{
    height:28px;
    padding:0 10px;
    border:1px solid #ff6b00;
    background:#fff;
    color:#ff6b00;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
}

.option_box{
    padding:12px 0;
    border-bottom:1px solid #eee;
}

.option_box_title{
    margin-bottom:10px;
    color:#222;
    font-size:13px;
    font-weight:700;
}

.option_item{
    padding:10px 0;
    border-top:1px dashed #eee;
}

.option_item:first-of-type{
    border-top:none;
    padding-top:0;
}

.option_check{
    display:flex;
    align-items:center;
    gap:6px;
    margin-bottom:8px;
    cursor:pointer;
}

.option_check input{
    margin:0;
}

.option_name{
    color:#333;
    font-size:13px;
    font-weight:600;
}

.option_badge{
    display:inline-block;
    padding:1px 6px;
    border:1px solid #ccc;
    border-radius:3px;
    color:#777;
    font-size:11px;
    font-style:normal;
    font-weight:600;
}

.option_badge.is-required{
    border-color:#ff6b00;
    color:#ff6b00;
}

.option_detail_row{
    display:flex;
    align-items:center;
    gap:6px;
}

.option_detail,
.option_qty{
    height:30px;
    border:1px solid #ddd;
    border-radius:4px;
    background:#fff;
    color:#333;
    font-size:12px;
}

.option_detail{
    flex:1;
    min-width:0;
}

.option_qty{
    width:56px;
}

.option_unit{
    flex-shrink:0;
    color:#666;
    font-size:12px;
    white-space:nowrap;
}

.option_selected_row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:8px;
    padding:8px 0;
    border-top:1px dashed #eee;
}

.option_selected_row:first-of-type{
    border-top:none;
    padding-top:0;
}

.option_selected_row span{
    display:block;
    color:#333;
    font-size:13px;
    font-weight:600;
    line-height:1.4;
}

.option_selected_row em{
    display:block;
    margin-top:2px;
    color:#888;
    font-size:11px;
    font-style:normal;
}

.option_selected_row strong{
    flex-shrink:0;
    color:#222;
    font-size:13px;
    font-weight:700;
    white-space:nowrap;
}

.total_price{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 0 12px;
}

.total_price span{
    color:#666;
    font-size:13px;
}

.total_price strong{
    color:#003b7a;
    font-size:22px;
    font-weight:800;
}

a.reserve_btn{
    display:flex;
    justify-content:center;
    align-items:center;
    height:48px;
    background:#003b7a;
    color:#fff;
    font-size:16px;
    font-weight:700;
}

a.reserve_btn:hover{
    color:#fff;
}

.view_visual{
    display:grid;
    grid-template-columns:1fr 400px;
    gap:20px;
    align-items:stretch;
    width:100%;
    margin-bottom:24px;
}

.view_gallery{
    display:flex;
    width:100%;
    min-width:0;
    min-height:100%;
}

.view_slider{
    position:relative;
    flex:1;
    width:100%;
    min-height:100%;
}

.view_slider_radio{
    position:absolute;
    width:1px;
    height:1px;
    margin:-1px;
    padding:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    border:0;
}

.view_slider_viewport{
    position:relative;
    width:100%;
    height:100%;
    min-height:100%;
    overflow:hidden;
    border:1px solid #ccc;
    background:#f3f5f8;
}

.view_tour_swiper{
    position:relative;
    width:100%;
    height:100%;
    min-height:420px;
}

.view_tour_swiper .swiper-wrapper,
.view_tour_swiper .swiper-slide{
    height:100%;
}

.view_tour_swiper .view_slide_inner{
    width:100%;
    height:100%;
}

.view_tour_swiper .view_slide_inner img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
}

.view_tour_swiper .view_slider_arrow{
    display:flex;
}

.view_tour_swiper .view_slider_arrow.swiper-button-prev{
    left:14px;
    right:auto;
}

.view_tour_swiper .view_slider_arrow.swiper-button-next{
    right:14px;
    left:auto;
}

.view_tour_swiper .view_slider_arrow.is-prev::before,
.view_tour_swiper .view_slider_arrow.is-next::before{
    content:"";
    display:block;
    width:9px;
    height:9px;
    margin:0 auto;
    border-top:2px solid #333;
    border-right:2px solid #333;
}

.view_tour_swiper .view_slider_arrow.is-prev::before{
    transform:translateX(2px) rotate(-135deg);
}

.view_tour_swiper .view_slider_arrow.is-next::before{
    transform:translateX(-2px) rotate(45deg);
}

.view_tour_swiper.is-single .view_slider_arrow{
    display:none;
}

.view_tour_swiper .view_slider_count{
    display:block;
    left:50%;
    right:auto;
    transform:translateX(-50%);
}

.view_tour_swiper .swiper-button-prev:after,
.view_tour_swiper .swiper-button-next:after{
    display:none;
}

.view_tour_swiper .swiper-button-disabled{
    opacity:.35;
    pointer-events:none;
}

.view_slider_list{
    margin:0;
    padding:0;
    list-style:none;
    width:100%;
    height:100%;
}

.view_slide{
    display:none;
    width:100%;
    height:100%;
}

.view_slide img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
}

.view_slider_arrow{
    display:none;
    position:absolute;
    top:50%;
    z-index:2;
    width:42px;
    height:42px;
    margin:0;
    padding:0;
    border:none;
    border-radius:50%;
    background:rgba(255,255,255,.88);
    box-shadow:0 1px 4px rgba(0,0,0,.15);
    transform:translateY(-50%);
    cursor:pointer;
    align-items:center;
    justify-content:center;
}

.view_slider_arrow.is-prev{
    left:14px;
}

.view_slider_arrow.is-next{
    right:14px;
}

.view_slider_arrow.is-prev::before,
.view_slider_arrow.is-next::before{
    content:"";
    display:block;
    width:9px;
    height:9px;
    margin:0 auto;
    border-top:2px solid #333;
    border-right:2px solid #333;
}

.view_slider_arrow.is-prev::before{
    transform:translateX(2px) rotate(-135deg);
}

.view_slider_arrow.is-next::before{
    transform:translateX(-2px) rotate(45deg);
}

.view_slider_arrow:hover{
    background:#fff;
}

.view_slider_count{
    display:none;
    position:absolute;
    right:14px;
    bottom:14px;
    z-index:2;
    padding:5px 12px;
    border-radius:20px;
    background:rgba(0,0,0,.55);
    font-size:12px;
    font-weight:600;
    color:#fff;
    line-height:1.2;
}

#tourViewSlide1:checked ~ .view_slider_viewport .is-slide-1,
#tourViewSlide2:checked ~ .view_slider_viewport .is-slide-2,
#tourViewSlide3:checked ~ .view_slider_viewport .is-slide-3{
    display:block;
}

#tourViewSlide1:checked ~ .view_slider_viewport .is-nav-from-1,
#tourViewSlide2:checked ~ .view_slider_viewport .is-nav-from-2,
#tourViewSlide3:checked ~ .view_slider_viewport .is-nav-from-3{
    display:flex;
}

#tourViewSlide1:checked ~ .view_slider_viewport .is-count-1,
#tourViewSlide2:checked ~ .view_slider_viewport .is-count-2,
#tourViewSlide3:checked ~ .view_slider_viewport .is-count-3{
    display:block;
}

.view_summary{
    width:100%;
    min-width:0;
    height:100%;
    padding:18px 20px;
    background:#fff;
    border:1px solid #ccc;
    box-sizing:border-box;
}

.view_summary_price{
    margin-bottom:14px;
    padding-bottom:14px;
    border-bottom:1px solid #e4e7eb;
}

.view_summary_price span{
    display:block;
    margin-bottom:6px;
    font-size:13px;
    color:#888;
}

.view_summary_price p{
    margin:0 0 4px;
    font-size:15px;
    color:#111;
}

.view_summary_price p strong{
    font-size:28px;
    font-weight:800;
    color:#003b7a;
    letter-spacing:-0.02em;
}

.view_summary_price em{
    display:block;
    font-size:12px;
    font-style:normal;
    color:#999;
}

.view_summary_info{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0 12px;
    margin:0 0 14px;
    padding:0 0 14px;
    border-bottom:1px solid #e4e7eb;
}

.view_summary_info div{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
    padding:5px 0;
}

.view_summary_info dt{
    flex:0 0 auto;
    font-size:12px;
    color:#888;
    white-space:nowrap;
}

.view_summary_info dd{
    margin:0;
    font-size:13px;
    font-weight:600;
    color:#111;
    text-align:right;
}

.view_summary_info dd.is-point{
    color:#003b7a;
    font-weight:700;
}

.view_summary_depart{
    margin-bottom:14px;
    padding-bottom:14px;
    border-bottom:1px solid #e4e7eb;
}

.view_summary_depart p{
    margin:0 0 8px;
    font-size:12px;
    font-weight:700;
    color:#333;
}

.view_summary_depart ul{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0;
    padding:0;
    list-style:none;
}

.view_summary_depart li button{
    height:32px;
    padding:0 10px;
    border:1px solid #ccc;
    background:#fff;
    font-size:12px;
    font-weight:600;
    color:#666;
    cursor:pointer;
}

.view_summary_depart li.is-active button{
    border-color:#003b7a;
    background:#003b7a;
    color:#fff;
}

.view_summary_benefit{
    margin:0 0 14px;
    padding:10px 12px;
    list-style:none;
    background:#f3f5f8;
    border:1px solid #e4e7eb;
}

.view_summary_benefit li{
    position:relative;
    padding:0 0 0 10px;
    font-size:11px;
    color:#666;
    line-height:1.5;
}

.view_summary_benefit li + li{
    margin-top:4px;
}

.view_summary_benefit li::before{
    content:"·";
    position:absolute;
    left:0;
    color:#999;
}

.view_summary_benefit strong{
    color:#003b7a;
    font-weight:700;
}

.view_summary_btns{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.aos02_wrap .view_summary_reserve, .view_summary_reserve{
    flex:1 1 100%;
    display:flex;
    align-items:center;
    justify-content:center;
    height:46px;
    background:#003b7a;
    font-size:15px;
    font-weight:700;
    color:#fff;
}

.aos02_wrap .view_summary_reserve:hover, .view_summary_reserve:hover{
    color:#fff;
    background:#002a57;
}

.view_summary_wish, .view_summary_qna{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    height:40px;
    border:1px solid #ccc;
    background:#fff;
    font-size:13px;
    font-weight:600;
    color:#333;
}

.view_summary_wish:hover, .view_summary_qna:hover{
    border-color:#003b7a;
    color:#003b7a;
}

.div_image, .main_image{
    flex:1;
    min-width:0;
    aspect-ratio:4/3;
    overflow:hidden;
    border:1px solid #ccc;
    background:#f3f5f8;
}

.div_image img, .main_image img{
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
    display:block;
}

.thumb_list{
    display:flex;
    flex-direction:column;
    gap:8px;
    width:112px;
    flex:0 0 112px;
}

.thumb_list img{
    flex:1;
    width:100%;
    min-height:0;
    object-fit:cover;
    object-position:center;
    display:block;
    border:1px solid #ccc;
    cursor:pointer;
    opacity:.85;
    transition:border-color .15s, opacity .15s;
}

.thumb_list img.is-active{
    border:2px solid #003b7a;
    opacity:1;
}

.view_icons{
    border:1px solid #ccc;
    background:#fff;
}

.view_icons ul{
    display:grid;
    grid-template-columns:repeat(6,1fr);
    gap:0;
}

.view_icons li{
    text-align:center;
    padding:20px 12px;
    border:none;
    background:#fff;
}

.view_icons li + li{
    border-left:1px solid #e4e7eb;
}

.view_icons li span{
    display:block;
    margin-bottom:6px;
    font-size:24px;
    line-height:1;
}

.view_icons li strong{
    display:block;
    font-size:14px;
    color:#111;
    line-height:1.3;
}

.view_icons li p{
    font-size:13px;
    color:#666;
    line-height:1.4;
}

.detail_left{
    flex:1;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:16px;
}

.view_section, .view_div{
    margin-bottom:0;
    padding:28px 24px;
    background:#fff;
    border:1px solid #ccc;
}

.view_section h3, .view_div h3{
    margin-bottom:20px;
    padding-bottom:14px;
    border-bottom:2px solid #222;
    font-size:20px;
    color:#111;
    font-weight:700;
}

.reserve_inner h3{
    margin-bottom:14px;
    padding-bottom:10px;
    border-bottom:1px solid #222;
    font-size:18px;
    font-weight:700;
}

.view_section_head, .view_div_head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:20px;
    padding-bottom:14px;
    border-bottom:2px solid #222;
}

.view_section_head h3, .view_div_head h3{
    margin-bottom:0;
    padding-bottom:0;
    border-bottom:none;
    font-size:20px;
    font-weight:700;
}

.view_section_head a, .view_div_head a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:38px;
    padding:0 22px;
    border:1px solid #bbb;
    color:#333;
    font-size:14px;
}

.view_section_head span, .view_div_head span{
    color:#666;
    font-size:14px;
}

.schedule_box{
    border:1px solid #e4e7eb;
}

.schedule_row{
    display:grid;
    grid-template-columns:100px 1fr;
}

.schedule_row + .schedule_row{
    border-top:1px solid #e4e7eb;
}

.schedule_row > strong{
    display:flex;
    align-items:center;
    padding:14px 16px;
    background:#f7f8fa;
    color:#111;
    font-size:14px;
    font-weight:700;
}

.schedule_row > div{
    padding:14px 16px;
}


.schedule_row b{
    font-weight:700;
    color:#111;
}

.schedule_row span{
    font-size:13px;
    color:#888;
}

.price_table{
    width:100%;
    
    table-layout:fixed;
    border-collapse:collapse;
    border:1px solid #e4e7eb;
}

.price_table th, .price_table td{
    padding:10px 8px;
    border:1px solid #e4e7eb;
    text-align:center;
    font-size:13px;
    word-break:keep-all;
}

.price_table thead th{
    background:#f0f2f5;
    color:#111;
    font-weight:700;
}

.price_table thead th:first-child,
.price_table tbody th{
    width:100px;
    background:#f7f8fa;
    color:#666;
    font-weight:700;
}

.price_table td{
    color:#003b7a;
    font-size:14px;
    font-weight:700;
}

.price_table td.is-unavailable,
.people_row .is-unavailable{
    color:#999;
    font-size:12px;
    font-weight:600;
}

.notice_text{
    margin-top:12px;
    padding:12px 16px;
    background:#f7f8fa;
    border:1px solid #e4e7eb;
    color:#888;
    font-size:13px;
    line-height:1.6;
}

.intro_box{
    border:1px solid #e4e7eb;
    overflow:hidden;
}

.intro_img img{
    width:100%;
    display:block;
}

.intro_txt{
    padding:20px 20px 4px;
}

.intro_box h4{
    margin-bottom:8px;
    font-size:16px;
    font-weight:700;
    color:#111;
}

.intro_box p{
    font-size:14px;
    color:#666;
    line-height:1.8;
}

.day_plan{
    display:flex;
    gap:20px;
    padding:20px 0;
}

.day_plan + .day_plan{
    border-top:1px solid #ddd;
}

.day_label{
    width:52px;
    flex-shrink:0;
    padding-top:2px;
    background:none;
    color:#003b7a;
    font-size:13px;
    font-weight:800;
    text-align:left;
    line-height:1.4;
}

.day_cont{
    flex:1;
    min-width:0;
    padding:0;
}

.day_cont h4{
    margin-bottom:6px;
    font-size:16px;
    font-weight:700;
    color:#111;
}

.day_cont p{
    margin-bottom:8px;
    font-size:14px;
    color:#666;
    line-height:1.7;
}

.day_cont ul li{
    margin-bottom:2px;
    font-size:13px;
    color:#888;
}

.day_cont img {
    display: inline-block;
    vertical-align: top;
    margin: 4px 8px 10px 0;
}

.spot_item{
    margin-top:12px;
    border:1px solid #ddd;
    border-radius:10px;
    padding:15px 20px;
    box-sizing:border-box;
    background:#fff;
}

.spot_item + .spot_item{
    margin-top:10px;
}

.spot_item h4{
    margin-bottom:6px;
    font-size:16px;
    font-weight:700;
    color:#111;
}

.spot_item_title{
    display:inline-block;
    padding:4px 8px;
    border:1px solid #aaa;
    border-radius:4px;
}

.spot_item_desc,
.spot_item p{
    margin-bottom:8px;
    font-size:14px;
    color:#666;
    line-height:1.7;
}

.spot_item_desc p{
    margin-bottom:6px;
}

.spot_item_images{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:4px;
}

.spot_item_images img{
    width:167px;
    /*height:120px; */
    flex-shrink:0;
    object-fit:cover;
    border:1px solid #ddd;
    border-radius:6px;
}

.include_grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    border:1px solid #e4e7eb;
    background:#fff;
}

.include_box{
    padding:20px 24px;
    border:none;
    background:#fff;
}

.include_box + .include_box{
    padding:20px 24px;
    border-left:1px solid #e4e7eb;
    background:#f7f8fa;
}

.include_box h3{
    margin-bottom:14px;
    padding-bottom:10px;
    border-bottom:1px solid #e4e7eb;
    font-size:16px;
    font-weight:700;
    color:#111;
}

.include_box li{
    position:relative;
    padding:8px 0 8px 10px;
    font-size:14px;
    color:#555;
}

.include_box li + li{
    border-top:1px solid #f0f0f0;
}

.include_box li:before{
    content:"";
    position:absolute;
    left:0;
    top:16px;
    width:3px;
    height:3px;
    background:#bbb;
    border-radius:50%;
}

.hotel_box{
    display:flex;
    align-items:flex-start;
    gap:24px;
    padding:20px;
    border:1px solid #e4e7eb;
    background:#f7f8fa;
}

.hotel_box img{
    width:200px;
    height:140px;
    flex-shrink:0;
    object-fit:cover;
    border:1px solid #ddd;
}

.hotel_box h4{
    margin:0 0 8px;
    font-size:18px;
    font-weight:700;
    color:#111;
}

.hotel_box p{
    margin:0 0 12px;
    font-size:14px;
    color:#888;
    line-height:1.7;
}

.hotel_box ul{
    margin:0;
    padding:0;
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:6px;
}

.hotel_box li{
    position:relative;
    padding-left:10px;
    font-size:14px;
    color:#555;
    line-height:1.5;
}

.hotel_box li::before{
    content:"";
    position:absolute;
    left:0;
    top:9px;
    width:3px;
    height:3px;
    border-radius:50%;
    background:#ccc;
}

.guide_box{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:16px 20px;
    background:#f7f8fa;
    border:1px solid #e4e7eb;
}

.guide_box p{
    position:relative;
    padding-left:12px;
    margin:0;
    font-size:14px;
    color:#666;
    line-height:1.7;
}

.guide_box p:before{
    content:"·";
    position:absolute;
    left:0;
    color:#999;
}

.cancel_table{
    width:100%;
    border-collapse:collapse;
    border:1px solid #e4e7eb;
}

.cancel_table th, .cancel_table td{
    padding:14px 16px;
    border-bottom:1px solid #eee;
    font-size:14px;
}

.cancel_table th{
    width:200px;
    background:#f8f8f8;
    color:#111;
    text-align:left;
    font-weight:700;
}

.cancel_table td{
    color:#666;
}

@media (max-width:1200px){
    .view_layout{
        flex-direction:column;
    }

    .view_visual{
        grid-template-columns:1fr 360px;
    }

    .reserve_box{
        width:100%;
    }

    .reserve_inner{
        position:static;
    }
}

@media (max-width:768px){
    .view_top{
        padding:40px 0 70px;
    }

    .view_visual{
        grid-template-columns:1fr;
        gap:16px;
    }

    .view_gallery{
        min-height:auto;
    }

    .view_slider_viewport{
        aspect-ratio:4/3;
        min-height:auto;
    }

    .view_tour_swiper{
        min-height:auto;
        height:100%;
    }

    .view_summary{
        padding:20px 16px;
    }

    .view_summary_info{
        grid-template-columns:1fr;
    }

    .view_summary_price p strong{
        font-size:26px;
    }

    .view_slider_arrow{
        width:36px;
        height:36px;
    }

    .div_image, .main_image{
        width:100%;
        aspect-ratio:4/3;
    }

    .thumb_list{
        flex-direction:row;
        width:100%;
        flex:0 0 auto;
        height:auto;
    }

    .thumb_list img{
        flex:1;
        aspect-ratio:4/3;
        height:auto;
    }

    .view_icons ul{
        grid-template-columns:repeat(2,1fr);
    }

    .schedule_row, .day_plan{
        grid-template-columns:1fr;
    }

    .spot_item{
        margin-top:10px;
        padding:14px 12px;
    }

    .day_plan{
        flex-direction:column;
        gap:8px;
        padding:16px 0;
    }

    .hotel_box{
        flex-direction:column;
    }

    .schedule_row > strong{
        padding:12px 14px;
    }

    .include_grid{
        grid-template-columns:1fr;
    }

    .include_box{
        padding:20px 0;
    }

    .include_box + .include_box{
        padding:20px 0;
        border-left:none;
        border-top:1px solid #eee;
    }

    /* spot/hotel img 높이: 후행 ≤768 블록(160/180)이 최종 — 여기 중복 제거 */
}

.view_title{
    margin-bottom:24px;
    padding-bottom:18px;
    border-bottom:2px solid #222;
}

.view_title_top{
    display:flex;
    align-items:center;
    gap:12px;
    margin-bottom:12px;
}

.view_code{
    color:#777;
    font-size:13px;
}

.view_title h2{
    margin-bottom:10px;
    font-size:32px;
    line-height:1.35;
    color:#111;
    font-weight:800;
}

.view_title p{
    font-size:16px;
    color:#666;
    line-height:1.7;
}

.thumb_list img:hover{
    opacity:1;
}

.view_icons li{
    padding:20px 12px;
    text-align:center;
    border:none;
    border-right:1px solid #e4e7eb;
    border-radius:0;
    background:#fff;
}

.view_icons li strong{
    display:block;
    margin-bottom:4px;
    color:#111;
    font-size:14px;
    line-height:1.3;
}

.view_icons li p{
    color:#666;
    font-size:13px;
    line-height:1.4;
}

.view_detail{
    padding:32px 0 64px;
    background:#f3f5f8;
}

.detail_layout{
    display:flex;
    gap:28px;
    align-items:flex-start;
}

.count_box button{
    width:28px;
    height:28px;
    border:1px solid #ddd;
    background:#fff;
    font-size:13px;
    cursor:pointer;
}

.count_box input{
    width:32px;
    height:28px;
    border:1px solid #ddd;
    border-left:none;
    border-right:none;
    text-align:center;
    font-size:13px;
}

.coupon_box span{
    font-size:13px;
    color:#666;
}

.view_section_head span, .view_div_head span{
    color:#777;
    font-size:14px;
}

.schedule_row strong{
    display:flex;
    align-items:center;
    padding:14px 16px;
    background:#f7f8fa;
    font-size:14px;
    font-weight:700;
    color:#111;
}

.schedule_row div{
    padding:14px 16px;
}

.schedule_row p{
    margin-bottom:4px;
    font-size:14px;
    color:#333;
    line-height:1.6;
}

.price_table td{
    font-size:16px;
    font-weight:700;
    color:#003b7a;
}

.day_label{
    width:52px;
    flex-shrink:0;
    padding-top:2px;
    background:none;
    text-align:left;
    font-size:13px;
    font-weight:800;
    color:#003b7a;
    line-height:1.4;
}

.include_box{
    padding:20px 24px;
    background:#fff;
}

.include_box ul li{
    position:relative;
    padding:8px 0 8px 10px;
    font-size:14px;
    color:#555;
}

.include_box ul li + li{
    border-top:1px solid #f0f0f0;
}

.include_box ul li::before{
    content:"";
    position:absolute;
    left:0;
    top:16px;
    width:3px;
    height:3px;
    background:#bbb;
    border-radius:50%;
}

.guide_box p::before{
    content:"·";
    position:absolute;
    left:0;
    color:#999;
}

.cancel_table th, .cancel_table td{
    padding:14px 16px;
    border-bottom:1px solid #e4e7eb;
    font-size:14px;
}

.cancel_table th{
    width:200px;
    background:#f7f8fa;
    text-align:left;
    font-weight:700;
    color:#111;
}


.day_route{
    display:flex;
    flex-direction:column;
    gap:28px;
    margin:0 auto 10px;
    padding:0;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
}

.day_route_item{
    --day-route-color:#7c3aed;
    --day-route-soft:#f3e8ff;
    --day-route-icon:"✈";
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);
    align-items:center;
    justify-content:center;
    column-gap:12px;
    row-gap:14px;
    border:1px solid #ddd;
    padding:15px 30px;
    border-radius:10px;
    box-sizing:border-box;
}

.day_route_item.is-plane{
    --day-route-color:#7c3aed;
    --day-route-soft:#f3e8ff;
    --day-route-icon:"✈";
}

.day_route_item.is-train{
    --day-route-color:#2563eb;
    --day-route-soft:#eff6ff;
    --day-route-icon:"🚄";
}

.day_route_item.is-bus{
    --day-route-color:#2563eb;
    --day-route-soft:#eff6ff;
    --day-route-icon:"🚌";
}

.day_route_item.is-ship{
    --day-route-color:#16a34a;
    --day-route-soft:#ecfdf3;
    --day-route-icon:"🚢";
}

.day_route_side{
    min-width:0;
    text-align:left;
}

.day_route_side.is-end{
    text-align:right;
}

.day_route_time{
    display:block;
    font-size:28px;
    font-weight:800;
    line-height:1.15;
    letter-spacing:-.5px;
    color:#111;
}

.day_route_date{
    display:block;
    margin-top:6px;
    font-size:13px;
    color:#64748b;
}

.day_route_place{
    margin:8px 0 0;
    font-size:15px;
    font-weight:700;
    color:#111;
}

.day_route_mid{
    position:relative;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-width:0;
    padding:0 48px 2px;
    text-align:center;
}

/* 가로선 + 양쪽 점 */
.day_route_mid::before{
    content:"";
    position:absolute;
    left:48px;
    right:48px;
    top:20px;
    height:8px;
    background:
        radial-gradient(circle, var(--day-route-color) 3.5px, transparent 4px) left center / 8px 8px no-repeat,
        radial-gradient(circle, var(--day-route-color) 3.5px, transparent 4px) right center / 8px 8px no-repeat,
        linear-gradient(var(--day-route-color), var(--day-route-color)) center / calc(100% - 8px) 2px no-repeat;
}

/* 이동수단 아이콘 */
.day_route_label::before{
    content:var(--day-route-icon);
    display:flex;
    align-items:center;
    justify-content:center;
    width:48px;
    height:48px;
    margin:0 auto 10px;
    border-radius:50%;
    background:var(--day-route-soft);
    box-shadow:0 0 0 6px #fff;
    font-size:20px;
    line-height:1;
}

.day_route_label{
    position:relative;
    z-index:1;
    font-size:15px;
    font-weight:800;
    color:#111;
}

.day_route_dur{
    position:relative;
    z-index:1;
    margin-top:4px;
    font-size:13px;
    font-weight:700;
    color:var(--day-route-color);
}

.day_route_bag{
    grid-column:1 / -1;
    display:flex;
    align-items:center;
    gap:8px;
    margin:2px 0 0;
    padding-top:14px;
    border-top:1px solid #eee;
    color:#111;
    font-size:14px;
    font-weight:500;
    line-height:1.4;
}

.day_route_bag::before{
    content:"🧳";
    flex-shrink:0;
    font-size:16px;
    line-height:1;
}

.day_route_bag strong{
    flex-shrink:0;
    min-width:52px;
    margin-right:12px;
    color:var(--day-route-color);
    font-weight:800;
}

@media (max-width:768px){
    .day_route{
        gap:16px;
        margin-bottom:8px;
        padding:0;
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }

    .day_route_item{
        grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);
        align-items:center;
        justify-content:center;
        column-gap:6px;
        row-gap:12px;
        padding:14px 12px;
        width:100%;
        max-width:100%;
        box-sizing:border-box;
        overflow:hidden;
    }

    .day_route_side{
        min-width:0;
        text-align:left;
    }

    .day_route_side.is-end{
        text-align:right;
    }

    .day_route_time{
        font-size:20px;
        letter-spacing:-.3px;
        word-break:keep-all;
    }

    .day_route_date{
        margin-top:4px;
        font-size:12px;
    }

    .day_route_place{
        margin:6px 0 0;
        font-size:13px;
        line-height:1.35;
        word-break:keep-all;
        overflow-wrap:anywhere;
    }

    .day_route_mid{
        min-width:72px;
        max-width:110px;
        padding:0 6px 2px;
    }

    .day_route_mid::before{
        left:2px;
        right:2px;
        top:16px;
    }

    .day_route_label::before{
        width:40px;
        height:40px;
        margin:0 auto 8px;
        box-shadow:0 0 0 4px #fff;
        font-size:18px;
    }

    .day_route_label{
        display:block;
        max-width:100%;
        font-size:12px;
        line-height:1.3;
        word-break:keep-all;
        overflow-wrap:anywhere;
    }

    .day_route_dur{
        margin-top:2px;
        font-size:11px;
        word-break:keep-all;
    }

    .day_route_bag{
        flex-wrap:wrap;
        align-items:flex-start;
        gap:6px 8px;
        margin:0;
        padding-top:12px;
        font-size:13px;
        line-height:1.45;
        word-break:keep-all;
        overflow-wrap:anywhere;
    }

    .day_route_bag strong{
        min-width:0;
        margin-right:4px;
    }
}

@media (max-width:1200px){
    .detail_layout{
        flex-direction:column;
    }
}

@media (max-width:768px){
    .view_title h2{
        font-size:28px;
    }

    .view_div{
        padding:20px 16px;
    }

    .view_icons li{
        border:1px solid #e4e7eb;
    }

    .view_icons li + li{
        border-left:1px solid #e4e7eb;
    }

    .spot_item_images img{
        width:calc(22% - 4px);
    }

    .hotel_box{
        flex-direction:column;
        padding:16px;
    }

    .hotel_box img{
        width:100%;
        height:180px;
    }

    .include_box{
        padding:20px 16px;
    }

    .include_box + .include_box{
        padding:20px 16px;
        border-left:none;
        border-top:1px solid #e4e7eb;
    }
}

.aos02_login{
    background:#f3f5f8;
}

.aos02_login_head{
    padding:40px 0 36px;
    background:#fff;
    border-bottom:1px solid #ccc;
    text-align:center;
}

.aos02_login_head span{
    display:block;
    margin-bottom:8px;
    font-size:12px;
    font-weight:700;
    letter-spacing:1px;
    color:#003b7a;
}

.aos02_login_head h2{
    margin:0 0 10px;
    font-size:28px;
    font-weight:700;
    color:#111;
}

.aos02_login_head p{
    margin:0;
    font-size:15px;
    color:#666;
}

.aos02_login_body{
    padding:40px 0 64px;
}

.aos02_login_wrap{
    display:flex;
    align-items:flex-start;
    gap:24px;
}

.aos02_login_box{
    flex:1;
    min-width:0;
    padding:36px 40px;
    background:#fff;
    border:1px solid #ccc;
}

.aos02_login_box_head{
    margin-bottom:28px;
    padding-bottom:20px;
    border-bottom:2px solid #222;
}

.aos02_login_box_head h3{
    margin:0 0 8px;
    font-size:22px;
    font-weight:700;
    color:#111;
}

.aos02_login_box_head p{
    margin:0;
    font-size:14px;
    color:#888;
}

.aos02_login_field{
    margin-bottom:16px;
}

.aos02_login_field label{
    display:block;
    margin-bottom:8px;
    font-size:13px;
    font-weight:600;
    color:#333;
}

.aos02_login_field input{
    width:100%;
    height:48px;
    padding:0 14px;
    border:1px solid #ccc;
    font-size:14px;
    color:#111;
    background:#fff;
}

.aos02_login_field input:focus{
    outline:none;
    border-color:#003b7a;
}

.aos02_login_field input::placeholder{
    color:#bbb;
}

.aos02_login_option{
    display:flex;
    align-items:center;
    gap:20px;
    margin-bottom:24px;
}

.aos02_login_check{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:13px;
    color:#666;
    cursor:pointer;
}

.aos02_login_check input{
    width:16px;
    height:16px;
    margin:0;
}

.aos02_login_btn,
.aos02_wrap a.aos02_login_btn{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:52px;
    border:none;
    background:#003b7a;
    color:#fff;
    font-size:16px;
    font-weight:700;
    text-align:center;
    cursor:pointer;
}

.aos02_wrap a.aos02_login_btn:hover{
    color:#fff;
}

.aos02_login_links{
    display:flex;
    justify-content:center;
    align-items:center;
    gap:0;
    margin-top:20px;
    padding-top:20px;
    border-top:1px solid #eee;
}

.aos02_login_links a{
    padding:0 14px;
    font-size:13px;
    color:#666;
}

.aos02_login_links a + a{
    border-left:1px solid #ddd;
}

.aos02_login_links a:hover{
    color:#003b7a;
}

.aos02_login_social{
    margin-top:28px;
    padding-top:24px;
    border-top:1px solid #eee;
}

.aos02_login_social > p{
    margin:0 0 12px;
    font-size:13px;
    font-weight:600;
    color:#333;
    text-align:center;
}

.aos02_login_social_btns{
    display:flex;
    gap:10px;
}

.aos02_login_social_btns button{
    flex:1;
    height:44px;
    border:1px solid #ccc;
    background:#fff;
    font-size:14px;
    font-weight:600;
    cursor:pointer;
}

.aos02_login_social_btns .is-naver{
    border-color:#03c75a;
    color:#03c75a;
}

.aos02_login_social_btns .is-kakao{
    border-color:#f5d000;
    background:#fee500;
    color:#3c1e1e;
}

.aos02_login_social_btns .is-google{
    border-color:#4285f4;
    background:#fff;
    color:#4285f4;
}

.aos02_login_side{
    flex:0 0 320px;
}

.aos02_login_side_box{
    padding:24px;
    background:#fff;
    border:1px solid #ccc;
}

.aos02_login_side_box + .aos02_login_side_box{
    margin-top:12px;
}

.aos02_login_side_box h4{
    margin:0 0 14px;
    padding-bottom:12px;
    border-bottom:1px solid #e4e7eb;
    font-size:16px;
    font-weight:700;
    color:#111;
}

.aos02_login_side_box ul{
    margin:0;
    padding:0;
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:10px;
}

.aos02_login_side_box li{
    position:relative;
    padding:0 0 0 12px;
    font-size:13px;
    color:#555;
    line-height:1.6;
}

.aos02_login_side_box li::before{
    content:"";
    position:absolute;
    left:0;
    top:8px;
    width:4px;
    height:4px;
    background:#003b7a;
    border-radius:50%;
}

.aos02_login_side_box > p{
    margin:0 0 16px;
    font-size:13px;
    color:#666;
    line-height:1.7;
}

.aos02_login_guest_btn{
    display:flex;
    align-items:center;
    justify-content:center;
    height:44px;
    border:1px solid #003b7a;
    background:#fff;
    color:#003b7a;
    font-size:14px;
    font-weight:700;
}

.aos02_login_guest_btn:hover{
    background:#f0f4f8;
    color:#003b7a;
}

.aos02_login_notice{
    display:flex;
    flex-direction:column;
    gap:6px;
    margin-top:12px;
    padding:16px 20px;
    background:#fff;
    border:1px solid #ddd;
}

.aos02_login_notice p{
    margin:0;
    font-size:12px;
    color:#888;
    line-height:1.6;
}

.aos02_login_guide_list{
    margin:0;
    padding:0;
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:10px;
}

.aos02_login_guide_list li{
    position:relative;
    padding:0 0 0 12px;
    font-size:13px;
    color:#555;
    line-height:1.6;
}

.aos02_login_guide_list li::before{
    content:"";
    position:absolute;
    left:0;
    top:8px;
    width:4px;
    height:4px;
    background:#003b7a;
    border-radius:50%;
}

.aos02_login_guide_txt{
    margin:0 0 16px;
    font-size:13px;
    color:#666;
    line-height:1.7;
}

.aos02_join_section .aos02_login_guest_btn{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:44px;
}

.aos02_join_section .aos02_login_links{
    margin-top:20px;
}

.aos02_join_section .aos02_login_social{
    margin-top:24px;
    padding-top:24px;
}

/* —— Login 모바일: 1200px inner 가로넘침·잘림 방지 —— */
@media (max-width:768px){
    .aos02_login{
        width:100%;
        max-width:100%;
        overflow-x:hidden;
        box-sizing:border-box;
    }

    .aos02_login .aos02_inner,
    .aos02_login .aos02_join_inner{
        width:100% !important;
        max-width:100% !important;
        margin-left:auto !important;
        margin-right:auto !important;
        padding-left:16px !important;
        padding-right:16px !important;
        box-sizing:border-box !important;
    }

    .aos02_login_head{
        padding:28px 0 24px;
    }

    .aos02_login_head h2{
        font-size:22px;
        word-break:keep-all;
    }

    .aos02_login_head p{
        padding:0 8px;
        font-size:13px;
        line-height:1.5;
        word-break:keep-all;
    }

    .aos02_login_body{
        padding:20px 0 40px;
    }

    .aos02_login_wrap{
        flex-direction:column;
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }

    .aos02_login_box{
        width:100%;
        max-width:100%;
        padding:24px 16px;
        box-sizing:border-box;
    }

    .aos02_login_side{
        flex:0 0 auto;
        width:100%;
        max-width:100%;
    }

    .aos02_login .aos02_join_section{
        width:100%;
        max-width:100%;
        margin-bottom:12px;
        padding:22px 16px;
        box-sizing:border-box;
        overflow:hidden;
    }

    .aos02_login .aos02_join_section_head h3{
        font-size:17px;
        word-break:keep-all;
    }

    .aos02_login form{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }

    .aos02_login_field{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }

    .aos02_login_field input{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }

    .aos02_login_option{
        flex-wrap:wrap;
        gap:12px;
        width:100%;
        box-sizing:border-box;
    }

    .aos02_login_btn,
    .aos02_login .aos02_login_btn{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }

    .aos02_login_links,
    .aos02_login .aos02_join_section .aos02_login_links{
        display:flex;
        flex-wrap:wrap;
        justify-content:center;
        align-items:center;
        gap:8px 0;
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }

    .aos02_login_links a{
        padding:0 10px;
        font-size:12px;
        white-space:nowrap;
    }

    .aos02_login_social,
    .aos02_login .aos02_join_section .aos02_login_social{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }

    .aos02_login_social_btns{
        display:flex;
        flex-wrap:nowrap;
        gap:8px;
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }

    .aos02_login_social_btns button{
        flex:1 1 0;
        min-width:0;
        width:auto;
        height:44px;
        padding:0 6px;
        font-size:13px;
        box-sizing:border-box;
    }

    .aos02_login_notice{
        width:100%;
        max-width:100%;
        margin-top:12px;
        padding:14px 14px;
        box-sizing:border-box;
    }

    .aos02_login_notice p{
        word-break:keep-all;
        overflow-wrap:break-word;
    }

    .aos02_login .aos02_join_bottom{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
        text-align:center;
    }

    .aos02_login .aos02_login_guest_btn,
    .aos02_login .aos02_join_section .aos02_login_guest_btn{
        width:100%;
        max-width:100%;
        box-sizing:border-box;
    }
}

.aos02_join_inner{
    max-width:720px;
}

.aos02_join_step{
    display:flex;
    margin:0 0 24px;
    padding:0;
    list-style:none;
    background:#fff;
    border:1px solid #ccc;
}

.aos02_join_step li{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    height:52px;
    font-size:14px;
    font-weight:600;
    color:#999;
}

.aos02_join_step li + li{
    border-left:1px solid #e4e7eb;
}

.aos02_join_step li span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    border:1px solid #ccc;
    font-size:11px;
    font-weight:700;
}

.aos02_join_step li.is-active{
    color:#003b7a;
    background:#f0f4f8;
}

.aos02_join_step li.is-active span{
    border-color:#003b7a;
    background:#003b7a;
    color:#fff;
}

.aos02_join_section{
    display:flex;
    flex-direction:column;
    gap:20px;
    margin-bottom:16px;
    padding:32px 36px;
    background:#fff;
    border:1px solid #ccc;
}

.aos02_join_section .aos02_join_section_head{
    margin-bottom:0;
}

.aos02_join_section_head{
    margin-bottom:24px;
    padding-bottom:16px;
    border-bottom:2px solid #222;
}

.aos02_join_section_head h3{
    margin:0 0 6px;
    font-size:18px;
    font-weight:700;
    color:#111;
}

.aos02_join_section_head p{
    margin:0;
    font-size:13px;
    color:#888;
}

.aos02_join_required{
    color:#e60012;
}

.aos02_join_agree_all{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 12px;
    margin-bottom:20px;
    padding:16px 20px;
    background:#f0f4f8;
    border:1px solid #e4e7eb;
    cursor:pointer;
}

.aos02_join_agree_all input{
    width:18px;
    height:18px;
    margin:0;
}

.aos02_join_agree_all strong{
    font-size:15px;
    color:#111;
}

.aos02_join_agree_all > span{
    width:100%;
    font-size:12px;
    color:#888;
}

.aos02_join_agree_list{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.aos02_join_agree_item{
    border:1px solid #e4e7eb;
}

.aos02_join_check{
    display:flex;
    align-items:center;
    gap:8px;
    padding:14px 16px;
    background:#f7f8fa;
    border-bottom:1px solid #e4e7eb;
    font-size:14px;
    color:#333;
    cursor:pointer;
}

.aos02_join_agree_item .aos02_join_check{
    border-bottom:none;
}

.aos02_join_check input{
    width:16px;
    height:16px;
    margin:0;
}

.aos02_join_check em{
    color:#003b7a;
    font-style:normal;
    font-weight:700;
}

.aos02_join_terms_box{
    display:flex;
    flex-direction:column;
    gap:8px;
    max-height:100px;
/*    overflow-y:auto; */
    padding:14px 16px;
    background:#fff;
    font-size:12px;
    color:#666;
    line-height:1.7;
}

.aos02_join_terms_box p{
    margin:0
}

.aos02_join_field{
    margin-bottom:20px;
    padding-top:20px;
}

.aos02_join_section .aos02_join_field{
    margin-bottom:0;
}

.aos02_join_field > label{
    display:block;
    margin-bottom:8px;
    font-size:13px;
    font-weight:600;
    color:#333;
}

.aos02_join_field > input[type="text"], .aos02_join_field > input[type="password"]{
    width:100%;
    height:48px;
    padding:0 14px;
    border:1px solid #ccc;
    font-size:14px;
    color:#111;
}

.aos02_join_field > input:focus, .aos02_join_field_row input:focus, .aos02_join_field_row select:focus{
    outline:none;
    border-color:#003b7a;
}

.aos02_join_field_row{
    display:flex;
    align-items:center;
    gap:8px;
}

.aos02_join_field_row input, .aos02_join_field_row select{
    height:48px;
    padding:0 12px;
    border:1px solid #ccc;
    font-size:14px;
    color:#111;
    background:#fff;
}

.aos02_join_field_row .aos02_join_sub_btn{
    flex-shrink:0;
    height:48px;
    padding:0 16px;
    border:1px solid #003b7a;
    background:#fff;
    color:#003b7a;
    font-size:13px;
    font-weight:700;
    cursor:pointer;
}

.aos02_join_field_row.is-phone select{
    width:90px;
}

.aos02_join_field_row.is-phone input{
    flex:1;
    min-width:0;
}

.aos02_join_field_row.is-email input{
    flex:1;
    min-width:0;
}

.aos02_join_field_row.is-email select{
    width:130px;
    flex-shrink:0;
}

.aos02_join_field_row.is-birth input{
    flex:1;
    min-width:0;
}

.aos02_join_dash, .aos02_join_at{
    flex-shrink:0;
    color:#999;
    font-size:14px;
}

.aos02_join_radio{
    display:flex;
    gap:24px;
    padding:12px 0;
}

.aos02_join_btns{
    display:flex;
    gap:10px;
    margin-top:24px;
}

.aos02_join_cancel_btn{
    flex:0 0 120px;
    display:flex;
    align-items:center;
    justify-content:center;
    height:52px;
    border:1px solid #ccc;
    background:#fff;
    color:#333;
    font-size:15px;
    font-weight:600;
}

.aos02_join_cancel_btn:hover{
    border-color:#999;
    color:#111;
}

.aos02_join_btns .aos02_login_btn{
    flex:1;
}

.aos02_join_bottom{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    margin-top:24px;
    padding:20px;
    background:#fff;
    border:1px solid #ccc;
    font-size:14px;
    color:#666;
}

.aos02_join_bottom a{
    font-weight:700;
    color:#003b7a;
}

@media (max-width:768px){
    .aos02_join_section{
        padding:24px 20px;
    }

    .aos02_join_step li{
        font-size:12px;
        gap:4px;
    }

    .aos02_join_step li span{
        display:none;
    }

    .aos02_join_field_row{
        flex-wrap:wrap;
    }

    .aos02_join_field_row.is-phone .aos02_join_sub_btn, .aos02_join_field_row .aos02_join_sub_btn{
        width:100%;
    }

    .aos02_join_field_row.is-email select{
        width:100%;
    }

    .aos02_join_btns{
        flex-direction:column;
    }

    .aos02_join_cancel_btn{
        flex:none;
        width:100%;
    }
}

.aos02_join_step li.is-done span{
    border-color:#003b7a;
    background:#fff;
    color:#003b7a;
}

.aos02_join_ok_box{
    padding:48px 40px;
    background:#fff;
    border:1px solid #ccc;
    text-align:center;
}

.aos02_join_ok_icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:64px;
    height:64px;
    margin:0 auto 24px;
    border:2px solid #003b7a;
    border-radius:50%;
    font-size:28px;
    font-weight:700;
    color:#003b7a;
}

.aos02_join_ok_box h3{
    margin:0 0 12px;
    font-size:24px;
    font-weight:700;
    color:#111;
}

.aos02_join_ok_box > p{
    margin:0 0 32px;
    font-size:15px;
    color:#666;
    line-height:1.7;
}

.aos02_join_ok_box > p strong{
    color:#003b7a;
}

.aos02_join_ok_info{
    display:grid;
    grid-template-columns:100px 1fr;
    max-width:400px;
    margin:0 auto 32px;
    padding:20px 24px;
    background:#f7f8fa;
    border:1px solid #e4e7eb;
    text-align:left;
}

.aos02_join_ok_info dt{
    padding:8px 0;
    font-size:13px;
    color:#888;
    font-weight:600;
}

.aos02_join_ok_info dd{
    margin:0;
    padding:8px 0;
    font-size:14px;
    color:#111;
    font-weight:600;
}

.aos02_join_ok_btns{
    display:flex;
    justify-content:center;
    gap:10px;
    max-width:400px;
    margin:0 auto;
}

.aos02_join_ok_btns .aos02_login_btn{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    height:52px;
    color:#fff;
}

.aos02_join_ok_btns .aos02_login_btn:hover{
    color:#fff;
}

.aos02_join_ok_btns .aos02_join_cancel_btn{
    flex:1;
    height:52px;
}

.aos02_join_ok_banner{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:24px;
    margin-top:16px;
    padding:24px 32px;
    background:#003b7a;
    border:1px solid #003b7a;
    color:#fff;
}

.aos02_join_ok_banner_txt span{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    font-weight:700;
    letter-spacing:1px;
    color:rgba(255,255,255,.8);
}

.aos02_join_ok_banner_txt strong{
    display:block;
    margin-bottom:6px;
    font-size:18px;
    font-weight:700;
}

.aos02_join_ok_banner_txt p{
    margin:0;
    font-size:13px;
    color:rgba(255,255,255,.9);
}

.aos02_join_ok_banner > a{
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:44px;
    padding:0 24px;
    background:#fff;
    color:#003b7a;
    font-size:14px;
    font-weight:700;
}

@media (max-width:768px){
    .aos02_join_ok_box{
        padding:36px 20px;
    }

    .aos02_join_ok_box h3{
        font-size:20px;
    }

    .aos02_join_ok_info{
        grid-template-columns:80px 1fr;
        padding:16px;
    }

    .aos02_join_ok_btns{
        flex-direction:column;
    }

    .aos02_join_ok_banner{
        flex-direction:column;
        align-items:flex-start;
        padding:20px;
    }

    .aos02_join_ok_banner > a{
        width:100%;
    }
}

.aos02_find_radio{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    border:0;
}

.aos02_find_tab{
    display:flex;
    margin-bottom:16px;
    border:1px solid #ccc;
    background:#fff;
}

.aos02_find_tab label{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    height:52px;
    font-size:14px;
    font-weight:600;
    color:#666;
    cursor:pointer;
}

.aos02_find_tab label + label{
    border-left:1px solid #e4e7eb;
}

.aos02_find_wrap:has(#findTabPhone:checked) .aos02_find_tab label[for="findTabPhone"], .aos02_find_wrap:has(#findTabEmail:checked) .aos02_find_tab label[for="findTabEmail"]{
    background:#003b7a;
    color:#fff;
}

.aos02_find_panel{
    display:none;
}

.aos02_find_wrap:has(#findTabPhone:checked) .aos02_find_panel_phone, .aos02_find_wrap:has(#findTabEmail:checked) .aos02_find_panel_email{
    display:block;
}

.aos02_find_form .aos02_login_btn{
    margin-top:8px;
}

.aos02_find .aos02_join_bottom{
    gap:0;
}

.aos02_find .aos02_join_bottom a{
    padding:0 14px;
    font-weight:600;
    color:#666;
}

.aos02_find .aos02_join_bottom a + a{
    border-left:1px solid #ddd;
}

.aos02_find .aos02_join_bottom a:hover{
    color:#003b7a;
}

.aos02_pw .aos02_find_wrap:has(#pwTabPhone:checked) .aos02_find_tab label[for="pwTabPhone"], .aos02_pw .aos02_find_wrap:has(#pwTabEmail:checked) .aos02_find_tab label[for="pwTabEmail"]{
    background:#003b7a;
    color:#fff;
}

.aos02_pw .aos02_find_wrap:has(#pwTabPhone:checked) .aos02_pw_panel_phone, .aos02_pw .aos02_find_wrap:has(#pwTabEmail:checked) .aos02_pw_panel_email{
    display:block;
}

.aos02_join_field input[readonly]{
    background:#f7f8fa;
    color:#666;
}

.aos02_pw_guide{
    margin-bottom:24px;
    padding:16px 20px;
    background:#f7f8fa;
    border:1px solid #e4e7eb;
}

.aos02_pw_guide > p{
    margin:0 0 10px;
    font-size:13px;
    font-weight:700;
    color:#333;
}

.aos02_pw_guide ul{
    margin:0;
    padding:0;
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:6px;
}

.aos02_pw_guide li{
    position:relative;
    padding:0 0 0 10px;
    font-size:12px;
    color:#666;
    line-height:1.6;
}

.aos02_pw_guide li::before{
    content:"-";
    position:absolute;
    left:0;
}

.aos02_pw .aos02_join_btns .aos02_login_btn{
    flex:1;
}

.aos02_mypage{
    background:#f3f5f8;
}

.aos02_mypage_body{
    padding:32px 0 64px;
}

.aos02_mypage_layout{
    display:flex;
    align-items:flex-start;
    gap:24px;
}

.aos02_mypage_lnb{
    flex:0 0 220px;
    background:#fff;
    border:1px solid #ccc;
}

.aos02_mypage_member{
    display:flex;
    flex-wrap:nowrap;
    align-items:baseline;
    gap:6px;
    padding:24px 20px;
    border-bottom:1px solid #e4e7eb;
    white-space:nowrap;
    line-height:1.4;
}

.aos02_mypage_member strong{
    display:inline;
    margin-bottom:0;
    font-size:18px;
    color:#111;
    white-space:nowrap;
    word-break:keep-all;
}

.aos02_mypage_member span{
    display:inline;
    font-size:13px;
    color:#888;
    white-space:nowrap;
    word-break:keep-all;
}

.aos02_mypage_lnb nav ul{
    margin:0;
    padding:0;
    list-style:none;
}

.aos02_mypage_lnb nav a{
    display:block;
    padding:14px 20px;
    font-size:14px;
    font-weight:600;
    color:#333;
    border-left:3px solid transparent;
    background:#fff;
}

.aos02_wrap .aos02_mypage_lnb nav li a{
    color:#333;
}

.aos02_mypage_lnb nav li a:hover{
    background:#003b7a;
    color:#fff;
    border-left-color:#003b7a;
}

.aos02_mypage_lnb nav li.active a{
    background:#003b7a;
    color:#fff;
    border-left-color:#003b7a;
}



.aos02_mypage_wish_heart{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    margin:0 0 10px auto;
    border:1px solid #e4e7eb;
    border-radius:50%;
    background:#fff;
    font-size:18px;
    color:#ccc;
    line-height:1;
    cursor:pointer;
    transition:border-color .2s, background-color .2s, color .2s;
}

.aos02_mypage_wish_heart span{
    display:block;
    margin-top:1px;
    font-size:18px;
    line-height:1;
}

.aos02_mypage_wish_heart span::before{
    content:'♡';
}

.aos02_mypage_wish_heart.is-active span::before{
    content:'♥';
}

.aos02_mypage_wish_heart.is-active{
    border-color:#ff4d6d;
    background:#fff5f7;
    color:#ff4d6d;
}

.aos02_mypage_content{
    flex:1;
    min-width:0;
}


.detail_tab{
    position:sticky;
    top:24px;
    z-index:10;
    display:flex;
    width:100%;
    flex-wrap:nowrap;
    background:#fff;
    border:1px solid #ccc;
}

.detail_tab > div{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:0;
    height:48px;
    padding:0 6px;
    border-bottom:2px solid transparent;
    font-size:13px;
    font-weight:600;
    color:#666;
    white-space:nowrap;
    cursor:pointer;
    text-align:center;
}

.detail_tab > div:hover{
    color:#111;
}

.detail_tab > div.is-active{
    color:#003b7a;
    border-bottom-color:#003b7a;
}

.aos02_mypage_welcome{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:16px;
    padding:28px 32px;
    background:#fff;
    border:1px solid #ccc;
}

.aos02_mypage_welcome h3{
    margin:0 0 6px;
    font-size:20px;
    font-weight:700;
    color:#111;
}

.aos02_mypage_welcome h3 strong{
    color:#003b7a;
}

.aos02_mypage_welcome p{
    margin:0;
    font-size:14px;
    color:#666;
}

.aos02_mypage_welcome > a{
    flex-shrink:0;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:40px;
    padding:0 18px;
    border:1px solid #003b7a;
    color:#003b7a;
    font-size:13px;
    font-weight:700;
}

.aos02_mypage_summary{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
    margin:0 0 16px;
    padding:0;
    list-style:none;
}

.aos02_mypage_summary a{
    display:block;
    padding:20px;
    background:#fff;
    border:1px solid #ccc;
    text-align:center;
    color:inherit;
}

.aos02_mypage_summary a:hover{
    border-color:#003b7a;
}

.aos02_mypage_summary span{
    display:block;
    margin-bottom:8px;
    font-size:13px;
    color:#666;
}

.aos02_mypage_summary strong{
    font-size:24px;
    font-weight:800;
    color:#003b7a;
}

.aos02_mypage_summary em{
    margin-left:2px;
    font-size:14px;
    font-style:normal;
    font-weight:600;
}

.aos02_mypage_section{
    display:flex;
    flex-direction:column;
    gap:0px;
    margin-bottom:16px;
    padding:24px 28px;
    background:#fff;
    border:1px solid #ccc;
}

.aos02_mypage_section .aos02_mypage_section_head{
    margin-bottom:0;
}

.aos02_mypage_section_head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:16px;
    padding-bottom:14px;
    border-bottom:2px solid #222;
}

.aos02_mypage_section_head h3{
    margin:0;
    font-size:18px;
    font-weight:700;
    color:#111;
}

.aos02_mypage_section_head a{
    font-size:13px;
    color:#666;
}

.aos02_mypage_section_head a:hover{
    color:#003b7a;
}


.aos02_mypage_table_wrap{
    overflow-x:auto;
}

.aos02_mypage_table{
    width:100%;
    border-collapse:collapse;
    border:1px solid #e4e7eb;
}

.aos02_mypage_table th, .aos02_mypage_table td{
    padding:14px 12px;
    border-bottom:1px solid #e4e7eb;
    font-size:14px;
    text-align:center;
    color:#333;
}

.aos02_mypage_table thead th{
    background:#f0f2f5;
    font-weight:700;
    color:#111;
}

.aos02_mypage_table td.is-left{
    text-align:left;
}

.aos02_mypage_table a{
    color:#003b7a;
    font-weight:600;
}

/* .aos02_mypage_badge base → /css/shared/ui-badge.css (Phase6) */

.aos02_mypage_badge.confirm{
    background:#003b7a;
    color:#fff;
}

.aos02_mypage_badge.wait{
    background:#fff;
    border:1px solid #ff6b00;
    color:#ff6b00;
}

.aos02_mypage_wish_list{
    margin:0;
    padding:0;
    list-style:none;
}

.aos02_mypage_wish_list li + li{
    border-top:1px solid #e4e7eb;
}

.aos02_mypage_wish_list a{
    display:flex;
    align-items:center;
    gap:16px;
    padding:16px 0;
    color:inherit;
}

.aos02_mypage_wish_list a:hover strong{
    color:#003b7a;
}

.aos02_mypage_wish_list img{
    width:100px;
    height:68px;
    object-fit:cover;
    border:1px solid #ddd;
    flex-shrink:0;
}

.aos02_mypage_wish_list strong{
    display:block;
    margin-bottom:4px;
    font-size:15px;
    font-weight:700;
    color:#111;
}

.aos02_mypage_wish_list p{
    margin:0;
    font-size:14px;
    font-weight:700;
    color:#003b7a;
}

.aos02_mypage_quick{
    display:flex;
    gap:10px;
}

.aos02_mypage_quick a{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    height:48px;
    background:#fff;
    border:1px solid #ccc;
    font-size:14px;
    font-weight:600;
    color:#333;
}

.aos02_mypage_quick a:hover{
    border-color:#003b7a;
    color:#003b7a;
}

@media (max-width:1024px){
    .aos02_mypage_layout{
        flex-direction:column;
    }

    .aos02_mypage_lnb{
        flex:0 0 auto;
        width:100%;
    }

    .aos02_mypage_lnb nav ul{
        display:grid;
        grid-template-columns:repeat(4,1fr);
    }

    .aos02_mypage_lnb nav a{
        padding:12px 10px;
        text-align:center;
        font-size:13px;
        border-left:none;
        border-bottom:3px solid transparent;
        background:#fff;
    }

    .aos02_mypage_lnb nav li a:hover,
    .aos02_mypage_lnb nav li.active a{
        border-left:none;
        border-bottom-color:#003b7a;
        background:#003b7a;
        color:#fff;
    }

    .aos02_mypage_summary{
        grid-template-columns:repeat(2,1fr);
    }
}

@media (max-width:768px){
    /* PHASE17이 welcome/section/lnb 패딩·그리드를 최종 관리.
       여기에는 PHASE17에 없는 레이아웃 방향만 유지 */
    .aos02_mypage_welcome{
        flex-direction:column;
        align-items:flex-start;
    }

    .aos02_mypage_welcome > a{
        width:100%;
    }

    .aos02_mypage_quick{
        flex-direction:column;
    }
}

.aos02_mypage_section_head p{
    margin:0;
    font-size:13px;
    font-weight:400;
    color:#888;
}

.aos02_mypage_section_head.is-desc{
    flex-wrap:wrap;
    align-items:flex-end;
    gap:4px 16px;
}

.aos02_mypage_section_head.is-desc h3{
    margin-right:auto;
}

.aos02_mypage_section .aos02_join_field{
    margin-bottom:0;
}

.aos02_mypage_content .aos02_join_field > input[type="text"], .aos02_mypage_content .aos02_join_field > input[type="password"]{
    width:100%;
    height:48px;
    padding:0 14px;
    border:1px solid #ccc;
    font-size:14px;
}

.aos02_mypage_content .aos02_join_field input[readonly]{
    background:#f7f8fa;
    color:#666;
}

.aos02_mypage_agree{
    padding:4px 0;
    font-size:14px;
    color:#333;
}

.aos02_mypage_agree_txt{
    margin:8px 0 0;
    padding-left:24px;
    font-size:12px;
    color:#888;
    line-height:1.6;
}

.aos02_mypage_field_note{
    margin:8px 0 0;
    font-size:12px;
    color:#888;
    line-height:1.5;
}

.aos02_address_group{
    margin-bottom:0;
}

.aos02_address_row{
    display:grid;
    grid-template-columns:140px 1fr 1fr;
    gap:16px;
    align-items:end;
}

.aos02_address_col label{
    display:block;
    margin-bottom:8px;
    font-size:14px;
    font-weight:600;
    color:#333;
}

.aos02_address_col input[readonly]{
    background:#f3f4f6;
    color:#555;
}

.aos02_address_col input{
    width:100%;
    height:44px;
    padding:0 14px;
    border:1px solid #d1d5db;
    border-radius:8px;
    font-size:14px;
}

.aos02_address_label_row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:8px;
}

.aos02_address_label_row label{
    margin-bottom:0;
}

.aos02_address_search_btn{
    flex-shrink:0;
    height:30px;
    padding:0 12px;
    border:0;
    border-radius:4px;
    background:#f59e0b;
    color:#fff;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
}

.aos02_address_search_btn:hover{
    background:#d97706;
}

@media (max-width:768px){
    .aos02_address_row{
        grid-template-columns:1fr;
    }
}

.aos02_mypage_btns{
    margin-top:16px;
}

.aos02_mypage_btns .aos02_login_btn{
    flex:1;
}

.aos02_mypage_reserve_tab{
    display:flex;
    margin:0 0 16px;
    padding:0;
    list-style:none;
    background:#fff;
    border:1px solid #ccc;
}

.aos02_mypage_reserve_tab li{
    flex:1;
}

.aos02_mypage_reserve_tab li + li{
    border-left:1px solid #e4e7eb;
}

.aos02_mypage_reserve_tab a{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    height:48px;
    padding:0 12px;
    box-sizing:border-box;
    font-size:14px;
    font-weight:600;
    color:#666;
    white-space:nowrap;
    word-break:keep-all;
    line-height:1.2;
}

.aos02_mypage_reserve_tab a:hover{
    color:#003b7a;
}

.aos02_mypage_reserve_tab li.is-active a{
    background:#003b7a;
    color:#fff;
}

.aos02_mypage_reserve_tab em{
    font-size:12px;
    font-style:normal;
    font-weight:700;
    opacity:.85;
}

.aos02_mypage_reserve_list{
    padding:0;
}

.aos02_mypage_reserve_item + .aos02_mypage_reserve_item{
    border-top:1px solid #e4e7eb;
}

.aos02_mypage_reserve_item{
    display:flex;
    align-items:flex-start;
    gap:20px;
    padding:24px 28px;
}

.aos02_mypage_reserve_thumb{
    flex:0 0 140px;
    display:block;
    border:1px solid #ddd;
}

.aos02_mypage_reserve_thumb img{
    width:100%;
    height:94px;
    object-fit:cover;
    display:block;
}

.aos02_mypage_reserve_info{
    flex:1;
    min-width:0;
}

.aos02_mypage_reserve_info > strong{
    display:block;
    margin:8px 0 12px;
    font-size:17px;
    font-weight:700;
    color:#111;
    line-height:1.4;
}

.aos02_mypage_reserve_info ul{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:6px 20px;
    margin:0;
    padding:0;
    list-style:none;
}

.aos02_mypage_reserve_info li{
    font-size:13px;
    color:#333;
}

.aos02_mypage_reserve_info li span{
    display:inline-block;
    width:56px;
    color:#888;
}

.aos02_mypage_reserve_side{
    flex:0 0 140px;
    text-align:right;
}

.aos02_mypage_reserve_side > strong{
    display:block;
    margin-bottom:14px;
    font-size:18px;
    font-weight:800;
    color:#003b7a;
}

.aos02_mypage_reserve_btns{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.aos02_mypage_reserve_btns a{
    display:flex;
    align-items:center;
    justify-content:center;
    height:36px;
    border:1px solid #ccc;
    background:#fff;
    font-size:13px;
    font-weight:600;
    color:#333;
}



.tour_reservation{
    background:#f3f5f8;
}

.aos02_reserve_head{
    padding:40px 0 36px;
    background:#fff;
    border-bottom:1px solid #ccc;
    text-align:center;
}

.aos02_reserve_head span{
    display:block;
    margin-bottom:8px;
    font-size:12px;
    font-weight:700;
    letter-spacing:1px;
    color:#003b7a;
}

.aos02_reserve_head h2{
    margin:0 0 10px;
    font-size:28px;
    font-weight:700;
    color:#111;
}

.aos02_reserve_head p{
    margin:0;
    font-size:15px;
    color:#888;
}

.aos02_reserve_body{
    padding:32px 0 64px;
}

.aos02_reserve_form{
    flex:1;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:16px;
}

.aos02_reserve_form_inner{
    display:flex;
    flex-direction:column;
    gap:16px;
}

.aos02_reserve_product{
    display:flex;
    gap:20px;
    align-items:flex-start;
}

.aos02_reserve_product_img{
    flex:0 0 160px;
    width:160px;
    height:120px;
    overflow:hidden;
    border:1px solid #e4e7eb;
}

/* .aos02_reserve_product_img img → /css/shared/ui-media.css (Phase6) */

.aos02_reserve_product_info{
    flex:1;
    min-width:0;
}

.aos02_reserve_product_info h3{
    margin:8px 0 14px;
    padding:0;
    border:none;
    font-size:20px;
    font-weight:700;
    color:#111;
}

.aos02_reserve_product_code{
    margin:6px 0 0;
    font-size:13px;
    color:#888;
}

.aos02_reserve_product_info ul{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:8px 20px;
    margin:0;
    padding:0;
    list-style:none;
}

.aos02_reserve_product_info li span{
    display:block;
    margin-bottom:2px;
    font-size:12px;
    color:#888;
}

.aos02_reserve_product_info li strong{
    font-size:14px;
    font-weight:700;
    color:#111;
}

.aos02_reserve_traveler{
    display:flex;
    flex-direction:column;
    gap:16px;
    padding:20px;
    background:#f7f8fa;
    border:1px solid #e4e7eb;
}

.aos02_reserve_traveler > strong{
    font-size:15px;
    font-weight:700;
    color:#003b7a;
}

.aos02_reserve_form textarea{
    width:100%;
    min-height:120px;
    padding:12px 14px;
    border:1px solid #ddd;
    font-size:14px;
    color:#333;
    resize:vertical;
    box-sizing:border-box;
}

.aos02_reserve_form textarea:focus{
    outline:none;
    border-color:#003b7a;
}

.aos02_reserve_btns{
    display:flex;
    gap:10px;
}

.aos02_reserve_btns .aos02_login_btn{
    flex:1;
    border:none;
    cursor:pointer;
}

.aos02_reserve_notice{
    margin:0;
    padding-top:12px;
    border-top:1px solid #eee;
    font-size:12px;
    line-height:1.6;
    color:#888;
}

@media (max-width:768px){
    .aos02_reserve_product{
        flex-direction:column;
    }

    .aos02_reserve_product_img{
        width:100%;
        height:180px;
    }

    .aos02_reserve_product_info ul{
        grid-template-columns:1fr;
    }

    .aos02_reserve_btns{
        flex-direction:column;
    }

    .aos02_reserve_btns .aos02_join_cancel_btn{
        flex:1;
        width:100%;
    }
}


.aos02_mypage_reserve_btns a.is-primary{
    border-color:#003b7a;
    background:#003b7a;
    color:#fff;
}

.aos02_mypage_reserve_btns a.is-primary:hover{
    color:#fff;
}

.aos02_mypage_reserve_btns a:hover{
    border-color:#003b7a;
    color:#003b7a;
}

.aos02_mypage_badge.done{
    background:#fff;
    border:1px solid #666;
    color:#666;
}

.aos02_mypage_badge.cancel{
    background:#f5f5f5;
    border:1px solid #ccc;
    color:#999;
}

.aos02_mypage_content .product_paging{
    margin-top:16px;
}

.aos02_mypage_wish_page{
    padding:0;
}

.aos02_mypage_wish_toolbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:14px 28px;
    border-bottom:1px solid #e4e7eb;
}

.aos02_mypage_wish_toolbar p{
    margin:0;
    font-size:14px;
    color:#333;
}

.aos02_mypage_wish_toolbar strong{
    color:#003b7a;
}

.aos02_mypage_wish_del{
    height:36px;
    padding:0 14px;
    border:1px solid #ccc;
    background:#fff;
    font-size:13px;
    font-weight:600;
    color:#666;
    cursor:pointer;
}

.aos02_mypage_wish_items{
    margin:0;
    padding:0;
    list-style:none;
}

.aos02_mypage_wish_item + .aos02_mypage_wish_item{
    border-top:1px solid #e4e7eb;
}

.aos02_mypage_wish_item{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:24px 28px;
}

.aos02_mypage_wish_check{
    flex:0 0 auto;
    padding-top:40px;
    cursor:pointer;
}

.aos02_mypage_wish_check input{
    width:16px;
    height:16px;
    margin:0;
}

.aos02_mypage_wish_thumb{
    flex:0 0 140px;
    display:block;
    border:1px solid #ddd;
}

.aos02_mypage_wish_thumb img{
    width:100%;
    height:94px;
    object-fit:cover;
    display:block;
}

.aos02_mypage_wish_info{
    flex:1;
    min-width:0;
}

.aos02_mypage_wish_info .product_badge{
    margin-bottom:6px;
}

.aos02_mypage_wish_info > strong{
    display:block;
    margin-bottom:6px;
    font-size:17px;
    font-weight:700;
    color:#111;
    line-height:1.4;
}

.aos02_mypage_wish_info > p{
    margin:0 0 12px;
    font-size:13px;
    color:#666;
    line-height:1.5;
}

.aos02_mypage_wish_info ul{
    display:flex;
    flex-wrap:wrap;
    gap:8px 20px;
    margin:0;
    padding:0;
    list-style:none;
}

.aos02_mypage_wish_info li{
    font-size:13px;
    color:#333;
}

.aos02_mypage_wish_info li span{
    margin-right:6px;
    color:#888;
}

.aos02_mypage_wish_side{
    flex:0 0 130px;
    text-align:right;
}

.aos02_mypage_wish_side > strong{
    display:block;
    margin-bottom:14px;
    font-size:18px;
    font-weight:800;
    color:#003b7a;
}

.aos02_mypage_wish_btns{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.aos02_mypage_wish_btns a, .aos02_mypage_wish_btns button{
    display:flex;
    align-items:center;
    justify-content:center;
    height:36px;
    padding:0 12px;
    border:1px solid #ccc;
    background:#fff;
    font-size:13px;
    font-weight:600;
    color:#333;
    cursor:pointer;
    font-family:inherit;
}

.aos02_mypage_wish_btns a.is-primary{
    border-color:#003b7a;
    background:#003b7a;
    color:#fff;
}

.aos02_mypage_wish_btns a.is-primary:hover{
    color:#fff;
}

.aos02_mypage_wish_btns button:hover, .aos02_mypage_wish_btns a:not(.is-primary):hover{
    border-color:#003b7a;
    color:#003b7a;
}

@media (max-width:768px){
    .aos02_mypage_reserve_tab{
        flex-wrap:nowrap;
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }

    .aos02_mypage_reserve_tab li{
        flex:1 0 auto;
        flex-shrink:0;
        min-width:64px;
        border-bottom:0;
    }

    .aos02_mypage_reserve_tab a{
        flex-shrink:0;
        white-space:nowrap;
        word-break:keep-all;
        overflow-wrap:normal;
        writing-mode:horizontal-tb;
        min-width:64px;
    }

    .aos02_mypage_reserve_item{
        flex-direction:column;
        padding:20px 16px;
    }

    .aos02_mypage_reserve_thumb{
        width:100%;
        flex:0 0 auto;
    }

    .aos02_mypage_reserve_thumb img{
        height:160px;
    }

    .aos02_mypage_reserve_info ul{
        grid-template-columns:1fr;
    }

    .aos02_mypage_reserve_side{
        width:100%;
        flex:0 0 auto;
        display:flex;
        align-items:center;
        justify-content:space-between;
        text-align:left;
        padding-top:12px;
        border-top:1px solid #e4e7eb;
    }

    .aos02_mypage_reserve_side > strong{
        margin-bottom:0;
    }

    .aos02_mypage_reserve_btns{
        flex-direction:row;
    }

    .aos02_mypage_wish_item{
        flex-wrap:wrap;
        padding:20px 16px;
    }

    .aos02_mypage_wish_check{
        padding-top:0;
        order:1;
    }

    .aos02_mypage_wish_thumb{
        order:2;
        width:calc(100% - 32px);
        flex:1 1 auto;
        margin-left:32px;
    }

    .aos02_mypage_wish_thumb img{
        height:160px;
    }

    .aos02_mypage_wish_info{
        order:3;
        width:100%;
    }

    .aos02_mypage_wish_side{
        order:4;
        width:100%;
        flex:0 0 auto;
        display:flex;
        align-items:center;
        justify-content:space-between;
        text-align:left;
        padding-top:12px;
        border-top:1px solid #e4e7eb;
    }

    .aos02_mypage_wish_side > strong{
        margin-bottom:0;
    }

    .aos02_mypage_wish_btns{
        flex-direction:row;
    }

    .aos02_mypage_wish_toolbar{
        padding:12px 16px;
    }
}

/*
  POINT TAB 적립 세로깨짐 원인(확정):
  - HTML: .aos02_mypage_point_tab > li > a ("적립")
  - 기존 모바일: flex-wrap:wrap + li{flex:1 1 33.33%}
  - 한글 min-content ≈ 1글자 폭까지 압축 → 적/립 세로 줄바꿈
  - writing-mode/ZWSP/break-all 아님
  조치: shrink 금지 + min-width(px) + horizontal-tb + nowrap 강제
*/
.aos02_mypage .aos02_mypage_reserve_tab.aos02_mypage_point_tab{
    display:flex;
    flex-wrap:nowrap;
    align-items:stretch;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
}

.aos02_mypage .aos02_mypage_point_tab > li{
    flex:1 0 auto;
    flex-shrink:0;
    min-width:64px;
    width:auto;
    max-width:none;
    box-sizing:border-box;
}

.aos02_mypage .aos02_mypage_point_tab > li > a{
    display:flex;
    flex-direction:row;
    flex-shrink:0;
    align-items:center;
    justify-content:center;
    min-width:64px;
    width:auto;
    max-width:none;
    height:48px;
    padding:0 14px;
    box-sizing:border-box;
    white-space:nowrap !important;
    word-break:keep-all !important;
    overflow-wrap:normal !important;
    writing-mode:horizontal-tb !important;
    text-orientation:mixed !important;
    letter-spacing:normal;
    transform:none;
    line-height:1.2;
}

.aos02_mypage_point_summary{
    display:flex;
    align-items:stretch;
    gap:0;
    margin:0 0 16px;
    padding:0;
    list-style:none;
    background:#fff;
    border:1px solid #ccc;
}

.aos02_mypage_point_summary li + li{
    border-left:1px solid #ccc;
}

.aos02_mypage_point_summary li{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:12px 14px;
    text-align:left;
}

.aos02_mypage_point_summary li.is-total{
    background:#003b7a;
    border-color:#003b7a;
    color:#fff;
}

.aos02_mypage_point_summary span{
    flex:0 0 auto;
    font-size:13px;
    color:#666;
    white-space:nowrap;
}

.aos02_mypage_point_summary li.is-total span{
    color:rgba(255,255,255,.85);
}

.aos02_mypage_point_summary strong{
    flex:0 0 auto;
    font-size:16px;
    font-weight:700;
    color:#003b7a;
    white-space:nowrap;
}

.aos02_mypage_point_summary li.is-total strong{
    color:#fff;
}

.aos02_mypage_point_summary em{
    margin-left:1px;
    font-size:13px;
    font-style:normal;
    font-weight:600;
}

.aos02_mypage_point_list{
    padding:0;
}

.aos02_mypage_point_sort{
    height:36px;
    padding:0 12px;
    border:1px solid #ccc;
    font-size:13px;
    color:#333;
    background:#fff;
}

.aos02_mypage_point_table .is-plus{
    color:#003b7a;
    font-weight:700;
}

.aos02_mypage_point_table .is-minus{
    color:#e60012;
    font-weight:700;
}

.aos02_mypage_point_badge{
    display:inline-block;
    padding:3px 8px;
    font-size:11px;
    font-weight:700;
}

.aos02_mypage_point_badge.save{
    background:#f0f4f8;
    border:1px solid #003b7a;
    color:#003b7a;
}

.aos02_mypage_point_badge.use{
    background:#fff;
    border:1px solid #ff6b00;
    color:#ff6b00;
}

.aos02_mypage_point_badge.expire{
    background:#f5f5f5;
    border:1px solid #999;
    color:#999;
}

@media (max-width:768px){
    .aos02_mypage_point_summary li{
        flex-direction:column;
        gap:2px;
        padding:10px 6px;
        text-align:center;
    }

    .aos02_mypage_point_summary strong{
        font-size:14px;
    }

    .aos02_mypage_point_summary span{
        font-size:11px;
    }
}

.aos02_mypage_qna_list{
    padding:0;
}

.aos02_mypage_search_row{
    display:flex;
    justify-content:flex-end;
    margin-bottom:16px;
}

.aos02_mypage_qna_list .avn-notice-list-search{
    display:flex;
    gap:8px;
    margin-right: 28px;
}

.aos02_mypage_qna_list .avn-notice-list-search input{
    width:220px;
    height:36px;
    padding:0 12px;
    border:1px solid #dbe2ea;
    border-radius:6px;
    font-size:14px;
    box-sizing:border-box;
}

.aos02_mypage_qna_list .avn-notice-list-search input:focus{
    outline:none;
    border-color:#1f3a5f;
}

.aos02_mypage_qna_list .avn-notice-list-search span{
    display:flex;
    align-items:center;
    justify-content:center;
    height:36px;
    padding:0 16px;
    background:#1f3a5f;
    color:#fff;
    border:none;
    border-radius:6px;
    font-size:13px;
    cursor:pointer;
    white-space:nowrap;
}

.aos02_wrap .aos02_mypage_qna_write, .aos02_mypage_qna_write{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    height:36px;
    padding:0 14px;
    border:1px solid #003b7a;
    background:#003b7a;
    font-size:13px;
    font-weight:700;
    color:#fff;
}

.aos02_wrap .aos02_mypage_qna_write:hover, .aos02_mypage_qna_write:hover{
    background:#002a57;
    border-color:#002a57;
    color:#fff;
}

.aos02_mypage_qna_table td.is-left a{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    max-width:360px;
    font-weight:600;
    color:#111;
}

.aos02_mypage_qna_table td.is-left a:hover{
    color:#003b7a;
}

@media (max-width:768px){
    .aos02_mypage_qna_table td.is-left a{
        max-width:180px;
    }
}

.aos02_mypage_review_list, .aos02_mypage_review_ready{
    padding:0;
}

.aos02_mypage_review_ready{
    margin-top:16px;
}

.aos02_mypage_review_ready .aos02_mypage_section_head{
    padding:20px 28px 0;
    margin:0;
    border-bottom:none;
}

.aos02_mypage_review_item + .aos02_mypage_review_item{
    border-top:1px solid #e4e7eb;
}

.aos02_mypage_review_item{
    display:flex;
    align-items:flex-start;
    gap:20px;
    padding:24px 28px;
}

.aos02_mypage_review_thumb{
    flex:0 0 140px;
    display:block;
    border:1px solid #ddd;
}

.aos02_mypage_review_thumb img{
    width:100%;
    height:94px;
    object-fit:cover;
    display:block;
}

.aos02_mypage_review_info{
    flex:1;
    min-width:0;
}

.aos02_mypage_review_info > strong{
    display:block;
    margin:8px 0 8px;
    font-size:17px;
    font-weight:700;
    color:#111;
    line-height:1.4;
}

.aos02_mypage_review_star{
    margin-bottom:10px;
    font-size:14px;
    letter-spacing:1px;
    color:#ff6b00;
}

.aos02_mypage_review_star.is-4{
    color:#ff6b00;
}

.aos02_mypage_review_text{
    margin:0 0 12px;
    font-size:14px;
    line-height:1.6;
    color:#555;
    display:-webkit-box;
    -webkit-box-orient:vertical;
    overflow:hidden;
}

.aos02_mypage_review_info ul{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:6px 20px;
    margin:0;
    padding:0;
    list-style:none;
}

.aos02_mypage_review_item.is-ready .aos02_mypage_review_info ul{
    grid-template-columns:1fr;
}

.aos02_mypage_review_info li{
    font-size:13px;
    color:#333;
}

.aos02_mypage_review_info li span{
    display:inline-block;
    width:80x;
    color:#888;
}

.aos02_mypage_review_side{
    flex:0 0 100px;
    text-align:right;
}

.aos02_mypage_review_btns{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.aos02_mypage_review_btns a, .aos02_mypage_review_btns button{
    display:flex;
    align-items:center;
    justify-content:center;
    height:36px;
    padding:0 14px;
    border:1px solid #ccc;
    background:#fff;
    font-size:13px;
    font-weight:600;
    color:#333;
}

.aos02_mypage_review_btns a.is-primary{
    border-color:#003b7a;
    background:#003b7a;
    color:#fff;
}

.aos02_mypage_review_btns a.is-primary:hover{
    color:#fff;
}

.aos02_mypage_review_btns a:hover{
    border-color:#003b7a;
    color:#003b7a;
}

@media (max-width:768px){
    .aos02_mypage_review_item{
        flex-wrap:wrap;
        padding:16px;
        gap:12px;
    }

    .aos02_mypage_review_thumb{
        flex:0 0 100px;
    }

    .aos02_mypage_review_thumb img{
        height:68px;
    }

    .aos02_mypage_review_info{
        flex:1 1 calc(100% - 112px);
        min-width:0;
    }

    .aos02_mypage_review_side{
        flex:0 0 100%;
        text-align:left;
        padding-top:12px;
        border-top:1px solid #e4e7eb;
    }

    .aos02_mypage_review_btns{
        flex-direction:row;
    }

    .aos02_mypage_review_ready .aos02_mypage_section_head{
        padding:16px 16px 0;
    }
}

.aos02_mypage_leave_notice{
    margin-bottom:16px;
    padding:18px 20px;
    background:#fff5f5;
    border:1px solid #f0c0c0;
}

.aos02_mypage_leave_notice strong{
    display:block;
    margin-bottom:6px;
    font-size:15px;
    font-weight:700;
    color:#c00;
}

.aos02_mypage_leave_notice p{
    margin:0;
    font-size:13px;
    line-height:1.6;
    color:#666;
}

.aos02_mypage_leave_list{
    margin:0 0 20px;
    padding:0;
    list-style:none;
}

.aos02_mypage_leave_list li{
    position:relative;
    padding:6px 0 6px 12px;
    font-size:14px;
    line-height:1.6;
    color:#333;
}

.aos02_mypage_leave_list li::before{
    content:"";
    position:absolute;
    left:0;
    top:14px;
    width:4px;
    height:4px;
    border-radius:50%;
    background:#888;
}

.aos02_mypage_leave_list li strong{
    color:#c00;
    font-weight:700;
}

.aos02_mypage_leave_member{
    display:grid;
    grid-template-columns:80px 1fr;
    gap:10px 16px;
    margin:0;
    padding:16px 20px;
    background:#f7f8fa;
    border:1px solid #e4e7eb;
}

.aos02_mypage_leave_member dt{
    font-size:13px;
    color:#888;
}

.aos02_mypage_leave_member dd{
    margin:0;
    font-size:14px;
    font-weight:600;
    color:#111;
}

.aos02_mypage_leave_reason{
    display:flex;
    flex-direction:column;
    gap:4px;
    margin-bottom:16px;
}

.aos02_mypage_leave_reason .aos02_join_check{
    padding:10px 0;
}

.aos02_mypage_leave_agree{
    margin-top:4px;
}

.aos02_mypage_leave_btns .aos02_login_btn.is-danger{
    background:#c00;
    border-color:#c00;
}

.aos02_mypage_leave_btns .aos02_login_btn.is-danger:hover{
    background:#a00;
    border-color:#a00;
}

.aos02_community_notice_list{
    padding:10px;
}

.aos02_community_notice_list .avn-notice-list-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:16px;
    padding-bottom:16px;
    border-bottom:1px solid #dbe2ea;
}

.aos02_community_notice_list .avn-notice-list-header h2{
    margin:0;
    font-weight:800;
    color:#0f172a;
}

.aos02_community_notice_list .avn-notice-list-search{
    display:flex;
    gap:8px;
}

.aos02_community_notice_list .avn-notice-list-search input{
    width:220px;
    height:36px;
    padding:0 12px;
    border:1px solid #dbe2ea;
    border-radius:6px;
    font-size:14px;
    box-sizing:border-box;
}

.aos02_community_notice_list .avn-notice-list-search input:focus{
    outline:none;
    border-color:#1f3a5f;
}

.aos02_community_notice_list .avn-notice-list-search span{
    display:flex;
    align-items:center;
    justify-content:center;
    height:36px;
    padding:0 16px;
    background:#1f3a5f;
    color:#fff;
    border:none;
    border-radius:6px;
    font-size:13px;
    cursor:pointer;
    white-space:nowrap;
}

@media (max-width:768px){
    .aos02_community_notice_list .avn-notice-list-header{
        flex-direction:column;
        align-items:flex-start;
        gap:12px;
    }

    .aos02_community_notice_list .avn-notice-list-search{
        width:100%;
    }

    .aos02_community_notice_list .avn-notice-list-search input{
        flex:1;
        width:auto;
        min-width:0;
    }
}

.aos02_community_notice_table td.is-left a{
    font-weight:600;
    color:#111;
}

.aos02_community_notice_table td.is-left a:hover{
    color:#003b7a;
}

/* base → /css/shared/ui-badge.css (Phase6) */
.aos02_community_notice_badge{
    background:var(--aos-brand-aos02, #003b7a);
    font-size:11px;
    color:var(--aos-surface, #fff);
}

/* .aos02_community_notice_table .is-mo-hide → PHASE17 공통(확장 대비 KEEP 통합) */

.aos02_community_faq_list{
    padding:0;
}

.aos02_community_faq_accordion{
    border-top:1px solid #ccc;
}

.aos02_community_faq_item{
    border-bottom:1px solid #ccc;
    background:#fff;
}

.aos02_community_faq_item summary{
    display:flex;
    align-items:center;
    gap:12px;
    padding:16px 18px;
    list-style:none;
    cursor:pointer;
    font-size:14px;
    color:#111;
}

.aos02_community_faq_item summary::-webkit-details-marker{
    display:none;
}

.aos02_community_faq_item summary::after{
    content:"+";
    flex-shrink:0;
    margin-left:auto;
    width:24px;
    height:24px;
    line-height:24px;
    text-align:center;
    font-size:18px;
    font-weight:400;
    color:#666;
}

.aos02_community_faq_item[open] summary::after{
    content:"−";
    color:#003b7a;
}

.aos02_community_faq_item[open] summary{
    background:#f3f5f8;
    color:#003b7a;
    font-weight:600;
}

.aos02_community_faq_cate{
    flex-shrink:0;
    min-width:72px;
    padding:4px 8px;
    background:#f3f5f8;
    border:1px solid #ccc;
    font-size:12px;
    font-weight:600;
    color:#003b7a;
    text-align:center;
}

.aos02_community_faq_item[open] .aos02_community_faq_cate{
    background:#003b7a;
    border-color:#003b7a;
    color:#fff;
}

.aos02_community_faq_q{
    flex:1;
    line-height:1.5;
}

.aos02_community_faq_a{
    padding:0 18px 18px 102px;
    font-size:14px;
    line-height:1.7;
    color:#444;
    background:#f3f5f8;
}

.aos02_community_faq_a p{
    margin:0;
}

.aos02_community_faq_tab ~ .aos02_login_notice a{
    color:#003b7a;
    font-weight:600;
    text-decoration:underline;
}

@media (max-width:768px){
    .aos02_community_faq_item summary{
        flex-wrap:wrap;
        gap:8px;
        padding:14px 16px;
    }

    .aos02_community_faq_cate{
        min-width:auto;
    }

    .aos02_community_faq_a{
        padding:0 16px 16px;
    }
}

.aos02_community_bbs_cs{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:12px 24px;
    margin-bottom:24px;
    padding:20px 24px;
    border:1px solid #ccc;
    background:#fff;
}

.aos02_community_bbs_cs strong{
    display:block;
    font-size:22px;
    font-weight:700;
    color:#003b7a;
}

.aos02_community_bbs_cs p{
    margin:4px 0 0;
    font-size:13px;
    color:#666;
}

.aos02_community_bbs_cs_link{
    margin:0;
    font-size:13px;
    color:#444;
}

.aos02_community_bbs_cs_link a{
    color:#003b7a;
    font-weight:600;
    text-decoration:underline;
}

.aos02_community_bbs_form select, .aos02_community_bbs_form textarea{
    width:100%;
    padding:0 14px;
    border:1px solid #ccc;
    font-size:14px;
    color:#111;
    background:#fff;
}

.aos02_community_bbs_form select{
    height:48px;
}

.aos02_community_bbs_form textarea{
    min-height:180px;
    padding:14px;
    line-height:1.6;
    resize:vertical;
}

.aos02_community_bbs_form select:focus, .aos02_community_bbs_form textarea:focus{
    outline:none;
    border-color:#003b7a;
}

.aos02_community_bbs_form .avn-event-edit-input-radio,
.aos02_join_field .avn-event-edit-input-radio{
    display:flex;
    align-items:center;
    gap:24px;
    min-height:48px;
}

.aos02_community_bbs_form .avn-event-edit-input-radio label,
.aos02_join_field .avn-event-edit-input-radio label{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin:0;
    font-size:14px;
    font-weight:500;
    color:#333;
    cursor:pointer;
}

.aos02_community_bbs_form .avn-event-edit-input-radio input[type="radio"],
.aos02_join_field .avn-event-edit-input-radio input[type="radio"]{
    width:16px;
    height:16px;
    margin:0;
    accent-color:#003b7a;
    cursor:pointer;
}

.aos02_community_bbs_terms{
    margin-bottom:16px;
}

.aos02_community_bbs_form ~ .aos02_login_notice a{
    color:#003b7a;
    font-weight:600;
    text-decoration:underline;
}

@media (max-width:768px){
    .aos02_community_bbs_cs{
        flex-direction:column;
        align-items:flex-start;
        padding:16px;
    }
}

.aos02_community_review_list{
    padding:0;
}

.aos02_community_review_product{
    display:inline-block;
    font-size:12px;
    font-weight:600;
    color:#003b7a;
}

.aos02_community_review_product:hover{
    text-decoration:underline;
}

.aos02_community_review_item .aos02_mypage_review_info > strong{
    margin-top:4px;
}

.aos02_community_review_item .aos02_mypage_review_info > strong a{
    color:#111;
}

.aos02_community_review_item .aos02_mypage_review_info > strong a:hover{
    color:#003b7a;
}

.aos02_community_review_tab ~ .aos02_login_notice a{
    color:#003b7a;
    font-weight:600;
    text-decoration:underline;
}

.aos02_community_notice_view{
    padding:0;
}

.aos02_community_notice_view_head{
    padding:28px 28px 24px;
    border-bottom:1px solid #e4e7eb;
}

.aos02_community_notice_view_head .aos02_community_notice_badge{
    margin-bottom:12px;
}

.aos02_community_notice_view_head h3{
    margin:0 0 16px;
    font-size:22px;
    font-weight:700;
    color:#111;
    line-height:1.4;
}

.aos02_community_notice_view_meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 20px;
    margin:0;
    padding:0;
    list-style:none;
}

.aos02_community_notice_view_meta li{
    font-size:13px;
    color:#666;
}

.aos02_community_notice_view_meta li span{
    margin-right:6px;
    color:#999;
}

.aos02_community_notice_view_body{
    padding:20px;
    font-size:15px;
    line-height:1.8;
    color:#333;
}

.aos02_community_notice_view_body p{
    margin:0 0 0px;
}

.aos02_community_notice_view_body ul{
    margin:0 0 16px;
    padding-left:20px;
    list-style:disc;
}

.aos02_community_notice_view_body li{
    margin-bottom:6px;
}

.aos02_community_notice_view_nav{
    display:grid;
    grid-template-columns:1fr 1fr;
    border-top:1px solid #e4e7eb;
}

.aos02_community_notice_view_prev, .aos02_community_notice_view_next{
    display:block;
    padding:18px 28px;
    font-size:13px;
    color:#666;
}

.aos02_community_notice_view_next{
    border-left:1px solid #e4e7eb;
    text-align:right;
}

.aos02_community_notice_view_prev span, .aos02_community_notice_view_next span{
    display:block;
    margin-bottom:6px;
    font-size:12px;
    color:#999;
}

.aos02_community_notice_view_prev strong, .aos02_community_notice_view_next strong{
    display:block;
    font-size:14px;
    font-weight:600;
    color:#111;
    line-height:1.5;
}

.aos02_wrap .aos02_community_notice_view_prev:hover strong, .aos02_wrap .aos02_community_notice_view_next:hover strong{
    color:#003b7a;
}

.aos02_community_notice_view_btns{
    display:flex;
    justify-content:center;
    margin-top:24px;
}

.aos02_wrap .aos02_community_notice_view_btns a{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:120px;
    height:44px;
    padding:0 24px;
    border:1px solid #ccc;
    background:#fff;
    font-size:14px;
    font-weight:600;
    color:#333;
}

.aos02_wrap .aos02_community_notice_view_btns a:hover{
    border-color:#003b7a;
    color:#003b7a;
}

@media (max-width:768px){
    .aos02_community_notice_view_head, .aos02_community_notice_view_body{
        padding:20px 16px;
    }

    .aos02_community_notice_view_head h3{
        font-size:18px;
    }

    .aos02_community_notice_view_nav{
        grid-template-columns:1fr;
    }

    .aos02_community_notice_view_next{
        border-left:none;
        text-align:left;
    }

    .aos02_community_notice_view_prev, .aos02_community_notice_view_next{
        padding:16px;
    }
}



/* ==========================================================
   About 공통 (회사소개 / 연혁 / 오시는길 / 약관 / 개인정보)
   PC·모바일 — 관리자 HTML(#aboutData 등) + 템플릿 공용
========================================================== */
.aos02_about_content,
#aboutData,
#termsData,
#privacyData{
    flex:1;
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:28px;
    width:100%;
    max-width:100%;
    padding:36px 40px;
    background:#fff;
    border:1px solid #d9dee7;
    box-sizing:border-box;
}

/* 관리자 주입 HTML은 flex item이 아니므로 block 흐름 */
#aboutData,
#termsData,
#privacyData{
    display:block;
}

[id^="pg-about-"] .aos02_mypage_lnb{
    border:1px solid #d9dee7;
    background:#fff;
}

[id^="pg-about-"] .aos02_mypage_member{
    padding:22px 20px;
    border-bottom:1px solid #e8ecf1;
}

[id^="pg-about-"] .aos02_mypage_lnb nav a{
    padding:15px 20px;
    font-size:14px;
    font-weight:600;
    color:#333;
    border-left:3px solid transparent;
    transition:background .15s ease, color .15s ease;
}

[id^="pg-about-"] .aos02_mypage_lnb nav li.active a,
[id^="pg-about-"] .aos02_mypage_lnb nav li a:hover{
    background:#003b7a;
    color:#fff;
    border-left-color:#003b7a;
}

/* —— 타이포 / 섹션 간격 (관리자 HTML 포함) —— */
.aos02_about_content h1,
#aboutData h1,
#termsData h1,
#privacyData h1{
    margin:0 0 16px;
    font-size:28px;
    font-weight:800;
    line-height:1.35;
    color:#111;
    letter-spacing:-0.5px;
    word-break:keep-all;
}

.aos02_about_content h2,
#aboutData h2,
#termsData h2,
#privacyData h2{
    margin:40px 0 16px;
    padding-bottom:12px;
    border-bottom:2px solid #111;
    font-size:22px;
    font-weight:800;
    line-height:1.35;
    color:#111;
    word-break:keep-all;
}

.aos02_about_content h2:first-child,
#aboutData h2:first-child,
#termsData h2:first-child,
#privacyData h2:first-child,
.aos02_about_content > h2:first-of-type,
#aboutData > h2:first-of-type{
    margin-top:0;
}

.aos02_about_content h3,
#aboutData h3,
#termsData h3,
#privacyData h3{
    margin:32px 0 14px;
    padding-bottom:10px;
    border-bottom:1px solid #e5e7eb;
    font-size:18px;
    font-weight:700;
    line-height:1.4;
    color:#111;
    word-break:keep-all;
}

.aos02_about_content h4,
#aboutData h4,
#termsData h4,
#privacyData h4{
    margin:24px 0 10px;
    font-size:16px;
    font-weight:700;
    color:#003b7a;
    word-break:keep-all;
}

.aos02_about_content p,
#aboutData p,
#termsData p,
#privacyData p,
.aos02_about_section p{
    margin:0 0 14px;
    font-size:15px;
    line-height:1.85;
    color:#555;
    word-break:keep-all;
    overflow-wrap:break-word;
}

.aos02_about_section p + p{
    margin-top:0;
}

.aos02_about_sign{
    margin-top:20px;
    text-align:right;
    font-size:14px;
    color:#333;
}

.aos02_about_content ul,
.aos02_about_content ol,
#aboutData ul,
#aboutData ol,
#termsData ul,
#termsData ol,
#privacyData ul,
#privacyData ol{
    margin:0 0 24px;
    padding:0 0 0 20px;
}

.aos02_about_content li,
#aboutData li,
#termsData li,
#privacyData li{
    margin:0 0 10px;
    padding-left:2px;
    font-size:14px;
    line-height:1.75;
    color:#555;
    word-break:keep-all;
}

.aos02_about_content img,
#aboutData img,
#termsData img,
#privacyData img{
    display:block;
    max-width:100%;
    height:auto;
    margin:16px 0 24px;
}

.aos02_about_content iframe,
#aboutData iframe,
#termsData iframe,
#privacyData iframe{
    display:block;
    width:100%;
    max-width:100%;
    min-height:360px;
    margin:16px 0 28px;
    border:1px solid #d9dee7;
    background:#f3f5f8;
}

/* —— 회사정보 표 (하나투어식) —— */
.aos02_about_content table,
#aboutData table,
#termsData table,
#privacyData table,
.avn-about-page-table{
    width:100% !important;
    max-width:100% !important;
    margin:20px 0 36px !important;
    border-collapse:collapse !important;
    table-layout:fixed !important;
    border-top:2px solid #111 !important;
    border-bottom:1px solid #ddd !important;
    border-left:0 !important;
    border-right:0 !important;
    background:#fff !important;
}

.aos02_about_content table th,
.aos02_about_content table td,
#aboutData table th,
#aboutData table td,
#termsData table th,
#termsData table td,
#privacyData table th,
#privacyData table td,
.avn-about-page-table th,
.avn-about-page-table td{
    padding:14px 18px !important;
    border-bottom:1px solid #e5e7eb !important;
    border-right:1px solid #e5e7eb !important;
    border-left:0 !important;
    border-top:0 !important;
    font-size:14px !important;
    line-height:1.65 !important;
    text-align:left !important;
    vertical-align:middle !important;
    word-break:keep-all !important;
    overflow-wrap:break-word !important;
    writing-mode:horizontal-tb !important;
    white-space:normal !important;
}

.aos02_about_content table th,
#aboutData table th,
#termsData table th,
#privacyData table th,
.avn-about-page-table th{
    width:18% !important;
    background:#f5f7fa !important;
    color:#111 !important;
    font-weight:700 !important;
}

.aos02_about_content table td,
#aboutData table td,
#termsData table td,
#privacyData table td,
.avn-about-page-table td{
    width:32% !important;
    background:#fff !important;
    color:#555 !important;
    font-weight:400 !important;
}

.aos02_about_content table tr:last-child th,
.aos02_about_content table tr:last-child td,
#aboutData table tr:last-child th,
#aboutData table tr:last-child td{
    border-bottom:0 !important;
}

/* 템플릿 dl 정보표 */
.aos02_about_info{
    margin:8px 0 0;
    border-top:2px solid #111;
}

.aos02_about_info div{
    display:flex;
    align-items:stretch;
    border-bottom:1px solid #e5e7eb;
}

.aos02_about_info dt{
    flex:0 0 160px;
    display:flex;
    align-items:center;
    padding:14px 18px;
    background:#f5f7fa;
    font-size:14px;
    font-weight:700;
    color:#111;
    word-break:keep-all;
    box-sizing:border-box;
}

.aos02_about_info dd{
    flex:1;
    min-width:0;
    margin:0;
    padding:14px 18px;
    font-size:14px;
    line-height:1.65;
    color:#555;
    word-break:keep-all;
    box-sizing:border-box;
}

.aos02_about_vision,
.aos02_about_service{
    margin:0;
    padding:0;
    list-style:none;
    display:flex;
    flex-direction:column;
    gap:12px;
}

.aos02_about_vision li,
.aos02_about_service li{
    padding:18px 20px;
    border:1px solid #e5e7eb;
    background:#f8fafc;
}

.aos02_about_vision strong,
.aos02_about_service strong{
    display:block;
    margin-bottom:6px;
    font-size:15px;
    color:#003b7a;
}

.aos02_about_vision span,
.aos02_about_service span{
    font-size:14px;
    color:#666;
    line-height:1.7;
}

.aos02_mypage_section.aos02_about_section{
    margin-bottom:0;
    padding:0;
    border:0;
    background:transparent;
}

.aos02_about_content .aos02_mypage_section_head{
    margin-bottom:18px;
    padding-bottom:12px;
    border-bottom:2px solid #111;
}

.aos02_about_content .aos02_mypage_section + .aos02_mypage_section{
    margin-top:8px;
    padding-top:28px;
    border-top:1px solid #eef1f5;
}

/* —— About PC/Mobile 반응형 —— */
@media (max-width:1024px){
    .aos02_about_content,
    #aboutData,
    #termsData,
    #privacyData{
        padding:28px 24px;
        gap:22px;
    }

    .aos02_about_info dt{
        flex:0 0 130px;
    }
}

@media (max-width:768px){
    [id^="pg-about-"]{
        overflow-x:hidden;
    }

    [id^="pg-about-"] .aos02_mypage_body > .aos02_inner{
        width:100% !important;
        max-width:100% !important;
        padding-left:16px !important;
        padding-right:16px !important;
        box-sizing:border-box !important;
    }

    .aos02_about_content,
    #aboutData,
    #termsData,
    #privacyData{
        width:100% !important;
        max-width:100% !important;
        padding:22px 16px !important;
        gap:20px;
        border:1px solid #e5e7eb;
        box-sizing:border-box !important;
        overflow-x:hidden;
    }

    #aboutData *,
    #termsData *,
    #privacyData *{
        max-width:100% !important;
        box-sizing:border-box !important;
    }

    .aos02_about_content h1,
    #aboutData h1,
    #termsData h1,
    #privacyData h1{
        font-size:22px !important;
        margin-bottom:12px !important;
    }

    .aos02_about_content h2,
    #aboutData h2,
    #termsData h2,
    #privacyData h2{
        margin:28px 0 12px !important;
        padding-bottom:10px !important;
        font-size:18px !important;
    }

    .aos02_about_content h3,
    #aboutData h3,
    #termsData h3,
    #privacyData h3{
        margin:22px 0 10px !important;
        font-size:16px !important;
    }

    .aos02_about_content h4,
    #aboutData h4,
    #termsData h4,
    #privacyData h4{
        margin:18px 0 8px !important;
        font-size:15px !important;
    }

    .aos02_about_content p,
    #aboutData p,
    #termsData p,
    #privacyData p,
    .aos02_about_section p{
        margin:0 0 12px !important;
        font-size:14px !important;
        line-height:1.75 !important;
    }

    .aos02_about_content img,
    #aboutData img,
    #termsData img,
    #privacyData img,
    .aos02_about_content iframe,
    #aboutData iframe,
    #termsData iframe,
    #privacyData iframe,
    .aos02_about_content video,
    #aboutData video{
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        height:auto !important;
        min-height:0;
        margin:12px 0 20px !important;
    }

    .aos02_about_content iframe,
    #aboutData iframe,
    #termsData iframe,
    #privacyData iframe{
        min-height:220px !important;
    }

    /* 2열 표 → 1열 스택 */
    .aos02_about_content table,
    #aboutData table,
    #termsData table,
    #privacyData table,
    .avn-about-page-table{
        width:100% !important;
        table-layout:auto !important;
        margin:14px 0 24px !important;
        border-top:2px solid #111 !important;
        border-bottom:0 !important;
    }

    .aos02_about_content table colgroup,
    .aos02_about_content table col,
    #aboutData table colgroup,
    #aboutData table col,
    #termsData table colgroup,
    #termsData table col,
    #privacyData table colgroup,
    #privacyData table col{
        display:none !important;
    }

    .aos02_about_content table,
    .aos02_about_content table thead,
    .aos02_about_content table tbody,
    .aos02_about_content table tr,
    .aos02_about_content table th,
    .aos02_about_content table td,
    #aboutData table,
    #aboutData table thead,
    #aboutData table tbody,
    #aboutData table tr,
    #aboutData table th,
    #aboutData table td,
    #termsData table,
    #termsData table thead,
    #termsData table tbody,
    #termsData table tr,
    #termsData table th,
    #termsData table td,
    #privacyData table,
    #privacyData table thead,
    #privacyData table tbody,
    #privacyData table tr,
    #privacyData table th,
    #privacyData table td,
    .avn-about-page-table,
    .avn-about-page-table thead,
    .avn-about-page-table tbody,
    .avn-about-page-table tr,
    .avn-about-page-table th,
    .avn-about-page-table td{
        display:block !important;
        width:100% !important;
        max-width:100% !important;
        float:none !important;
        clear:both !important;
    }

    .aos02_about_content table tr,
    #aboutData table tr,
    #termsData table tr,
    #privacyData table tr,
    .avn-about-page-table tr{
        margin:0 0 10px !important;
        border:1px solid #e5e7eb !important;
        border-radius:8px !important;
        overflow:hidden;
        background:#fff;
    }

    .aos02_about_content table th,
    #aboutData table th,
    #termsData table th,
    #privacyData table th,
    .avn-about-page-table th{
        width:100% !important;
        padding:10px 14px 4px !important;
        background:#f5f7fa !important;
        border:0 !important;
        font-size:13px !important;
    }

    .aos02_about_content table td,
    #aboutData table td,
    #termsData table td,
    #privacyData table td,
    .avn-about-page-table td{
        width:100% !important;
        padding:4px 14px 12px !important;
        border:0 !important;
        font-size:14px !important;
    }

    .aos02_about_info{
        border-top:2px solid #111;
    }

    .aos02_about_info div{
        flex-direction:column;
        align-items:stretch;
        gap:4px;
        padding:12px 0;
        border-bottom:1px solid #e5e7eb;
    }

    .aos02_about_info dt{
        flex:none;
        width:auto;
        padding:0;
        background:transparent;
        font-size:12px;
        color:#64748b;
    }

    .aos02_about_info dd{
        flex:none;
        padding:0;
        font-size:14px;
        color:#111;
    }

    .aos02_about_vision li,
    .aos02_about_service li{
        padding:14px 16px;
    }

    .aos02_about_content ul,
    .aos02_about_content ol,
    #aboutData ul,
    #aboutData ol,
    #termsData ul,
    #termsData ol,
    #privacyData ul,
    #privacyData ol{
        margin:0 0 18px !important;
        padding-left:18px !important;
    }

    .aos02_about_content li,
    #aboutData li,
    #termsData li,
    #privacyData li{
        margin:0 0 8px !important;
        font-size:13px !important;
        line-height:1.65 !important;
    }

    .aos02_about_map_box,
    .aos02_about_map_frame,
    .aos02_about_map_canvas{
        width:100% !important;
        max-width:100% !important;
        min-height:220px;
    }

    .aos02_about_content .aos02_mypage_section + .aos02_mypage_section{
        padding-top:20px;
    }
}

.aos02_about_history{
    display:flex;
    flex-direction:column;
    gap:28px;
}

.aos02_about_history_group{
    display:flex;
    align-items:flex-start;
    gap:24px;
}

.aos02_about_history_year{
    flex:0 0 72px;
    font-size:22px;
    font-weight:800;
    color:#003b7a;
    line-height:1.3;
}

.aos02_about_history_list{
    flex:1;
    min-width:0;
    margin:0;
    padding:0;
    list-style:none;
    border-top:1px solid #e4e7eb;
}

.aos02_about_history_list li{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:12px 0;
    border-bottom:1px solid #e4e7eb;
}

.aos02_about_history_list span{
    flex:0 0 28px;
    font-size:13px;
    font-weight:700;
    color:#888;
    line-height:1.6;
}

.aos02_about_history_list p{
    flex:1;
    margin:0;
    font-size:14px;
    color:#555;
    line-height:1.7;
}

.aos02_about_history_list strong{
    color:#003b7a;
    font-weight:700;
}

@media (max-width:768px){
    .aos02_about_history_group{
        flex-direction:column;
        gap:10px;
    }

    .aos02_about_history_year{
        flex:0 0 auto;
        font-size:20px;
    }
}

.aos02_about_location_map{
    padding:0;
    overflow:hidden;
}

.aos02_about_map_box{
    position:relative;
    width:100%;
    margin:8px 0 0;
    border:1px solid #d9dee7;
    background:#f3f5f8;
}

.aos02_about_map_frame{
    display:block;
    width:100%;
    height:420px;
    border:0;
}

.aos02_about_map_canvas{
    background:#e8edf2;
}

.aos02_about_map_label{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:2;
    padding:12px 16px;
    background:rgba(0,59,122,.92);
    text-align:center;
    pointer-events:none;
}

.aos02_about_map_label strong{
    display:block;
    font-size:14px;
    font-weight:700;
    color:#fff;
}

.aos02_about_map_label span{
    display:block;
    margin-top:2px;
    font-size:12px;
    color:rgba(255,255,255,.9);
}

.aos02_about_location_guide{
    margin:0;
    padding:0;
    list-style:none;
    border-top:1px solid #e4e7eb;
}

.aos02_about_location_guide li{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:14px 0;
    border-bottom:1px solid #e4e7eb;
}

.aos02_about_location_guide strong{
    flex:0 0 56px;
    font-size:13px;
    font-weight:700;
    color:#003b7a;
}

.aos02_about_location_guide span{
    flex:1;
    font-size:14px;
    color:#555;
    line-height:1.7;
}

.aos02_about_location_guide b{
    font-weight:700;
    color:#111;
}

@media (max-width:768px){
    .aos02_about_map_frame{
        height:280px;
    }

    .aos02_about_location_map{
        padding:20px 16px;
    }
}

.aos02_about_terms{
    font-size:15px;
    color:#555;
    line-height:1.85;
}

.aos02_about_terms_meta{
    margin:0 0 16px;
    font-size:13px;
    color:#888;
}

.aos02_about_terms_article + .aos02_about_terms_article{
    margin-top:28px;
    padding-top:28px;
    border-top:1px solid #eef1f5;
}

.aos02_about_terms_article h4{
    margin:0 0 12px;
    font-size:16px;
    font-weight:700;
    color:#111;
}

.aos02_about_terms_article p{
    margin:0 0 10px;
    line-height:1.85;
}

.aos02_about_terms_article ol{
    margin:0 0 8px;
    padding-left:22px;
}

.aos02_about_terms_article li{
    margin-bottom:8px;
    line-height:1.75;
    word-break:keep-all;
}

.aos02_about_terms_article a{
    color:#003b7a;
    font-weight:600;
}

.aos02_about_terms_article a:hover{
    color:#002a57;
}

/* .avn-loading-* → /css/shared/ui-loading.css (Phase6) */

/* reser_view pay */
.aos02_mypage_pay ul{
    display:block;
}

.aos02_mypage_pay li{
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:12px 0;
    border-bottom:1px solid #e4e7eb;
    font-size:14px;
}

.aos02_mypage_pay li span{
    width:auto;
    font-weight:600;
    color:#111;
}

.aos02_mypage_pay strong{
    font-size:16px;
    font-weight:700;
    color:#003b7a;
}

.aos02_mypage_pay strong .aos02_mypage_pay_unit{
    margin-left:4px;
    font-size:13px;
    font-weight:600;
    color:#666;
}

/* top seasonal strip — AOS02 브랜드 톤 */
#topBanner .avn_home_page_wrap_season_wrap{
  position:relative;
  z-index:30;
}

#topBanner .avn_home_page_wrap_season{
  position:relative;
  box-sizing:border-box;
  width:100%;
  overflow:hidden;
  background:#F2EEFF !important;
  color:#5A47A8;
  border-bottom:1px solid #D4CCF0;
}

#topBanner .avn_home_page_wrap_season::before,
#topBanner .avn_home_page_wrap_season::after{
  display:none;
}

#topBanner .avn_home_page_wrap_season_inner{
  max-width:1200px;
  margin:0 auto;
  position:relative;
  z-index:1;
  min-height:100%;
  display:flex;
  align-items:center;
}

#topBanner .avn_home_page_wrap_season_img{
  display:block;
  width:100%;
  height:120px;
  object-fit:cover;
}

#topBanner .avn_home_page_wrap_season_img img{
  display:block;
  width:100%;
  height:120px;
  object-fit:cover;
}

#topBanner .avn_home_page_wrap_season_copy{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:6px;
  width:100%;
  min-height:56px;
  padding:16px 220px;
  box-sizing:border-box;
  text-align:center;
}

#topBanner .avn_home_page_wrap_season_copy strong,
#topBanner .avn_home_page_wrap_season_copy_title{
  display:block;
  width:100%;
  font-family:"Pretendard", "Noto Sans KR", sans-serif;
  font-size:17px !important;
  font-weight:650;
  letter-spacing:-0.02em;
  color:#5A47A8 !important;
  line-height:1.35;
  word-break:keep-all;
  text-align:center;
  text-shadow:none;
}

#topBanner .avn_home_page_wrap_season_copy span,
#topBanner .avn_home_page_wrap_season_copy_text{
  display:block;
  width:100%;
  margin-top:0 !important;
  font-family:"Pretendard", "Noto Sans KR", sans-serif;
  font-size:13px !important;
  font-weight:400;
  letter-spacing:-0.01em;
  color:#5A47A8 !important;
  line-height:1.45;
  word-break:keep-all;
  text-align:center;
}

#topBanner .avn_home_page_wrap_season_right{
  position:absolute;
  top:50%;
  right:0;
  z-index:10;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  gap:12px;
}

#topBanner .today-close-check{
  display:flex;
  align-items:center;
  gap:7px;
  font-size:12px;
  font-weight:450;
  color:#5A47A8;
  white-space:nowrap;
  padding:0;
  cursor:pointer;
}

#topBanner .today-close-check .check-text{
  color:#5A47A8;
}

#topBanner .check-input{
  margin:0;
  width:14px;
  height:14px;
  accent-color:#5A47A8;
  cursor:pointer;
}

#topBanner .avn_home_page_wrap_season_btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  height:30px;
  padding:0 14px;
  background:#fff;
  border:1px solid #D4CCF0;
  border-radius:999px;
  font-family:"Pretendard", "Noto Sans KR", sans-serif;
  font-size:12px;
  font-weight:500;
  letter-spacing:-0.01em;
  color:#5A47A8;
  cursor:pointer;
  transition:background .2s ease, border-color .2s ease, color .2s ease;
  flex-shrink:0;
}

#topBanner .avn_home_page_wrap_season_btn:hover{
  background:#F2EEFF;
  border-color:#5A47A8;
  color:#5A47A8;
  font-weight:500;
}

#topBanner .avn_home_page_wrap_season_menu{
  display:flex;
  justify-content:flex-end;
  gap:0;
  font-size:12px;
  color:#666;
  margin-left:auto;
}

#topBanner .avn_home_page_wrap_season_menu img{
  width:260px;
  height:70px;
  object-fit:cover;
  border-radius:4px;
}

/* PHASE04+06 TopBanner MERGED: overflow·높이·typography·copy padding (≤768). PC 미변경 */
@media (max-width:768px){
  #topBanner,
  .topBanner,
  .top_banner{
    height:auto;
    min-height:0;
    max-height:none;
    display:block;
    overflow:hidden;
    position:relative;
    padding:0;
    margin:0;
    line-height:normal;
  }

  #topBanner *,
  .topBanner *,
  .top_banner *{
    max-height:none;
  }

  #topBanner .avn_home_page_wrap_season_wrap,
  #topBanner .avn_home_page_wrap_season,
  #topBanner .avn_home_page_wrap_season_inner,
  .topBanner .avn_home_page_wrap_season_wrap,
  .topBanner .avn_home_page_wrap_season,
  .topBanner .avn_home_page_wrap_season_inner,
  .top_banner .avn_home_page_wrap_season_wrap,
  .top_banner .avn_home_page_wrap_season,
  .top_banner .avn_home_page_wrap_season_inner{
    height:auto;
    min-height:0;
    max-height:none;
    max-width:100%;
    overflow-x:hidden;
    padding-top:0;
    padding-bottom:0;
  }

  #topBanner .avn_home_page_wrap_season,
  .topBanner .avn_home_page_wrap_season,
  .top_banner .avn_home_page_wrap_season{
    padding-top:8px;
    padding-bottom:8px;
  }

  #topBanner .avn_home_page_wrap_season_inner,
  .topBanner .avn_home_page_wrap_season_inner,
  .top_banner .avn_home_page_wrap_season_inner{
    width:min(1200px, 100%);
    max-width:100%;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:8px;
    padding-top:0;
    padding-bottom:0;
    padding-left:12px;
    padding-right:12px;
    box-sizing:border-box;
  }

  #topBanner .avn_home_page_wrap_season_img,
  #topBanner .avn_home_page_wrap_season_img img{
    max-width:100%;
    height:80px;
    overflow:hidden;
  }

  /* QA: 기존 padding 좌우 132px → 좁은 폭 overflow 원인. ≤768 공통 완화 */
  #topBanner .avn_home_page_wrap_season_copy,
  .topBanner .avn_home_page_wrap_season_copy,
  .top_banner .avn_home_page_wrap_season_copy{
    height:auto;
    min-height:0;
    max-height:none;
    padding:10px 100px 10px 12px;
    margin:0;
    gap:4px;
    box-sizing:border-box;
  }

  #topBanner .avn_home_page_wrap_season_copy strong,
  #topBanner .avn_home_page_wrap_season_copy_title{
    font-size:14px !important;
  }

  #topBanner .avn_home_page_wrap_season_copy span,
  #topBanner .avn_home_page_wrap_season_copy_text{
    font-size:12px !important;
  }

  #topBanner .avn_home_page_wrap_season_right{
    right:10px;
    gap:8px;
  }

  #topBanner .today-close-check{
    font-size:11px;
  }

  #topBanner .avn_home_page_wrap_season_btn{
    height:28px;
    padding:0 11px;
    font-size:11px;
  }

  #topBanner .avn_home_page_wrap_season_menu{
    max-width:100%;
    overflow:hidden;
  }

  #topBanner .avn_home_page_wrap_season_menu img{
    width:min(260px, 70vw);
    max-width:100%;
  }
}

/* P0: #topBanner 320~390 — line-height / text-wrap only (padding은 ≤768 공통에서 처리) */
@media (max-width:390px){
  #topBanner .avn_home_page_wrap_season_copy{
    margin:0;
    padding:10px 96px 10px 12px;
    gap:4px;
  }

  #topBanner .avn_home_page_wrap_season_copy strong,
  #topBanner .avn_home_page_wrap_season_copy_title{
    line-height:1.4;
    white-space:normal;
    overflow-wrap:break-word;
    word-break:keep-all;
  }

  #topBanner .avn_home_page_wrap_season_copy span,
  #topBanner .avn_home_page_wrap_season_copy_text{
    margin:0;
    line-height:1.5;
    white-space:normal;
    overflow-wrap:break-word;
    word-break:keep-all;
  }

  #topBanner .today-close-check{
    margin:0;
    white-space:normal;
    line-height:1.35;
  }

  #topBanner .today-close-check .check-text{
    white-space:normal;
    overflow-wrap:break-word;
    word-break:keep-all;
    line-height:1.35;
  }

  #topBanner .avn_home_page_wrap_season_menu{
    margin-left:0;
  }
}

/* PHASE11–13 MERGED: Image Card / Multi Category / Magazine 모바일 Carousel (≤768). PC·Hash·다른 Component 미변경 */
@media (max-width:768px){
  .aos_image_card_01,
  .aos_image_card_02,
  .aos_image_card_05{
    padding-top:40px;
    padding-bottom:40px;
  }

  .aos_image_card_01_wrap_inner,
  .aos_image_card_02_wrap_inner,
  .aos_image_card_05_wrap_inner{
    width:100%;
    max-width:100%;
    padding-left:16px;
    padding-right:16px;
    box-sizing:border-box;
  }

  .aos_image_card_01 .aos_image_card_swiper,
  .aos_image_card_02 .aos_image_card_swiper,
  .aos_image_card_05 .aos_image_card_swiper{
    width:100%;
    height:auto !important;
    min-height:0 !important;
    overflow:hidden;
    padding-bottom:8px;
    box-sizing:border-box;
  }

  .aos_image_card_01_list.swiper-wrapper,
  .aos_image_card_02_list.swiper-wrapper,
  .aos_image_card_05_list.swiper-wrapper{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:0 !important;
    grid-template-columns:none !important;
    height:auto !important;
    min-height:0 !important;
    margin:0;
    padding:0;
    list-style:none;
  }

  .aos_image_card_01_list.swiper-wrapper > li.swiper-slide,
  .aos_image_card_02_list.swiper-wrapper > li.swiper-slide,
  .aos_image_card_05_list.swiper-wrapper > li.swiper-slide{
    flex:0 0 auto !important;
    width:auto !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    box-sizing:border-box;
  }

  .aos_image_card_01_list.swiper-wrapper > li.swiper-slide{
    text-align:center;
  }

  .aos_image_card_01_head{
    margin-bottom:20px;
    padding-bottom:10px;
  }

  .aos_image_card_01_thumb{
    width:min(168px, 52vw);
    height:min(168px, 52vw);
    margin:0 auto 12px;
  }

  .aos_image_card_01_thumb img{
    width:min(148px, 46vw);
    height:min(148px, 46vw);
  }

  .aos_image_card_02_title,
  .aos_image_card_05_title{
    margin-bottom:24px;
  }

  .aos_image_card_02_list.swiper-wrapper > li.swiper-slide{
    height:142px !important; /* 기존 카드 높이 유지 (height:auto 오버라이드) */
  }

  .aos_image_card_05_list.swiper-wrapper > li.swiper-slide{
    background:#fff;
  }

  .aos_image_card_pagination.swiper-pagination{
    position:relative;
    bottom:auto !important;
    left:auto;
    width:100%;
    margin-top:14px;
    text-align:center;
  }

  .aos_image_card_pagination .swiper-pagination-bullet{
    width:9px;
    height:9px;
    margin:0 4px;
    background:#cbd5e1;
    opacity:1;
  }

  .aos_image_card_pagination .swiper-pagination-bullet-active{
    background:#0284c7;
  }

/* PHASE12 MULTI CATEGORY: aos_multi_category_06 모바일 Carousel — 1장+peek·Pagination·Autoplay·높이 auto(≤768). PC·Hash·다른 Component 미변경 */
  .aos_multi_category_06{
    padding-top:40px;
    padding-bottom:40px;
  }

  .aos_multi_category_06 .aos_category_06_wrap_inner{
    width:100%;
    max-width:100%;
    padding-left:16px;
    padding-right:16px;
    box-sizing:border-box;
  }

  .aos_multi_category_06 .aos_category_06_title{
    margin-bottom:20px;
  }

  .aos_multi_category_06 .aos_multi_category_06_tab{
    margin-bottom:20px;
    max-width:100%;
  }

  .aos_multi_category_06 .aos_multi_category_swiper{
    width:100%;
    height:auto !important;
    min-height:0 !important;
    overflow:hidden;
    padding-bottom:8px;
    box-sizing:border-box;
  }

  .aos_multi_category_06 .aos_multi_category_06_list.swiper-wrapper{
    display:flex !important;
    flex-wrap:nowrap !important;
    align-items:flex-start !important;
    justify-content:flex-start !important;
    gap:0 !important;
    grid-template-columns:none !important;
    height:auto !important;
    min-height:0 !important;
    margin:0;
    padding:0;
  }

  .aos_multi_category_06 .aos_multi_category_06_list.swiper-wrapper > article.swiper-slide{
    flex:0 0 auto !important;
    width:auto !important;
    max-width:none !important;
    height:auto !important;
    min-height:0 !important;
    box-sizing:border-box;
    overflow:hidden;
    border-radius:22px;
  }

  /* Hash 모바일 카드 높이(280px) 유지 — 비율·디자인 유지, Carousel만 높이 상속 차단 */
  .aos_multi_category_06 .aos_multi_category_06_list.swiper-wrapper > article.swiper-slide > a{
    height:280px;
    min-height:0;
  }

  .aos_multi_category_06 .aos_multi_category_pagination.swiper-pagination{
    position:relative;
    bottom:auto !important;
    left:auto;
    width:100%;
    margin-top:14px;
    text-align:center;
  }

  .aos_multi_category_06 .aos_multi_category_pagination .swiper-pagination-bullet{
    width:9px;
    height:9px;
    margin:0 4px;
    background:#99f6e4;
    opacity:1;
  }

  .aos_multi_category_06 .aos_multi_category_pagination .swiper-pagination-bullet-active{
    background:#0d9488;
  }

/* PHASE13 MAGAZINE: aos02_magazine 모바일 가로 슬라이드 — 1장(~78%)+peek(~22%), scroll-snap, Autoplay 없음. PC·HTML 미변경 */


  .aos02_magazine > .aos02_inner{
    width:100%;
    max-width:100%;
    padding-left:16px;
    padding-right:0;
    box-sizing:border-box;
    overflow:visible;
  }

  .aos02_magazine .aos02_title{
    padding-right:16px;
  }

  .aos02_magazine .aos02_magazine_list{
    display:flex !important;
    flex-direction:row !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:12px !important;
    grid-template-columns:none !important;
    width:100%;
    margin:0;
    padding:4px 16px 10px 0;
    box-sizing:border-box;
    overflow-x:auto !important;
    overflow-y:visible !important;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x mandatory;
    scroll-padding-inline:0;
    scroll-behavior:smooth;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    -ms-overflow-style:none;
  }

  .aos02_magazine .aos02_magazine_list::-webkit-scrollbar{
    display:none;
    width:0;
    height:0;
  }

  .aos02_magazine .aos02_magazine_list > article{
    flex:0 0 78% !important;
    width:78% !important;
    max-width:78% !important;
    min-width:0 !important;
    height:auto !important;
    box-sizing:border-box;
    scroll-snap-align:start;
    scroll-snap-stop:always;
  }

  .aos02_magazine .aos02_magazine_list > article img{
    flex:0 0 auto;
  }
}

/* PHASE14 BOARD/CUSTOMER/FOOTER: 모바일 카드형 표준 UI(≤768). PC·Hash·Handler·다른 Component 미변경 */
@media (max-width:768px){
  .aos02_customer{
    padding-top:24px;
    padding-bottom:24px;
    background:#f8fafc;
  }

  /* —— Customer 영역: 세로 스택 (Hash CSS가 style.css 이후 로드되어 !important 필요) —— */
  .aos02_customer .aos02_inner{
    display:flex !important;
    flex-direction:column !important;
    flex-wrap:nowrap !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    gap:16px;
    grid-template-columns:none !important;
    grid-template-rows:none !important;
  }

  .aos02_customer .aos02_inner > .aos02_board,
  .aos02_customer .aos02_inner > .aos02_account{
    width:100% !important;
    max-width:100% !important;
    flex:0 0 auto !important;
    float:none !important;
    grid-column:auto !important;
    grid-row:auto !important;
  }

  /* —— 공지사항 / 여행후기 Board Card —— */
  .aos02_customer .aos02_board{
    width:100%;
    box-sizing:border-box;
    padding:20px 22px;
    border:1px solid #e5e7eb;
    border-radius:16px;
    background:#fff;
    box-shadow:0 4px 14px rgba(15,23,42,.06);
  }

  .aos02_customer .aos02_board_head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    margin-bottom:12px;
    padding-bottom:12px;
    border-bottom:1px solid #e5e7eb;
  }

  .aos02_customer .aos02_board_head h3{
    margin:0;
    font-size:15px;
    font-weight:700;
    line-height:1.3;
    color:#111;
    white-space:nowrap;
  }

  .aos02_customer .aos02_board_head a{
    flex:0 0 auto;
    font-size:12px;
    color:#64748b;
    white-space:nowrap;
  }

  .aos02_customer .aos02_board ul{
    margin:0;
    padding:0;
    list-style:none;
  }

  /* Handler 미변경 — CSS로 최신 1건만 노출 */
  .aos02_customer .aos02_board li:nth-child(n+2){
    display:none !important;
  }

  .aos02_customer .aos02_board li{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    gap:8px;
    padding:4px 0 0;
    border-bottom:0;
    min-width:0;
  }

  .aos02_customer .aos02_board li > a{
    display:-webkit-box;
    -webkit-box-orient:vertical;
    -webkit-line-clamp:2;
    width:100%;
    max-width:100%;
    min-width:0;
    box-sizing:border-box;
    overflow:hidden;
    color:#111;
    text-decoration:none;
    font-size:14px;
    font-weight:600;
    line-height:1.45;
    white-space:normal;
    word-break:keep-all;
    overflow-wrap:break-word;
  }

  .aos02_customer .aos02_board li > span{
    display:block;
    color:#94a3b8;
    font-size:12px;
    line-height:1.4;
    white-space:nowrap;
  }

  /* —— 고객센터 Card —— */
  .aos02_customer .aos02_account{
    grid-column:auto !important;
    grid-row:auto !important;
    width:100% !important;
    max-width:100% !important;
    height:auto;
    min-height:0;
    box-sizing:border-box;
    border:1px solid #e5e7eb;
    border-radius:16px;
    background:#fff;
    box-shadow:0 4px 14px rgba(15,23,42,.06);
    overflow:hidden;
  }

  .aos02_customer .aos02_account h3{
    padding:14px 22px;
    font-size:15px;
    font-weight:700;
  }

  .aos02_customer .aos02_account_body{
    flex:none;
    padding:20px 22px 22px;
    gap:0;
  }

  .aos02_customer .aos02_account_cs{
    padding-bottom:16px;
    margin-bottom:4px;
    border-bottom:1px solid #e5e7eb;
  }

  .aos02_customer .aos02_account_cs strong{
    margin-bottom:8px;
    font-size:28px;
    font-weight:800;
    letter-spacing:0.2px;
    line-height:1.2;
    word-break:keep-all;
  }

  .aos02_customer .aos02_account_cs p{
    font-size:13px;
    line-height:1.5;
    color:#64748b;
    white-space:normal;
    word-break:keep-all;
  }

  .aos02_customer .aos02_account_bank{
    flex:none;
    justify-content:flex-start;
    padding-top:16px;
  }

  .aos02_customer .aos02_account_bank h4{
    margin:0 0 12px;
    font-size:13px;
    font-weight:700;
    color:#111;
  }

  .aos02_customer .aos02_account_bank dl{
    display:grid;
    grid-template-columns:72px 1fr;
    gap:10px 12px;
    margin:0;
    align-items:start;
  }

  .aos02_customer .aos02_account_bank dt{
    font-size:12px;
    line-height:1.45;
    color:#94a3b8;
  }

  .aos02_customer .aos02_account_bank dd{
    font-size:13px;
    font-weight:600;
    line-height:1.45;
    color:#334155;
    white-space:normal;
    word-break:keep-all;
    overflow-wrap:break-word;
  }

  .aos02_customer .aos02_account_bank dd.is-num{
    font-size:15px;
    font-weight:800;
    letter-spacing:0.3px;
    word-break:break-all;
  }

  /* —— Footer 모바일 전용 세로 UI —— */
  .aos02_footer{
    padding:10px 20px;
    text-align:center;
  }

  .aos02_footer > .aos02_inner{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:18px;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }

  .aos02_footer_top{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:16px;
    width:100%;
  }

  .aos02_footer img{
    height:44px;
    width:auto;
    max-width:160px;
    margin:0 auto;
  }

  .aos02_footer_nav{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:10px 14px;
    width:100%;
  }

  .aos02_footer_nav a,
  .aos02_footer a{
    font-size:13px;
    font-weight:700;
    line-height:1.4;
    white-space:nowrap;
  }

  .aos02_footer p{
    margin:0 auto;
    width:100%;
    max-width:100%;
    font-size:12px;
    line-height:1.7;
    color:#94a3b8;
    text-align:center;
    white-space:normal !important;
    word-break:keep-all;
    overflow-wrap:break-word;
    overflow:visible;
  }

  .aos02_footer > .aos02_inner > small,
  .aos02_footer small{
    display:block;
    margin:0 auto;
    font-size:11px;
    line-height:1.5;
    color:#64748b;
    text-align:center;
    white-space:normal;
    word-break:keep-all;
  }
}

/* PHASE16 SUBPAGE: 상품 상세(.tour_view) 모바일 Card UI 표준(≤768). PC·메인·Hash·Handler 미변경 */
@media (max-width:768px){
  /* —— 공통 Section Card —— */
  .tour_view .view_detail{
    padding:20px 0 40px;
  }

  .tour_view .detail_left{
    gap:20px;
    width:100%;
  }

  .tour_view .view_div#viewSchedule,
  .tour_view .view_div#viewPrice,
  .tour_view .view_div#viewInclude,
  .tour_view .view_div#viewIntro{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    margin:0;
    padding:22px 20px;
    border:1px solid #e5e7eb;
    border-radius:14px;
    background:#fff;
    box-shadow:0 4px 14px rgba(15,23,42,.05);
  }

  .tour_view .view_div_head{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:6px;
    margin-bottom:16px;
    padding-bottom:12px;
  }

  .tour_view .view_div_head h3,
  .tour_view .view_div#viewIntro > h3{
    margin:0;
    font-size:16px;
    line-height:1.35;
    word-break:keep-all;
  }

  .tour_view .view_div_head span{
    font-size:12px;
    line-height:1.4;
    color:#94a3b8;
  }

  /* —— 상품 요약 정보 (Label → Value) —— */
  .tour_view .view_summary{
    width:100%;
    max-width:100%;
    height:auto;
    min-height:0;
    box-sizing:border-box;
    padding:20px;
    border-radius:14px;
    border:1px solid #e5e7eb;
    box-shadow:0 4px 14px rgba(15,23,42,.05);
  }

  .tour_view .view_summary_info{
    display:flex;
    flex-direction:column;
    gap:0;
    grid-template-columns:none;
  }

  .tour_view .view_summary_info > div{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:4px;
    width:100%;
    box-sizing:border-box;
    padding:12px 0;
    border-bottom:1px solid #eef2f7;
  }

  .tour_view .view_summary_info > div:last-child{
    border-bottom:0;
  }

  .tour_view .view_summary_info dt{
    width:auto;
    margin:0;
    font-size:12px;
    font-weight:700;
    color:#64748b;
    white-space:normal;
    word-break:keep-all;
  }

  .tour_view .view_summary_info dd{
    width:100%;
    margin:0;
    font-size:14px;
    line-height:1.45;
    white-space:normal;
    word-break:keep-all;
    overflow-wrap:break-word;
  }

  /* —— 여행 주요 일정: Table형 → Label / Value 세로 —— */
  .tour_view .schedule_box{
    border:0;
    background:transparent;
  }

  .tour_view .schedule_row{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch;
    width:100%;
    box-sizing:border-box;
    grid-template-columns:none !important;
    border:0;
    border-bottom:1px solid #e5e7eb;
    padding:0 0 14px;
    margin:0 0 14px;
  }

  .tour_view .schedule_row:last-child{
    margin-bottom:0;
    padding-bottom:0;
    border-bottom:0;
  }

  .tour_view .schedule_row + .schedule_row{
    border-top:0;
  }

  .tour_view .schedule_row > strong{
    display:block;
    width:100%;
    box-sizing:border-box;
    margin:0 0 8px;
    padding:0;
    background:transparent;
    font-size:12px;
    font-weight:700;
    color:#64748b;
    line-height:1.4;
  }

  .tour_view .schedule_row > div{
    width:100%;
    box-sizing:border-box;
    padding:0;
  }

  .tour_view .schedule_row p{
    margin:0;
    font-size:14px;
    line-height:1.55;
    color:#111;
    white-space:normal;
    word-break:keep-all;
    overflow-wrap:break-word;
  }

  .tour_view .schedule_row span{
    display:block;
    margin-top:6px;
    font-size:12px;
    line-height:1.4;
    color:#94a3b8;
  }

  /* 방문도시: HTML 구조 유지 · → 기준 세로 가독성 */
  .tour_view .schedule_row:nth-child(3) > div p{
    line-height:1.8;
  }

  /* —— 상품가: Table 구조 유지 · 가로 스크롤 없이 화면 맞춤 —— */
  .tour_view .view_div#viewPrice{
    padding-left:14px;
    padding-right:14px;
    overflow-x:visible;
  }

  .tour_view #viewPrice .price_table{
    width:100%;
    max-width:100%;
    min-width:0;
    table-layout:fixed;
    box-sizing:border-box;
    border-collapse:collapse;
  }

  .tour_view #viewPrice .price_table col,
  .tour_view #viewPrice .price_table th,
  .tour_view #viewPrice .price_table td{
    box-sizing:border-box;
  }

  .tour_view #viewPrice .price_table th,
  .tour_view #viewPrice .price_table td{
    padding:10px 6px;
    font-size:13px;
    line-height:1.35;
    white-space:normal;
    word-break:keep-all;
    overflow-wrap:break-word;
  }

  /* 첫 열(구분) 폭 최소화 */
  .tour_view #viewPrice .price_table thead th:first-child,
  .tour_view #viewPrice .price_table tbody th{
    width:18%;
    max-width:64px;
    padding-left:6px;
    padding-right:4px;
    font-size:12px;
  }

  .tour_view #viewPrice .price_table thead th:not(:first-child),
  .tour_view #viewPrice .price_table tbody td{
    width:auto;
  }

  .tour_view #viewPrice .price_table td{
    font-size:13px;
    font-weight:700;
  }

  .tour_view #viewPrice .notice_text{
    margin-top:12px;
    padding:10px 12px;
    font-size:12px;
    line-height:1.55;
    word-break:keep-all;
  }

  /* —— 포함/불포함: 세로 Card Stack —— */
  .tour_view #viewInclude .include_grid{
    display:flex;
    flex-direction:column;
    gap:16px;
    border:0;
    background:transparent;
  }

  .tour_view #viewInclude .include_box{
    width:100%;
    box-sizing:border-box;
    margin:0;
    padding:20px;
    border:1px solid #e5e7eb;
    border-radius:14px;
    background:#fff;
  }

  .tour_view #viewInclude .include_box + .include_box{
    padding:20px;
    border-left:1px solid #e5e7eb;
    border-top:1px solid #e5e7eb;
    background:#fff;
  }

  .tour_view #viewInclude .include_box h3{
    margin-bottom:12px;
    padding-bottom:10px;
    font-size:15px;
  }

  .tour_view #viewInclude .include_box li{
    font-size:13px;
    line-height:1.5;
    word-break:keep-all;
    overflow-wrap:break-word;
  }

  /* —— 상품소개: Editor 내용 유지 · 미디어만 100% —— */
  .tour_view #viewIntro .intro_box{
    border:0;
    overflow:visible;
  }

  .tour_view #tourDetailInfo,
  .tour_view #viewIntro .intro_box{
    max-width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  .tour_view #tourDetailInfo img,
  .tour_view #viewIntro .intro_box img,
  .tour_view #tourDetailInfo video,
  .tour_view #viewIntro .intro_box video{
    max-width:100% !important;
    width:100% !important;
    height:auto !important;
    display:block;
  }

  .tour_view #tourDetailInfo iframe,
  .tour_view #viewIntro .intro_box iframe{
    max-width:100% !important;
    width:100% !important;
  }

  .tour_view #tourDetailInfo table,
  .tour_view #viewIntro .intro_box table{
    max-width:100% !important;
    width:100% !important;
    display:block;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    border-collapse:collapse;
  }

  .tour_view #tourDetailInfo *{
    max-width:100%;
    box-sizing:border-box;
  }
}

/* PHASE16 TAB: 상품 상세 Tab Navigation 버튼형 + 가로 스크롤 + Sticky(≤768). PC·다른 영역·JS 미변경 */
@media (max-width:768px){
  .tour_view .detail_tab{
    position:sticky;
    top:0;
    z-index:50;
    display:flex;
    flex-wrap:nowrap;
    align-items:center;
    gap:8px;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    margin:0 0 12px;
    padding:10px 0;
    overflow-x:auto;
    overflow-y:hidden;
    -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
    background:#fff;
    border:0;
    border-bottom:1px solid #e5e7eb;
  }

  .tour_view .detail_tab > div{
    flex:0 0 auto;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:auto;
    height:auto;
    padding:10px 14px;
    border:1px solid #e2e8f0;
    border-radius:22px;
    background:#fff;
    color:#475569;
    font-size:13px;
    font-weight:600;
    line-height:1.2;
    white-space:nowrap;
    text-align:center;
    cursor:pointer;
    scroll-snap-align:start;
    box-sizing:border-box;
  }

  .tour_view .detail_tab > div:hover{
    color:#0f172a;
    border-color:#cbd5e1;
  }

  .tour_view .detail_tab > div.is-active{
    background:#003b7a;
    border-color:#003b7a;
    color:#fff;
  }
}

/* —— 후기 사진 첨부 (PC/Mobile 공통) —— */
.aos02_mypage .aos02_mypage_review_photos{
  display:flex;
  flex-wrap:wrap;
  align-items:flex-start;
  gap:10px;
  width:100%;
  box-sizing:border-box;
}

.aos02_mypage .aos02_mypage_review_photo_list{
  display:contents;
  margin:0;
  padding:0;
  list-style:none;
}

.aos02_mypage .aos02_mypage_review_photo_item{
  position:relative;
  width:100px;
  max-width:100px;
  height:100px;
  overflow:hidden;
  border-radius:12px;
  border:1px solid #e5e7eb;
  background:#f1f5f9;
  flex:none;
}

.aos02_mypage .aos02_mypage_review_photo_item img{
  display:block;
  width:100%;
  max-width:100px;
  height:100%;
  object-fit:cover;
}

.aos02_mypage .aos02_mypage_review_photo_remove{
  position:absolute;
  top:4px;
  right:4px;
  width:22px;
  height:22px;
  padding:0;
  border:0;
  border-radius:50%;
  background:rgba(15,23,42,.72);
  color:#fff;
  font-size:16px;
  line-height:22px;
  text-align:center;
  cursor:pointer;
}

.aos02_mypage .aos02_mypage_review_photo_remove:hover{
  background:rgba(15,23,42,.9);
}

.aos02_mypage .aos02_mypage_review_photo_add{
  position:relative;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:4px;
  width:100px;
  max-width:100px;
  height:100px;
  padding:8px;
  box-sizing:border-box;
  border:1px dashed #cbd5e1;
  border-radius:12px;
  background:#f8fafc;
  color:#64748b;
  text-align:center;
  cursor:pointer;
  flex:none;
}

.aos02_mypage .aos02_mypage_review_photo_add.is-hidden{
  display:none;
}

.aos02_mypage .aos02_mypage_review_photo_add:hover{
  border-color:#94a3b8;
  background:#f1f5f9;
}

.aos02_mypage .aos02_mypage_review_photo_add input[type="file"]{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  overflow:hidden;
}

.aos02_mypage .aos02_mypage_review_photo_add_icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:24px;
  height:24px;
  border-radius:50%;
  background:#e2e8f0;
  color:#334155;
  font-size:18px;
  line-height:1;
}

.aos02_mypage .aos02_mypage_review_photo_add > span:not(.aos02_mypage_review_photo_add_icon){
  font-size:11px;
  line-height:1.2;
  color:#475569;
}

.aos02_mypage .aos02_mypage_review_photo_add em{
  font-style:normal;
  font-size:10px;
  color:#94a3b8;
}

.aos02_mypage .aos02_mypage_review_photo_help{
  margin:8px 0 0;
  font-size:12px;
  line-height:1.55;
  color:#64748b;
  white-space:normal;
  word-break:keep-all;
  overflow-wrap:break-word;
}

/* PHASE17 MYPAGE: MyPage 공통 모바일 UI 표준 — Form/Card/Button/Table/Upload/Radio(≤768). PC·메인·Hash 미변경 */
@media (max-width:768px){
  /* —— Layout / Inner —— */
  .aos02_mypage .aos02_mypage_body{
    padding:20px 0 40px;
  }

  .aos02_mypage .aos02_login_head .aos02_inner,
  .aos02_mypage .aos02_mypage_body > .aos02_inner{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    padding-left:16px;
    padding-right:16px;
  }

  .aos02_mypage .aos02_login_head h2{
    font-size:24px;
    margin-bottom:8px;
    word-break:keep-all;
  }

  .aos02_mypage .aos02_mypage_layout{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:20px;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }

  .aos02_mypage .aos02_mypage_lnb,
  .aos02_mypage .aos02_mypage_content{
    width:100%;
    max-width:none;
    box-sizing:border-box;
    flex:none;
  }

  .aos02_mypage .aos02_mypage_content{
    display:flex;
    flex-direction:column;
    gap:20px;
  }

  /* —— LNB 메뉴 2열 —— */
  .aos02_mypage .aos02_mypage_lnb{
    border-radius:14px;
    overflow:hidden;
  }

  .aos02_mypage .aos02_mypage_member{
    width:100%;
    box-sizing:border-box;
    padding:16px 18px;
  }

  .aos02_mypage .aos02_mypage_lnb nav ul{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    width:100%;
  }

  .aos02_mypage .aos02_mypage_lnb nav li{
    min-width:0;
  }

  .aos02_mypage .aos02_mypage_lnb nav a{
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:48px;
    box-sizing:border-box;
    padding:12px 8px;
    text-align:center;
    border-left:none;
    white-space:nowrap;
    word-break:keep-all;
  }

  /* —— Section Card —— */
  .aos02_mypage .aos02_mypage_section,
  .aos02_mypage .aos02_mypage_welcome,
  .aos02_mypage .aos02_mypage_leave_notice,
  .aos02_mypage .aos02_mypage_point_summary{
    width:100%;
    max-width:none;
    box-sizing:border-box;
    margin-left:0;
    margin-right:0;
    padding:20px 18px;
    border-radius:14px;
  }

  .aos02_mypage .aos02_mypage_section{
    margin-bottom:0;
  }

  .aos02_mypage .aos02_mypage_section_head{
    width:100%;
    box-sizing:border-box;
    margin-bottom:16px;
    padding-bottom:12px;
    gap:8px;
  }

  .aos02_mypage .aos02_mypage_section_head h3,
  .aos02_mypage .aos02_login_head h2{
    font-size:22px;
    line-height:1.3;
    word-break:keep-all;
  }

  .aos02_mypage .aos02_mypage_section_head h3{
    font-size:18px;
  }

  /* —— Form fields (공통) —— */
  .aos02_mypage .aos02_join_field,
  .aos02_mypage .aos02_address_group,
  .aos02_mypage .aos02_address_col,
  .aos02_mypage .aos02_mypage_form,
  .aos02_mypage .aos02_community_bbs_form,
  .aos02_mypage form{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }

  .aos02_mypage .aos02_join_field > label,
  .aos02_mypage .aos02_address_col label{
    display:block;
    width:100%;
    box-sizing:border-box;
  }

  .aos02_mypage .aos02_join_field > input[type="text"],
  .aos02_mypage .aos02_join_field > input[type="password"],
  .aos02_mypage .aos02_join_field > input[type="email"],
  .aos02_mypage .aos02_join_field > input[type="tel"],
  .aos02_mypage .aos02_join_field > input[type="number"],
  .aos02_mypage .aos02_join_field > input[type="search"],
  .aos02_mypage .aos02_join_field > input[type="file"],
  .aos02_mypage .aos02_join_field > select,
  .aos02_mypage .aos02_join_field > textarea,
  .aos02_mypage .aos02_address_col input,
  .aos02_mypage .aos02_address_col select,
  .aos02_mypage .aos02_community_bbs_form input[type="text"],
  .aos02_mypage .aos02_community_bbs_form input[type="password"],
  .aos02_mypage .aos02_community_bbs_form input[type="email"],
  .aos02_mypage .aos02_community_bbs_form select,
  .aos02_mypage .aos02_community_bbs_form textarea,
  .aos02_mypage .aos02_mypage_point_sort,
  .aos02_mypage .aos02_mypage_qna_list .avn-notice-list-search input{
    width:100% !important;
    max-width:100%;
    box-sizing:border-box;
  }

  .aos02_mypage .aos02_join_field > textarea,
  .aos02_mypage .aos02_community_bbs_form textarea{
    min-height:200px;
    padding:14px;
    line-height:1.6;
    resize:vertical;
  }

  .aos02_mypage .aos02_join_field_row{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    width:100%;
    box-sizing:border-box;
  }

  .aos02_mypage .aos02_address_row{
    display:grid;
    grid-template-columns:1fr;
    gap:12px;
    width:100%;
    box-sizing:border-box;
  }

  .aos02_mypage .aos02_join_field_row input,
  .aos02_mypage .aos02_join_field_row select{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    flex:none;
  }

  /* Checkbox / Radio (일반) — 컨트롤 자체는 auto */
  .aos02_mypage .aos02_join_check{
    width:100%;
    box-sizing:border-box;
  }

  .aos02_mypage .aos02_join_check input[type="checkbox"],
  .aos02_mypage .aos02_join_check input[type="radio"],
  .aos02_mypage .avn-event-edit-input-radio input[type="radio"]{
    width:16px;
    height:16px;
    flex:none;
  }

  .aos02_mypage .avn-event-edit-input-radio{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:12px 16px;
    width:100%;
    box-sizing:border-box;
  }

  .aos02_mypage .avn-event-edit-input-radio label{
    display:inline-flex;
    align-items:center;
    gap:8px;
    width:auto;
    white-space:nowrap;
  }

  /* —— 별점 Radio: 한 줄 자연 정렬, 겹침 방지 —— */
  .aos02_mypage .aos02_join_radio,
  .aos02_mypage .aos02_mypage_review_star_radio{
    display:flex;
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 12px;
    width:100%;
    box-sizing:border-box;
    padding:8px 0;
  }

  .aos02_mypage .aos02_mypage_review_star_radio .aos02_join_check{
    display:inline-flex;
    flex-direction:row;
    align-items:center;
    justify-content:flex-start;
    gap:6px;
    width:auto;
    max-width:100%;
    margin:0;
    padding:8px 10px;
    background:#f8fafc;
    border:1px solid #e5e7eb;
    border-radius:10px;
    border-bottom:1px solid #e5e7eb;
    white-space:nowrap;
    box-sizing:border-box;
  }

  .aos02_mypage .aos02_mypage_review_star_radio .aos02_join_check input{
    width:16px;
    height:16px;
    margin:0;
    flex:none;
  }

  .aos02_mypage .aos02_mypage_review_star_radio .aos02_join_check span{
    display:inline;
    line-height:1;
    letter-spacing:1px;
    white-space:nowrap;
  }

  /* —— Buttons —— */
  .aos02_mypage .aos02_mypage_btns,
  .aos02_mypage .aos02_join_btns{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:10px;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    margin-top:4px;
  }

  .aos02_mypage .aos02_mypage_btns .aos02_join_cancel_btn,
  .aos02_mypage .aos02_mypage_btns .aos02_login_btn,
  .aos02_mypage .aos02_join_btns .aos02_join_cancel_btn,
  .aos02_mypage .aos02_join_btns .aos02_login_btn,
  .aos02_mypage .aos02_mypage_wish_btns a,
  .aos02_mypage .aos02_mypage_wish_btns button,
  .aos02_mypage .aos02_mypage_review_btns a,
  .aos02_mypage .aos02_mypage_wish_del,
  .aos02_mypage .aos02_address_search_btn{
    flex:none;
    width:100%;
    max-width:100%;
    min-height:50px;
    height:auto;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    justify-content:center;
  }

  .aos02_mypage .aos02_mypage_section_head .aos02_address_search_btn{
    width:auto;
    min-height:36px;
    padding:0 14px;
  }

  /* —— Table: 가로 스크롤 유지(구조 유지) —— */
  .aos02_mypage .aos02_mypage_table_wrap{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }

  .aos02_mypage .aos02_mypage_table{
    width:100%;
    min-width:480px;
    box-sizing:border-box;
  }

  /* —— List cards / items —— */
  .aos02_mypage .aos02_mypage_reserve_item,
  .aos02_mypage .aos02_mypage_wish_item,
  .aos02_mypage .aos02_mypage_review_item{
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }

  .aos02_mypage .aos02_mypage_wish_toolbar,
  .aos02_mypage .aos02_mypage_search_row{
    width:100%;
    box-sizing:border-box;
    flex-wrap:wrap;
    gap:10px;
  }

  .aos02_mypage .aos02_login_notice{
    width:100%;
    box-sizing:border-box;
    padding:14px 16px;
    border-radius:12px;
    word-break:keep-all;
  }

  .aos02_mypage .aos02_mypage_quick{
    width:100%;
    box-sizing:border-box;
  }

  .aos02_mypage .aos02_mypage_quick a{
    width:100%;
    box-sizing:border-box;
  }

  /* —— 공통: 모바일 테이블 컬럼 숨김 (point/qna 사용 확인, notice는 확장 대비 KEEP) —— */
  .aos02_mypage_point_table .is-mo-hide,
  .aos02_mypage_qna_table .is-mo-hide,
  .aos02_community_notice_table .is-mo-hide{
    display:none;
  }

  /* —— Edit 전용 form 스택 (검증: edit.inc #frmEdit) —— */
  #pg-mypage-edit #frmEdit{
    display:flex;
    flex-direction:column;
    gap:20px;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }

  /* —— 예약내역 Card「상세보기」만 —— */
  .aos02_mypage .aos02_mypage_reserve_list .aos02_mypage_reserve_btns > a{
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    flex:none;
    width:auto;
    max-width:100%;
    min-width:100px;
    min-height:46px;
    height:46px;
    padding:11px 20px;
    border-radius:9px;
    font-size:14px;
    font-weight:600;
    text-align:center;
    line-height:1.2;
  }
}










/* =========================================================
   MOBILE HEADER FIX — 햄버거 복구 / GNB 누수 차단
========================================================= */
@media (max-width:768px){
    /* 패널 밖 GNB/Util이 nav 안에 남지 않도록 (깨짐 방지) */
    .aos02_nav .aos02_inner > .aos02_menu,
    .aos02_nav .aos02_inner > .aos02_util,
    .aos02_header .aos02_nav > .aos02_inner > ul.aos02_menu,
    .aos02_header .aos02_nav > .aos02_inner > .aos02_util{
        display:none !important;
        visibility:hidden !important;
        width:0 !important;
        height:0 !important;
        overflow:hidden !important;
        position:absolute !important;
        left:-9999px !important;
        pointer-events:none !important;
        opacity:0 !important;
    }

    .aos02_nav_btn{
        display:inline-flex !important;
        visibility:visible !important;
        opacity:1 !important;
        pointer-events:auto !important;
        position:relative !important;
        left:auto !important;
        width:44px !important;
        height:44px !important;
        z-index:1003 !important;
        order:2 !important;
        flex-shrink:0 !important;
        margin-left:auto !important;
        box-sizing:border-box !important;
    }

    .aos02_nav .aos02_inner{
        height:64px !important;
        min-height:64px !important;
        max-height:70px !important;
        overflow:visible !important;
        display:flex !important;
        align-items:center !important;
        justify-content:space-between !important;
    }

    .aos02_logo{
        order:1 !important;
        margin-right:auto !important;
        max-width:min(160px, 55vw) !important;
    }

    /* 패널이 nav 안에 있어도 / Header 밖으로 이동해도 동일하게 동작 */
    .aos02_nav_panel,
    .aos02_wrap > .aos02_nav_panel,
    .aos02_header + .aos02_nav_panel{
        position:fixed !important;
        top:0 !important;
        left:-100% !important;
        width:min(82vw, 300px) !important;
        max-width:300px !important;
        height:100vh !important;
        z-index:12000 !important;
        display:flex !important;
        flex-direction:column !important;
        align-items:stretch !important;
        background:#fff !important;
        box-shadow:8px 0 28px rgba(0,0,0,.18) !important;
        overflow-x:hidden !important;
        overflow-y:auto !important;
        -webkit-overflow-scrolling:touch;
        transition:left .28s ease !important;
        visibility:visible !important;
        pointer-events:auto !important;
        gap:0 !important;
        margin:0 !important;
        padding:0 0 24px !important;
    }

    body:has(#aos02NavToggle:checked) .aos02_nav_panel,
    body:has(.aos02_nav_toggle:checked) .aos02_nav_panel{
        left:0 !important;
    }

    .aos02_nav_dim{
        display:block !important;
        position:fixed !important;
        inset:0 !important;
        z-index:11000 !important;
        background:rgba(0,0,0,.45) !important;
        opacity:0 !important;
        visibility:hidden !important;
        pointer-events:none !important;
    }

    body:has(#aos02NavToggle:checked) .aos02_nav_dim,
    body:has(.aos02_nav_toggle:checked) .aos02_nav_dim{
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:auto !important;
    }

    .aos02_nav_panel .aos02_menu{
        display:flex !important;
        flex-direction:column !important;
        width:100% !important;
        gap:0 !important;
        position:static !important;
        left:auto !important;
        height:auto !important;
        opacity:1 !important;
        visibility:visible !important;
        overflow:visible !important;
        pointer-events:auto !important;
    }

    .aos02_nav_panel .aos02_menu > li{
        width:100% !important;
        position:relative !important;
        left:auto !important;
        border-bottom:1px solid #f3f4f6 !important;
    }

    .aos02_nav_panel .aos02_menu > li > a{
        display:flex !important;
        align-items:center !important;
        min-height:48px !important;
        padding:12px 20px !important;
        white-space:nowrap !important;
        writing-mode:horizontal-tb !important;
        font-size:15px !important;
        font-weight:700 !important;
        color:#111827 !important;
    }

    .aos02_nav_panel .aos02_util{
        display:flex !important;
        flex-wrap:nowrap !important;
        align-items:center !important;
        gap:8px !important;
        width:100% !important;
        padding:12px 16px !important;
        position:static !important;
        opacity:1 !important;
        visibility:visible !important;
    }

    .aos02_nav_panel .aos02_depth2{
        position:static !important;
        transform:none !important;
        width:100% !important;
        opacity:1 !important;
        visibility:visible !important;
        display:none !important;
        box-shadow:none !important;
        border:0 !important;
        background:#f8fafc !important;
        padding:0 12px 12px !important;
    }

    .aos02_nav_panel .aos02_menu > li.is-active > .aos02_depth2{
        display:block !important;
    }

    body:has(#aos02NavToggle:checked),
    body:has(.aos02_nav_toggle:checked){
        overflow:hidden !important;
    }
}

/* =========================================================
   MAGAZINE MOBILE SLIDER LOCK — ≤768 only (PC 미변경)
   - 1장 ~78% + 다음 상품 peek ~22%
   - native scroll-snap / swipe, no autoplay
========================================================= */
@media (max-width:768px){
    .aos02_magazine,
    .aos02_magazine > .aos02_inner{
        overflow:visible !important;
    }

    .aos02_magazine > .aos02_inner{
        width:100% !important;
        max-width:100% !important;
        padding-left:16px !important;
        padding-right:0 !important;
        box-sizing:border-box !important;
    }

    .aos02_magazine .aos02_title{
        padding-right:16px !important;
    }

    .aos02_magazine .aos02_magazine_list{
        display:flex !important;
        flex-direction:row !important;
        flex-wrap:nowrap !important;
        align-items:stretch !important;
        justify-content:flex-start !important;
        gap:12px !important;
        grid-template-columns:none !important;
        grid-template-rows:none !important;
        width:100% !important;
        margin:0 !important;
        padding:4px 16px 10px 0 !important;
        overflow-x:auto !important;
        overflow-y:visible !important;
        -webkit-overflow-scrolling:touch;
        scroll-snap-type:x mandatory !important;
        scroll-behavior:smooth;
        overscroll-behavior-x:contain;
        scrollbar-width:none !important;
        -ms-overflow-style:none !important;
    }

    .aos02_magazine .aos02_magazine_list::-webkit-scrollbar{
        display:none !important;
        width:0 !important;
        height:0 !important;
    }

    .aos02_magazine .aos02_magazine_list > article{
        flex:0 0 78% !important;
        width:78% !important;
        max-width:78% !important;
        min-width:0 !important;
        scroll-snap-align:start !important;
        scroll-snap-stop:always !important;
        box-sizing:border-box !important;
    }
}

/* 오늘의 팝업 레이어 — 복수 팝업, 좌표 개별 지정 */
.aos_today_popup_wrap {
  display: none;
  position: fixed;
  inset: 0;
  z-index: 1000002;
}

.aos_today_popup_wrap.is-open {
  display: block;
}

.aos_today_popup_dim {
  position: absolute;
  inset: 0;
  background: rgba(3, 10, 25, 0.65);
  cursor: pointer;
}

.aos_today_popup_list {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.aos_today_popup_item {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.aos_today_popup_item .aos_today_popup_inner{
  position: absolute;
  z-index: 1;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  max-width: calc(100vw - 24px);
  max-height: calc(100vh - 24px);
  overflow: hidden;
  border-radius: 4px;
  background: #fff;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.35);
  pointer-events: auto;
}

.aos_today_popup_item .aos_today_popup_inner.is-image,
.aos_today_popup_item .aos_today_popup_inner:not(.is-image){
  display:block;
  padding:0;
  --popup-footer-h:48px;
  --popup-action-h:42px;
}

.aos_today_popup_media{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  box-sizing:border-box;
}

.aos_today_popup_media.is-text:not(.has-action){
  display:flex;
  flex-direction:column;
  min-height:0;
}

.aos_today_popup_media.is-text:not(.has-action) .aos_today_popup_content{
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
}

.aos_today_popup_media.is-text:not(.has-action) .aos_today_popup_body{
  flex:1;
  min-height:0;
  overflow-y:auto;
}

.aos_today_popup_media.is-text:not(.has-action) .aos_today_popup_bottom{
  position:relative;
  flex-shrink:0;
}

.aos_today_popup_media.is-text.has-action .aos_today_popup_content{
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:var(--popup-footer-h);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  z-index:1;
}

.aos_today_popup_media.is-text.has-action .aos_today_popup_body{
  flex:1;
  min-height:0;
  overflow-y:auto;
}

.aos_today_popup_media.has-footer .aos_today_popup_body.is-overlay{
  position:absolute;
  top:0;
  left:0;
  right:0;
  bottom:var(--popup-footer-h);
}

.aos_today_popup_media.has-footer.has-action .aos_today_popup_body.is-overlay{
  bottom:var(--popup-footer-h);
}

.aos_today_popup_action{
  position:absolute;
  left:0;
  right:0;
  bottom:var(--popup-footer-h);
  z-index:5;
  padding:8px 10px 20px;
  text-align:center;
  background:transparent;
  box-sizing:border-box;
}

.aos_today_popup_action_btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:80px;
  height:32px;
  padding:0 16px;
  border:none;
  border-radius:4px;
  background:#1d4ed8;
  color:#fff;
  font-size:13px;
  font-weight:600;
  line-height:1;
  cursor:pointer;
  text-decoration:none;
  box-shadow:0 2px 8px rgba(15, 23, 42, 0.28);
}

.aos_today_popup_action_btn:hover{
  background:#1e40af;
}

.aos_today_popup_media .aos_today_popup_bottom{
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:4;
  width:100%;
  box-sizing:border-box;
}

.aos_today_popup_item .aos_today_popup_inner.is-image .aos_today_popup_media{
  flex:none;
  height:100%;
}

.aos_today_popup_body.is-overlay{
  position:relative;
  width:100%;
  height:100%;
  overflow:hidden;
  padding:0;
  min-height:0;
}

.aos_today_popup_body.is-overlay .aos_today_popup_img_area{
  position: absolute;
  inset: 0;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: #fff;
}

.aos_today_popup_body.is-overlay .aos_today_popup_text_area{
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  overflow: hidden;
  background: transparent;
  pointer-events: none;
}

.aos_today_popup_text_area.is-empty{
  display: none;
}

.aos_today_popup_html{
  width: 100%;
  max-height: none;
  overflow: hidden;
  padding: 8px 10px 8px 10px;
  box-sizing: border-box;
  text-align: center;
}

.aos_today_popup_img{
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.aos_today_popup_head {
  flex-shrink: 0;
  padding: 16px 20px;
  border-bottom: 1px solid #e5e7eb;
}

.aos_today_popup_head_title {
  display: block;
  font-size: 18px;
  line-height: 1.3;
  font-weight: 700;
  color: #111827;
}

.aos_today_popup_link {
  display: block;
  position: relative;
  color: inherit;
  text-decoration: none;
}

.aos_today_popup_img {
  display: block;
  width: 100%;
  height: auto;
}

.aos_today_popup_body {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  padding: 16px 20px 20px;
  color: #374151;
}


.aos_today_popup_txt {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 24px 20px 20px;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.72) 100%);
  color: #fff;
}

.aos_today_popup_sub {
  display: inline-block;
  margin-bottom: 8px;
  padding: 4px 10px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.2);
  font-size: 12px;
  font-weight: 600;
}

.aos_today_popup_title {
  display: block;
  font-size: 26px;
  line-height: 1.25;
  font-weight: 800;
}

.aos_today_popup_desc {
  margin: 10px 0 0;
  font-size: 14px;
  opacity: 0.9;
}

.aos_today_popup_bottom {
  display: flex;
  border-top: 1px solid #e5e7eb;
}

.aos_today_popup_day,
.aos_today_popup_close {
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  height: 48px;
  margin: 0;
  border: 0;
  background: #fff;
  font-size: 14px;
  font-weight: 700;
  color: #111827;
  cursor: pointer;
}

.aos_today_popup_day {
  border-right: 1px solid #e5e7eb;
  font-weight: 500;
  color: #6b7280;
}

.aos_today_popup_day:hover,
.aos_today_popup_close:hover {
  background: #f9fafb;
}
