/* GOOGLE */
.contentBox .cmnCardList__item .google-auto-placed {
    display: none !important;
}

/* HEADER */
/* LANG */
.lang_menu {
    position: relative;

}
.lang_menu a {
    color: #333;
    text-decoration: none;
}
.lang_menu .sub-menu {
    display: none;
    position: absolute;
    right: 0;
    background-color: #f9f9f9;
    box-shadow: 0px 8px 16px 0px rgba(0, 0, 0, 0.2);
    padding: 12px 16px;
    z-index: 1;
}
.lang_menu {
    position: relative;
    display: inline-block;
}

.lang_menu:hover .sub-menu {
    display: block;
}
.lang_menu>ul>li.has-dropdown>a::after {
    font-family: "Font Awesome 5 Free";
    font-weight: 600;
    font-size: 10px;
    content: "\f078";
    margin-left: 15px;
}
.lang_menu>ul>li>a::before {
    content: '';
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/icon/icon_lang_black.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    text-indent: 100%;
    width: 30px;
    height: 30px;
    max-width: 30px;
    margin-right: 10px;
}

.lang_menu ul .wpml-ls-menu-item a:hover {
    color: #C1282F;
}
.lang_menu ul .wpml-ls-menu-item li:first-child {
    margin-bottom: 10px;
}
.gnav__customMenu>ul>li {
    border-left: 1px #AAAAAA solid;
}

.gnav__customMenu>ul>li:first-child,
.gnav__customMenu>ul>li:last-child {
    border: none;
}

.gnav__customMenu>ul>li:first-child ul {
    /*padding-left: 0;*/
}

.gnav__customMenu>ul>li:first-child a {
    padding-left: 0;
}

.gnav__customMenu>ul>li>a {
    display: flex;
    align-items: center;
}

.gnav__customMenu>ul>li>a::after {
    /*font-family: "Font Awesome 5 Free";
    font-weight: 600;
    font-size: 10px;
    content: "\f078";
    margin-left: 15px;*/
}

.gnav__customMenu>ul>li>a:last-child::after {
    content: "";
}

.gnav__customMenu>ul>li>ul>li>a::after {
    content: none;
}


@media screen and (max-width: 767px) {
    .gnav__customMenu>ul>li:first-child a {
        padding: 14px 16px;
    }
}


/* SINGLE TICKET */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
}
.banner-single {
width: 100%;
max-width: 1200px;
height: 250px;
margin: 0 auto;
position: relative;
margin-bottom: 30px;
overflow: hidden;
}

.banner-half {
width: 50%;
height: 100%;
position: absolute;
overflow: visible;
/* ตัดขอบขวาให้เฉียง แทนตัดตรงแนวตั้งปกติ */
/*clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);*/
z-index: 99;
}

.banner-half img {
width: 100%;
height: 100%;
object-fit: cover; /* รูปไม่บิดเบี้ยว ไม่เอียงตาม container */
display: block;
}
.shadow-wrap {
position: absolute;
inset: 0;
filter: drop-shadow(8px 0 12px rgba(0, 0, 0, 0.45));
}
.banner-half .img-wrap {
position: absolute;
inset: 0;
overflow: hidden;
clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
background: #000
}

.banner-half .caption {
position: absolute;
bottom: 24px;
left: 24px;
color: #fff;
font-size: 20px;
font-weight: 600;
text-shadow: 0 2px 6px rgba(0,0,0,.5);
z-index: 2;
max-width: 76%;
}
.banner-single .fav_pass {
position:absolute;    
right: 10px;
bottom: 10px;
padding: 8px;
background: #ffffff;
z-index: 100;
border-radius: 50%;
}
.banner-single .fav_pass .ccc-favorite-post-toggle > a {
padding: 0;
height: 24px;
}
.slider-container {
width: 100%;
height: 100%;
overflow: hidden;
background: #ffffff;
}

.banner-single .slider-track {
display: flex;
width: max-content;
animation: scroll-left 20s linear infinite;
will-change: transform;
backface-visibility: hidden;
}

.banner-single .slider-track img {
height: 260px;
width: 380px;
object-fit: cover;
margin-right: 10px;
flex-shrink: 0;
}

@keyframes scroll-left {
from { transform: translate3d(0, 0, 0); }
to { transform: translate3d(-50%, 0, 0); }
}
.banner-single .caption h1 {
text-decoration: none;
margin: 0;
border: none;
font-size: 36px;
line-height: 1.2;
}
.railways_group-list {
position: relative;
align-content: center;
padding-left: 30px;
color: #c1282f;
display: inline-block;
background: #fff;
text-shadow: none;
border-radius: 20px;
padding: 5px 20px 5px 50px;
font-size: 16px;
font-weight: 500;
}
.railways_group-list::before {
content: "";
position: absolute;
background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/Train_Vector.png);
background-size: 20px;
background-repeat: no-repeat;
width: 20px;
height: 10px;
left: 20px;
top: 50%;
transform: translate(0, -50%);
}

@media (max-width:992px) {
.banner-half {
width: 60%;
}
.caption h1 {
font-size:32px;
}
}
@media (max-width:767px) {
.banner-single {
height: 150px;
margin-bottom: 15px;
}
.banner-half {
width: 100%;
}
.banner-half .img-wrap {
clip-path: none;
}
.banner-half img {
filter: brightness(0.8);
}
.banner-half .caption {
width: 100%;
max-width: 80%;
text-align: center;
bottom: 10%;
left: 50%;
transform: translate(-50%, 0);
}
.caption h1 {
font-size: 24px;
line-height: 1.2;
}
.railways_group-list {
padding: 5px 10px 5px 30px;
font-size: 10px;
font-weight: 500;
}
.railways_group-list::before {
background-size: 15px;
width: 15px;
height: 10px;
left: 10px;
}
.slider-container {
display: none;
}
.banner-single .fav_pass {
bottom: unset;
top: 0;
right: 0;
transform: scale(0.7);
}
}
.railways_group {
position: relative;
align-content: center;
padding-left: 40px;
color: #c1282f;
margin-bottom: 10px;
}

.railways_group::before {
content: "";
position: absolute;
background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/Train_Vector.png);
background-size: 30px;
background-repeat: no-repeat;
width: 30px;
height: 20px;
left: 0;
top: 50%;
transform: translate(0, -50%);
}

img.alignleft,
img.alignright,
img.aligncenter,
img.alignnone {
float: none;
display: block;
height: auto;
max-width: 100%;
}

img.alignnone {
margin: unset;
}

img.alignleft {
margin-right: auto;
margin-left: 0;
}

img.aligncenter {
margin-left: auto;
margin-right: auto;
}

img.alignright {
margin-left: auto;
margin-right: 0;
}

.ticket-page .btn-group {
display: flex;
justify-content: center;
grid-gap: 15px;
margin-top: 16px;
}

.ticket-page .btn-group a {
display: inline-block;
text-align: center;
text-decoration: none;
border-radius: 10px;
padding: 10px 20px;
min-width: 200px;
background-color: #c1282f;
color: #fff;
transition: 0.5s;
}

.ticket-page .btn-group a:hover {
transform: scale(1.1);
background-color: #cd5359;
}

@media (max-width:767px) {
.ticket-page .btn-group {
flex-direction: column;
}

.ticket-page .btn-group a {
min-width: auto;
}
}

.body-wrap {
position: relative;
z-index: 2;
}

.cover {
display: none;
position: absolute;
bottom: -2px;
left: 0;
width: 100%;
height: 3px;
background: #fff;
z-index: 4;
}

.body-wrap .body-panel {
background: #fff;
border: 0.5px solid #bbb;
border-radius: 0 0 8px 8px;
padding: 1.5rem;
min-height: 160px;
}

.body-wrap .body-panel .tab-content h3 {
font-size: 24px;
margin-bottom: 20px;
}

.body-wrap .body-panel .tab-content img {
object-fit: cover;
padding-left: 25px;
background: #000;
max-height: 350px;
}

.anchor-links {
display: flex;
flex-wrap: wrap;
gap: 8px;
padding: 1rem 0;
}

.anchor-links a {
font-size: 13px;
color: #185FA5;
text-decoration: none;
padding: 4px 12px;
border: 0.5px solid rgba(0, 0, 0, 0.15);
border-radius: 8px;
background: #fff;
transition: background 0.15s;
}

.anchor-links a:hover {
background: #f5f5f5;
}

.tab-nav {
display: flex;
gap: 4px;
overflow-x: auto;
overflow-y: visible;
padding-bottom: 4px;
margin-bottom: -4px;
scrollbar-width: none;
}

.tab-nav::-webkit-scrollbar {
display: none;
}

.tab-btn {
position: relative;
padding: 10px;
font-size: 14px;
color: #888;
background: #f0f0f0;
border-top: 0.5px solid #bbb;
border-left: 0.5px solid #bbb;
border-right: 0.5px solid #bbb;
border-bottom: none;
border-radius: 8px 8px 0 0;
cursor: pointer;
user-select: none;
box-sizing: border-box;
transition: color 0.15s, background 0.15s;
white-space: nowrap;
}

.tab-btn:hover:not(.active) {
color: #555;
background: #fff;
}

.tab-btn.active {
font-weight: 500;
color: #111;
background: #fff;
border-top: 0.5px solid #bbb;
border-left: 0.5px solid #bbb;
border-right: 0.5px solid #bbb;
border-bottom: 2px solid #fff;
position: relative;
z-index: 3;
margin-bottom: -1px;
}

.tab-btn.active .cover {
display: block;
}

.tab-btn:focus,
.tab-btn:focus-visible {
outline: none;
}

.tab-content {
display: none;
padding: 1.5rem 0;
}

.tab-content.active {
display: block;
}

@media (max-width:767px) {
.tab-content {
padding: 0;
}

.body-wrap .body-panel .tab-content h3 {
font-size: 18px;
}
}
.slick-prev,
.slick-next {
background: unset;
}

.slick-prev:before,
.slick-next:before {
color: #cf2e2e;
}

.ticket-detail {
margin: 30px 0;
}

.ticket-detail p {
word-wrap: break-word;
overflow-wrap: break-word;
margin-bottom: 10px;
}


.ticket-page #gallery {
margin-bottom: 30px;
}

.ticket-page .slick-initialized .slick-slide {
display: block;
height: auto;
}

.ticket-page h2,
.ticket-page h3 {
font-size: 30px;
}

.ticket-page h2 {
border-left: 5px solid #c1282f;
padding-left: 18px;
margin-top: 20px;
margin-bottom: 20px;
}


.ticket-page .table-ticket-price {
width: 100%;
border-radius: 10px;
overflow: hidden;
border-collapse: collapse;
margin-bottom: 10px;
}

.ticket-page .table-ticket-price .from-this {
width: 30%;
}

.ticket-page .table-ticket-price .to-this {
width: 70%;
}



.ticket-page .table-ticket-price:last-child {
margin-bottom: 10px;
}

.ticket-page .table-ticket-price th,
.ticket-page .table-ticket-price td {
padding: 15px 20px;
border: 1px solid #fff;
text-align: center;
}

.ticket-page .table-ticket-price th {
font-size: 20px;
color: #fff;
font-weight: bold;
border-collapse: collapse;
vertical-align: middle;
background-color: #333;
}

.ticket-page .table-ticket-price th div+span {
font-size: 18px;
}

.ticket-page .table-ticket-price td {
font-size: 20px;
font-weight: 700;
border-collapse: collapse;
vertical-align: middle;
word-break: break-all;
white-space: normal;
color: #333;
background-color: rgba(0, 0, 0, 0.1);
}

.ticket-page .pass-box {
display: grid;
grid-template-columns: 1fr 2fr;
grid-gap: 20px;
padding: 20px;
border: 3px solid #000;
border-radius: 10px;
}

.ticket-page .pass-box>div:nth-child(1),
.ticket-page .pass-box>div:nth-child(2) {
grid-column: 1 / -1;
}

.ticket-page .pass-box h4 {
font-size: 18px;
font-weight: 700;
color: #000;
margin-bottom: 10px;
}


.ticket-page .pass-box img {
border-radius: 10px;
margin-bottom: 10px
}

.ticket-page .table-ticket-wrapper {
position: relative;

}

.ticket-page .province-list {
display: grid;
grid-template-columns: repeat(6, 1fr);
grid-gap: 5px;

}

.ticket-page .province-list li {
color: #fff;
font-size: 20px;
padding: 5px;
width: 100%;
border-radius: 30px;
text-align: center;
background-color: #c1282f;
}

.ticket-page .warning {
margin: 30px 0;

}



.ticket-page .pass-box2 {
grid-gap: 20px;
padding: 20px;
border: 3px solid #000;
border-radius: 10px;
}

.ticket-page .pass-box2 h4 {
font-size: 30px;
font-weight: 700;
color: #000;
margin-bottom: 10px;
}

.ticket-page .pass-box2 img {
max-width: 600px;
margin-bottom: 10px;
}

.ticket-page .pass-box2 .table-ticket-price {
margin-bottom: 10px;
}

.ticket-page .pass-box2 .from-this .province-list {
grid-template-columns: repeat(3, 1fr);

}

.ticket-page .pass-box2 .to-this .province-list {
grid-template-columns: repeat(5, 1fr);
}


@media screen and (max-width: 767px) {
.railways_group {
padding-left: 10vw;
font-size: 4.5vw;
}
.railways_group::before {
background-size: 8vw;
width: 8vw;
height: 6vw;
}
.ticket-page .articleHeader {
display: flex;
align-items: center;
justify-content: space-between;
border-bottom: 1px dashed #c7c7c7;
margin: unset;
padding-bottom: 3vw;
}


.ticket-page .table-ticket-price th,
.ticket-page .table-ticket-price td {
padding: 10px;
}

.ticket-page .table-ticket-price th,
.ticket-page .table-ticket-price th div+span {
font-size: 16px;
}

.ticket-page .table-ticket-price td {
font-size: 14px;
}

.ticket-page .table-ticket-wrapper {
width: 100%;
}

.ticket-page .table-ticket-price {
border-collapse: collapse;
}


.table-ticket-price,
.table-ticket-price tbody,
.table-ticket-price tr,
.table-ticket-price th,
.table-ticket-price td {
display: grid;
width: 100%;
}

.ticket-page .table-ticket-price .from-this {
width: 100%;
}

.ticket-page .table-ticket-price .to-this {
width: 100%;
}


.ticket-page .table-ticket-price img {
padding: 0;
}

.ticket-page .province-list {
grid-template-columns: repeat(3, 1fr);
margin: 10px 0;
}

.ticket-page .province-list li {
font-size: 12px;
}

.ticket-page .pass-box {
grid-template-columns: 1fr;
display: block;
}
.ticket-page .articleHeader h1 {
font-size: 2.2rem;
}
.ticket-page h2 {
margin-top: 5vw;
margin-bottom: 5vw;
font-size: 6.4vw;
}
}


/* SINGLE TICKET -- RECOMMAND*/
.tab-content-detail {
    display:grid; 
    grid-template-columns:1fr 1fr; 
    grid-gap:26px;                                                
}
.acf-text-wrapper[data-lines="6"] .acf-text-content {
    white-space: pre-wrap;
}
.acf-text-wrapper[data-lines="6"] .acf-text-content.clamped {
    max-height: 10.2em;
}
#recommend_tourist .tab-content-detail .btn-group a:hover {
    transform: scale(1);
}
.tab-content-detail .acf-text-wrapper .acf-text-content {
    font-size: 18px;
}
@media(max-width:992px) {
    .tab-content-detail {
        grid-template-columns:1fr;   
        grid-gap:10px;                                      
    }
}
@media (max-width:767px) {
    #recommend_tourist h2 {
        font-size: 20px;
    }
    .tab-content-detail .acf-text-wrapper .acf-text-content {
        font-size: 16px;
    }
}

/* SINGLE TICKET -- ADS */
  .recommend_pass h3 {
    text-align: center;
    margin-bottom: 20px;
  }
  .pass_recommend-wrap {
    display: flex;
    gap: 20px;
    max-width: 1080px;
    margin: 0 auto;
    flex-wrap: wrap;
    justify-content: center;
  }
  .pass_recommend-card {
    position: relative;
    width: 320px;
    background: #F6F6F6;
    border: 1px solid #e3e3e3;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0,0,0,0.06);
    display: flex;
    flex-direction: column;
    transition: 0.4s;
  }
  .pass_recommend-card:hover {
    transform: scale(1.05);
  }
  .pass_recommend-card-top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 14px 8px;
  }
  .pass_recommend-rating {
    display: flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    color: #555;
    font-weight: 600;
  }
  .pass_recommend-rating svg { width: 25px; height: 25px; }
  .pass_recommend-tag {
    position: absolute;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    padding: 3px 12px;
    border-bottom-left-radius: 8px;
    top: 0;
    right: 0;
  }
  .pass_recommend-tag { background: #C2282F; }

  .pass_recommend-rating svg { color: #C2282F; fill:#C2282F; }
  .divider {
    border-bottom: 1px dashed #ddd;
    margin: 0 14px;
  }

  .pass_recommend-title {
    font-size: 20px;
    font-weight: 700;
    color: #222;
    padding: 0 14px 10px;
    line-height: 1.4;
  }

  .pass_recommend-price-row {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px 12px;
  }
  .pass_recommend-price-label {
    background: #BBBBBB;
    color: #fff;
    font-size: 12px;
    padding: 2px 8px;
    border-radius: 3px;
  }
  .pass_recommend-price-value {
    font-size: 16px;
    font-weight: 700;
    color: #222;
    line-height: 1;
  }
  .pass_recommend-price-value span {
    font-size: 20px;
  }

  .pass_recommend-image-area {
    position: relative;
    margin: 0 0 14px;
    /*border-radius: 6px;*/
    overflow: hidden;
    /*border: 1px solid #e5e5e5;*/
  }
  .pass_recommend-image-area img {
    height: 200px;
    object-fit: cover;
  }
  .pass_recommend-image-area svg { display: block; width: 100%; height: 100%; }

  .pass_recommend-days-badge {
    position: absolute;
    top: 8px;
    right: 8px;
    background: #f5820a;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 8px;
    border-radius: 3px;
  }

  .pass_recommend-pass-title {
    position: absolute;
    left: 50%;
    top: 46%;
    transform: translate(-50%, -50%) rotate(-3deg);
    font-family: Georgia, serif;
    font-style: italic;
    font-weight: 700;
    font-size: 24px;
    color: #d21f2c;
    text-shadow: 1px 1px 0 #fff, -1px -1px 0 #fff, 1px -1px 0 #fff, -1px 1px 0 #fff;
    white-space: nowrap;
  }

  .pass_recommend-icon-row {
    position: absolute;
    left: 50%;
    top: 58%;
    transform: translateX(-50%);
    display: flex;
    gap: 6px;
  }
  .pass_recommend-icon-row span {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: #222;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    color: #fff;
  }
  .pass_recommend-icon-row span.blue { background: #1d9bf0; }

  .pass_recommend-detail-btn {
    display: block;
    margin: 0 14px 16px;
    text-align: center;
    padding: 9px 0;
    border: 1px solid #c62b3e;
    color: #c62b3e;
    font-size: 14px;
    font-weight: 600;
    border-radius: 22px;
    background: #F6F6F6;
    cursor: pointer;
    text-decoration: none;
    transition: 0.5s;
  }
  .pass_recommend-detail-btn:hover,
  .pass_recommend-card:hover .pass_recommend-detail-btn { background: #c62b3e; color:#fff; text-decoration: none;}
  .recommend_pass .ads-update {
    color:#C4C4C4;
    margin-top: 20px;
  }
@media screen and (min-width: 768px) and (max-width: 991px) {
    .pass_recommend-card {
      width: calc(33.33% - 20px);
    }
  }
  @media(max-width:767px) { 
    .recommend_pass h3 {
      font-size: 20px!important;
      margin-bottom: 10px;
    }
  }

/* SINGLE TICKET -- CHANNELL */
#in_store_channel p {
    font-size: 18px;
}
@media (max-width:767px) {
    #in_store_channel h2 {
        font-size: 20px;
    }
    #in_store_channel p {
        font-size: 16px;
    }
}

/* SINGLE TICKET -- DETAIL */
.ticket-page .note_detail h3 {
    font-size: 24px;
    margin-bottom: 5px;
    border-left: 3px solid #c1282f;
    padding-left: 18px
}
.ticket-page .note_detail .acf-text-wrapper .acf-text-content p {
    font-size: 18px;
}
.ticket-page #tourist_pass_detail .acf-text-wrapper {
    margin-top:20px; 
    margin-bottom:20px;
}
.ticket-page #tourist_pass_detail .acf-text-wrapper .acf-text-content {
    padding-left: 18px;
}
.ticket-page #tourist_pass_detail .acf-text-wrapper .acf-text-content ul {
        padding-left: 40px;
}
@media (max-width:767px) {
    .ticket-page .note_detail h3 {
        font-size: 18px;
        margin-bottom: 5px;
    }
    .ticket-page .note_detail .acf-text-wrapper .acf-text-content p {
        font-size: 16px;
    }
}
.acf-text-content {
  white-space: normal;
  position: relative;
  overflow: hidden;
  transition: max-height 0.35s ease;
}

.acf-text-content.clamped {
  max-height: 6.8em;
}

.acf-text-content.clamped::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 2em;
  background: linear-gradient(to bottom, rgba(255,255,255,0), #fff);
  pointer-events: none;
}

.acf-text-wrapper .acf-text-toggle {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  margin-top: 10px;
  padding: 6px 16px;
  background: #fceaea;
  border: 1px solid #f3c0c0;
  border-radius: 999px;
  color: #a32d2d;
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  cursor: pointer;
  transition: all 0.2s ease;
}

.acf-text-wrapper .acf-text-toggle:hover {
  background: #d33;
  border-color: #d33;
  color: #fff;
}

.acf-text-wrapper .acf-text-toggle .acf-toggle-arrow {
  display: inline-block;
  width: 7px;
  height: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg);
  position: relative;
  top: -2px;
  transition: transform 0.2s ease;
}

.acf-text-wrapper .acf-text-toggle.is-open .acf-toggle-arrow {
  transform: rotate(-135deg);
  top: 2px;
}

/* SINGLE TICKET -- MAP */
/* MAP NOTE */
.map-note-card {
    display:grid; 
    grid-template-columns:1fr 190px; 
    grid-gap:50px;
}
.map-note-card .map-container-popup {
    position: relative;
    align-content: center;
    padding-right: 40px;
    width: 190px;
}
.map-note-card .map-container-popup:after {
    position:absolute;
    content: "";
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/ic_round-zoom-out-map.png);
    background-size: 30px;
    background-repeat: no-repeat;
    width: 30px;
    height: 30px;
    right: 0;
    top: 50%;
    transform: translate(0, -50%);
}

/* MAP MODAL */
.map-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.85);
  z-index: 9999;
  align-items: center;
  justify-content: center;
  padding: 16px;
  box-sizing: border-box;
}
.map-overlay.open { display: flex; }
.map-row {
  display: flex;
  align-items: flex-start;   /* ชิดบน — ปุ่มปิดอยู่ระดับเดียวกับขอบบนรูป */
  gap: 12px;
}
.map-frame {
  display: inline-block;
  overflow: hidden;
  line-height: 0;
  max-width: 80vw;
  max-height: 90vh;
      height: 85vh;
  position: relative;
}
.map-frame img {
  display: block;
  max-width: 80vw;
  max-height: 90vh;
  width: 100%;
  height: 100%;
  transform-origin: center center;
  -webkit-user-drag: none;
  user-select: none;
  cursor: grab;
      background: #d7d7d7;
}
.map-side {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.map-close-btn {
  width: 44px;
  height: 44px;
  border: none;
  border-radius: 50%;
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  font-size: 28px;
  line-height: 1;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
}
.map-close-btn:hover { background: rgba(0, 0, 0, 0.8); }
.zoom-controls {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 10px 6px;
  background: rgba(255, 255, 255, 0.92);
  border-radius: 24px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
      position: absolute;
    transform: translate(0%, -50%);
    top: 50%;
}
.zoom-btn {
  width: 32px;
  height: 32px;
  border: none;
  border-radius: 50%;
  background: #fff;
  font-size: 20px;
  font-weight: bold;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
}
.zoom-btn:hover { background: #f0f0f0; }
.zoom-slider {
  -webkit-appearance: slider-vertical;
  appearance: slider-vertical;
  width: 6px;
  height: 120px;
  cursor: pointer;
  accent-color: #e60012;
}
@media (max-width: 767px) {
    .map-note-card {
        grid-template-columns:1fr; 
        grid-gap:10px;
        margin-bottom: 20px;
    }
    .map-note-card .map-container-popup {
        margin-left: auto;
        display: none;
    }
}


.ticket-page {
    padding-bottom: 80px;
}
.ticket-page .contentBox {
    border: 1px solid #a1a1a1;
    padding: 50px 30px;
    border-radius: 10px;
    background-color: #fff;
    position: relative;
}
.ticket-page .articleHeader {
    margin-top: 0;
}
.ticket-page .articleHeader h1 {
    border: none;
    margin: unset;
    padding: unset;
    font-size: 3rem;
}

/* MAP */
#tourist_pass_map .map-outer {
    overflow: hidden;
    position: relative;
}
#tourist_pass_map .map-outer .map-container {
  position: relative; /* สำคัญมาก */
  width: 100%;
  overflow: visible;
  transform-origin: 0 0;
}
#tourist_pass_map .map-outer .map-container .map-image {
  width: 100%;
  height: auto;
  display: block;
  -webkit-user-drag: none;
  user-select: none;
  pointer-events: none;
}

/* PIN */
#tourist_pass_map .map-outer .map-container .pin-wrap {
  position: absolute;
  transform: translate(-50%, -100%);
  cursor: pointer;
  will-change: transform;
}
#tourist_pass_map .map-outer .map-container .pin-wrap:hover {
  z-index: 100;
}
#tourist_pass_map .map-outer .map-container .pin-wrap .pin-img {
  width: 5vw;
  max-width: none !important;
  height: auto;
  display: block;
  transition: transform 0.18s ease;
  filter: drop-shadow(0 2px 3px rgba(0,0,0,0.25));
}
#tourist_pass_map .map-outer .map-container .pin-wrap:hover .pin-img {
  transform: scale(1.25) translateY(-4px);
}

/* TOOLTIP */
#tourist_pass_map .map-outer .map-container .tooltip {
  position: absolute;
  width: 300px;
  height: auto;
  background: transparent;
  border-radius: 12px;
  overflow: hidden;
  opacity: 0;
  pointer-events: none; /* ปิดตอนซ่อน */
  transform: scale(0.92);
  transition: opacity 0.18s ease, transform 0.18s ease;
  z-index: 20;
}
#tourist_pass_map .map-outer .map-container .tooltip.show {
  opacity: 1;
  overflow: visible;
  pointer-events: auto;
}
#tourist_pass_map .map-outer .map-container .tooltip a {
    text-decoration: none;
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card {
    position: relative;
    width: 300px;
    background: #fff;
    border-radius: 20px;
    padding: 14px;
    padding-top: 48px;   /* เผื่อที่ให้ region อยู่บน */
    margin-top: 5%;
    overflow: visible;
    box-shadow: 0 0 10px -4px #000000;
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card.twin_region {
    padding-top: 70px;
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card .place-card-pin {
    position: absolute;
    top: -4%;
    left: 8%;
    width: 75px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 15px;
    z-index: 3;
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card .place-card-pin svg { 
    width: 60px; 
    height: 60px; 
    fill: #fff; 
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card .region {
    position: absolute;
    top: 12px;
    right: 18px;
    z-index: 2;
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card .region .region-txt {
    display: block;
    font-size: 16px;
    color: #6b7280;
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card .place-card-photo {
    position: relative;
    width: 100%;
    height: 160px;
    border-radius: 14px;
    object-fit: cover;
    display: block;
    background: #ddd;
    z-index: 1;
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card .place-card-title {
    margin-top: 16px;
    font-size: 24px;
    font-weight: 700;
    color: #000000;
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card .place-card-title-sub {
    margin-top: 2px;
    font-size: 16px;
    font-weight: 600;
    color: #707070;
    letter-spacing: 0.2px;
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card .place-card-btn {
    display: block;
    margin: 22px auto 8px;
    padding: 5px 35px;
    border: none;
    border-radius: 30px;
    color: #fff;
    font-size: 16px;
    font-weight: 400;
    cursor: pointer;
    background-size: 100% 200%;
    background-position: top;
    transition: background-position 0.4s ease;
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card .place-card-btn:hover {
    background-position: bottom; 
}
#tourist_pass_map .map-outer .map-container .tooltip .place-card .place-card-btn:active { 
    transform: translateY(0); 
}

/* PIN SLIDE */
#tourist_pass_map .pin-slide_box {
    position: relative;
    padding-left: 30px;
    padding-right: 30px;
    display: none;
}
#tourist_pass_map .pin-slide_box .pin-card {
    flex-shrink: 0;
    /*width: calc(100% - 20px);*/
    width: 100%;
    border-radius: 12px;
    overflow: hidden;
    scroll-snap-align: start;
    cursor: pointer;
    background-color: #f1f1f1;
}
#tourist_pass_map .pin-slide_box .pin-slide {
    display: flex;
    gap: 12px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
}
#tourist_pass_map .pin-slide_box .pin-slide .pin-card .pin-card-img {
    background:#ddd; 
    width:100%; 
    height:120px; 
    overflow: hidden;
}
#tourist_pass_map .pin-slide_box .pin-slide .pin-card .pin-card-img img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    max-width: 100%;
}
#tourist_pass_map .pin-slide_box .pin-slide .pin-card .pin-card-body {
    display: block;
    text-align: center;
    font-size: 14px;
    padding: 10px;
}
#tourist_pass_map .pin-slide_box .pin-slide .pin-card .pin-card-body .province_name {
    align-items: center;
    display: flex;
    justify-content: center;
    font-size: 14px;
    color: #707070;
    margin: 10px 0 5px;
}
#tourist_pass_map .pin-slide_box .pin-slide .pin-card .pin-card-body .location_name {
    font-size: 16px;
    margin: 0px 0px 10px;
    color: #333333;
}
#tourist_pass_map .pin-slide_box .pin-slide .pin-card .pin-card-body .location_anchor {
    display: block;
    text-decoration: none;
    background: #c1282f;
    border-radius: 10px;
    color: #fff;
    font-size: 14px;
    padding: 10px;
}
#tourist_pass_map .pin-slide_box .slide-btn {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    border: none;
    cursor: pointer;
    padding: 0;
    z-index: 10;
    opacity: 0.7;
    transition: opacity 0.15s;
    border-radius: 50%;
    background-color: #ddd;
    width: 30px;
    height: 30px;
}
#tourist_pass_map .pin-slide_box .slide-btn:hover { 
    opacity: 1; 
}
#tourist_pass_map .pin-slide_box .slide-btn.slide-prev { 
    left: -8px; 
}
#tourist_pass_map .pin-slide_box .slide-btn.slide-next { 
    right: -8px; 
}
@media (max-width: 768px) { 
    .ticket-page .contentBox  {
        padding: 20px 10px!important;
    }    
    #tourist_pass_map {
        margin: auto;
    }
    #tourist_pass_map .map-outer {
        width: 100%;
        /*aspect-ratio: 1 / 1;*/
        height: auto;
         touch-action: pan-y;
    }
    #tourist_pass_map .map-outer .map-container {
        position: relative;
        width: 100%;
        aspect-ratio: auto;
        height: auto;
        transform-origin: 0 0;
        cursor: grab;
        overflow: visible; 
    }
    #tourist_pass_map .map-outer .map-container .map-image {
        height: auto;
        width: 100%;
        max-width: none;
        display: block;
    }
    #tourist_pass_map .map-outer .map-container .pin-wrap {
        width: fit-content;
        height: fit-content;
        overflow: visible;
    }
    #tourist_pass_map .map-outer .map-container .pin-wrap .pin-img { 
        transition: none !important; 
    }
    #tourist_pass_map .map-outer .map-container .pin-wrap:hover .pin-img { 
        transform: none !important; 
    }
    #tourist_pass_map .map-outer .map-container .tooltip { 
        display: none !important; 
    }
    #tourist_pass_map .pin-slide_box {
        display: block;
    }
    #tourist_pass_map .pin-slide_box .pin-slide::-webkit-scrollbar {
        display: none;
    }
}

    /* animation เด้งของ pin */
@keyframes pinBounce {
  0%   { transform: translateY(0); }
  30%  { transform: translateY(-12px); }
  50%  { transform: translateY(0); }
  65%  { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}

/* class ที่ JS จะใส่ให้ pin ตอนถึงคิวเด้ง */
#tourist_pass_map .map-outer .map-container .pin-wrap.bouncing .pin-img {
  animation: pinBounce 0.8s ease;
}

/* SINGLE TICKET -- PRICE */
    svg,
img[src$=".svg"] {
    -webkit-transform-style: preserve-3d;
    transform-style: preserve-3d;
    image-rendering: high-quality;
    shape-rendering: geometricPrecision;
}
    
    #tourist_pass_price .tourist_pass_price-box {
        position: relative;
        padding: 20px;
        border: 3px solid #000;
        border-radius: 10px;
    } 

    /* Purchase Channels */
    #tourist_pass_price .tourist_pass_price-box .purchase_channels {
        position: absolute;
        top: 0;
        right: 0;
        background-color: #C2282F;
        padding: 15px 30px;
        color: #fff;
        border-bottom-left-radius: 35px;
            border-top-right-radius: 5px;
    }

    /* PASS AREA */
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-area {
        position:relative;
        padding-bottom: 30px;
        margin-bottom: 30px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-area:after {
        content: "";
        position: absolute;
        background-image: linear-gradient(to right, #c7c7c7 50%, transparent 50%);
        background-size: 12px 3px;
        background-repeat: repeat-x;
        background-position: bottom;
        padding-bottom: 3px;
        width: 100%;
        bottom: 0;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-area h4 {
        display: flex; 
        align-items: center; 
        gap: 6px;
        font-size: 20px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-area .tourist_pass_area-list {
        display: flex;
        gap: 5px;
        flex-wrap: wrap;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-area .tourist_pass_area-list .tourist_pass_area-item {
        display: inline-block;
        border: 1px solid #000;
        border-radius: 12px;
        line-height: 1;
        max-width: 100px;
        width: 100%;
        text-align: center;
        padding: 4px;
    }


    /* MAIN DETAIL PASS */
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail {
        display: grid;
        grid-template-columns: 1fr 2fr;
        grid-template-rows: auto 1fr;
        grid-column-gap: 30px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail div:nth-child(1) {
        grid-column:1; grid-row:1;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail div:nth-child(2) {
        grid-column:1; grid-row:2;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail div:nth-child(3) {
        grid-column:2; grid-row:1 / span 2;
    }

    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .special_topic_price {
        font-size: 18px;
        font-weight: 600;
        margin: 20px 0 10px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item {
        padding-bottom: 10px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item + .tourist_pass_price-pass_item {
        padding-top:20px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .pass_date {
        display: flex;
        align-items: center;
        gap: 10px;
        font-size: 20px;
        font-weight: 600;
        margin-bottom: 10px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price {
        border-collapse: collapse;
        width: 100%;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price thead tr th {
        width: 30%;
        background-color: #707070;
        color: #ffffff;
        padding: 10px;
        text-align: center;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr td {
        background-color:#D9D9D9;
         padding: 10px;
        text-align: center;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price thead tr th,
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr td { 
        border: 2px solid #ffffff;
        font-size: 18px;
        font-weight: 500;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr+tr.pass_main_time {
        border-top: 4px solid #ffffff;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr.pass_main_time:not(:has(~ .pass_main_time)) td:first-child{
        border-bottom-left-radius: 20px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr td span {
        font-size: 16px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price thead tr:first-child th,
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr:first-child td {
        border-top: none;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr:last-child td {
        border-bottom: none;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price thead th:first-child,
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody td:first-child {
        border-left: none;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price thead th:last-child,
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody td:last-child {
        border-right: none;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price thead th:first-child {
        border-top-left-radius: 20px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price thead th:last-child {
        border-top-right-radius: 20px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr td.duration:first-child {
    } 
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr:last-child td:last-child {
        border-bottom-right-radius: 20px;
    }
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail a.btn-tppd {
        color: #fff;
        padding: 10px 40px;
        background-color: #c1282f;
        border-radius: 10px;
        text-decoration: none;
        display: block;
        font-size: 18px;
        width: fit-content;
        min-width: 200px;
        text-align: center;
        /*margin-left: auto;
        margin-right: auto;*/
        /*margin-bottom: 10px;*/
            height: 100%;
        align-content: center;
        line-height: 1;
    }
    
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail a.btn-tppd:hover {
        background-color: #cd5359;
    }

    #tourist_pass_map .map-container-note ,
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-note_rate,
    #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-pass_note {
        margin-top: 10px;
        font-size: 14px;
        color: #9f9f9f;
    }



    @media (max-width:991px) {
        #tourist_pass_price .tourist_pass_price-box {
            padding-top: 55px;
        }
        #tourist_pass_map .map-container-note, #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-note_rate, #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-pass_note {
            font-size: 10px;
        }
    }
    @media (max-width:767px) {
        
        #tourist_pass_price .tourist_pass_price-box .purchase_channels {
            padding: 3vw;
            border-bottom-left-radius: 4vw;
            font-size: 3.5vw;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail div:nth-child(1) {
            grid-column:1; grid-row:1; order:1; 
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail div:nth-child(2) {
            grid-column:1; grid-row:3; order:3; 
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail div:nth-child(3) {
            grid-column:1; grid-row:2; order:2;
        }
        #tourist_pass_price .tourist_pass_price-box {
            padding-top: 45px;
            padding-left: 10px;
            padding-right: 10px;
        }
        #tourist_pass_price .tourist_pass_price-box h3 {
            font-size: 20px;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-area:after {
                padding-bottom: 1px;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-area h4 {
            font-size: 18px;
            gap: 2px
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-area h4 svg {
            width: 30px;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-area .tourist_pass_area-list {
            /*justify-content: space-around;*/
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-area .tourist_pass_area-list .tourist_pass_area-item {
            max-width: 100%;
            width: calc(33.33% - 5px);
            font-size: clamp(10px, 3.5vw, 16px);
        }                
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail {
            grid-template-columns: 1fr;
            grid-template-rows: none;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail > div {
                    margin-top: 5vw;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail > div:first-child {
            margin-top: 0;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price thead tr th {
            font-size: 3vw;
            padding: 5px;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr td {
            font-size: 3vw;
            padding: 5px;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr td span {
            font-size: 3vw;
        }
         #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price thead th:first-child {
        border-top-left-radius: 3vw;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price thead th:last-child {
            border-top-right-radius: 3vw;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr td.duration:first-child {
        } 
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail .tourist_pass_price-pass_item .table_pass_price tbody tr:last-child td:last-child {
            border-bottom-right-radius: 3vw;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-pass_item .pass_date {
            font-size: 18px;
        }   
        .dd-wrap {
            width: 100%;
        }
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-main_detail a.btn-tppd {
            font-size: 14px;
            width: 100%;
            max-width: 100%;
        }
        #tourist_pass_map .map-container-note {
            font-size: 3vw;
        }
        #tourist_pass_map .map-container-note ,
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-note_rate,
        #tourist_pass_price .tourist_pass_price-box .tourist_pass_price-pass_note {
            font-size: 3vw;
        }
    }

.purchase_channels-group_button {
                                    display: flex;
                                    justify-content: center;
                                    gap: 12px;
                                    flex-wrap: wrap;
                                }
                                .purchase_channels-group_button a {
                                    width: auto;      
                                    flex: 0 0 auto;  
                                    text-align: center;
                                }
/* ============================================
   Related Links Dropdown
   ============================================ */

/* กล่องครอบ — ต้อง relative เพื่อให้เมนูลอยอ้างอิงตรงนี้ */
.dd-wrap {
  position: relative;
  display: inline-block;
  vertical-align: top;
}

/* ---------- ปุ่มหลัก ---------- */
.dd-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  padding: 9px 36px 9px 14px;   /* เว้นขวาให้ลูกศร */
  cursor: pointer;
  font-size: 14px;
  font-weight: 500;
  line-height: 1;
  color: #fff;
  text-decoration: none;
  box-sizing: border-box;
}

/* ---------- ลูกศรบนปุ่มหลัก (absolute สีขาว) ---------- */
.dd-chev {
  position: absolute;
  right: 14px;
  top: 50%;
  width: 8px;
  height: 8px;
  box-sizing: border-box;
  border: 0 solid #fff;
  border-right-width: 2px;
  border-bottom-width: 2px;
  border-right-color: #fff;
  border-bottom-color: #fff;
  background: none;
  transform: translateY(-50%) rotate(45deg);
  margin-top: -2px;
  transition: transform 0.2s ease;
}
.dd-btn[aria-expanded="true"] .dd-chev {
  transform: translateY(-50%) rotate(-135deg);
  margin-top: 2px;
}

/* ---------- กล่องเมนู ---------- */
.dd-menu {
  position: absolute;
  top: calc(100% + 0px);
  left: 0;
  min-width: 200px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  box-shadow: 0 6px 18px rgba(0, 0, 0, 0.10);
  z-index: 999;
  box-sizing: border-box;
  /* ค่าเริ่มต้น = ซ่อน ไม่กินพื้นที่ */
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(-6px);
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
}
.dd-menu.open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
.dd-menu a + a {
    border-top: 1px solid #dfdfdf;
}

/* ---------- แต่ละลิงก์ในเมนู ---------- */
.dd-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 15px 20px;
  text-decoration: none;
  color: #222;
  font-size: 16px;
  line-height: 1.3;
  border-radius: 6px;
  transition: background 0.15s ease;
  width: 100%;
  justify-content: center;
  text-decoration: none;
}
.dd-item:hover {
  background: #f5f5f5;
  text-decoration: none;
  
}
.dd-item .arrow {
  color: #999;
  font-size: 13px;
  flex-shrink: 0;
}




/* FAVOURITE */
  .fav_notifs {
    margin-bottom: 60px;
  }
  .index-ads {
    display: grid;
    grid-template-columns: 2fr 1fr;
  }

  @media screen and (max-width: 767px) {
    .fav_notifs {
      margin-bottom: 30px;
    }
    .index-ads {
      display: block;
    }
  }


/* FOOTER ICON FIX RIGHT SIZE  */
.side-btn {
    position: fixed;
    bottom: 10%;
    right: 3%;
    text-align: end;
    z-index: 200;
    display: grid;
}
.side-btn.active .menu-toggle {
    width: 380px;
}
.side-btn .menu-toggle {
    position: relative;
    width: 60px;
    height: 60px;
    background: #c1282f;
    color: #fff;
    border-radius: 30px;
    cursor: pointer;
    font-size: 24px;
    overflow: hidden;
    z-index: 2;
    transition: 0.3s;
}
.side-btn .menu-toggle:after {
    content: '';
    display: inline-block;
    width: 50px;
    height: 50px;
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/icon/From_Japan_logo_1.svg);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    transform: translate(-10%, 10%);
    transition: 0.3s;
}
.side-btn .menu-items {
    position: absolute;
    right: 80px;
    bottom: 0;
    display: flex;
    gap: 20px;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    z-index: 2;
}
.side-btn.active .menu-items {
    opacity: 1;
    pointer-events: auto;
}
.side-btn .menu-items > div {
    position: relative;
    bottom: 5px;
    transform: translateX(20px);
    opacity: 0;
    transition: transform 0.3s ease, opacity 0.3s ease;
}
.side-btn .menu-items > div:nth-child(1) {
    transition-delay: 0s;
}
.side-btn .menu-items > div:nth-child(2) {
    transition-delay: 0.05s;
}
.side-btn .menu-items > div:nth-child(3) {
    transition-delay: 0.1s;
}
.side-btn.active .menu-items > div {
    transform: translateX(0);
    opacity: 1;
}
.side-btn .menu-items a p {
    text-align: center;
    color: #fff;
}
.cat_img,.bird_img,.tanuki_img {
    position: relative;
    display: block;
    width: 80px;
    height: 80px;
    border-radius: 50%;
}
.cat_img:after {
    content: "";
    position: absolute;
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/favorites/head.svg);
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    width: 55px;
    height: 45px;
    bottom: 8px;
    right: -8px;
    z-index: 1;
    transition: 0.5s;
}
.cat_img span ,.bird_img span,.tanuki_img span {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 3;
    transition: 0.5s;
}
.cat_img span:before {
    content: "";
    position: absolute;
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/icon/Heart1.svg);
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    width: 70px;
    height: 60px;
    bottom: 18px;
    left: 0;
    z-index: 2;
}
.cat_img span:after {
    content: "";
    position: absolute;
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/favorites/Hands.svg);
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    width: 30px;
    height: 24px;
    bottom: 0;
    left: 20px;
    z-index: 3;
}
.cat_favourite a:hover .cat_img span {
    transform: rotate(-5deg);
}

.cat_favourite a:hover .cat_img:after {
    transform: rotate(5deg);
}

.cat_favourite a:hover .cat_img span:before {
    animation: backgroundIMG 0.2s;
    animation-fill-mode: forwards;
    background-repeat: no-repeat;
}

@keyframes backgroundIMG {
    100% {
        background-image: url(/cms/wp-content/themes/SPCTheme/assets/image/icon/Heart2.svg);
        /*background-size: 55px;
width: 55px;
height: 45px;*/
    }
}

.bird_img:after {
    content: "";
    position: absolute;
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/favorites/bird.svg);
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    width: 55px;
    height: 45px;
    bottom: 8px;
    right: -8px;
    z-index: 1;
    transition: 0.5s;
}
.bird_img span:after {
    content: "";
    position: absolute;
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/favorites/bird-hand.svg);
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    width: 60px;
    height: 80px;
    bottom: 0;
    left: -10px;
    z-index: 3;
}
.bird_ticket a:hover .bird_img span:after {
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/favorites/bird-hand2.svg);
}
.bird_ticket a:hover .bird_img span {
    transform: rotate(-5deg);
}

.bird_ticket a:hover .bird_img:after {
    transform: rotate(5deg);
}

.tanuki_img:after {
    content: "";
    position: absolute;
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/favorites/tanuki.svg);
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    width: 55px;
    height: 45px;
    bottom: 8px;
    right: 0;
    z-index: 1;
    transition: 0.5s;
}
.tanuki_img span:after {
    content: "";
    position: absolute;
    background-image: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/favorites/tanuki-hand.svg);
    display: block;
    background-repeat: no-repeat;
    background-size: contain;
    width: 80px;
    height: 100px;
    bottom: 0;
    left: -10px;
    z-index: 3;
    transition: 0.3s;
}
.tanuki_top a:hover .tanuki_img span:after {
    bottom: 10px;
}
.tanuki_top a:hover .tanuki_img:after {
    transform: rotate(5deg);
}
@media (max-width:767px) {
    .side-btn {
        bottom: 5%;
    }
    .side-btn .menu-toggle {
        width: 55px;
        height: 55px;
    }
    .side-btn .menu-toggle:after {
        width: 45px;
        height: 45px;
    }
    .side-btn.active .menu-toggle {
        width: 320px;
    }
    .side-btn .menu-items {
        right: 55px;
        gap: 15px;
    }
    .side-btn .menu-items a p {
        font-size: 14px;
        line-height: 1.5;
    }
    .cat_img, .bird_img, .tanuki_img {
        width: 75px;
        height: 70px;
    }
    .cat_img:after,.bird_img:after,.bird_img:after {
        width: 50px;
        height: 40px;
    }

    .cat_img span:before {
        width: 60px;
        height: 50px;
        bottom: 14px;
    }
    .cat_img span:after {
        width: 20px;
        height: 16px;
        left: 20px;
    }
    
    .bird_img span:after {
        width: 50px;
        height: 65px;
        left: -5px;
    }
    
    .tanuki_img span:after {
        width: 70px;
        height: 92px;
        left: -15px;
    }
}

/* Footer */
.footerSitemapArea .mail,
.footerSitemapArea .tel {
    margin: 20px 0;
}


.footerSitemapArea .mail:before {
    content: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/icon/Mail-Icon.png);
    /* content: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/icon/mail.svg);
border-radius: 50%;
background-color: #C1282F; */
    padding-right: 10px;
    text-align: center;
    vertical-align: middle;
}

.footerSitemapArea .tel:before {
    content: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/icon/Phone-Icon.png);
    /* content: url(https://fromjapan.info/cms/wp-content/themes/SPCTheme/assets/image/icon/call.svg);
border-radius: 50%;
background-color: #C1282F; */
    padding-right: 10px;
    text-align: center;
    vertical-align: middle;
}

.footerSitemapArea .dash {
    border-left: 1px solid #fff;
    border-left-style: dashed;
}

.footer-box {
    display: grid;
    grid-template-columns: 2fr 1fr;
}

@media screen and (max-width: 767px) {
    .footer-box {
        display: block;

    }
}
.copy-right {
    background-color: #000;
    color: #fff;
}

.copy-right .navbar-expand .sub-menu {
    display: flex;

}

.copy-right a {
    color: #fff;
}

.copy-right .text-box {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

@media screen and (max-width: 767px) {
    .copy-right .text-box p {
        font-weight: 500;
        font-size: 11px;
    }

    .copy-right .text-box {
        display: block;
        text-align: center;
        padding: 10px 0;
    }
}

.gnav__customMenuItem a {
    font-size: 14px;
    font-weight: 500;
}

.cookie-text p {
    font-size: 16px;
}

.cookie-consent .cookie-box {
    display: flex;
    justify-content: center;
    position: relative;
    grid-gap: 50px;
    align-items: center;
}

.cookie-consent .cookie-box .raccoon {
    margin: unset;
    height: auto;
    width: 160px;
}

.cookie-consent .cookie-close {
    position: absolute;
    right: 0;
    top: 10px;
}

.foot-menu-flex {
    display: flex;
    align-items: center;
}

.mb-none {
    display: block;
}

.pc-none {
    display: none;
}

@media screen and (max-width: 767px) {
    .cookie-consent .cookie-box {
        display: unset;
    }

    .cookie-consent .cookie-close {
        right: 10px;
        top: 20px;
    }

    .foot-menu-flex {
        display: grid;
    }

    .cookie-consent .cookie-box .raccoon {
        margin: unset;
        height: auto;
        width: 100px;
    }

}

@media only screen and (max-width: 767px) {
    .mb-none {
        display: none;
    }

    .pc-none {
        display: block;
    }

    .fromjapan-img {
        display: grid;
        grid-template-columns: 1fr 1fr;
        position: relative;
        margin-bottom: 10px;
    }

    .footerSitemapArea .cmnLink__btnLink {}

}