/*
  Base: uploaded HIS Shanghai source structure
  - #wrapper / #container / header / #main .left .centre
  - .banners / .centerBanner / .block / .packageWrap / .optionalWrap / .hotelWrap / footer
  This file is self-contained for wireframe review.
*/
:root {
  --blue: #005bac;
  /* HISらしさを出すメインブルー */
  --blue2: #0073cf;
  --navy: #0b2f5b;
  --accent: #b3262e;
  /* 中国紅はアクセントだけに使用 */
  --gold: #b89348;
  /* 落ち着いた金色 */
  --jade: #0f7f78;
  /* 中国らしい翡翠系アクセント */
  --border: #d7e0ec;
  --light: #f4f8fc;
  --text: #222;
  --muted: #666;
  --red: #b3262e;
}

.main-nav li {
  position: relative;
  margin-top: 20px;
}

.submenu li {
  position: relative !important;
  margin-top: 1px !important;
}

.main-nav li ul {
  z-index: 999;
  position: absolute;
  top: 100%;
  left: 0;
  display: none;
  min-width: 100px;
  background: #fff;
  border: 1px solid #ddd;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  opacity: .8;
}

.main-nav li:hover>ul {
  display: block;
  transition: .5s;
}

* {
  box-sizing: border-box
}

body {
  margin: 0;
  background: #fff8ee;
  color: var(--text);
  font-family: Arial, "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;
  font-size: 14px;
  line-height: 1.55
}

a {
  color: inherit;
  text-decoration: none
}

img {
  /*max-width: 100%;*/
  display: block
}

ul,
ol {
  margin: 0;
  padding: 0;
  list-style: none
}

#wrapper {
  width: 100%;
  min-width: 1180px;
  background: linear-gradient(180deg, #fff8ee 0, #fff 260px)
}

#container {
  width: 1180px;
  margin: 0 auto
}

/* Header */
header {
  height: 92px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  gap: 24px;
  background: #fff;
  box-shadow: none
}

header h1 {
  margin: 0;
  width: 245px;
  height: 64px;
  display: flex;
  align-items: center;
  gap: 14px;
  border-right: 1px solid var(--border)
}

header h1 a {
  display: flex;
  align-items: center;
  gap: 14px;
  width: 100%;
  height: 100%
}

.logoBox {
  width: 105px;
  height: 42px;
  border: 1px solid var(--gold);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--blue);
  font-weight: 900;
  font-size: 34px;
  font-style: italic;
  letter-spacing: -2px
}

.logoCountry {
  font-size: 22px;
  font-weight: bold;
  color: #111
}

header .headerWrap {
  display: none
}

header nav {
  flex: 1;
  height: 100%
}

header nav h2 {
  display: none
}

header nav ul {
  /*height: 100%;*/
  display: flex;
  align-items: center;
  justify-content: space-between
}

header nav li a {
  display: block;
  padding: 15px 18px 11px;
  font-weight: bold;
  white-space: nowrap;
  border-bottom: 4px solid transparent
}

.submenu li a {
  display: block;
  padding: 9px 18px 5px;
  font-weight: bold;
  white-space: nowrap;
  transition: .5s;
  border-bottom: 4px solid transparent
}

header nav li a:hover {
  border-radius: 8px;
  border-bottom-color: var(--gold);
  color: var(--blue);
  transition: .5s;
  background-color: #eef
}
.submenu li ul {
  z-index: 999;
  position: absolute;
  top: 20%;
  left: 160px;
  display: none;
  min-width: 100px;
  background: #fff;
  border: 1px solid #ddd;
  box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}
.mNavBtn {
  display: none
}

/* Layout */
#main {
  display: grid;
  grid-template-columns: 245px 1fr;
  gap: 24px;
  padding: 18px 0 0
}

.clearfix:after {
  content: "";
  display: block;
  clear: both
}

.left {
  min-width: 0
}

.centre {
  min-width: 0
}

/* Left column */
.banners p,
.sideCard {
  margin: 0 0 12px;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  overflow: hidden
}

.sideCard {
  min-height: 92px;
  padding: 0;
  display: block;
  position: relative
}

.sideCard a {
  display: block;
  /*height: 100%;*/
  padding: 14px 14px 14px 18px;
  background: #fff
}

.sideCard h3 {
  margin: 0 0 6px;
  font-size: 15px;
  color: #111;
  border-left: 4px solid var(--gold);
  padding-left: 8px
}

.sideCard p {
  margin: 0 0 8px;
  color: #555;
  font-size: 12px
}

.sideCard .btnMini {
  display: inline-block;
  border: 1px solid #d8bd78;
  border-radius: 4px;
  padding: 3px 12px;
  color: var(--blue);
  font-size: 12px;
  font-weight: bold;
  background: #fff
}

.sideBannerImg {
  height: 74px;
  background: center/cover;
  border-bottom: 1px solid var(--border)
}

.qrBox {
  width: 78px;
  height: 78px;
  background: repeating-linear-gradient(45deg, #111 0 3px, #fff 3px 7px);
  border: 8px solid #fff;
  box-shadow: 0 0 0 1px #ccd;
  float: right;
  margin-left: 10px
}

.addresses,
.mailMagazionSignUp,
.branchLinks {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px;
  margin: 0 0 12px;
  padding: 14px
}

.addresses h2,
.mailMagazionSignUp h2,
.branchLinks h2 {
  font-size: 17px;
  color: var(--blue);
  margin: 0 0 10px
}

.addresses p {
  margin: 4px 0;
  color: #333
}

.phone {
  font-size: 18px;
  font-weight: bold;
  color: var(--blue)
}

.signUpTable {
  width: 100%;
  border-collapse: collapse
}

.signUpTable th {
  display: none
}

.signUpTable td {
  display: block;
  padding: 4px 0
}

.signUpTable input[type=text] {
  width: 100%;
  border: 1px solid var(--border);
  border-radius: 4px;
  height: 34px;
  padding: 0 10px
}

.signUpTable input[type=submit] {
  width: 100%;
  height: 34px;
  border: 0;
  border-radius: 4px;
  background: var(--blue);
  color: #fff;
  font-weight: bold
}

.signUpTable input[type=reset] {
  display: none
}

.branchLinks {
  padding: 0;
  background: transparent;
  border: 0
}

.branchLinks h2 {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 6px 6px 0 0;
  margin: 0;
  padding: 12px 14px;
  border-bottom: 0
}

.branchBannerList {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 0 0 6px 6px;
  padding: 10px
}

.branchBannerList li {
  margin: 0 0 10px
}

.branchBannerList li:last-child {
  margin-bottom: 0
}

.branchBannerList a {
  display: block;
  position: relative;
  height: 82px;
  border-radius: 5px;
  overflow: hidden;
  border: 1px solid #cfd8e6;
  background: #e8edf5
}

.branchBannerList img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .25s ease
}

.branchBannerList a:hover img {
  transform: scale(1.04)
}

.branchBannerList .branchText {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  padding: 18px 12px 9px;
  background: linear-gradient(transparent, rgba(0, 0, 0, .72));
  color: #fff;
  text-shadow: 0 1px 3px rgba(0, 0, 0, .5);
  font-weight: bold;
  font-size: 18px;
  letter-spacing: .02em
}

.branchBannerList .branchText small {
  display: block;
  font-size: 11px;
  font-weight: normal;
  opacity: .9;
  margin-top: 2px
}

.branchAllLink {
  display: block;
  margin-top: 10px;
  text-align: center;
  border: 1px solid #bdd3ee;
  border-radius: 4px;
  padding: 8px 10px;
  background: #fff;
  color: var(--blue);
  font-weight: bold;
  font-size: 12px
}

.branchAllLink:after {
  content: " ›"
}

/* Center common */
.block {
  border: 1px solid var(--border);
  border-radius: 7px;
  background: #fffdf8;
  margin: 0 0 18px;
  padding: 14px;
  box-shadow: 0 3px 10px rgba(80, 45, 20, .04)
}

.block1 {
  border-radius: 7px;
  background: #fffdf8;
  /*margin: 0 0 18px;*/
}

.blockHeader {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 12px
}

.blockHeader h2 {
  margin: 0;
  font-size: 21px;
  color: #111
}

.listAll {
  /*width: 25%;*/
  float: right;
}

.listAll a {
  display: block;
  border: 1px solid #d8bd78;
  border-radius: 4px;
  padding: 5px 13px;
  color: var(--blue);
  font-weight: bold;
  font-size: 12px;
  background: #fff
}

/* Search top: 46%; */
.searchBlock {
  padding: 16px 18px;
  float: left;
  position: absolute;
  left: 5%;
  top: 5.3%;
  transform: translateY(-50%);
  width: 350px;
  border: 1px solid #d7e2ef;
  border-radius: 10px;
  overflow: hidden;
  opacity:0.88;
  box-shadow: 0 8px 26px rgba(20, 55, 90, .16) !important;
  z-index: 999;
}

.searchMargin{
  margin: 25px 0px 20px 0px;
}
.searchMargin-align{
  text-align: right;
  margin: 25px 0px 20px 0px;
}

.searchBlock h2 {
  margin: 0 0 10px;
  font-size: 19px
}

.searchForm {
  /*display: grid;*/
  grid-template-columns: 1fr 170px;
  gap: 16px
}

.searchForm input {
  height: 48px;
  width: 271px;
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0 16px;
  font-size: 15px
}
.searchForm #optional_day {
  height: 15px !important;
  width: 30px !important;
  border: 1px solid var(--border);
  border-radius: 4px;
  padding: 0 16px;
  font-size: 15px !important
}
.searchForm button {
  border: 0;
  border-radius: 4px;
  background: linear-gradient(180deg, var(--blue), #8f1020);
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .25)
}

/* Map */
.mapBlock {
  padding: 18px
}

.mapLead {
  margin: 0 0 12px;
  color: #666
}

.mapArea {
  display: grid;
  grid-template-columns: 1.2fr .85fr;
  gap: 18px
}

.chinaMap {
  height: 420px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
  position: relative;
  overflow: hidden
}

.chinaMap svg {
  width: 100%;
  height: 100%;
  display: block
}

.chinaMapImg {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: #fff
}

.spotPin {
  position: absolute;
  transform: translate(-50%, -50%);
  display: flex;
  align-items: center;
  gap: 4px;
  font-weight: bold;
  color: #333;
  font-size: 13px
}

.spotPin:before {
  content: "";
  display: block;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #333;
  box-shadow: 0 0 0 5px rgba(196, 0, 26, .13)
}


.spotList {
  display: grid;
  gap: 10px
}

.spotList li a {
  display: grid;
  grid-template-columns: 108px 1fr 20px;
  gap: 12px;
  align-items: center;
  border: 1px solid var(--border);
  border-radius: 6px;
  padding: 8px;
  background: #fff;
  transition: .2s
}

.spotList li a:hover {
  border-color: var(--blue);
  box-shadow: 0 4px 14px rgba(196, 0, 26, .12)
}

.spotPhoto {
  width: 108px;
  height: 72px;
  border-radius: 4px;
  background: #e7ebf2 center/cover;
  overflow: hidden
}

.spotText strong {
  display: block;
  font-size: 18px;
  line-height: 1.2;
  color: #111
}

.spotText span {
  display: block;
  font-size: 12px;
  color: #666;
  margin-top: 3px
}

.spotList li a:after {
  content: "›";
  font-size: 24px;
  color: #555;
  text-align: center
}

.spotQuick {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 14px
}

.spotQuick a {
  text-align: center;
  border: 1px solid var(--border);
  border-radius: 5px;
  padding: 9px;
  background: #fff;
  font-weight: bold
}

/* Products */
.recommendGrid {
  display: grid;
  /* grid-template-columns: 105px 1fr; */

  gap: 0;
  border-top: 1px solid var(--border);
  border-left: 1px solid var(--border)
}
.recommendGrid_optional {
    display: grid;
    grid-template-columns: 105px 2fr;
    gap: 0;
    border-top: 1px solid var(--border);
    border-left: 1px solid var(--border);
}
.recommendGrid_optional .rowLabel {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: bold;
  color: var(--blue);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: #dceef8;
}

.recommendGrid .rowLabel {
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: bold;
  color: var(--blue);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: #fff5e3
}

.recommendItems {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0
}

.productCard {
  position: relative; 
  min-height: 280px;
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  background: #fff
}

.productCard .photo {
  height: 245px;
  background: #e7ebf2 center/cover;
  border-bottom: 3px solid rgba(200, 164, 93, .65)
}

.productCard .info {
  padding: 9px 10px
}

.tag {
  display: inline-block;
  background: #333;
  color: #fff;
  font-size: 13px;
  padding: 2px 7px;
  border-radius: 2px;
  margin-bottom: 4px
}

.productCard h3 {
  font-size: 14px;
  line-height: 1.35;
  margin: 0 0 2px
}

.productCard p {
  font-size: 11px;
  color: #555;
  margin: 0
}

.price {
  position:absolute;
  color: var(--red) !important;
  text-align: right;
  font-weight: bold;
  bottom: 10px;    /* 距容器顶部 10px */
  right: 10px;  /* 距容器右侧 10px */
}

.hotelWrap {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px
}

.hotelBox {
  border: 1px solid var(--border);
  border-radius: 5px;
  overflow: hidden;
  background: #fff
}

.hotelBox .photo {
  height: 145px;
  background: #e7ebf2 center/cover;
  border-bottom: 3px solid rgba(200, 164, 93, .65)
}

.hotelBox .hotelInner {
  padding: 9px
}

.hotelBox h3 {
  margin: 0 0 3px;
  font-size: 13px;
  line-height: 1.25
}

.stars {
  letter-spacing: 2px;
  color: #111
}

.hotelBox .boxBottom {
  padding: 0 9px 9px
}

.areaButtons {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 16px
}

.areaButtons a {
  border: 1px solid #d8bd78;
  border-radius: 5px;
  text-align: center;
  padding: 12px;
  color: #9d0014;
  font-weight: bold;
  font-size: 18px
}

.areaNote {
  margin: 10px 0 0;
  color: #666;
  font-size: 12px;
  text-align: center
}

.newsList {
  border-top: 1px solid var(--border)
}

.newsList li a {
  display: grid;
  grid-template-columns: 105px 110px 1fr 20px;
  gap: 12px;
  align-items: center;
  padding: 13px 0;
  border-bottom: 1px solid var(--border)
}

.newsDate {
  color: #666;
  font-size: 12px
}

.newsCat {
  display: inline-block;
  text-align: center;
  border: 1px solid #d8bd78;
  color: var(--blue);
  border-radius: 3px;
  padding: 3px 6px;
  font-size: 11px;
  font-weight: bold;
  background: #fff5e3
}

.newsTitle {
  font-weight: bold
}

.newsArrow {
  color: var(--blue);
  font-size: 20px;
  text-align: right
}

.bottomBanners ul {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px
}

.bottomBanners li a {
  display: block;
  height: 95px;
  border-radius: 6px;
  overflow: hidden;
  border: 1px solid var(--border);
  background: #fff5e3
}

.bottomBanners img {
  width: 100%;
  height: 100%;
  object-fit: cover
}

/* Footer */
.return {
  display: none
}

footer {
  margin-top: 22px;
  background: linear-gradient(180deg, #8f1020, #4b1b12);
  color: #fff;
  border-top: 4px solid var(--gold)
}

footer #wrapper {
  width: 1180px;
  margin: 0 auto;
  background: transparent;
  display: grid;
  grid-template-columns: 260px 1fr;
  gap: 40px;
  padding: 34px 0 30px
}

footer h2 {
  margin: 0 0 12px
}

.footerLogo {
  font-size: 46px;
  font-weight: 900;
  font-style: italic;
  letter-spacing: -2px
}

footer p,
footer address {
  font-style: normal;
  margin: 0 0 6px;
  color: #fff2d6
}

footer .right nav {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 30px
}

footer nav h3 {
  display: none
}

footer li {
  margin-bottom: 6px
}

footer li a:before {
  content: "› ";
  opacity: .8
}

.bottom {
  grid-column: 1/-1
}

.smbWrapper {
  display: none
}

.copyright {
  border-top: 1px solid rgba(255, 255, 255, .25);
  text-align: center;
  padding: 10px;
  color: #fff2d6;
  font-size: 12px
}

/* China red theme refinements */
header {
  border-top: 0
}

.blockHeader h2 span {
  border-left: 5px solid var(--blue);
  padding-left: 10px
}

.searchForm button {
  background: linear-gradient(180deg, #d6001c, #a90016)
}

.tag {
  background: var(--blue)
}

.areaButtons a:hover,
.spotQuick a:hover {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue)
}


/* HIS China differentiation theme: JTB風の赤全面ではなく、HISブルーを主役に中国色をアクセント化 */
body {
  background: #fff;
}

#wrapper {
  background: #fff;
}

header {
  background: #fff;
  border-top: 0;
  box-shadow: none;
}

.logoBox {
  border-color: var(--blue);
  color: var(--blue);
  background: #fff;
}

.logoCountry {
  color: var(--navy);
}

.headerLogoImg {
  display: block;
  width: 235px;
  height: auto;
  max-height: 64px;
  object-fit: contain;
}

.login {
  position:relative;
  display: block;
  height: auto;
  max-height: 64px;
  text-align: right;
  object-fit: contain;
  font-size: 13px;
}
.login span{
  border: 0px solid #eef;
  border-radius: 6px;
  padding: 0.25em 0.6em;
  border-color: var(--blue);
  color: var(--blue);
  background-color: #eef;
}
.login p{
  margin-bottom: 5px;
}
.login p a{
    padding: 0.25em 0.6em;
    background-color: #039;
    color: #fff;
    border-radius: 11px;
}
.login span:hover{
  transition: .5s;
  border-color: var(--blue);
  color: var(--blue);
  background-color: rgb(212, 212, 250);
}
.login span a:hover {
  transition: .5s;
  border-color: var(--blue);
  color: var(--blue);
}

.footerLogoImg {
  display: block;
  width: 180px;
  height: auto;
  max-height: 58px;
  object-fit: contain;
  background: #fff;
  border-radius: 6px;
  padding: 6px 10px;
}

header nav li a:hover {
  border-bottom-color: var(--blue);
  color: var(--blue);
}

.block {
  background: #fff;
  border-color: var(--border);
  box-shadow: 0 4px 16px rgba(10, 47, 91, .06);
}

.blockHeader h2 span {
  border-left: 5px solid var(--blue);
  padding-left: 10px;
}

.listAll a,
.sideCard .btnMini {
  border-color: #bdd3ee;
  color: var(--blue);
}

.sideCard h3 {
  border-left-color: var(--blue);
}

.heroVisual {
  background: linear-gradient(rgba(0, 91, 172, .16), rgba(15, 127, 120, .08)), url('https://images.unsplash.com/photo-1548919973-5cef591cdbc9?q=80&w=1600&auto=format&fit=crop') center/cover;
}

.heroVisual:after {
  background: linear-gradient(90deg, rgba(11, 47, 91, .78), rgba(0, 91, 172, .20), rgba(179, 38, 46, .34));
}

.searchForm button {
  background: linear-gradient(180deg, var(--blue2), var(--blue));
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .22);
}

.newsCat {
  border-color: #bdd3ee;
  color: var(--blue);
  background: #f0f6ff;
}

.newsArrow {
  color: var(--blue);
}

.recommendGrid .rowLabel {
  background: #f0f6ff;
  color: var(--blue);
  height: 100%;
}

.productCard .photo,
.hotelBox .photo {
  border-bottom: 3px solid rgba(0, 91, 172, .45);
}

.tag {
  background: var(--navy);
}

.spotPin:before {
  background: var(--accent);
  box-shadow: 0 0 0 5px rgba(179, 38, 46, .16);
}

.spotList li a:hover {
  border-color: var(--blue);
  box-shadow: 0 4px 14px rgba(0, 91, 172, .14);
}

.areaButtons a {
  border-color: #bdd3ee;
  color: var(--blue);
}

.areaButtons a:hover,
.spotQuick a:hover {
  background: var(--blue);
  color: #fff;
  border-color: var(--blue);
}

.bottomBanners li a {
  background: #eef6ff;
}

footer {
  background: linear-gradient(180deg, #073b73, #061f3d);
  border-top: 4px solid var(--accent);
}

footer p,
footer address,
.copyright {
  color: #dcecff;
}

/*---------
## return ##
---------*/
body>p.return {
  display: none;
  position: fixed;
  bottom: 10px;
  right: 50px;
  width: 70px;
  height: 60px;
  z-index: 100;
}

body>p.return a {
  display: block;
  width: 80px;
  height: 60px;
  background-image: url("/common/images/label_retun_top.png");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: contain;
}

body>p.return a span {
  display: none
}


/* 左ナビ：大枠は残し、テキスト部分まわりの枠だけ削除 */
.sideCard {
  border: 1px solid var(--border) !important;
  border-radius: 6px !important;
  background: #fff !important;
  overflow: hidden !important;
  box-shadow: none !important;
}

.sideCard a {
  padding: 12px 14px 14px 14px !important;
  background: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
}

.sideCard h3 {
  border-left: 0 !important;
  padding-left: 0 !important;
  margin-bottom: 4px !important;
}

.sideCard p {
  margin-bottom: 8px !important;
}

.sideCard .wechat {
  padding: 12px 14px 14px 14px !important;
  background: #fff !important;
  border: 0 !important;
  box-shadow: none !important;
}

.sideBannerImg {
  border: 0 !important;
  border-bottom: 1px solid var(--border) !important;
  border-radius: 0 !important;
  overflow: hidden !important;
}


/* 左ナビ：説明文テキスト周りの線だけ削除 */
.sideCard a,
.sideCard h3,
.sideCard p {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}

.sideCard h3 {
  border-left: 0 !important;
  padding-left: 0 !important;
}

.sideCard p {
  padding: 0 !important;
}


/* PC表示：支店おすすめラベルを「支店名」と「おすすめ」で改行 */
@media (min-width:801px) {
  .recommendGrid .rowLabel {
    white-space: normal !important;
    line-height: 1.5 !important;
  }
}


/* PCでは改行、スマホでは改行しない */
@media (max-width:800px) {
  .recommendGrid .rowLabel .pcOnlyBreak {
    display: none !important;
  }
}


/* Smartphone hamburger global menu */
@media(max-width:800px) {
  body.navOpen {
    overflow: hidden;
  }

  header {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    height: 68px !important;
    padding: 0 12px !important;
    background: #fff !important;
    border-bottom: 1px solid var(--border) !important;
    z-index: 1000;
  }

  header h1 {
    margin: 0 !important;
    width: auto !important;
    height: auto !important;
    border: 0 !important;
    flex: 0 0 auto !important;
  }

  header h1 a {
    display: flex !important;
    align-items: center !important;
    height: 68px !important;
  }

  .headerLogoImg {
    width: 190px !important;
    max-height: 50px !important;
  }

  header nav {
    position: fixed !important;
    top: 68px !important;
    left: 0 !important;
    right: 0 !important;
    height: auto !important;
    max-height: calc(100vh - 68px) !important;
    overflow-y: auto !important;
    background: #fff !important;
    border-top: 1px solid var(--border) !important;
    border-bottom: 1px solid var(--border) !important;
    box-shadow: 0 10px 24px rgba(0, 0, 0, .16) !important;
    transform: translateY(-120%) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    transition: transform .25s ease, opacity .25s ease, visibility .25s ease !important;
    z-index: 999 !important;
  }

  header.is-open nav {
    transform: translateY(0) !important;
    opacity: 1 !important;
    visibility: visible !important;
  }

  header nav ul {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
    padding: 8px 18px 18px !important;
  }

  header nav li {
    border-bottom: 1px solid var(--border) !important;
  }

  header nav li:last-child {
    border-bottom: 0 !important;
  }

  header nav li a {
    display: block !important;
    padding: 16px 4px !important;
    border-bottom: 0 !important;
    color: #0b2f5b !important;
    font-size: 16px !important;
  }

  header nav li a:hover {
    color: var(--blue) !important;
    background: #f7fbff !important;
  }

  .mNavBtn {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 46px !important;
    height: 46px !important;
    border: 1px solid var(--border) !important;
    border-radius: 4px !important;
    background: #fff !important;
    position: relative !important;
    z-index: 1001 !important;
    flex: 0 0 46px !important;
  }

  .mNavBtn span {
    display: block !important;
    width: 24px !important;
    height: 2px !important;
    background: var(--blue) !important;
    font-size: 0 !important;
    line-height: 0 !important;
    position: relative !important;
    transition: background .2s ease !important;
  }

  .mNavBtn span:before,
  .mNavBtn span:after {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    width: 24px !important;
    height: 2px !important;
    background: var(--blue) !important;
    transition: transform .2s ease, top .2s ease !important;
  }

  .mNavBtn span:before {
    top: -8px !important;
  }

  .mNavBtn span:after {
    top: 8px !important;
  }

  header.is-open .mNavBtn span {
    background: transparent !important;
  }

  header.is-open .mNavBtn span:before {
    top: 0 !important;
    transform: rotate(45deg) !important;
  }

  header.is-open .mNavBtn span:after {
    top: 0 !important;
    transform: rotate(-45deg) !important;
  }
}

/* Top page only: left navigation moved above footer */
body.topNoSidebar #main {
  display: block;
  grid-template-columns: none;
  gap: 0;
}

body.topNoSidebar #main>.centre {
  position: relative;
  width: 100%;
  max-width: none;
  margin-left: 0;
}

body.topNoSidebar .topBottomNav {
  max-width: 1180px;
  margin: 56px auto 0;
  padding: 0 0 48px;
}

body.topNoSidebar .topBottomNavHead {
  margin: 0 0 20px;
  text-align: center;
}

body.topNoSidebar .topBottomNavHead .sectionSub {
  margin: 0 0 6px;
  color: var(--blue);
  font-size: 12px;
  font-weight: bold;
  letter-spacing: .18em;
}

body.topNoSidebar .topBottomNavHead h2 {
  margin: 0;
  color: var(--navy);
  font-size: 28px;
  line-height: 1.35;
}

body.topNoSidebar .topBottomNavInner>.left {
  display: block;
  width: 100%;
  max-width: none;
}

body.topNoSidebar .topBottomNav .banners.optional-banners {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

body.topNoSidebar .topBottomNav .sideCard {
  margin: 0;
  height: 100%;
}

body.topNoSidebar .topBottomNav .sideCard a {
  min-height: 128px;
}

body.topNoSidebar .topBottomNav .sideBannerImg {
  height: 110px;
}

body.topNoSidebar .topBottomNav .addresses,
body.topNoSidebar .topBottomNav .mailMagazionSignUp,
body.topNoSidebar .topBottomNav .branchLinks {
  margin-top: 16px;
}

@media (max-width: 900px) {
  body.topNoSidebar .topBottomNav {
    padding: 0 16px 36px;
  }

  body.topNoSidebar .topBottomNav .banners.optional-banners {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.topNoSidebar .topBottomNavHead h2 {
    font-size: 24px;
  }
}

@media (max-width: 560px) {
  body.topNoSidebar .topBottomNav .banners.optional-banners {
    grid-template-columns: 1fr;
  }

  body.topNoSidebar .topBottomNav .sideBannerImg {
    height: 120px;
  }
}


/* Top page bottom support area: reorganized */
body.topNoSidebar .topBottomNav {
  max-width: 1180px;
  margin: 56px auto 0;
  padding: 0 0 52px;
}

body.topNoSidebar .serviceGridSeven {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-bottom: 18px;
}

body.topNoSidebar .serviceGridSeven .sideCard {
  margin: 0;
  height: 100%;
}

body.topNoSidebar .serviceGridSeven .sideCard a {
  min-height: 128px;
}

body.topNoSidebar .serviceGridSeven .sideBannerImg {
  height: 110px;
}

body.topNoSidebar .contactServiceGrid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
  margin: 22px 0 46px;
}

body.topNoSidebar .contactServiceCard {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  padding: 18px;
  min-height: 150px;
  box-shadow: 0 6px 18px rgba(0, 91, 172, .06);
}

body.topNoSidebar .contactServiceCard h3 {
  margin: 0 0 10px;
  color: var(--navy);
  font-size: 17px;
  border-left: 4px solid var(--gold);
  padding-left: 9px;
}

body.topNoSidebar .contactServiceCard p {
  margin: 0 0 10px;
  color: #555;
}

body.topNoSidebar .contactServiceCard .phone {
  color: var(--blue);
  font-size: 24px;
  font-weight: bold;
  line-height: 1.2;
}

body.topNoSidebar .contactServiceCard .qrBox {
  float: right;
  margin: 0 0 8px 12px;
}

body.topNoSidebar .branchBottomBlock {
  margin-top: 8px;
}

body.topNoSidebar .branchHead {
  margin-bottom: 20px;
}

body.topNoSidebar .branchFourGrid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
}

body.topNoSidebar .branchCard {
  display: block;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0, 91, 172, .06);
  transition: transform .18s ease, box-shadow .18s ease;
}

body.topNoSidebar .branchCard:hover {
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(0, 91, 172, .12);
}

body.topNoSidebar .branchCard img {
  width: 100%;
  height: 132px;
  object-fit: cover;
}

body.topNoSidebar .branchCard span {
  display: block;
  padding: 14px 16px;
  color: var(--navy);
  font-size: 16px;
  font-weight: bold;
  text-align: center;
}

@media (max-width: 900px) {

  body.topNoSidebar .serviceGridSeven,
  body.topNoSidebar .branchFourGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.topNoSidebar .contactServiceGrid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {

  body.topNoSidebar .serviceGridSeven,
  body.topNoSidebar .branchFourGrid {
    grid-template-columns: 1fr;
  }

  body.topNoSidebar .topBottomNav {
    padding: 0 16px 40px;
  }
}


/* Top page newsletter inline registration form */
body.topNoSidebar .mailMagazineInlineCard {
  min-height: 240px;
}

body.topNoSidebar .mailMagazineForm {
  margin-top: 12px;
}

body.topNoSidebar .mailMagazineForm label {
  display: block;
  margin: 0 0 6px;
  color: #333;
  font-size: 13px;
  font-weight: bold;
}

body.topNoSidebar .mailMagazineForm label span {
  color: var(--accent);
  font-size: 11px;
  margin-left: 4px;
}

body.topNoSidebar .mailMagazineForm input[type="text"],
body.topNoSidebar .mailMagazineForm input[type="email"] {
  width: 100%;
  height: 38px;
  margin: 0 0 10px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: 5px;
  background: #fff;
  font-size: 14px;
}

body.topNoSidebar .mailMagazineCheck {
  display: flex !important;
  align-items: flex-start;
  gap: 7px;
  margin: 2px 0 12px !important;
  font-weight: normal !important;
  color: #555 !important;
}

body.topNoSidebar .mailMagazineCheck input {
  margin-top: 3px;
}

body.topNoSidebar .mailMagazineSubmit {
  width: 100%;
  cursor: pointer;
  border: 1px solid #d8bd78;
  border-radius: 4px;
  padding: 8px 12px;
  color: var(--blue);
  font-size: 13px;
  font-weight: bold;
  background: #fff;
}

body.topNoSidebar .mailMagazineSubmit:hover {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}


/* Top page: branch text moved and service cards clarified */
body.topNoSidebar .branchBottomLead {
  max-width: 760px;
  margin: -8px auto 22px;
  color: #555;
  font-size: 15px;
  line-height: 1.8;
  text-align: center;
}

body.topNoSidebar .serviceGridSeven .sideCard a {
  min-height: 142px;
  padding-top: 16px;
}

body.topNoSidebar .serviceGridSeven .sideCard h3 {
  margin: 0 0 8px;
  color: var(--navy);
  font-size: 17px;
  line-height: 1.35;
  border-left: 4px solid var(--gold);
  padding-left: 9px;
}

body.topNoSidebar .serviceGridSeven .sideCard .btnMini {
  margin-top: 4px;
}

body.topNoSidebar .serviceGridSeven .sideCard a:hover h3 {
  color: var(--blue);
}

body.topNoSidebar .serviceGridSeven .sideCard a:hover .btnMini {
  background: var(--blue);
  border-color: var(--blue);
  color: #fff;
}


/* Top page: specified service card titles directly under images */
body.topNoSidebar .serviceGridSeven .sideCard .titleBelowImage {
  display: block;
  margin: 0 0 8px;
  padding: 12px 14px 0 18px;
  color: var(--navy);
  font-size: 18px;
  font-weight: bold;
  line-height: 1.35;
  border-left: 0;
  background: #fff;
}

body.topNoSidebar .serviceGridSeven .sideCard .titleBelowImage::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 16px;
  margin: 0 8px -2px 0;
  background: var(--gold);
  border-radius: 2px;
}

body.topNoSidebar .serviceGridSeven .sideCard a {
  padding-top: 0;
}

body.topNoSidebar .serviceGridSeven .sideCard a p,
body.topNoSidebar .serviceGridSeven .sideCard a .btnMini {
  margin-left: 18px;
  margin-right: 14px;
}

body.topNoSidebar .serviceGridSeven .sideCard a:hover .titleBelowImage {
  color: var(--blue);
}


/* Top page: service menu finalized to seven cards */
body.topNoSidebar .serviceGridSeven {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin-bottom: 18px !important;
}

body.topNoSidebar .serviceGridSeven .sideCard {
  margin: 0 !important;
  height: 100% !important;
}

body.topNoSidebar .serviceGridSeven .sideCard a {
  display: block !important;
  min-height: 132px !important;
  padding: 14px 14px 16px 18px !important;
}

body.topNoSidebar .serviceGridSeven .sideBannerImg {
  height: 110px !important;
}

body.topNoSidebar .serviceGridSeven .sideCard h3 {
  margin: 0 0 8px !important;
  color: var(--navy) !important;
  font-size: 17px !important;
  line-height: 1.35 !important;
  font-weight: bold !important;
  border-left: 4px solid var(--gold) !important;
  padding-left: 9px !important;
}

body.topNoSidebar .serviceGridSeven .sideCard p {
  min-height: 38px;
}

body.topNoSidebar .contactServiceGrid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin: 22px 0 46px !important;
}

body.topNoSidebar .branchBottomLead {
  max-width: 760px;
  margin: -8px auto 22px;
  color: #555;
  font-size: 15px;
  line-height: 1.8;
  text-align: center;
}

body.topNoSidebar .branchFourGrid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

body.topNoSidebar .branchCard {
  display: block;
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  box-shadow: 0 6px 18px rgba(0, 91, 172, .06);
}

body.topNoSidebar .branchCard img {
  width: 100%;
  height: 132px;
  object-fit: cover;
}

body.topNoSidebar .branchCard span {
  display: block;
  padding: 14px 16px;
  color: var(--navy);
  font-size: 16px;
  font-weight: bold;
  text-align: center;
}

@media (max-width: 900px) {

  body.topNoSidebar .serviceGridSeven,
  body.topNoSidebar .branchFourGrid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.topNoSidebar .contactServiceGrid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 560px) {

  body.topNoSidebar .serviceGridSeven,
  body.topNoSidebar .branchFourGrid {
    grid-template-columns: 1fr !important;
  }
}


/* Top page: service menu restored to the original seven items */
body.topNoSidebar .serviceGridSeven {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin-bottom: 18px !important;
}

body.topNoSidebar .serviceGridSeven .sideCard {
  margin: 0 !important;
}

body.topNoSidebar .serviceGridSeven .sideCard a {
  display: block !important;
  min-height: 132px !important;
  padding: 14px 14px 16px 18px !important;
}

body.topNoSidebar .serviceGridSeven .sideBannerImg {
  height: 110px !important;
}

body.topNoSidebar .serviceGridSeven .sideCard h3 {
  margin: 0 0 8px !important;
  color: var(--navy) !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: bold !important;
  border-left: 4px solid var(--gold) !important;
  padding-left: 9px !important;
}

@media (max-width: 900px) {
  body.topNoSidebar .serviceGridSeven {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  body.topNoSidebar .serviceGridSeven {
    grid-template-columns: 1fr !important;
  }
}


/* Top page newsletter: compact horizontal form */
body.topNoSidebar .mailMagazineInlineCard {
  min-height: 168px !important;
  padding: 16px 18px 14px !important;
}

body.topNoSidebar .mailMagazineInlineCard p {
  margin-bottom: 8px !important;
  font-size: 13px;
  line-height: 1.55;
}

body.topNoSidebar .mailMagazineFormCompact {
  margin-top: 8px !important;
}

body.topNoSidebar .mailMagazineFields {
  display: grid !important;
  grid-template-columns: 0.9fr 1.35fr !important;
  gap: 10px !important;
  align-items: end !important;
}

body.topNoSidebar .mailMagazineField label {
  display: block !important;
  margin: 0 0 4px !important;
  color: #333 !important;
  font-size: 12px !important;
  font-weight: bold !important;
  line-height: 1.3 !important;
}

body.topNoSidebar .mailMagazineField label span {
  color: var(--accent) !important;
  font-size: 11px !important;
  margin-left: 4px !important;
}

body.topNoSidebar .mailMagazineField input[type="text"],
body.topNoSidebar .mailMagazineField input[type="email"] {
  width: 100% !important;
  height: 34px !important;
  margin: 0 !important;
  padding: 6px 9px !important;
  border: 1px solid var(--border) !important;
  border-radius: 5px !important;
  background: #fff !important;
  font-size: 13px !important;
}

body.topNoSidebar .mailMagazineBottom {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  margin-top: 10px !important;
}

body.topNoSidebar .mailMagazineBottom .mailMagazineCheck {
  flex: 1 !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 6px !important;
  margin: 0 !important;
  color: #555 !important;
  font-size: 12px !important;
  font-weight: normal !important;
  line-height: 1.4 !important;
}

body.topNoSidebar .mailMagazineBottom .mailMagazineCheck input {
  margin-top: 3px !important;
}

body.topNoSidebar .mailMagazineBottom .mailMagazineSubmit {
  width: auto !important;
  min-width: 92px !important;
  padding: 7px 12px !important;
  white-space: nowrap !important;
  cursor: pointer !important;
}

@media (max-width: 900px) {
  body.topNoSidebar .mailMagazineFields {
    grid-template-columns: 1fr !important;
  }

  body.topNoSidebar .mailMagazineBottom {
    align-items: flex-start !important;
    flex-direction: column !important;
  }

  body.topNoSidebar .mailMagazineBottom .mailMagazineSubmit {
    width: 100% !important;
  }
}


/* Top page: HIS China contact button */
body.topNoSidebar .contactServiceCard .contactButton {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-width: 128px;
  margin-top: 4px;
  padding: 8px 18px !important;
  border: 1px solid var(--blue) !important;
  border-radius: 5px !important;
  background: var(--blue) !important;
  color: #fff !important;
  font-size: 13px !important;
  font-weight: bold !important;
  line-height: 1.2;
  text-align: center;
}

body.topNoSidebar .contactServiceCard .contactButton:hover {
  background: var(--navy) !important;
  border-color: var(--navy) !important;
  color: #fff !important;
}


/* Top page: add four upper image buttons into support service area */
body.topNoSidebar .serviceGridSeven {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 16px !important;
}

body.topNoSidebar .serviceGridSeven .addedServiceCard h3 {
  color: var(--navy) !important;
  font-size: 16px !important;
  font-weight: bold !important;
}

body.topNoSidebar .serviceGridSeven .addedServiceCard a:hover h3 {
  color: var(--blue) !important;
}

@media (max-width: 900px) {
  body.topNoSidebar .serviceGridSeven {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  body.topNoSidebar .serviceGridSeven {
    grid-template-columns: 1fr !important;
  }
}


/* Top page: service menu order revised to nine items */
body.topNoSidebar .serviceGridNine {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 16px !important;
  margin-bottom: 18px !important;
}

body.topNoSidebar .serviceGridNine .sideCard {
  margin: 0 !important;
  height: 100% !important;
}

body.topNoSidebar .serviceGridNine .sideBannerImg {
  height: 115px !important;
}

body.topNoSidebar .serviceGridNine .sideCard a {
  display: block !important;
  min-height: 132px !important;
  padding: 14px 14px 16px 18px !important;
}

body.topNoSidebar .serviceGridNine .sideCard h3 {
  margin: 0 0 8px !important;
  color: var(--navy) !important;
  font-size: 16px !important;
  line-height: 1.35 !important;
  font-weight: bold !important;
  border-left: 4px solid var(--gold) !important;
  padding-left: 9px !important;
}

@media (max-width: 900px) {
  body.topNoSidebar .serviceGridNine {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
}

@media (max-width: 560px) {
  body.topNoSidebar .serviceGridNine {
    grid-template-columns: 1fr !important;
  }
}


/* Top page: NEWS split into movie + news list */
.newsVideoBlock {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  margin: 34px 0;
  padding: 28px;
  box-shadow: 0 8px 24px rgba(0, 91, 172, .06);
}

.newsVideoHead {
  margin: 0 0 20px;
  text-align: center;
}

.newsVideoHead .sectionSub {
  margin: 0 0 6px;
  color: var(--blue);
  font-size: 12px;
  font-weight: bold;
  letter-spacing: .18em;
}

.newsVideoHead h2 {
  margin: 0;
  color: var(--navy);
  font-size: 28px;
  line-height: 1.35;
}

.newsVideoLayout {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 24px;
  align-items: start;
}

.travelMovieBox {
  background: var(--light);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}

.travelMovie {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  object-fit: cover;
}

.movieCaption {
  margin: 0;
  padding: 10px 14px;
  color: #666;
  font-size: 12px;
  line-height: 1.5;
}

.newsListBox {
  min-width: 0;
}

.newsListBox h3 {
  margin: 0 0 12px;
  color: var(--navy);
  font-size: 18px;
  border-left: 4px solid var(--gold);
  padding-left: 10px;
}

.newsListBox .newsList {
  border-top: 1px solid var(--border);
}

.newsListBox .newsList li {
  border-bottom: 1px solid var(--border);
}

.newsListBox .newsList li a {
  display: grid;
  grid-template-columns: 105px 1fr;
  gap: 14px;
  padding: 13px 0;
  color: #333;
}

.newsListBox .newsList li a:hover {
  color: var(--blue);
}

.newsListBox .newsList .date {
  color: var(--blue);
  font-weight: bold;
}

@media (max-width: 900px) {
  .newsVideoBlock {
    padding: 22px 18px;
  }

  .newsVideoLayout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 560px) {
  .newsListBox .newsList li a {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}


/* Top page: movie and NEWS as separate side-by-side contents */
.movieNewsSeparateArea {
  display: grid;
  grid-template-columns: 1.05fr 1fr;
  gap: 24px;
  margin: 34px 0;
  align-items: stretch;
}

.travelMovieContent,
.newsContentBlock {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 28px;
  box-shadow: 0 8px 24px rgba(0, 91, 172, .06);
}

.movieNewsSeparateArea .contentHead {
  margin: 0 0 4px;
  text-align: left;
}

.movieNewsSeparateArea .contentHead .sectionSub {
  margin: 0 0 6px;
  color: var(--blue);
  font-size: 12px;
  font-weight: bold;
  letter-spacing: .18em;
}

.movieNewsSeparateArea .contentHead h2 {
  margin: 0;
  color: var(--navy);
  font-size: 20px;
  line-height: 1.35;
}

.movieNewsSeparateArea .travelMovieBox {
  background: var(--light);
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
}

.movieNewsSeparateArea .travelMovie {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  background: #000;
  object-fit: cover;
}

.movieNewsSeparateArea .movieCaption {
  margin: 0;
  padding: 10px 14px;
  color: #666;
  font-size: 12px;
  line-height: 1.5;
}

.movieNewsSeparateArea .newsListBox .newsList {
  border-top: 1px solid var(--border);
}

.movieNewsSeparateArea .newsListBox .newsList li {
  border-bottom: 0px solid var(--border);
}

.movieNewsSeparateArea .newsListBox .newsList li a {
  display: grid;
  grid-template-columns: 105px 1fr;
  gap: 14px;
  padding: 13px 0;
  color: #333;
}

.movieNewsSeparateArea .newsListBox .newsList li a:hover {
  color: var(--blue);
}

.movieNewsSeparateArea .newsListBox .newsList .date {
  color: var(--blue);
  font-weight: bold;
}

@media (max-width: 900px) {
  .movieNewsSeparateArea {
    grid-template-columns: 1fr;
  }

  .travelMovieContent,
  .newsContentBlock {
    padding: 22px 18px;
  }
}

@media (max-width: 560px) {
  .movieNewsSeparateArea .newsListBox .newsList li a {
    grid-template-columns: 1fr;
    gap: 4px;
  }
}


/* Top page: movie no title/frame, NEWS meta/category layout */
.movieNewsSeparateArea {
  align-items: stretch;
}

.movieNewsSeparateArea .travelMovieContent {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  padding: 0 !important;
  box-shadow: none !important;
}

.movieNewsSeparateArea .travelMovieContent .travelMovieBox {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  overflow: hidden;
}

.movieNewsSeparateArea .travelMovieContent .travelMovie {
  width: 100%;
  border-radius: 0 !important;
  box-shadow: none !important;
}

.movieNewsSeparateArea .newsContentBlock {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 13px;
  box-shadow: 0 8px 24px rgba(0, 91, 172, .06);
}

.newsListRevised {
  border-top: 1px solid var(--border);
}

.newsListRevised li {
  border-bottom: 1px solid var(--border);
}

.newsListRevised li a {
  display: grid !important;
  grid-template-columns: 118px 1fr !important;
  gap: 18px !important;
  align-items: start;
  padding: 14px 0 !important;
}

.newsListRevised .newsMeta {
  display: block;
}

.newsListRevised .date {
  display: block;
  color: var(--blue);
  font-weight: bold;
  line-height: 1.35;
}

.newsListRevised .category {
  display: inline-block;
  margin-top: 6px;
  padding: 3px 8px;
  background: var(--light);
  border: 1px solid var(--border);
  border-radius: 999px;
  color: var(--navy);
  font-size: 11px;
  font-weight: bold;
  line-height: 1.2;
}

.newsListRevised .newsTitle {
  display: block;
  color: #333;
  font-size: 14px;
  line-height: 1.7;
}

.newsListRevised li a:hover .newsTitle {
  color: var(--blue);
}

@media (max-width: 560px) {
  .newsListRevised li a {
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }
}

/* Top page: tour video switcher beside recommended tour links */
.movieNewsSeparateArea {
  grid-template-columns: 1.3fr .9fr !important;
}

.tourMovieLayout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(220px, .85fr);
  /*gap: 18px;*/
  align-items: stretch;
}

.tourMoviePlayer {
  min-width: 0;
}

.tourMoviePlayer .travelMovie {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  background: #000;
}

.tourMovieLinks {
  background: #fff;
  /* border-left: 1px solid var(--border);
  padding-left: 18px;*/
}

.tourMovieLinks h3 {
  margin: 0 0 10px;
  color: var(--navy);
  font-size: 17px;
  line-height: 1.4;
}

.tourMovieLink {
  display: flex;
  width: 100%;
  padding: 24px 0;
  border: 0;
  border-top: 1px solid var(--border);
  background: transparent;
  color: #333;
  text-align: left;
  cursor: pointer;
}

.tourMovieLink:last-child {
  border-bottom: 1px solid var(--border);
}

.tourMovieLink .branchName {
  display: block;
  margin-top: 3.5px;
  margin-bottom: 3px;
  margin-left: 10px;
  color: var(--blue);
  font-size: 11px;
  font-weight: bold;
}

.tourMovieLink .tourName {
  display: block;
  font-size: 13px;
  margin-left: 20px;
  line-height: 1.5;
}

.tourMovieLink:hover .tourName,
.tourMovieLink.is-active .tourName {
  color: var(--blue);
  font-weight: bold;
}

.tourMovieLink.is-active {
  background: linear-gradient(90deg, rgba(0, 91, 172, .06), transparent);
}

@media (max-width: 1050px) {
  .tourMovieLayout {
    grid-template-columns: 1fr;
  }

  .tourMovieLinks {
    border-left: 0;
    border-top: 1px solid var(--border);
    padding: 14px 0 0;
  }
}

@media (max-width: 900px) {
  .movieNewsSeparateArea {
    grid-template-columns: 1fr !important;
  }
}


/* Top page: equal height for left movie block and right NEWS block */
.movieNewsSeparateArea {
  align-items: stretch !important;
}

.movieNewsSeparateArea>.travelMovieContent,
.movieNewsSeparateArea>.newsContentBlock {
  height: 100% !important;
}

.movieNewsSeparateArea .travelMovieContent {
  display: flex;
  flex-direction: column;
}

.movieNewsSeparateArea .tourMovieLayout {
  flex: 1;
  height: 100%;
}

.movieNewsSeparateArea .tourMoviePlayer,
.movieNewsSeparateArea .tourMovieLinks {
  height: 100%;
}

.movieNewsSeparateArea .tourMoviePlayer {
  display: flex;
  align-items: stretch;
}

.movieNewsSeparateArea .tourMoviePlayer .travelMovie {
  width: 100%;
  height: 100% !important;
  min-height: 100%;
  aspect-ratio: auto !important;
  object-fit: cover;
}

.movieNewsSeparateArea .newsContentBlock {
  /*display: flex;*/
  flex-direction: column;
}

.movieNewsSeparateArea .newsContentBlock .newsListBox {
  flex: 1;
}

@media (max-width: 900px) {

  .movieNewsSeparateArea>.travelMovieContent,
  .movieNewsSeparateArea>.newsContentBlock {
    height: auto !important;
  }

  .movieNewsSeparateArea .tourMoviePlayer .travelMovie {
    height: auto !important;
    aspect-ratio: 16 / 9 !important;
  }
}


/* Top page: fine-tune NEWS height slightly lower than movie area */
.movieNewsSeparateArea {
  align-items: start !important;
}

.movieNewsSeparateArea>.travelMovieContent {
  /*height: auto !important;*/
}

.movieNewsSeparateArea>.newsContentBlock {
  height: auto !important;
  min-height: 0 !important;
  padding-top: 15px !important;
  padding-bottom: 22px !important;
}

.movieNewsSeparateArea .newsContentBlock .contentHead {
  margin-bottom: 14px !important;
}

.movieNewsSeparateArea .newsListRevised li a {
  padding-top: 4px !important;
  padding-bottom: 4px !important;
}

.movieNewsSeparateArea .tourMovieLayout {
  height: auto !important;
}

.movieNewsSeparateArea .tourMoviePlayer,
.movieNewsSeparateArea .tourMovieLinks {
  height: auto !important;
}

.movieNewsSeparateArea .tourMoviePlayer .travelMovie {
  height: auto !important;
  aspect-ratio: 16 / 9 !important;
}

@media (max-width: 900px) {
  .movieNewsSeparateArea>.newsContentBlock {
    padding-top: 20px !important;
    padding-bottom: 20px !important;
  }
}


/* Top page: clickable China administrative map */
.chinaAdminMapWrap {
  width: 100%;
  overflow: hidden;
}

.chinaAdminMap {
  position: relative;
  width: 100%;
  background: #fff;
}

.chinaAdminMapImg {
  display: block;
  width: 100%;
  height: auto;
}

.provinceHotspot {
  position: absolute;
  display: block;
  z-index: 3;
  border: 1px solid transparent;
  border-radius: 5px;
  background: rgba(0, 91, 172, 0);
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.provinceHotspot span {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  display: none;
  min-width: max-content;
  padding: 4px 7px;
  border-radius: 4px;
  background: rgba(0, 47, 91, .92);
  color: #fff;
  font-size: 11px;
  font-weight: bold;
  line-height: 1.2;
  white-space: nowrap;
  pointer-events: none;
}

.provinceHotspot:hover,
.provinceHotspot:focus {
  border-color: rgba(0, 91, 172, .75);
  background: rgba(0, 91, 172, .13);
  box-shadow: 0 0 0 2px rgba(255, 255, 255, .75) inset;
  outline: none;
}

.provinceHotspot:hover span,
.provinceHotspot:focus span {
  display: block;
}

.mapHelp {
  margin: 10px 0 0;
  color: #777;
  font-size: 12px;
  line-height: 1.6;
}

@media (max-width: 900px) {
  .provinceHotspot span {
    font-size: 10px;
    padding: 3px 5px;
  }
}

@media (max-width: 560px) {
  .chinaAdminMapWrap {
    overflow-x: auto;
  }

  .chinaAdminMap {
    width: 820px;
  }
}


/* 2026-09-20 map block reverted to previous layout with replaced map image */
.mapBlock {
  padding: 18px
}

.mapLead {
  margin: 0 0 12px;
  color: #666
}

.mapArea {
  display: grid;
  grid-template-columns: 1.2fr .85fr;
  gap: 18px;
  align-items: start
}

.chinaMap {
  height: 420px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
  position: relative;
  overflow: hidden
}

.chinaMapImg {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  background: #fff
}

.spotPin {
  position: absolute;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0 0 0 2px;
  font-weight: bold;
  color: #222;
  font-size: 12px;
  line-height: 1;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .9);
  z-index: 3
}

.spotPintw {
  position: absolute;
  transform: translate(-50%, -50%);
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 0 0 0 2px;
  font-weight: bold;
  color: #222;
  font-size: 12px;
  line-height: 1;
  text-shadow: 0 1px 0 rgba(255, 255, 255, .9);
  z-index: 3
}

.spotPin:before {
  content: "";
  display: block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #cf1f2e;
  border: 2px solid #fff;
  box-shadow: 0 0 0 3px rgba(207, 31, 46, .16), 0 2px 8px rgba(0, 0, 0, .16)
}

.spotPin span {
  display: inline-block;
  background: rgba(255, 255, 255, .92);
  padding: 3px 6px;
  border-radius: 999px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, .08)
}

.spotPin:hover span,
.spotPin:focus span {
  background: #0d5bc1;
  color: #fff
}

.spotPin:hover:before,
.spotPin:focus:before {
  transform: scale(1.08)
}

.spotList {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 18px
}

.spotList li a {
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  align-items: center;
  padding: 8px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
  transition: box-shadow .2s ease, border-color .2s ease, transform .2s ease;
  position: relative
}

.spotList li a:after {
  content: "›";
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  font-size: 28px;
  color: #666
}

.spotList li a:hover {
  border-color: #9ebce0;
  box-shadow: 0 4px 14px rgba(15, 55, 110, .08);
  transform: translateY(-1px)
}

.spotPhoto {
  height: 70px;
  border-radius: 4px;
  background: center/cover no-repeat
}

.spotText {
  padding-right: 28px
}

.spotText strong {
  display: block;
  font-size: 18px;
  line-height: 1.3;
  margin-bottom: 6px;
  color: #111
}

.spotText span {
  display: block;
  font-size: 13px;
  line-height: 1.6;
  color: #666
}

.spotQuick {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 14px
}

.spotQuick a {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 40px;
  border: 1px solid var(--border);
  border-radius: 6px;
  background: #fff;
  color: #333;
  font-weight: bold
}

.spotQuick a:hover {
  background: #f4f8fd;
  border-color: #9ebce0
}

@media (max-width: 960px) {
  .mapArea {
    grid-template-columns: 1fr
  }
}

@media (max-width: 640px) {
  .chinaMap {
    height: 320px
  }

  .spotPin {
    font-size: 11px
  }

  .spotPin:before {
    width: 12px;
    height: 12px;
    border-width: 2px;
    box-shadow: 0 0 0 2px rgba(207, 31, 46, .16)
  }

  .spotPin span {
    padding: 2px 5px
  }

  .spotQuick {
    grid-template-columns: repeat(2, 1fr)
  }

  .spotList li a {
    grid-template-columns: 90px 1fr
  }

  .spotPhoto {
    height: 60px
  }
}


/* 2026-09-20 additional marker cities */
.pin-harbin {
  left: 78.5%;
  top: 15.2%
}
.pin-dalian {
  left: 72.5%;
  top: 35.2%;
}
.pin-urumqi {
  left: 31.8%;
  top: 39.0%
}

.pin-chengdu {
  left: 50.6%;
  top: 59.0%
}

.pin-kunming {
  left: 47.4%;
  top: 76.2%
}

.pin-guangzhou {
  left: 66.0%;
  top: 78.2%
}

.pin-hangzhou {
  left: 69.8%;
  top: 60.8%
}

@media (max-width: 640px) {
  .pin-harbin {
    left: 78.0%;
    top: 15.4%
  }

  .pin-urumqi {
    left: 31.2%;
    top: 39.2%
  }

  .pin-chengdu {
    left: 50.2%;
    top: 59.4%
  }

  .pin-kunming {
    left: 47.0%;
    top: 76.4%
  }

  .pin-guangzhou {
    left: 65.6%;
    top: 78.2%
  }

  .pin-hangzhou {
    left: 69.2%;
    top: 60.8%
  }
}


.pin-tianjin {
  left: 69.6%;
  top: 27.2%
}

.pin-lhasa {
  left: 38.6%;
  top: 68.4%
}

.pin-zhengzhou {
  left: 61.7%;
  top: 45.2%
}

.pin-qingdao {
  left: 73.7%;
  top: 43.8%
}

.pin-chongqing {
  left: 53.0%;
  top: 58.8%
}

.pin-wuhan {
  left: 62.0%;
  top: 56.8%
}

.pin-zhangjiajie {
  left: 62.0%;
  top: 56.8%
}

.pin-nanjing {
  left: 69.4%;
  top: 54.0%
}

.pin-shenzhen {
  left: 65.6%;
  top: 81.6%
}

.pin-xiamen {
  left: 69.0%;
  top: 75.2%
}

.pin-sanya {
  left: 60.8%;
  top: 92.0%
}

@media (max-width: 640px) {
  .pin-tianjin {
    left: 69.2%;
    top: 27.4%
  }

  .pin-lhasa {
    left: 38.2%;
    top: 68.4%
  }

  .pin-zhengzhou {
    left: 61.3%;
    top: 45.6%
  }

  .pin-qingdao {
    left: 73.0%;
    top: 44.2%
  }

  .pin-chongqing {
    left: 52.6%;
    top: 59.0%
  }

  .pin-wuhan {
    left: 61.6%;
    top: 57.0%
  }

  .pin-nanjing {
    left: 68.8%;
    top: 54.2%
  }

  .pin-shenzhen {
    left: 65.0%;
    top: 81.8%
  }

  .pin-xiamen {
    left: 68.4%;
    top: 75.4%
  }

  .pin-sanya {
    left: 60.2%;
    top: 91.8%
  }
}


/* 2026-09-20 marker fine tuning: smaller dots and non-overlapping labels */
.chinaMap .spotPin {
  width: 12px !important;
  height: 12px !important;
  padding: 0 !important;
  gap: 0 !important;
  font-size: 10px !important;
  line-height: 1 !important;
  overflow: visible !important;
  display: block !important;
}

.chinaMap .spotPin:before {
  position: absolute !important;
  left: 50% !important;
  top: 50% !important;
  transform: translate(-50%, -50%) !important;
  width: 9px !important;
  height: 9px !important;
  border: 1.5px solid #fff !important;
  box-shadow: 0 0 0 2px rgba(207, 31, 46, .15), 0 1px 4px rgba(0, 0, 0, .18) !important;
}

.chinaMap .spotPin span {
  position: absolute !important;
  left: 14px !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  padding: 2px 4px !important;
  font-size: 10px !important;
  line-height: 1.15 !important;
  white-space: nowrap !important;
  border-radius: 3px !important;
  background: rgba(255, 255, 255, .94) !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .08) !important;
  color: #222 !important;
  text-shadow: none !important;
  z-index: 5 !important;
}

.chinaMap .spotPin:hover span,
.chinaMap .spotPin:focus span {
  background: #0d5bc1 !important;
  color: #fff !important;
}

/* marker position fine tuning */
.pin-beijing {
  left: 66.0% !important;
  top: 27.2% !important
}

.pin-tianjin {
  left: 68.2% !important;
  top: 29.2% !important
}

.pin-harbin {
  left: 79.0% !important;
  top: 16.2% !important
}

.pin-urumqi {
  left: 31.5% !important;
  top: 39.5% !important
}

.pin-lhasa {
  left: 38.8% !important;
  top: 67.6% !important
}

.pin-xian {
  left: 57.2% !important;
  top: 49.0% !important
}

.pin-zhengzhou {
  left: 61.5% !important;
  top: 45.8% !important
}

.pin-qingdao {
  left: 73.6% !important;
  top: 44.8% !important
}

.pin-chongqing {
  left: 53.5% !important;
  top: 59.7% !important
}

.pin-chengdu {
  left: 50.0% !important;
  top: 59.0% !important
}

.pin-kunming {
  left: 47.8% !important;
  top: 76.8% !important
}

.pin-guilin {
  left: 55.8% !important;
  top: 71.8% !important
}

.pin-wuhan {
  left: 62.2% !important;
  top: 57.8% !important
}

.pin-hangzhou {
  left: 70.2% !important;
  top: 61.8% !important
}

.pin-nanjing {
  left: 68.5% !important;
  top: 54.3% !important
}

.pin-shanghai {
  left: 72.3% !important;
  top: 58.2% !important
}

.pin-xiamen {
  left: 69.3% !important;
  top: 75.4% !important
}

.pin-guangzhou {
  left: 65.2% !important;
  top: 78.5% !important
}

.pin-shenzhen {
  left: 66.1% !important;
  top: 81.6% !important
}

.pin-sanya {
  left: 60.7% !important;
  top: 91.0% !important
}

/* label offsets for dense areas */
.pin-beijing span {
  left: -40px !important;
  top: -10px !important;
  transform: none !important
}

.pin-tianjin span {
  left: 10px !important;
  top: 8px !important;
  transform: none !important
}

.pin-harbin span {
  left: 12px !important;
  top: -14px !important;
  transform: none !important
}

.pin-urumqi span {
  left: 12px !important;
  top: -14px !important;
  transform: none !important
}

.pin-lhasa span {
  left: 12px !important;
  top: 8px !important;
  transform: none !important
}

.pin-xian span {
  left: -34px !important;
  top: -14px !important;
  transform: none !important
}

.pin-zhengzhou span {
  left: 12px !important;
  top: -16px !important;
  transform: none !important
}

.pin-qingdao span {
  left: 12px !important;
  top: -14px !important;
  transform: none !important
}

.pin-chongqing span {
  left: 12px !important;
  top: 8px !important;
  transform: none !important
}

.pin-chengdu span {
  left: -34px !important;
  top: -15px !important;
  transform: none !important
}

.pin-kunming span {
  left: -34px !important;
  top: 8px !important;
  transform: none !important
}

.pin-guilin span {
  left: 12px !important;
  top: 8px !important;
  transform: none !important
}

.pin-wuhan span {
  left: -32px !important;
  top: 8px !important;
  transform: none !important
}

.pin-hangzhou span {
  left: 12px !important;
  top: 8px !important;
  transform: none !important
}

.pin-nanjing span {
  left: -34px !important;
  top: -16px !important;
  transform: none !important
}

.pin-shanghai span {
  left: 12px !important;
  top: -14px !important;
  transform: none !important
}

.pin-xiamen span {
  left: 12px !important;
  top: 8px !important;
  transform: none !important
}

.pin-guangzhou span {
  left: -38px !important;
  top: -15px !important;
  transform: none !important
}

.pin-shenzhen span {
  left: 12px !important;
  top: 8px !important;
  transform: none !important
}

.pin-sanya span {
  left: 12px !important;
  top: 8px !important;
  transform: none !important
}

@media (max-width:640px) {
  .chinaMap .spotPin {
    width: 10px !important;
    height: 10px !important;
    font-size: 9px !important
  }

  .chinaMap .spotPin:before {
    width: 8px !important;
    height: 8px !important;
    box-shadow: 0 0 0 1.5px rgba(207, 31, 46, .15) !important
  }

  .chinaMap .spotPin span {
    font-size: 9px !important;
    padding: 2px 3px !important
  }
}


/* 2026-09-20 marker refinement: smaller pins, map-aligned positions, non-overlapping labels */
.chinaMap .spotPin {
  width: 8px !important;
  height: 8px !important;
  font-size: 9px !important;
  z-index: 6 !important;
}

.chinaMap .spotPin:before {
  width: 7px !important;
  height: 7px !important;
  border: 1px solid #fff !important;
  box-shadow: 0 0 0 1.5px rgba(207, 31, 46, .16), 0 1px 3px rgba(0, 0, 0, .18) !important;
}

.chinaMap .spotPin span {
  padding: 1px 3px !important;
  font-size: 9px !important;
  line-height: 1.1 !important;
  border-radius: 3px !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 1px 3px rgba(0, 0, 0, .10) !important;
}

/* marker positions tuned to the supplied map */
.pin-beijing {
  left: 66.4% !important;
  top: 27.5% !important
}

.pin-tianjin {
  left: 68.6% !important;
  top: 29.3% !important
}

.pin-harbin {
  left: 79.2% !important;
  top: 16.0% !important
}

.pin-urumqi {
  left: 31.1% !important;
  top: 39.0% !important
}

.pin-lhasa {
  left: 38.4% !important;
  top: 67.8% !important
}

.pin-xian {
  left: 57.6% !important;
  top: 49.2% !important
}

.pin-zhengzhou {
  left: 61.7% !important;
  top: 46.1% !important
}

.pin-qingdao {
  left: 73.8% !important;
  top: 44.7% !important
}

.pin-chongqing {
  left: 53.7% !important;
  top: 59.9% !important
}

.pin-chengdu {
  left: 50.4% !important;
  top: 59.2% !important
}

.pin-kunming {
  left: 47.5% !important;
  top: 76.9% !important
}

.pin-guilin {
  left: 55.9% !important;
  top: 72.2% !important
}

.pin-wuhan {
  left: 62.5% !important;
  top: 58.1% !important
}

.pin-hangzhou {
  left: 70.4% !important;
  top: 62.1% !important
}

.pin-nanjing {
  left: 68.7% !important;
  top: 54.5% !important
}

.pin-shanghai {
  left: 72.6% !important;
  top: 58.6% !important
}

.pin-xiamen {
  left: 69.5% !important;
  top: 75.6% !important
}

.pin-guangzhou {
  left: 65.4% !important;
  top: 78.6% !important
}

.pin-shenzhen {
  left: 66.4% !important;
  top: 81.7% !important
}

.pin-sanya {
  left: 60.9% !important;
  top: 91.1% !important
}

/* label offsets: dense areas separated in alternating directions */
.pin-beijing span {
  left: -30px !important;
  top: -12px !important;
  transform: none !important
}

.pin-tianjin span {
  left: 8px !important;
  top: 7px !important;
  transform: none !important
}

.pin-harbin span {
  left: 9px !important;
  top: -12px !important;
  transform: none !important
}

.pin-urumqi span {
  left: 9px !important;
  top: -12px !important;
  transform: none !important
}

.pin-lhasa span {
  left: 9px !important;
  top: 6px !important;
  transform: none !important
}

.pin-xian span {
  left: -26px !important;
  top: -12px !important;
  transform: none !important
}

.pin-zhengzhou span {
  left: 9px !important;
  top: -14px !important;
  transform: none !important
}

.pin-qingdao span {
  left: 9px !important;
  top: -12px !important;
  transform: none !important
}

.pin-chengdu span {
  left: -28px !important;
  top: -13px !important;
  transform: none !important
}

.pin-chongqing span {
  left: 9px !important;
  top: 7px !important;
  transform: none !important
}

.pin-wuhan span {
  left: -25px !important;
  top: 7px !important;
  transform: none !important
}

.pin-nanjing span {
  left: -27px !important;
  top: -14px !important;
  transform: none !important
}

.pin-shanghai span {
  left: 9px !important;
  top: -13px !important;
  transform: none !important
}

.pin-hangzhou span {
  left: 9px !important;
  top: 7px !important;
  transform: none !important
}

.pin-xiamen span {
  left: 9px !important;
  top: -13px !important;
  transform: none !important
}

.pin-guangzhou span {
  left: -31px !important;
  top: -13px !important;
  transform: none !important
}

.pin-shenzhen span {
  left: 9px !important;
  top: 7px !important;
  transform: none !important
}

.pin-kunming span {
  left: -28px !important;
  top: 7px !important;
  transform: none !important
}

.pin-guilin span {
  left: 9px !important;
  top: 7px !important;
  transform: none !important
}

.pin-sanya span {
  left: 9px !important;
  top: 7px !important;
  transform: none !important
}

@media (max-width:640px) {
  .chinaMap .spotPin {
    width: 7px !important;
    height: 7px !important;
    font-size: 8px !important
  }

  .chinaMap .spotPin:before {
    width: 6px !important;
    height: 6px !important;
    box-shadow: 0 0 0 1px rgba(207, 31, 46, .16) !important
  }

  .chinaMap .spotPin span {
    font-size: 8px !important;
    padding: 1px 2px !important
  }
}


/* 2026-09-20 map enlarged + markers slightly larger + reposition tuned */
.mapArea {
  grid-template-columns: 1.34fr .78fr !important;
  align-items: start !important
}

.chinaMap {
  width: 100% !important;
  height: auto !important;
  min-height: 500px !important;
  aspect-ratio: 2048/1466 !important;
  border: 1px solid var(--border) !important;
}

.chinaMapImg {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
}

.chinaMap .spotPin {
  width: 10px !important;
  height: 10px !important;
  font-size: 10px !important;
  z-index: 6 !important;
  opacity: 0.9;
}

.chinaMap .spotPin:before {
  width: 9px !important;
  height: 9px !important;
  border: 1.5px solid #fff !important;
  box-shadow: 0 0 0 2px rgba(207, 31, 46, .16), 0 1px 4px rgba(0, 0, 0, .18) !important;
}

.chinaMap .spotPin span {
  padding: 2px 4px !important;
  font-size: 10px !important;
  line-height: 1.15 !important;
  border-radius: 4px !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .10) !important;
}

.chinaMap .spotPintw {
  height: 10px !important;
  font-size: 10px !important;
  z-index: 6 !important;
  opacity: 0.7;
}

.chinaMap .spotPintw:before {
  width: 9px !important;
  height: 9px !important;
  border: 1.5px solid #fff !important;
  box-shadow: 0 0 0 2px rgba(207, 31, 46, .16), 0 1px 4px rgba(0, 0, 0, .18) !important;
}

.chinaMap .spotPintw span {
  padding: 2px 4px !important;
  font-size: 10px !important;
  line-height: 1.15 !important;
  border-radius: 4px !important;
  background: rgba(255, 255, 255, .96) !important;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .10) !important;
}


.chinaMap .spotPin:hover span,
.chinaMap .spotPin:focus span {
  background: #0d5bc1 !important;
  color: #fff !important;
}

/* positions re-tuned for the larger map image */
.pin-beijing {
  left: 66.2% !important;
  top: 27.4% !important
}

.pin-tianjin {
  left: 68.1% !important;
  top: 29.0% !important
}

.pin-harbin {
  left: 79.1% !important;
  top: 16.1% !important
}

.pin-urumqi {
  left: 31.0% !important;
  top: 39.0% !important
}

.pin-lhasa {
  left: 38.5% !important;
  top: 67.8% !important
}

.pin-xian {
  left: 57.6% !important;
  top: 49.1% !important
}

.pin-zhengzhou {
  left: 61.6% !important;
  top: 46.3% !important
}

.pin-qingdao {
  left: 73.6% !important;
  top: 44.8% !important
}

.pin-chongqing {
  left: 53.6% !important;
  top: 60.0% !important
}

.pin-chengdu {
  left: 50.3% !important;
  top: 59.1% !important
}

.pin-kunming {
  left: 47.4% !important;
  top: 76.9% !important
}

.pin-guilin {
  left: 56.0% !important;
  top: 72.3% !important
}

.pin-wuhan {
  left: 62.4% !important;
  top: 58.1% !important
}

.pin-hangzhou {
  left: 70.1% !important;
  top: 62.2% !important
}

.pin-nanjing {
  left: 68.4% !important;
  top: 54.7% !important
}

.pin-shanghai {
  left: 72.3% !important;
  top: 58.8% !important
}

.pin-xiamen {
  left: 69.3% !important;
  top: 75.7% !important
}

.pin-guangzhou {
  left: 65.1% !important;
  top: 78.6% !important
}

.pin-shenzhen {
  left: 66.1% !important;
  top: 81.6% !important
}

.pin-sanya {
  left: 60.8% !important;
  top: 91.1% !important
}

/* label offsets adjusted so dense areas remain readable */
.pin-beijing span {
  left: -34px !important;
  top: -14px !important;
  position: relative
}

.pin-tianjin span {
  left: 8px !important;
  top: 8px !important;
  position: relative
}

.pin-harbin span {
  left: 8px !important;
  top: -13px !important;
  position: relative
}

.pin-urumqi span {
  left: 8px !important;
  top: -13px !important;
  position: relative
}

.pin-lhasa span {
  left: 8px !important;
  top: 8px !important;
  position: relative
}

.pin-xian span {
  left: -28px !important;
  top: -14px !important;
  position: relative
}

.pin-zhengzhou span {
  left: 8px !important;
  top: -14px !important;
  position: relative
}

.pin-qingdao span {
  left: 8px !important;
  top: -13px !important;
  position: relative
}

.pin-chengdu span {
  left: -30px !important;
  top: -14px !important;
  position: relative
}

.pin-chongqing span {
  left: 8px !important;
  top: 8px !important;
  position: relative
}

.pin-wuhan span {
  left: -27px !important;
  top: 8px !important;
  position: relative
}

.pin-nanjing span {
  left: -28px !important;
  top: -14px !important;
  position: relative
}

.pin-shanghai span {
  left: 8px !important;
  top: -14px !important;
  position: relative
}

.pin-hangzhou span {
  left: 8px !important;
  top: 8px !important;
  position: relative
}

.pin-xiamen span {
  left: 8px !important;
  top: -14px !important;
  position: relative
}

.pin-guangzhou span {
  left: -34px !important;
  top: -13px !important;
  position: relative
}

.pin-shenzhen span {
  left: 8px !important;
  top: 8px !important;
  position: relative
}

.pin-kunming span {
  left: -30px !important;
  top: 8px !important;
  position: relative
}

.pin-guilin span {
  left: 8px !important;
  top: 8px !important;
  position: relative
}

.pin-sanya span {
  left: 8px !important;
  top: 8px !important;
  position: relative
}

@media (max-width: 1024px) {
  .mapArea {
    grid-template-columns: 1fr !important;
    gap: 14px !important
  }

  .chinaMap {
    min-height: 420px !important
  }
}

@media (max-width:640px) {
  .chinaMap {
    min-height: 320px !important
  }

  .chinaMap .spotPin {
    width: 8px !important;
    height: 8px !important;
    font-size: 8px !important
  }

  .chinaMap .spotPin:before {
    width: 7px !important;
    height: 7px !important;
    box-shadow: 0 0 0 1px rgba(207, 31, 46, .16) !important
  }

  .chinaMap .spotPin span {
    font-size: 8px !important;
    padding: 1px 3px !important
  }
}


/* 2026-09-20 map crop: reduce white space, enlarge China map, restore right column width */
.mapArea {
  grid-template-columns: 1.2fr .85fr !important;
  gap: 18px !important;
  align-items: start !important;
}

.chinaMap {
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  aspect-ratio: 1555/1219 !important;
  overflow: hidden !important;
  background: #fff !important;
}

.chinaMapImg {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
}

.pin-beijing {
  left: 62.8% !important;
  top: 39.58% !important;
}

.pin-tianjin {
  left: 64.50% !important;
  top: 42.51% !important;
}

.pin-harbin {
  left: 75.46% !important;
  top: 22.99% !important
}

.pin-urumqi {
  left: 23.11% !important;
  top: 25.53% !important;
}

.pin-lhasa {
  left: 23.99% !important;
  top: 63.17% !important;
}

.pin-xian {
  left: 52.14% !important;
  top: 54.68% !important;
}

.pin-shanxi {
  left: 57.14% !important;
  top: 48.68% !important;
}

.pin-gansu {
  left: 44.14% !important;
  top: 52.68% !important;
}

.pin-qinghai {
  left: 33.14% !important;
  top: 48.68% !important;
}

.pin-zhengzhou {
  left: 59.41% !important;
  top: 53.31% !important;
}

.pin-anhui {
  left: 64.41% !important;
  top: 60.31% !important;
}

.pin-qingdao {
  left: 69.21% !important;
  top: 48.51% !important;
}

.pin-chongqing {
  left: 47.87% !important;
  top: 66.79% !important;
}

.pin-chengdu {
  left: 44.53% !important;
  top: 63.71% !important;
}

.pin-kunming {
  left: 40.71% !important;
  top: 78.11% !important;
}

.pin-guilin {
  left: 54.03% !important;
  top: 78.58% !important;
}

.pin-wuhan {
  left: 59.46% !important;
  top: 64.51% !important;
}
.pin-jiangxi {
  left: 63.46% !important;
  top: 70.51% !important;
}
.pin-zhangjiajie {
  left: 55.46% !important;
  top: 70.51% !important;
}
.pin-hangzhou {
  left: 70.6% !important;
  top: 65.44% !important;
}

.pin-nanjing {
  left: 69.07% !important;
  top: 57.02% !important;
}

.pin-shanghai {
  left: 72.5% !important;
  top: 61.35% !important;
}

.pin-xiamen {
  left: 67.55% !important;
  top: 74.67% !important;
}

.pin-guangzhou {
  left: 60.02% !important;
  top: 82.16% !important;
}
.pin-xianggang {
  left: 62.02% !important;
  top: 85.16% !important;
}
.pin-taiwan {
  left: 73.04% !important;
  top: 80.77% !important;
}

.pin-sanya {
  left: 53.36% !important;
  top: 93.19% !important;
}

@media (max-width:1024px) {
  .mapArea {
    grid-template-columns: 1fr !important
  }

  .chinaMap {
    aspect-ratio: 1555/1219 !important
  }
}


/* 2026-09-20 map whitespace removal */
.mapArea .chinaMap {
  margin: 0 !important;
  padding: 0 !important;
  aspect-ratio: 1905 / 1432 !important;
  overflow: hidden !important;
  background: #fff !important;
}

.mapArea .chinaMapImg {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  object-fit: cover !important;
}

.mapArea {
  align-items: stretch !important;
}


/* Top page: right-center floating Weixin QR + member registration */
body.topNoSidebar .floatingQuickPanel {
  position: fixed;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 160px;
  z-index: 980;
  border: 1px solid #d7e2ef;
  border-radius: 10px;
  overflow: hidden;
  cursor: move;
  user-select: none;
  background: #fff;
  box-shadow: 0 8px 26px rgba(20, 55, 90, .16);
}

body.topNoSidebar .floatingWeixin {
  padding: 10px 8px 9px;
  text-align: center;
  background: #fff;
}

body.topNoSidebar .floatingWeixinLabel {
  margin-bottom: 6px;
  color: #15964a;
  font-size: 14px;
  font-weight: 800;
  letter-spacing: .02em;
}

body.topNoSidebar .floatingQrBox {
  width: 120px;
  height: 120px;
  margin: 0 auto 6px;
  border: 1px solid #fff;
  background-image: url("/common/images/bnr_right_wechat.jpg");

  background-size: 120px 120px;
  background-color: #fff;
  box-shadow: 0 0 0 1px #cbd5e1;
}

body.topNoSidebar .floatingWeixin p {
  margin: 0;
  color: #555;
  font-size: 10px;
  line-height: 1.3;
}

body.topNoSidebar .floatingMemberButton {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 60px;
  padding: 10px 6px;
  background: var(--blue);
  color: #fff;
  text-align: center;
  text-decoration: none;
  border-top: 1px solid rgba(255, 255, 255, .25);
  transition: background .2s ease;
}

body.topNoSidebar .floatingMemberButton:hover {
  background: #004887;
}

body.topNoSidebar .floatingMemberButton span {
  font-size: 14px;
  font-weight: 800;
  line-height: 1.2;
}

body.topNoSidebar .floatingMemberButton small {
  margin-top: 3px;
  font-size: 9px;
  letter-spacing: .08em;
  opacity: .82;
}

@media (max-width:1180px) {
  body.topNoSidebar .floatingQuickPanel {
    right: 8px;
    width: 96px;
  }

  body.topNoSidebar .floatingQrBox {
    width: 68px;
    height: 68px;
  }
}

@media (max-width:900px) {
  body.topNoSidebar .floatingQuickPanel {
    position: static;
    width: auto;
    margin: 18px 16px;
    transform: none;
    display: grid;
    grid-template-columns: 1fr 1fr;
    border-radius: 8px;
  }

  body.topNoSidebar .floatingWeixin {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    padding: 10px;
  }

  body.topNoSidebar .floatingWeixinLabel {
    margin: 0;
  }

  body.topNoSidebar .floatingQrBox {
    width: 58px;
    height: 58px;
    margin: 0;
  }

  body.topNoSidebar .floatingWeixin p {
    display: none;
  }

  body.topNoSidebar .floatingMemberButton {
    min-height: 80px;
  }
}

/* TOP: search form on left / slider on right */
body.topNoSidebar .heroSearchSlider {
  display: grid;
  grid-template-columns: 350px minmax(0, 1fr);
  gap: 20px;
  align-items: stretch;
  margin: 0 0 18px;
}


body.topNoSidebar .heroSearchSlider .searchBlock {
  position: static !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  float: none !important;
  width: auto !important;
  height: 254px;
  /*margin: 0 !important;*/
  padding: 22px 20px;
  opacity: 1;
  z-index: auto;
  overflow: visible;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

body.topNoSidebar .heroSearchSlider .searchForm {
  width: 100%;
}

body.topNoSidebar .heroSearchSlider .searchMargin {
  margin: 18px 0 16px;
}

body.topNoSidebar .heroSearchSlider .searchMargin-align {
  margin: 22px 0 0;
  text-align: right;
}

body.topNoSidebar .heroSearchSlider .searchForm input[type="text"] {
  width: 100%;
  max-width: none;
}

body.topNoSidebar .heroSearchSlider .searchForm button {
  min-width: 150px;
  height: 46px;
  padding: 0 22px;
}

body.topNoSidebar .heroSearchSlider .centerBanner {
  min-width: 0;
  margin: 0 !important;
  padding: 0 !important;
  overflow: hidden;
}

body.topNoSidebar .heroSearchSlider #slider {
  margin: 0;
}

body.topNoSidebar .heroSearchSlider #slider .slides,
body.topNoSidebar .heroSearchSlider #slider .slides > li {
  height: 430px !important;
}

body.topNoSidebar .heroSearchSlider #slider .slides > li img {
  width: 100%;
  height: 430px;
  /*object-fit: cover;*/
}

body.topNoSidebar .heroSearchSlider #thumbnails {
  margin-top: 16px;
}

@media (max-width: 900px) {
  body.topNoSidebar .heroSearchSlider {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  body.topNoSidebar .heroSearchSlider .searchBlock {
    padding: 18px;
  }

  body.topNoSidebar .heroSearchSlider #slider .slides,
  body.topNoSidebar .heroSearchSlider #slider .slides > li,
  body.topNoSidebar .heroSearchSlider #slider .slides > li img {
    height: auto !important;
    min-height: 0;
  }
}


/* =========================================================
   TOP left cards: designed search / charter panels
   ========================================================= */

/* common card settings */
body.topNoSidebar .heroSearchSlider .block1 > .searchBlock {
  position: relative !important;
  left: auto !important;
  top: auto !important;
  transform: none !important;
  float: none !important;
  width: auto !important;
  height: 254px;
  margin: 0 0 18px !important;
  padding: 22px 20px;
  opacity: 1;
  z-index: auto;
  overflow: hidden !important;
  border: 1px solid #d7e2ef;
  border-radius: 10px;
  background-color: #fff;
  box-shadow: 0 8px 24px rgba(20,55,90,.10) !important;
}

/* -------------------------
   Tour search card
   ------------------------- */
body.topNoSidebar .heroSearchSlider .tourSearchCard {
  justify-content: flex-start !important;
  background-image:
    linear-gradient(
      90deg,
      rgba(255,255,255,.97) 0%,
      rgba(255,255,255,.94) 54%,
      rgba(255,255,255,.72) 76%,
      rgba(255,255,255,.20) 100%
    ),
    url("../images/search-tour-bg.png") !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
}

.tourSearchHead {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.tourSearchCard h2 {
  margin: 0 !important;
  color: #0b2f5b !important;
  font-size: 23px !important;
  line-height: 1.25;
  font-weight: 800;
}

.tourSearchLead {
  margin: 5px 0 0;
  color: #62738a;
  font-size: 12px;
  line-height: 1.4;
}

.tourSearchLead:after {
  content: "";
  display: block;
  width: 34px;
  height: 2px;
  margin-top: 7px;
  background: #1785d1;
}

.tourSearchPin {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  color: #0575cf;
  opacity: .95;
}

.tourSearchPin svg {
  display: block;
  width: 100%;
  height: 100%;
}

body.topNoSidebar .tourSearchCard .searchForm {
  position: relative;
  z-index: 2;
  width: 100%;
}

body.topNoSidebar .tourSearchCard .searchMargin {
  margin: 15px 0 10px !important;
}

.tourSearchInputWrap {
  position: relative;
}

.tourSearchInputIcon {
  position: absolute;
  left: 13px;
  top: 50%;
  transform: translateY(-50%);
  width: 21px;
  height: 21px;
  color: #006bc7;
  pointer-events: none;
}

.tourSearchInputIcon svg {
  width: 100%;
  height: 100%;
}

body.topNoSidebar .tourSearchCard .searchForm input[type="text"] {
  width: 100% !important;
  height: 42px !important;
  padding: 0 12px 0 43px !important;
  border: 1px solid #cbd8e8 !important;
  border-radius: 5px !important;
  background: rgba(255,255,255,.94) !important;
  font-size: 13px !important;
  box-shadow: 0 2px 8px rgba(10,47,91,.05);
}

.tourDayOptions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px 12px;
}

.tourDayOption {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  min-width: 62px;
  color: #0b2f5b;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
}

.tourDayOption input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 15px !important;
  height: 15px !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 1px solid #8093aa !important;
  border-radius: 3px !important;
  background: rgba(255,255,255,.94) !important;
  position: relative;
  cursor: pointer;
}

.tourDayOption input[type="checkbox"]:checked {
  border-color: #006bc7 !important;
  background: #006bc7 !important;
}

.tourDayOption input[type="checkbox"]:checked:after {
  content: "";
  position: absolute;
  left: 4px;
  top: 1px;
  width: 4px;
  height: 8px;
  border: solid #fff;
  border-width: 0 2px 2px 0;
  transform: rotate(45deg);
}

body.topNoSidebar .tourSearchCard .searchMargin-align {
  margin: 12px 0 0 !important;
  text-align: left !important;
}

body.topNoSidebar .tourSearchCard .tourSearchButton {
  width: 100%;
  min-width: 0 !important;
  height: 42px !important;
  padding: 0 14px !important;
  display: grid;
  grid-template-columns: 28px 1fr 20px;
  align-items: center;
  gap: 6px;
  border: 0 !important;
  border-radius: 24px !important;
  background: linear-gradient(180deg,#1497ed,#0069ca) !important;
  color: #fff;
  font-size: 16px !important;
  font-weight: 800;
  box-shadow: 0 5px 12px rgba(0,91,172,.22) !important;
  cursor: pointer;
}

.tourSearchButtonIcon {
  width: 22px;
  height: 22px;
}

.tourSearchButtonIcon svg {
  width: 100%;
  height: 100%;
}

.tourSearchArrow {
  font-size: 26px;
  font-weight: 400;
  line-height: 1;
}

/* -------------------------
   Charter card
   ------------------------- */
body.topNoSidebar .heroSearchSlider .charterPromoCard {
  justify-content: flex-start !important;
  padding: 0 !important;
  background-image:
    linear-gradient(
      90deg,
      rgba(255,255,255,.97) 0%,
      rgba(255,255,255,.91) 43%,
      rgba(255,255,255,.50) 64%,
      rgba(255,255,255,.05) 100%
    ),
    url("../images/charter-bg.png") !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  background-position: center center !important;
}

.charterPromoContent {
  position: relative;
  z-index: 2;
  height: 100%;
  padding: 20px 18px 15px;
  display: flex;
  flex-direction: column;
}

.charterPromoText h2 {
  margin: 0 !important;
  color: #0b2f5b !important;
  font-size: 24px !important;
  font-weight: 800;
  line-height: 1.2;
}

.charterPromoText p {
  margin: 6px 0 0;
  color: #25466c;
  font-size: 12px;
  line-height: 1.55;
  font-weight: 600;
}

.charterFeatureList {
  display: flex;
  gap: 10px;
  margin-top: 13px;
}

.charterFeature {
  min-width: 67px;
  text-align: center;
  color: #0b2f5b;
}

.charterFeatureIcon {
  width: 38px;
  height: 38px;
  margin: 0 auto 5px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: rgba(255,255,255,.95);
  color: #0771cc;
  box-shadow: 0 3px 9px rgba(0,91,172,.12);
}

.charterFeatureIcon svg {
  width: 23px;
  height: 23px;
}

.charterFeature strong,
.charterFeature small {
  display: block;
}

.charterFeature strong {
  font-size: 13px;
  line-height: 1.2;
  font-weight: 800;
}

.charterFeature small {
  margin-top: 2px;
  color: #516b86;
  font-size: 11px;
  line-height: 1.2;
}

.charterPromoButton {
  margin-top: auto;
  min-height: 34px;
  padding: 0 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  border: 1px solid #0572ca;
  border-radius: 20px;
  background: rgba(255,255,255,.90);
  color: #0067bd !important;
  font-size: 12px;
  font-weight: 800;
  text-align: center;
  box-shadow: 0 2px 8px rgba(0,91,172,.08);
}

.charterPromoButton:hover {
  background: #006fca;
  color: #fff !important;
}

.charterPromoButton span:last-child {
  margin-left: auto;
  font-size: 22px;
  line-height: 1;
}

@media (max-width: 900px) {
  body.topNoSidebar .heroSearchSlider .block1 > .searchBlock {
    height: auto;
    min-height: 250px;
  }

  body.topNoSidebar .heroSearchSlider .tourSearchCard {
    background-position: 72% center !important;
  }

  body.topNoSidebar .heroSearchSlider .charterPromoCard {
    background-position: 68% center !important;
  }
}
