/* 원본 공통 스타일 기반 */
*, *::before, *::after {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

.admain { width: 970px; height: 250px; display:inline-block; }
@media(max-width: 728px) { .ipipipip-728 { width: 300px; height: 250px; display:inline-block; } }




html, body { margin:0; padding:0; word-break: keep-all; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Noto Sans KR", "Malgun Gothic", sans-serif; line-height:1.5; color:#333; background:#fff; }
a { text-decoration:none; color:#333; cursor:pointer; }
a:hover, input[type=submit]:hover, .btn-search:hover { opacity:.75; }
input, select, button, textarea {
  font-family:inherit; font-size:1em;
  border:1px solid #ddd;
}
/* text/button 만 appearance 제거 (체크박스는 네이티브 유지) */
input[type=text], input[type=submit], input[type=button], button, select, textarea {
  -webkit-appearance:none; -moz-appearance:none; appearance:none;
}
input[type=text] { padding:.5em; height:2.5em; }
input[type=submit], .btn-search {
  background-color:#ffc400; border:0; color:#fff; font-weight:bold;
  padding:.7em 1.2em; cursor:pointer;
}
/* 체크박스: 원본과 동일한 커스텀 스타일 (클릭·표시 모두 동작) */
input[type=checkbox] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  width: 1.7em;
  height: 1.7em;
  margin: 0.2em 0.45em 0 0;
  padding: 0;
  vertical-align: middle;
  cursor: pointer;
  border: 2px solid #555;
  border-radius: 3px;
  background: #fff;
  display: inline-block;
  position: relative;
  flex-shrink: 0;
  box-sizing: border-box;
}
input[type=checkbox]:checked {
  background-color: #153f99;
  border-color: #153f99;
}
input[type=checkbox]:checked::after {
  content: '';
  position: absolute;
  left: 0.4em;
  top: 0.12em;
  width: 0.4em;
  height: 0.8em;
  border: solid #fff;
  border-width: 0 0.22em 0.22em 0;
  transform: rotate(45deg);
}

/* 글자 크기 조절 */
#fontsize-ctrl {
  position:fixed; top:8px; right:10px; z-index:9999;
  background:rgba(255,255,255,.95); border:1px solid #ccc;
  border-radius:4px; padding:4px 6px; font-size:14px !important;
  box-shadow:0 1px 4px rgba(0,0,0,.12);
}
#fontsize-ctrl button {
  border:1px solid #bbb; background:#f7f7f7; color:#333;
  padding:2px 8px; margin:0 2px; cursor:pointer; font-size:13px !important;
  min-width:2em; line-height:1.4;
}
#fontsize-ctrl button:hover { background:#eee; }
#fontsize-ctrl .fs-label { font-size:12px !important; color:#666; margin:0 4px; }

.auth-bar {
  padding:.4em 1em; font-size:.85em; background:#f5f5f5;
  border-bottom:1px solid #e0e0e0; text-align:right; padding-right:140px;
}
.auth-bar a { color:#156799; margin-left:.6em; }

#logo {
  color:#333; font-size:2em; margin:16px 0 8px; font-weight:bold;
  display:block; padding:0 .5em;
}
#logo a { color:inherit; }
#logo .domain {
  display:block; font-size:.4em; font-weight:normal; color:#999; margin-top:.15em;
}

#body {
  padding:0 1em; border-top:10px solid #ffc400;
  max-width:1100px; margin:0 auto;
}

h1 {
  font-size:1.1em; font-weight:normal; margin:0 0 .5em 0;
  padding:.6em .8em; line-height:1.4em;
  background-color:#453e38; color:#fff;
}
h2 { font-size:1.15em; margin:1em 0 .5em; }
h3 { font-size:1.2em; margin:.4em 0; }

/* 지역 선택 - 원본 */
#select-area { display:block; margin-bottom:1em; font-size:0; }
#select-area a {
  width:12.5%; display:inline-block; font-size:0.875em; text-align:center;
}
#select-area a div {
  background-color:#285ea1; color:#fff;
  padding:.3em .2em; line-height:2em;
  border-right:1px dashed #fff; border-bottom:1px dashed #fff;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
#select-area a.selected div, #select-area .selected {
  color:#285ea1; background-color:#fff; font-weight:bold;
}

#select-cate { display:block; padding:.3em 0; margin-bottom:.3em; }
#select-cate a { display:inline-block; padding:1px; margin-right:.25em; }
#select-cate a div {
  color:#222; padding:.3em .25em; border-bottom:2px solid transparent; line-height:1.2em;
}
#select-cate a.selected div { border-bottom:2px solid #222; font-weight:bold; }

/* 스팟 목록 */
#select-spot {
  display: block;
  height: 360px;
  overflow-y: auto;
  border: 1px solid #aaa;
  margin-bottom: 1em;
  background: #fff;
}

#alllist a { display:block; padding:.5em; border-bottom:1px solid #ddd; }
.taxihint, .hint, .note { margin:.6em .1em; line-height:1.45em;  color:#555; }
.unerline { border-bottom:1px dotted #777; }

#form {
  margin-bottom:1em; padding:.8em;
  background:#fafafa; border:1px solid #e5e5e5;
}
.forminside { margin-bottom:.55em; }
.forminside label { display:inline-block; min-width:4.2em; font-weight:600; margin-right:.35em; }
.forminside input[type=text] { width:28%; min-width:130px; }
.btn-search { background:#ffc400; color:#fff; border:0; padding:.7em 1.5em; font-weight:bold; cursor:pointer; }

#result {
  margin-bottom:1.5em; padding:.8em;
  border:1px solid #ddd; background:#fff;
}
.line { display:table; border:1px solid #777; width:100%; margin:.5em 0; }
.line .tr { display:table-row; }
.line .th, .line .td {
  display:table-cell; border-bottom:1px dashed #666; padding:.65em .4em;
}
.line .th {
  white-space:nowrap; text-align:right; width:22%;
  background:#f7f7f7; color:#666;
}
.line .td { border-left:1px dashed #777; width:39%; text-align:center; }
.line .tr:first-child .td { background:#eee; color:#666; }
.line .tr:last-child .td, .line .tr:last-child .th { border-bottom:0; }
.result-fare { font-size:1.35em; font-weight:bold; color:#c00; }
.result-fare .price { font-size:1.3em; }

table { width:100%; border-collapse:collapse; margin:.6em 0; }
th { background:#ddd; }
th, td { padding:.5em; text-align:center; border:1px solid #999; vertical-align:middle; }

#article a { display:block; padding:.35em .2em; border-bottom:1px solid #ddd; }
#article_list { padding:.5em; }
#article_contents { padding:1em; margin-bottom:2em; line-height:1.7; }
#article_contents a { border-bottom:1px dashed #ddd; display:table; color:#666; margin-bottom:.3em; }
#article ul { padding:.5em .5em .5em 1.5em; }
#article li { margin:.6em 0; }

.login-notice {
  background:#fff8e6; border:1px solid #f0d78c;
  padding:.7em 1em; margin:.6em 0; font-size:.95em;
}
.alert-error {
  background:#fef2f2; border:1px solid #f5c2c2;
  color:#b91c1c; padding:.7em 1em; margin:.6em 0;
}

#copyrights, .site-footer {
  padding:1em; border-top:1px solid #ddd; margin-top:1.5em;
  font-size:.9em; color:#666; text-align:center;
}
.site-footer a { color:#156799; }

.privacy { max-width:800px; margin:0 auto; padding:1.5em 1em; }

@media only screen and (max-width:1660px) {
  #select-area a { width:20%; }
}
@media only screen and (max-width:1130px) {
  .mobilenone { display:none !important; }
  #select-spot { height:220px; }
  #logo { font-size:1.35em; padding:0 .3em; margin:12px 0 6px; }
  h1 { margin:0; padding:.55em .4em; font-size:1.4em; }
  #body { padding:0; }
  #form input[type=text], #form input[type=submit], .btn-search { width:100%; margin:.2em 0; }
  .forminside input[type=text] { width:100%; min-width:0; }
  .forminside label { display:block; margin-bottom:.2em; }
  #select-area a { width:25%; }
  .auth-bar { padding-right:120px; }
}
@media only screen and (max-width:730px) {
  #select-area a { width:33.33%; }
  body { font-size:.98em; }
  h1 { font-size:1.35em; }
  h2 { font-size:1.05em; }
  h3 { font-size:1.05em; }
  #logo { font-size:1.25em; }
  .result-fare { font-size:1.15em; }
  .result-fare .price { font-size:1.25em; }
  .taxihint, .hint, .note { font-size:1.1em; }
  input[type=text] { height:2.3em; padding:.4em; }
  input[type=submit], .btn-search { padding:.55em 1em; }
}
@media only screen and (max-width:540px) {
  body { font-size:.92em; }
  #select-area a { width:50%; }
  #select-area a div { font-size:.85em; line-height:1.7em; }
  h1 { font-size:1.2em; }
  #logo { font-size:1.15em; }
  .result-fare { font-size:1.1em; }
  .result-fare .price { font-size:1.2em; }
}

/* ===== v4: 좌측 광고 + 레이아웃 ===== */
/* base font via layout cookie/script */

#body-wrap {
  width: 100%;
  margin: 0 auto;
  padding: 0 8px;
}
.layout-table {
  display: table;
  width: 100%;
  table-layout: fixed;
}
.layout-left {
  display: table-cell;
  width: 300px;
  vertical-align: top;
  padding-right: 16px;
}
.layout-center {
  display: table-cell;
  width: 12px;
}
.layout-right {
  display: table-cell;
  width: auto;
  vertical-align: top;
}
#body {
  border-top: 10px solid #ffc400;
  padding: 0 0.5em;
  max-width: none;
  margin: 0;
}


.ad-placeholder {
  width: 300px;
  height: 600px;
  box-sizing: border-box;
  border: 2px dashed #999;
  background: repeating-linear-gradient(
    -45deg,
    #f0f0f0,
    #f0f0f0 10px,
    #e4e4e4 10px,
    #e4e4e4 20px
  );
  color: #666;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-size: 14px;
  line-height: 1.5;
}

/* 글자 크기 조절 — 테마색, 1.3배 */
#fontsize-ctrl {
  position: fixed;
  top: 10px;
  right: 12px;
  z-index: 9999;
  display: flex;
  gap: 4px;
  padding: 6px 8px;
  background: #ffc400;
  border: none;
  box-shadow: 0 2px 6px rgba(0,0,0,.18);
}
#fontsize-ctrl .fs-btn {
  border: none;
  background: rgba(255,255,255,.35);
  color: #222;
  font-weight: bold;
  font-size: 1.15rem;
  min-width: 2.4em;
  min-height: 2em;
  padding: 0.25em 0.55em;
  cursor: pointer;
  line-height: 1.2;
}
#fontsize-ctrl .fs-btn:hover {
  background: rgba(255,255,255,.7);
}

.auth-bar { display: none !important; } /* 상단 로그인 안내 문구 제거 */

#select-spot .spot-name {
  word-break: keep-all;
  overflow-wrap: anywhere;
  font-size: 0.95em;
}

@media only screen and (max-width: 900px) {
  .layout-left,
  .layout-center {
    display: block !important;
    width: 100%;
    padding-right: 0;
  }

  .layout-right,
  .layout-table {
    display: block;
    width: 100%;
  }

  .layout-left,
  .layout-center,
  .layout-right {
    box-sizing: border-box;
  }

  #body-wrap {
    padding: 0;
  }
}


.ad300600 {;padding:0;
    width: 300px;
    height: 250px;
}
.ad-300x600 {padding:0;width:100%;height;250px;display:block;margin-right:0;margin-bottom:20px}

@media (min-width: 721px) {
	    .ad300600 {
	        width: 300px;
        	height: 600px;
	    }
	.ad-300x600 {
	  width: 300px;
	  min-height: 600px;
	  margin-top: 0;padding:0;margin-left:0;margin-right:0;text-align:center;
	}
}




/* ===== v5 ===== */
/* base font via layout */

#logo .domain {
  display: block;
  font-size: 1.4em; /* 기존 ~0.4em 대비 약 3.5배 */
  font-weight: normal;
  color: #999;
  margin-top: 0.2em;
  line-height: 1.3;
}

.form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5em;
  align-items: center;
}
.btn-google-login {
  background-color: #4285f4 !important;
  color: #fff !important;
}

/* 모바일 광고 상단 */
.ad-mobile-top { display: none; }
.ad-placeholder-mobile {
  width: 100%;
  height: 100px;
  min-height: 100px;
}

/* 구글 인증 오버레이 */
.google-auth-overlay {
  position: fixed;
  inset: 0;
  z-index: 10000;
  background: rgba(0,0,0,.45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1em;
}
.google-auth-box {
  background: #fff;
  max-width: 420px;
  width: 100%;
  padding: 1.5em 1.2em;
  box-shadow: 0 8px 32px rgba(0,0,0,.25);
  text-align: center;
}
.google-auth-msg {
  margin-top: 1em;
  font-size: 0.9em;
  line-height: 1.55;
  color: #444;
  text-align: left;
}
.btn-close-overlay {
  margin-top: 1em;
  padding: 0.4em 1.2em;
  border: 1px solid #ccc;
  background: #f5f5f5;
  cursor: pointer;
}

@media only screen and (max-width: 900px) {
  .layout-left {
    display: block !important;
    width: 100%;
    padding-right: 0;
  }

  .layout-center {
    display: none !important;
  }

  .layout-right,
  .layout-table {
    display: block;
    width: 100%;
  }

  .ad-mobile-top {
    display: block;
    margin-bottom: 0.8em;
  }
}

/* ===== v6 ===== */
/* 도메인: 직전 1.4em의 2/3 */
#logo .domain {
  font-size: 0.93em !important;
  font-weight: normal;
  color: #999;
  margin-top: 0.15em;
  line-height: 1.3;
}

/* 도시명: px 고정 제거 → em으로 폰트 조절에 반응 */
#select-area {
  font-size: 1em;
  margin-bottom: 1em;
}
#select-area a {
  font-size: 0.875em; /* 14px@16 대신 상대 단위 */
}
#select-area a div {
  font-size: 1em;
  line-height: 2em;
}

/* 지역 목록 아래 간격 (다른 블록과 동일) */
#select-area {
  margin-bottom: 1em;
  padding-bottom: 0;
}

/* 로고는 wrap 최상단 */
#body-wrap > #logo {
  display: block;
  margin: 0.6em 0.5em 0.5em;
  position: relative;
  z-index: 2;
}

/* 폰트 조절: 스크롤 시 숨김 */
#fontsize-ctrl {
  transition: opacity 0.2s ease, visibility 0.2s ease;
}
#fontsize-ctrl.fs-hidden {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

/* mid ad between spots and area list */
.ad-mid {
  margin: 1em 0;
  text-align: center;
  overflow: hidden;
}
.ad-placeholder-mid {
  width: 100%;
  max-width: 1200px;
  height: 200px;
  min-height: 120px;
  margin: 0 auto;
  box-sizing: border-box;
  border: 2px dashed #999;
  background: repeating-linear-gradient(-45deg, #f0f0f0, #f0f0f0 10px, #e4e4e4 10px, #e4e4e4 20px);
  color: #666;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.9em;
}
@media (min-width: 900px) {
  .ad-placeholder-mid {
    height: 628px;
  }
}

/* 지명(지역) 목록 아래 간격 — 다른 블록과 동일 */
#select-area {
  margin-bottom: 1em !important;
  padding-bottom: 0;
}
body.site-japan #select-area {
  margin-bottom: 1em !important;
}
#select-area + h1,
#select-area + #article,
#select-area + div {
  margin-top: 0;
}
/* 지역선택 h1 과 목록 사이는 h1 자체 마진 유지 */
.layout-left, .ad-left-col, .ad-300x600 { margin-top: 0 !important; padding-top: 0; }

/* ===== spacing lock (do not remove) ===== */
#logo .domain {
  margin-top: 0.1em !important; /* 기존 ~0.15em의 2/3 */
  padding-top: 0 !important;
}
#body-wrap > #logo .domain,
a#logo .domain {
  margin-top: 0.1em !important;
}

/* 지역선택 지명 목록 아래 간격 — 고정 */
#select-area {
  margin-bottom: 1.5em !important;
  padding-bottom: 1.5em !important;
}
body.site-japan #select-area,
body.site-taiwan #select-area {
  margin-bottom: 1.5em !important;
  padding-bottom: 1.5em !important;
}

/* 지역선택 지명 아래 간격 — HTML spacer (margin 붕괴 방지) */
.area-list-spacer {
  display: block !important;
  width: 100% !important;
  height: 1.5em !important;
  min-height: 1.5em !important;
  margin: 0 !important;
  padding: 0 !important;
  clear: both !important;
  border: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
}
#select-area {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
}

/* 로고-도메인 간격 2/3 + bold */
#logo .domain,
a#logo .domain,
#body-wrap > #logo .domain {
  margin-top: 0.07em !important;
  font-weight: bold !important;
  font-size: 0.93em !important;
}

/* 구글 로그아웃 (로그인 후) — 회색 */
.btn-google-logout,
a.btn-google-logout {
  background-color: #9e9e9e !important;
  color: #fff !important;
  text-decoration: none !important;
  display: inline-block;
  text-align: center;
  box-sizing: border-box;
}
.btn-google-logout:hover,
a.btn-google-logout:hover {
  background-color: #757575 !important;
  color: #fff !important;
}

/* 심야 체크 영역 */
.night-check-wrap {
  position: relative;
  z-index: 5;
}
.night-check-wrap .night-label {
  display: inline-flex !important;
  align-items: center;
  gap: 0.4em;
  min-width: 0 !important;
  font-weight: 600;
  cursor: pointer;
  user-select: none;
  -webkit-user-select: none;
}
.night-check-wrap .night-label span {
  line-height: 1.4;
}
#nightchk {
  width: 1.7em !important;
  height: 1.7em !important;
  cursor: pointer !important;
}


/* ===== 명소 목록 (출발/도착) — 행 높이 배경 꽉 채움 ===== */
#select-spot .spot-item {
  display: flex;
  width: 100%;
  align-items: stretch;
  border-bottom: 1px dashed #ddd;
  box-sizing: border-box;
}
#select-spot .spot-item:hover {
  background: #efefef;
}
#select-spot .spot-actions {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  flex-shrink: 0;
  white-space: nowrap;
  padding: 0;
  margin: 0;
  border: 0;
  align-self: stretch;
}
#select-spot .spot-name {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.4em 0.6em;
}
#select-spot .spot-name li {
  display: list-item;
  list-style: none;
  margin: 0;
  padding: 0;
  line-height: 1.35em;
}
/* 버튼: 행 높이만큼 배경 꽉 채움 (위·아래 여백 없음) */
#select-spot .spot-btn,
.spot-actions .spot-btn {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  display: flex;
  align-items: center;
  justify-content: center;
  align-self: stretch;
  background: #aaa;
  color: #fff !important;
  border: 0 !important;
  border-right: 1px solid #ccc !important;
  border-radius: 0;
  padding: 0 0.75em;
  margin: 0;
  cursor: pointer;
  font-size: 0.95em;
  font-weight: normal;
  line-height: 1.2;
  height: auto;
  min-height: 100%;
  box-sizing: border-box;
  float: none;
}
#select-spot .spot-btn:hover,
.spot-actions .spot-btn:hover {
  background: #111;
  opacity: 1;
}

/* 명소 필터 버튼 */
.spot-filters {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4em 0.45em;
  margin: 0.6em 0 0.75em;
  padding: 0 0.15em;
}
.spot-filter-btn {
  -webkit-appearance: none;
  appearance: none;
  margin: 0;
  padding: 0.35em 0.85em;
  border: 1.5px solid #2ec4d6;
  border-radius: 999px;
  background: #fff;
  color: #2ec4d6;
  font-size: 0.9em;
  line-height: 1.3;
  cursor: pointer;
  white-space: nowrap;
}
.spot-filter-btn:hover {
  background: #e8fafc;
}
.spot-filter-btn.is-active {
  background: #2ec4d6;
  color: #fff;
  border-color: #2ec4d6;
  font-weight: 600;
}

/* 요금 결과: PC=단일표 / 모바일=분리표 (반드시 이 규칙으로 show/hide) */
.fare-result-wrap {
  width: 100%;
  margin: 0.5em 0;
}
.fare-night-hours {
  margin: 0.4em 0 0.2em;
  font-size: 0.9em;
  color: #555;
}
.fare-krw {
  display: inline-block;
  font-size: 1em;
  font-weight: normal;
  color: #555;
  line-height: 1.4;
  margin-top: 0.15em;
}
.result-fare .fare-krw {
  font-size: .8em;
  font-weight: normal;
  color: #555;
}

/* PC 기본: 단일 표만 */
.fare-result-wrap .fare-table-desktop {
  display: table !important;
  width: 100%;
  margin: 0.5em 0;
}
.fare-result-wrap .fare-table-mobile {
  display: none !important;
}

/* 모바일: 분리 표만 */
@media (max-width: 640px) {
  .fare-result-wrap .fare-table-desktop {
    display: none !important;
  }
  .fare-result-wrap .fare-table-mobile {
    display: flex !important;
    flex-direction: column;
    gap: 0.85em;
    width: 100%;
  }
  .fare-result-wrap .fare-table-mobile .fare-panel {
    width: 100%;
    margin: 0;
  }
  .fare-result-wrap .fare-table-mobile .fare-panel .td {
    width: auto;
  }
  .fare-result-wrap .line .th,
  .fare-result-wrap .line .td {
    padding: 0.45em 0.3em;
    font-size: 0.82em;
  }
  .fare-result-wrap .result-fare {
    font-size: 1.05em;
  }
  .fare-result-wrap .result-fare .price {
    font-size: 1.15em;
  }
  .fare-result-wrap .fare-krw,
  .fare-result-wrap .result-fare .fare-krw {
    font-size: 1em;
  }
}

/* ===== 택시 분류 표/카드 (PC vs 모바일) ===== */
.taxi-class-table {
  width: 100%;
  border-collapse: collapse;
  margin: 0.75em 0;
  font-size: 0.95em;
}
.taxi-class-table th,
.taxi-class-table td {
  border: 1px solid #ddd;
  padding: 0.5em 0.6em;
  text-align: center;
}
.taxi-class-table th {
  background: #f5f5f5;
  font-weight: bold;
}

/* PC: 표만, 모바일 카드 숨김 */
.taxi-class-pc { display: table; }
.taxi-class-mobile { display: none; }

/* 모바일: 카드형 그래프만 */
@media (max-width: 640px) {
  .taxi-class-pc { display: none !important; }
  .taxi-class-mobile {
    display: block;
    margin: 0.75em 0;
  }
  .taxi-class-card {
    background: #fafafa;
    border: 1px solid #e5e5e5;
    border-radius: 8px;
    padding: 0.75em 0.9em;
    margin-bottom: 0.55em;
  }
  .taxi-class-name {
    font-weight: bold;
    font-size: 1em;
    margin-bottom: 0.35em;
    color: #222;
  }
  .taxi-class-bar-wrap {
    height: 10px;
    background: #eee;
    border-radius: 5px;
    overflow: hidden;
    margin-bottom: 0.5em;
  }
  .taxi-class-bar {
    height: 100%;
    border-radius: 5px;
  }
  .taxi-class-bar.bar-s { background: #6bb3ff; }
  .taxi-class-bar.bar-m { background: #4a90d9; }
  .taxi-class-bar.bar-l { background: #2c6cb0; }
  .taxi-class-meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.88em;
    line-height: 1.5;
    color: #555;
  }
  .taxi-class-meta strong {
    color: #222;
    font-weight: 600;
  }
}

.taxi-class-note {
  margin: 0.5em 0 0.2em;
  font-size: 0.9em;
  color: #555;
  line-height: 1.45;
}
@media (max-width: 640px) {
  .taxi-class-note {
    font-size: 0.85em;
  }
}

/* 일본 요금 PC: 구분 19% / 차종열 각 27% (3열 기준) */
.fare-table-desktop.fare-table-cartypes > .tr > .th {
  width: 19% !important;
  box-sizing: border-box;
}
.fare-table-desktop.fare-table-cartypes > .tr > .td {
  width: 27% !important;
  box-sizing: border-box;
}
.fare-table-desktop.fare-table-cartypes .tr-time .td-time-span {
  width: 81% !important;
  text-align: center;
}

.redalert {font-size:1.1em;color:#f83131}


/* ===== 레이아웃 최종 수정: PC 좌측 / 모바일 상단 ===== */
@media screen and (min-width: 901px) {
  .layout-table {
    display: table !important;
    width: 100%;
    table-layout: fixed;
  }
  .layout-left {
    display: table-cell !important;
    width: 300px !important;
    vertical-align: top;
    padding-right: 16px !important;
  }
  .layout-center {
    display: table-cell !important;
    width: 12px !important;
  }
  .layout-right {
    display: table-cell !important;
    width: auto !important;
    vertical-align: top;
  }
  .ad-300x600 {
    width: 300px;
    min-height: 600px;
    margin: 0;
    padding: 0;
    text-align: center;
  }
  .ad-placeholder {
    width: 300px;
    height: 600px;
  }
}

@media screen and (max-width: 900px) {
  .layout-table {
    display: flex !important;
    flex-direction: column !important;
    width: 100% !important;
  }
  .layout-left {
    display: block !important;
    order: 1;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 0 12px 0 !important;
  }
  .layout-center {
    display: none !important;
  }
  .layout-right {
    display: block !important;
    order: 2;
    width: 100% !important;
    min-width: 0;
  }
  .ad-300x600 {
    display: block;
    width: 100%;
    min-height: 0;
    height: auto;
    margin: 0 0 12px 0;
    padding: 0;
    text-align: center;
  }
  .ad300600 {
    width: 300px;
    max-width: 100%;
    height: 250px;
  }
  .ad-placeholder {
    width: 100%;
    max-width: 300px;
    height: 100px;
    margin: 0 auto;
  }
  #body-wrap {
    padding: 0 !important;
  }
}
