html,body{
    width:100%;
    height:100%;
    -webkit-transition: 300ms;
    -moz-transition: 300ms;
    -ms-transition: 300ms;
    -o-transition: 300ms;
    transition: 300ms;
}
.menu-nav { display: none; background-color: #3E1E5C; box-shadow: 0 -20px 40px rgba(0, 0, 0, 0.3) inset; text-align: center; padding: 80px 10px 28px; margin-bottom: -100px; width: 100%; position: fixed; top: 0; left: 0; z-index: 9998; }
.menu-nav ul { width: 50%; margin: 0 auto; }   /* 하단 점선(border-bottom) 제거 */
.menu-nav ul li { color: #FFFFFF; border-bottom: 1px dotted #FFFFFF; width: 100px; padding: 8px 0 7px; margin: 0 auto; }
.menu-nav ul li:last-child { border-bottom: none; }   /* 마지막 항목 뒤 점선 제거 */
.menu-nav ul li:last-child { border-bottom: none; }
.menu-nav .menu-text { color: #FFFFFF; margin: 10px auto; }

#goodlugg-wrapper { width: 100%; margin: 0 auto; min-height: 100%; }

header { width: 100%; background-color: #ffffff; height: 61px; position: fixed; z-index: 9999;}
header .container { max-width: 910px; }
header .logo { height: 61px; float: left; line-height: 61px;}
header .logo img{ width: 100px;}
header .menu-wrapper { height: 61px; display: table; float: right;}
header .menu-wrapper .menu { list-style: none; vertical-align: middle; display: table-cell; }
header .mobile-menu-icon { display: none; }
header .gl-app-back { display: none; }   /* 기본 숨김. 앱(html.gl-in-app)에서만 노출(모바일 미디어쿼리) */
header .gl-lang-globe { display: none; } /* 데스크톱 숨김(메뉴 내 #languageSelectPc 사용). 모바일에서만 노출 */

/* 언어 선택 바텀시트 (모바일 웹·앱 공통). 글로브 버튼(#langGlobeBtn)이 연다. */
/* z-index 는 플로팅 버튼(askai 2147483000 등)보다 위여야 시트가 안 가린다 → 최대치 */
.gl-sheet { position: fixed; inset: 0; z-index: 2147483647; }
.gl-sheet[hidden] { display: none; }
.gl-sheet__backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.45); opacity: 0; transition: opacity .25s ease; }
.gl-sheet__panel { position: absolute; left: 0; right: 0; bottom: 0; background: #fff; border-radius: 16px 16px 0 0; padding: 8px 0 max(10px, env(safe-area-inset-bottom)); transform: translateY(100%); transition: transform .26s cubic-bezier(.2,.8,.2,1); box-shadow: 0 -8px 30px rgba(0,0,0,.15); }
.gl-sheet.is-open .gl-sheet__backdrop { opacity: 1; }
.gl-sheet.is-open .gl-sheet__panel { transform: translateY(0); }
.gl-sheet__grip { display: block; width: 40px; height: 4px; border-radius: 2px; background: #d9d9d9; margin: 8px auto 6px; }
.gl-lang-list { list-style: none; margin: 0; padding: 0; }
.gl-lang-item { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 52px; padding: 0 24px; background: none; border: 0; font-size: 16px; color: #222; cursor: pointer; text-align: left; }
.gl-lang-item:active { background: #f2f2f2; }
.gl-lang-item.is-current { font-weight: 700; color: #3E1E5C; background: #f3eefa; }  /* 현재 언어 행 강조(연퍼플 배경+퍼플 텍스트) */
.gl-lang-item.is-current::after { content: '\2713'; color: #3E1E5C; font-weight: 800; font-size: 20px; }  /* ✓ 크게·진하게 */
@media (prefers-reduced-motion: reduce) { .gl-sheet__backdrop, .gl-sheet__panel { transition: none; } }

section.price-info-area { background-color: #eeeeee; width: 100%; }

section.price-info-area .price-info .price-title { margin: 20px 0 55px;  }
section.price-info-area .price-info .price-title h2 { text-align: left; margin-top: 0; margin-bottom: 0;}
section.price-info-area .price-info .price-title p { text-align: left; margin-bottom: 0; font-size: 17px; }
section.price-info-area .price-info .price-title .title-table { margin: 0 auto; }
section.price-info-area .price-info .price-title .money-icon { margin-right: 10px; }

section.price-info-area .price-info-table { width: 80%; text-align: center; margin: 30px auto; }
section.price-info-area .price-info-table tbody th, section.price-info-area .price-info-table tbody td { padding: 10px; border: 2px solid #512772; }
section.price-info-area .price-info-table thead td { text-align: center; width: 40%; border: none; padding-bottom: 5px; }
section.price-info-area .price-info-table thead th { width: 20%; }
section.price-info-area .price-info-table thead td .img-2 { height: 100%; }
section.price-info-area .price-info-table thead td img { height: 100%; }
section.price-info-area .price-info-table thead td span { color: white; font-size: 16px; word-break: keep-all; white-space: nowrap; }
section.price-info-area .price-info-table tbody th { width: 23%; background-color: #512772; color: #FFFFFF; text-align: center; min-width: 68px; }
section.price-info-area .price-info-table tbody td { width: 40%; background-color: #FFFFFF; color: #333; text-align: center; font-weight: 700; font-size: 15px;}
section.price-info-area .price-info-title-icon-wrapper { width: 50px; height: 50px; display: inline-block; text-align: right; margin-right: -5px; }
section.price-info-area .price-info-title-text-wrapper { background-color:#512772; display:inline-block; text-align: center; padding: 5px 10px; vertical-align: middle; margin-top: 5px; }

section.booking{ margin-top : 30px; margin-bottom: 60px;}
section.booking .booking-wrapper {}
section.booking .booking-wrapper .booking-title2 { margin: 20px 0 35px;  }
section.booking .booking-wrapper .booking-title2 h2 { text-align: left; margin-top: 0; margin-bottom: 0;}
section.booking .booking-wrapper .booking-title2 p { text-align: left; margin-bottom: 0; font-size: 17px; }
section.booking .booking-wrapper .booking-title2 .title-table { margin: 0 auto; }
section.booking .booking-wrapper .booking-title2 .city-icon { margin-right: 10px; }
section.booking .booking-wrapper .booking-content .img-wrapper { width: 100%; text-align: center; }
section.booking .booking-wrapper .booking-content .city-wrapper { width: 33.33%; margin-bottom: 10px; float:left; padding-right: 5px; padding-left: 5px;}
section.booking .booking-wrapper .booking-content .city-wrapper img{ width: 100%; }
section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text{ position: absolute; top: 50%; left: 0; width: 100%; text-align: center; transform: translateY(-50%); padding: 0 10px; }
section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text .city-name{ font-size: 3vw; color: #fff; font-weight: 900; margin-bottom: 3.5vh; line-height: 1.2;}
section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text .city-name2{ font-size: 2.5vw; }
section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text .btn-city-img{  border: 2px solid #FFFFFF;  background-color: transparent;  color: #FFFFFF;  width: 70%;  border-radius: 0;  padding: 5px;  font-size: 2vh;  }
section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text .btn-city-img:hover{  color: #fff;  text-decoration: none;  background: rgba(255,255,255,.1);  }

section.booking .booking-wrapper .booking-content .booking-city { padding: 0 100px; margin-bottom: 120px; }

section.login-area { width:100%; background-color: #eeeeee; padding-bottom:30px;}
section.login-area .login-title { margin: 50px 0 15px; text-align: center; }
section.login-area .login-content .img-wrapper img { width: 100%; }
section.login-area .login-content .img-wrapper { width: 45px;  display: inline-block;  margin-top: 5px;  margin-left: 3px;}

.city-icon { width: 50px; }
.money-icon {width : 30px;}
/*.m-city { display: none; }
.pc-city { display: block; }*/

span.menu-sep{  font-size: 14px;  padding: 0px 8px;  }

.price-text{  padding-bottom: 10px;  font-size: 13px;  color: #555;}

/* �좎럩伊싮뇡占� �곸궠占썼キ占� �좎럡�댐옙占� */
section.booking .booking-wrapper .booking-content .s-city-wrapper { width: 50%; float:left; max-width:400px;padding-right: 10px;  padding-left: 10px;  }
section.booking .booking-wrapper .booking-content .s-city-wrapper img{ width: 100%; margin-bottom: 5px; }
section.booking .booking-wrapper .booking-content .s-booking-city { padding: 0 180px; margin-bottom: 120px; }

@media screen and (min-width: 1080px){
    section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text .city-name{ font-size: 36px;}
    section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text .city-name2{ font-size: 32px;}
    section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text .btn-city-img{ font-size : 21px; }
}

@media screen and (max-width: 1199px){

    section.icon-area .icon-wrapper { padding: 0; text-align: center; width: 100%; margin: 0 auto; }
    section.icon-area .icon-wrapper .icon-set li img { width: 90%; }

}

@media screen and (max-width: 991px){
    section.price-info-area .price-info-table { width: 100%; }
    section.booking .booking-wrapper .booking-content .booking-city { padding: 0 50px; }
    /* �좎럩伊싮뇡占� �곸궠占썼キ占� �좎럡�댐옙占� */
    section.booking .booking-wrapper .booking-content .s-booking-city { padding: 0 50px; }
}

@media screen and (max-width: 767px){
    .container{padding:0 20px}
    section.price-info-area .price-info-wrapper { margin: 60px; }
}

@media screen and (max-width: 620px) {

    header { height: 61px }   /* 언어 전용 바 제거 → 단일 로고줄. (구: 100px = 언어바 + 로고바) */
    header .logo { float: none; display: block; text-align: center;}
    header .menu-wrapper { float: none; position: absolute; top: 0; right: 0; padding-right: 10px; }
    /* 앱 전용 헤더 백버튼: 좌측상단(로고 중앙·햄버거 우측이라 좌측이 빈다). 61px 줄에 수직 중앙. */
    html.gl-in-app header .gl-app-back { display: flex; align-items: center; position: absolute; top: 0; left: 0; height: 61px; padding: 0 14px; background: none; border: 0; color: #333; cursor: pointer; z-index: 3; }
    /* 언어 글로브: 햄버거 왼쪽. 44x44 터치타깃. 탭 시 바텀시트(#langSheet) 오픈. */
    header .gl-lang-globe { display: flex; align-items: center; justify-content: center; position: absolute; top: 0; right: 64px; width: 44px; height: 61px; background: none; border: 0; color: #333; cursor: pointer; z-index: 3; }
    header .menu-wrapper .menu { display: none; }
    header .menu-wrapper .mobile-menu-icon { display: block; padding: 20px 0; }
    header .menu-wrapper .mobile-menu-icon img { width: 30px;}

    section.how-to-area .how-to-wrapper { width: 100%; }
    section.price-info-area .price-info { width: 100%; padding : 0;}

    section.price-info-area .price-info-table tbody th, section.price-info-area .price-info-table tbody td { padding: 2px; }
    section.price-info-area .price-info-table thead td span { font-size: 12px; }

    section.price-info-area .price-info-wrapper { margin: 0; }

    section.how-to-area .how-to-content .how-to li img { width: 90%; }

    section.booking .booking-wrapper .booking-content .img-wrapper img { width: 90%; }

    section.price-info-area hr.dot {width: 100%;}
    section.how-to-area .how-to-content .how-to { height: 150px; }

    section.booking .booking-wrapper .booking-content .booking-city { padding: 0 10px; }

    section.price-info-area hr.dot { margin: 0; }

    section.booking .booking-wrapper .booking-title2 .title-table h2{ font-size:20px; }
    section.price-info-area .price-info .price-title .title-table h2{ font-size:20px; }

    section.booking .booking-wrapper .booking-content .city-wrapper { width: 50%; }
    section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text .city-name{ font-size: 2.5vh; margin-bottom: 5vh;}
    section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text .city-name2{ font-size: 2.5vh; }
    section.booking .booking-wrapper .booking-content .city-wrapper .city-img-text .btn-city-img{  font-size : 1.8vh; border: 1px solid #FFFFFF; }

    section.price-info-area .price-info-table tbody th, section.price-info-area .price-info-table tbody td { font-size: 12px; white-space: nowrap; padding: 5px 0 5px 0; }
    section.price-info-area .price-info-title-icon-wrapper { width: 30px; height: 30px; margin-right: -4px; }
    section.price-info-area .price-info-title-text-wrapper { padding: 3px; }

    /*   .m-city { display: block; }
       .pc-city { display: none; }*/

    /* �좎럩伊싮뇡占� �곸궠占썼キ占� �좎럡�댐옙占� */
    section.booking .booking-wrapper .booking-content .s-booking-city { padding: 0 10px; }
}

@media screen and (max-width: 363px) {
    section.price-info-area .price-info-table th, section.price-info-area .price-info-table td { padding: 1px; }
    section.price-info-area .price-info-wrapper { margin: 0px auto; }
}

/* 고정 헤더 보정 — 앵커 링크(#foo)로 들어오면 대상이 y=0 으로 가는데 그 위를 header(fixed,
   height 61px / ≤620px 100px)가 덮어 상단이 잘린다. 실측: 요금계산기 박스의 padding-top 24 +
   제목 약 29 = 53px 이 통째로 헤더 뒤로 들어가 제목이 사라지고 다음 필드부터 보였다.
   +16px 는 "박스 맨 위부터 여유있게" 요구분.

   ⚠️ [id] 전역이 아니라 :target 으로 건다 — [id] 로 걸면 URL 앵커가 아닌 JS scrollIntoView 까지
   밀린다(d2d booking-common 의 #d2dacCheck, kd bottomsheet 의 선택 항목: 둘 다 block:'center'
   기준이라 오프셋이 붙으면 어긋난다). :target 은 URL 프래그먼트 대상에만 적용돼 그 둘과 무관하다. */
:target {
    scroll-margin-top: 77px;
}

@media screen and (max-width: 620px) {
    /* 언어 전용 바 제거 후 모바일 헤더도 61px(=데스크톱) → 앵커 보정 동일. (구: 언어바 포함 100px→116px) */
    :target {
        scroll-margin-top: 77px;
    }
}
