@import 'animation.css';
@import url('https://fonts.googleapis.com/css2?family=Changa+One:ital@0;1&family=Raleway:ital,wght@0,100..900;1,100..900&display=swap');
.changa-one-regular {
  font-family: "Changa One", sans-serif;
  font-weight: 400;
  font-style: normal;
}
.changa-one-regular-italic {
  font-family: "Note Sans", sans-serif;
  font-weight: bolder;
  font-style: italic;
}
/* CSS Document */
@keyframes sticky-header {
  from {
    height: 78px;
    font-size: 1.2rem;
  }
  to {
    height: 64px;
    font-size: 1rem;
    border-bottom: 1px solid #ccc;
    background: #FFF;
  }
}
@keyframes sticky-header-menu {
  from {
    color: #FFF;
  }
  to {
    color: #333;
  }
}
@keyframes sticky-header-logo {
  100% {
    filter: brightness(1);
  }
}
@keyframes sticky-header-nav {
  to {
    background-color: #ca4f0f;
    opacity: 1;
  }
}
@keyframes flyFromRight {
  from {
    opacity: 0;
    transform: translateX(400px);
  }
  to {
    opacity: 1;
    transform: translateX(0px);
  }
}
@keyframes flyFromLeft {
  from {
    opacity: 0;
    transform: translateX(-400px);
  }
  to {
    opacity: 1;
    transform: translateX(0px);
  }
}
@keyframes flytoLeft {
  from {
    opacity: 0;
    transform: translateX(100px);
  }
  to {
    opacity: 1;
    transform: translateX(0px);
  }
}
@keyframes marquee {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-1110px);
  }
}
@keyframes wipe-in {
  0% {
    clip-path: inset(0 100% 0 0); /* Hidden: clipped 100% from the right */
  }
  100% {
    clip-path: inset(0 0 0 0); /* Visible: no clipping */
  }
}
@keyframes bottom-up {
  from {
    transform: translateY(100px);
    opacity: 0;
  }
  to {
    transform: translateY(0);
    opacity: 1;
  }
}
@keyframes up-down {
  from {
    transform: translateY(-100px);
    opacity: 0;
  }
  to {
    transform: translateY(0px);
    opacity: 1;
  }
}
@keyframes text-up-down {
  0% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(10px);
  }
  100% {
    transform: translateY(0px);
  }
}
@keyframes show-up {
  0% {
    opacity: 0;
  }
  100% {
    opacity: 1;
  }
}
@keyframes scale-change {
  0% {
    scale: 1.5;
    opacity: 0;
    transform: translateY(-30px);
  }
  100% {
    scale: 1;
    opacity: 1;
  }
}
@keyframes wipe-uptodown {
  0% {
    transform: translate(-50%, 0);
    height: 0px;
  }
  50% {
    height: 100px;
    transform: translate(-50%, 0);
  }
  100% {
    height: 0px;
    transform: translate(-50%, 100px);
  }
}
/* The typing effect */
@keyframes typing {
  from {
    width: 0;
    opacity: 1;
  }
  to {
    width: 100%;
    opacity: 1;
  }
}
/* DEMO-SPECIFIC STYLES */
.typewriter {
  overflow: hidden; /* Ensures the content is not revealed until the animation */
  white-space: nowrap; /* Keeps the content on a single line */
  margin: 0 auto; /* Gives that scrolling effect as the typing happens */
  letter-spacing: .15em; /* Adjust as needed */
  border-right: .15em solid transparent;
  opacity: 0;
  animation: typing 4s steps(30, end) forwards;
  animation-timeline: view();
}
/* The typewriter cursor effect */
@keyframes blink-caret {
  from, to {
    border-color: transparent
  }
  50% {
    border-color: orange
  }
}
/**********************/
.dm-serif-display-regular {
  font-family: "DM Serif Display", serif;
  font-weight: 400;
  font-style: normal;
}
html, body {
  /* 讓滾動更平滑（選填） */
  scroll-padding-top: 64px;
  padding: 0;
  margin: 0;
  scroll-behavior: smooth;
  scroll-snap-type: y mandatory;
  font-family: sans-serif;
  letter-spacing: .1em;
font-family: "Noto Sans TC", "Microsoft JhengHei", Helvetica, Arial, sans-serif;
}
/**header**/
/*滾動進度條start*/
@keyframes scroll-watcher {
  to {
    scale: 1 1;
  }
}
.scroll-watcher {
  height: 3px;
  position: fixed;
  width: 100%;
  top: 62px;
  background-color: #eb8800;
  scale: 0 1;
  animation: scroll-watcher linear;
  animation-timeline: scroll();
  animation-range: 5%;
  transform-origin: left;
}
/*滾動進度條end*/
#sticky-header {
  position: fixed;
  top: 0px;
  width: 100%;
  display: inline-flex;
  justify-content: space-between;
  align-items: center;
  background: transparent;
  z-index: 100;
  animation: sticky-header linear forwards;
  animation-timeline: scroll();
  /*animation-direction: reverse;*/
  animation-range: 0vh 1vh;
  overflow: hidden;
}
.headerLogo {
  width: 180px;
  padding-top: 5px;
  animation: sticky-header-logo linear forwards;
  animation-timeline: scroll(root);
  animation-range: 0vh 1vh;
  filter: brightness(100);
}
.headerMenu {
  height: 100%;
  display: flex;
}
.headerMenu > a {
  /*font-family: serif, sans-serif;    */
  padding: 10px;
  cursor: pointer;
  text-decoration: none;
  align-content: center;
  color: #FFF;
  animation: sticky-header-menu linear forwards;
  animation-timeline: scroll(root);
  animation-range: 0vh 1vh;
}
.headerMenu > a:after {
  left: -5%;
  top: 1rem;
  bottom: 0;
  width: 110%;
  height: 3px;
  background: #db5009;
  transform: scale(0);
  content: "";
  display: block;
  position: relative;
  transition: .3s;
}
.headerMenu > a:hover:after {
  transform: scaleX(1);
}
.headerMenu > button {
  border-width: 0px;
  animation: menu-btn linear forwards;
  animation-timeline: scroll(root);
  animation-range: 0vh 1vh;
}
@keyframes menu-btn {
  to {
    background-color: #CA4F0F;
    transform: scale(0.85);
    margin-top: -10px;
    margin-right: -20px;
    height: 80px;
    width: 130px;
  }
}
/*
.headerMenu>button:hover{
	border-radius: 2px;
			background: linear-gradient(to left, #f34300, #fb9400, #dd5000, #f34300);
        background-size: 300% 100%;
	transition: 1s linear;
}*/
.headerMenu > button > span {
  color: #FFF;
  font-size: 1.2rem;
}
.headerMenu > button > span::before {
  background-color: #FFF;
  color: #CA4F0F;
  display: inline-block;
  padding: 4px 6px 2px 6px;
  border-radius: 15px;
  margin-right: 5px;
  content: "New";
  font-size: 0.85rem;
  font-weight: bold;
  font-family: sans-serif;
  line-height: .85rem;
}
/*.headerMenu>button:hover>span::before {
    background: #303030;
    color: #FFF;
	transition-timing-function: ease-in;
	transition-duration: .2s;
}*/
.headerMenu > a {
  /*font-family: serif, sans-serif;    */
  padding: 10px;
  cursor: pointer;
  text-decoration: none;
  align-content: center;
  color: #FFF;
}
.headerMenu-M {
  position: fixed;
  right: 0px;
  z-index: 110;
}
.m-nav {
  font-size: 0.9rem;
  background: #303030;
  line-height: 2rem;
  animation: flyFromRight linear forwards .2s;
  padding: 55px 0px 10px 0px;
  position: relative;
  top: 0;
  z-index: 120;
  top: -80px;
}
.m-nav > a {
  text-align: center;
  display: block;
  padding: 5px 20px;
  color: #FFF;
  font-size: 1.1rem;
}
.m-nav > a:hover {
  background: #ca4f0f;
  color: #FFF;
}
.m-nav span {
  font-size: 0.8rem;
  background: #FFF;
  border-radius: 20px;
  color: #ca4f0f;
  padding: 2px 4px;
  margin-right: 4px;
}
.invisible {
  visibility: hidden;
}
@media (min-width:639px) {
  .headerMenu-M {
    display: none;
  }
}
/* ----------- NAV BUTTON -------------- */
.btn {
  width: 5em;
  height: 5em;
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  overflow: hidden;
  cursor: pointer;
  transform: scale(0.5);
  left: 44px;
  top: -8px;
  z-index: 130;
}
.btn__line {
  width: 3.5em;
  height: 0.3em;
  background-color: #fff;
  border-radius: 0.5em;
  position: absolute;
  transition: transform .4s ease;
  margin-top: 20px;
  animation: sticky-header-nav linear forwards;
  animation-timeline: scroll(root);
  animation-range: 0vh 1vh;
}
.btn__line--top {
  transform: translateY(-1em);
  width: 2.5em;
}
.btn__line--bottom {
  transform: translateY(1em);
  width: 2.5em;
}
/* ------------ ANIMATION ---------- */
.active > .btn__line--center {
  transform: translateX(-5em);
}
.active > .btn__line--top {
  transform: translateY(0) rotate(45deg);
}
.active > .btn__line--bottom {
  transform: translateY(0) rotate(-45deg);
}
.active {
  background-color: transparent;
}
.active > .btn__line {
  background-color: #fff;
}
/**main***/
.section {
  align-items: center;
  padding: 0;
  margin: 0 auto;
}
.section h2 {
  /*animation: bottom-up linear forwards;
    animation-timeline: view();
    animation-range: 150px 300px; 
	opacity: 0; */
  font-size: 2.5rem;
  text-align: center;
  color: #000;
  letter-spacing: .1em;
  padding-top: 30px;
}
.section > p, .pin-wrap-sticky > p {
  max-width: 900px;
  padding: 20px;
  color: #333;
  text-align: left;
  margin: 0 auto;
  animation: show-up linear forwards;
  animation-timeline: view();
  animation-range: 200px 350px;
  opacity: 0;
  font-size: 1.1rem;
}
.animated-element {
  animation: move-object linear;
  /* Bind the timeline explicitly to the vertical Y scroll of the nearest container */
  animation-timeline: scroll(y nearest);
}
@keyframes move-object {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(450px);
  } /* Animates horizontally while you scroll vertically */
}
/*
		===========kv start===========
		*/
#kvSection {
  height: 100vh;
  overflow: hidden;
}
#kv {
  position: relative;
  top: 0;
  width: 100vw;
	background-color: rgba(0, 0, 0, 0.3);
}
   #kvSection {
        background-image: url(../img/kvb.png);
	   background-position: 40% bottom;
        background-size: cover;
    }
.videoKV {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  min-width: 100%;
  min-height: 100%;
  object-fit: cover; /* 等同於背景圖片的 cover 效果 */
  z-index: -1; /* 確保影片在最下層 */
  filter: brightness(0.5);
}
.kvContent {
  position: relative;
  z-index: 1;
  color: white;
  text-align: center;
  width: 100vw;
  background-image: url("../img/banner_bg.svg");
  height: 100vh;
}
.kvContent-text {
  position: relative;
  top: 20%;
}
.kvContent-title {
  font-size: 15vw;
  margin-top: -1.5vw;
  /*animation: flyFromRight ease-in forwards .3s;*/
  animation-name: flyFromRight, text-shadow;
  animation-fill-mode: forwards, forwards;
  animation-duration: .3s, 1s;
  animation-delay: 0s, .8s;
}
@keyframes text-shadow {
  to {
    filter: drop-shadow(3px 4px 0px rgba(202, 79, 15, 0.8));
    transition-delay: 3s;
    transition-duration: 3s;
  }
}
@media (min-width:1280px) {
  .kvContent-title {
    font-size: 12vw;
  }
}
@media (min-width:1440px) {
  .kvContent-title {
    font-size: 10vw;
  }
}
.kvContent-text > img {
  max-width: 80vw;
  animation: flyFromLeft ease-in forwards .3s;
}
/*箭頭*/
.kv_bottom {
  height: 50px;
  width: 10px;
  margin: 0;
  position: absolute;
  text-align: center;
  z-index: 1;
  bottom: 9vh;
  left: 50%;
  transform: translateX(-50%);
}
.kv_scroll {
  letter-spacing: 1px;
  font-size: 1.2rem;
  color: rgb(255 255 255 / 90%);
  position: relative;
  top: -9vh;
  margin-left: -5px;
}
.kv_scroll > span {
  transform: rotate(90deg);
  display: block;
}
.kv_arrow {
  display: flex;
  height: 120px;
  width: 100px;
  position: absolute;
  bottom: -4vh;
}
.kv_b1 {
  width: 50px;
  height: 100px;
  border-right: 1px solid #FFF;
  animation: wipe-uptodown 2.4s ease-in-out infinite;
}
.kv_b2 {
  width: 50px;
  height: 25px;
  border-left: 1px solid #000;
  transform: rotate(45deg);
  margin-top: 97px;
}
/**video***/
#videoSection {
  position: relative;
  display: block;
}
#videoSection h2 {
  animation-range: 30% 80%;
  margin-top: 30px;
}
#videoSection h2::after {
  content: "Turning Vision into Reality";
  color: #999;
  font-size: 1.4rem;
  display: block;
  font-weight: 300;
  padding-top: 10px;
}
#video {
  width: 95%;
  max-width: 960px;
  margin: 0 auto;
  margin-top: 1rem;
}
div#video > video {
  width: 100%;
}
.video {
  margin: 0 auto;
  text-align: center;
  width: 720px;
  max-width: 90vw;
  margin-top: 2rem;
}
.video > img {
  border: 1px solid #000;
  border-width: 10px 20px 10px 20px;
  width: calc(100% - 40px);
}
.video_bg1 {
  position: absolute;
  z-index: -10;
  font-size: 10rem;
  margin-top: -12vh;
  color: #ddd;
  right: calc(5% + 100px);
  animation:
    show-up linear forwards, flyFromRight linear forwards;
  animation-timeline: scroll(root);
  /* 定義動畫在元素進入 25% 到進入 75% 之間執行 */
  animation-range: entry 15% entry 25%;
  opacity: 0;
}
.video_bg2 {
  position: relative;
  z-index: -10;
  /*bottom: 16vh;
	left: calc(5% + 100px);*/
  animation:
    show-up linear forwards, flyFromLeft linear forwards;
  animation-timeline: scroll(root);
  /* 定義動畫在元素進入 25% 到進入 75% 之間執行 */
  animation-range: entry 0% entry 15%;
  background: url("../img/n700st_words.svg") no-repeat;
  height: 25vh;
  top: -7.5vh;
  left: 5vw;
  width: 80vw;
  background-size: contain;
}
.item_count {
  text-align: right;
}
.item_count ul {
  list-style: none;
  display: inline-flex;
  padding-left: 0px;
}
.item_count ul > li {
  width: 28px;
  height: 28px;
  padding: 5px;
  border: 1px solid #ccc;
  margin: 0px 5px;
}
li[type="no"] {
  background: #000;
}
li[type="pre"], li[type="next"] {
  background: #ca4f0f;
}
li[type="pre"]:hover, li[type="next"]:hover {
  cursor: pointer;
  background: #ca4f0f;
  color: #FFF;
}
.hidden {
  opacity: 0;
  display: none;
}
/*************************************************************/
/*跑馬燈*/
.marquee-one-way {
  background: #000;
}
.marquee-bar {
  height: 31px;
  width: 2220px;
  background: url("../img/bar.png");
  background-repeat: repeat-x;
  position: relative;
  margin-top: -6vh;
  animation: marquee 20s linear infinite;
  overflow-x: hidden;
}
/**carService***/
#carSection {    background-color: rgb(221 221 221 / 30%);}
#carSection h2 {
  animation-range: 30% 80%;
  animation-delay: 10s;
}
#carSection h2::after {
  content: "";
  color: #999;
  font-size: 1.4rem;
  display: block;
  font-weight: 300;
}
#carSection h3 {
  margin-bottom: 0px;
  margin-top: 1rem;
font-size: 1.5rem;
}
#carService {
  display: inline-flex;
  flex-direction: row;
  /*padding-top: 20px;*/
  scroll-snap-type: x mandatory;
  /*overflow-x: scroll;   background-color: rgb(255 255 255 / 20%);*/
  justify-content: space-around;
  height: 64vh;
}
.pic_number {
  font-family: auto;
  -webkit-text-stroke: 1px gray;
  padding-top: 20px;
  border-top: 10px solid #eb8800;
}
.pic_number img {
  width: 80%;
  min-width: 180px;
  padding-left: 10%;
}
#carService > article {
  scroll-snap-align: center;
  width: 90vw;
  max-width: 1000px;
  height: 100%;
  background: #FFF;
  display: flex;
  direction: rtl;
}
.carServiceBl {
  text-align: left;
  border-top: 5px solid #000;
  width: 45%;
}
.carServiceBr {
  background-size: cover;
  background-position: center;
  width: 100%; filter: brightness(0.9);
}

.carServiceBr:hover{
	filter: brightness(1);
}
.photo1 {
  background-image: url("../img/photo/p1.jpg");
}
.photo2 {
  background-image: url("../img/photo/p2.jpg");
}
.photo3 {
  background-image: url("../img/photo/p3.jpg");
}
.photo4 {
  background-image: url("../img/photo/p4.jpg");
}
.photo5 {
  background-image: url("../img/photo/p5.jpg");
}
.photo6 {
  background-image: url("../img/photo/p6.jpg");
}
.carServiceBr img {
  width: 100%;
  height: auto;
  display: block;
  /* width: 100%; filter: saturate(0.8);
  transition: filter 0.3s ease; /* 平滑過渡效果 */
  box-shadow: rgba(50, 50, 93, 0.25) 0px 13px 27px -5px, rgba(0, 0, 0, 0.3) 0px 8px 16px -8px;
}
/* 滑鼠懸停時圖片變亮 */
.carServiceBr img:hover {
  filter: brightness(1.1); /* 調整為 120% 的亮度 */
}
.carServiceDesc {
  padding: 0px 20px;
  background: #fff;
  height: fit-content;
  color:#333;
  direction: ltr;
}
.carServiceList{
	margin-left: -15px;
    margin-top: -10px;
	}
.trainBr {
  /* border: 1px solid red; */
  position: absolute;
  z-index: 100;
  height: 15vh;
  bottom: 0px;
  display: flex;
  width: 100%;
}
.trainBr div {
  display: block;
  background-size: contain;
}
/*.trainbg1 {
	background-image: url("../img/1x/car1.png");
	background-repeat: no-repeat;
	background-position: right;
	flex: 1;
	
}
.trainbg2 {
	background-image: url("../img/1x/car2.png");
	background-repeat: repeat-x;
	flex:3;
}
.trainbg3 {
	background-image: url("../img/1x/car3.png");
	background-repeat: no-repeat;
	background-position: left;
	flex: 1;
}*/
/**********************************************/
@supports(animation-timeline: view()) {
  @keyframes move {
    to {
      /* Move horizontally so that right edge is aligned against the viewport */
      transform: translateX(calc(-100% + 100vw));
    }
  }
  #carSection {
    /* Stretch it out, so that we create room for the horizontal scroll animation */
    height: 600vh;  /**列車介紹區塊高度，每格100vh*/
    overflow: visible; /* To make position sticky work … */
    view-timeline-name: --section-pin-tl;
    view-timeline-axis: block;
  }
  .pin-wrap-sticky {
    /* Stick to Top
				height: 90vh; 
				width: 100vw;*/
    position: sticky;
	padding-bottom: 8vh;
    top: 35px;
    overflow-x: hidden;
  }
  .pin-wrap {
    height: auto;
    width: 600vmax; /**列車介紹區塊高度，每格100vh*/
    /* Hook animation */
    will-change: transform;
    animation: linear move forwards;
    animation-timeline: --section-pin-tl;
    animation-range: contain 10% contain 90%;
  }
  .pin-wrap {
    scroll-snap-type: x mandatory;
  }
  .carService-align {
    scroll-snap-align: center;
  }
}
/*************************************************************/
/*Diary*/
#diarySection {
  background-image: url("../img/img_sea2x-100.jpg");
  background-size: cover;
  overflow-x: hidden;
}
.wave {
  height: 100px;
  width: calc(100vw + 178px);
  display: block;
  background-image: url("../img/1x/wave.png");
  background-repeat: repeat-x;
  background-size: 1309px;
  animation: wave-move linear both;
  animation-duration: 5s;
  animation-iteration-count: infinite;
}
@keyframes wave-move {
  from {
    transform: translateX(-185px)
  }
  to {
    transform: translateX(0px);
  }
}
#diarySection h2 {
  color: #FFF;
  position: relative;
  z-index: 10;
}
#diarySection h2::after {
  content: "";
  color: #FFF;
  font-size: 1.4rem;
  display: block;
  font-weight: 300;
}
  #diarySection > p {
    color: #FFF;
    text-align: center;
    font-size: 1.1rem;
}
@media (max-width:990px) {
  .new {
    font-size: 3rem;
  }
}
.routeDesc {
  text-align: center;
  padding-bottom: 50px;
  padding-top: 50px;
}
.routeDesc div {
  width: 450px;
  height: 450px;
  background-image: url("../img/img_ship2x-100.jpg");
  background-size: contain;
  background-position: center;
  /*border: 20px solid #666;*/
  border-radius: 50%;
  margin: 0 auto;
  box-shadow: inset -1px -1px 15px 4px rgba(0, 0, 0, .8);
}
.routeDesc div:hover {
  filter: sepia(0.4);
}
/*************************************************************/

/**********************************************/
#picSection {
  text-align: center;
  padding-bottom: 10vh;
}
.slogenBg {
  margin: 0 auto;
  width: 80vw;
  max-width: 1000px;
  min-height: 50vh;
  height: 800px;
  background: url("../img/The NEXT IS NOW.svg");
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}
.slogen {
  height: 100%;
  width: 85%;
  max-width: 1200px;
  margin: 0 auto;
  background: url("../img/The NEXT IS NOW_title.svg");
  background-repeat: no-repeat;
  background-position: center;
  animation:
    bottom-up linear forwards 1s, scale-change ease-in forwards;
  animation-timeline: scroll(root);
  animation-range: 90% 100%;
  background-size: contain;
  /*animation-timeline: scroll(root);
    animation-range: 90% 99%;*/
}
.slogenBg > img {
  width: 90%;
  height: auto;
  max-width: 900px;
}
.schedule {
  width: 90%;
  max-width: 700px;
  margin: 0 auto;
  margin-top: 50px;
  opacity: 0;
  animation: bottom-up linear forwards 1s;
  animation-timeline: view();
  animation-range: 200px 500px;
}
.schedule > img {
  width: 100%;
}
.picList {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 90%; max-width: 1600px;
  margin: 0 auto;
  position: relative;
  z-index: 10;
}
.picList > div {
  margin: 1%;
  width: 30%;
  position: relative;
  max-width: 400px;
  overflow: hidden;
}
.picList > div:nth-child(odd) {
  text-align: right;
}
.picList > div:nth-child(even) {
  text-align: left;
}
.picList > div img {
  display: block;
  transition: transform 0.3s ease;
  height: auto;
  width: 100%;
}
.picList > div:hover img {
  transform: scale(1.05); /* 滑鼠移入時圖片稍微放大 */
}
/* 說明區塊：平時隱藏並覆蓋在圖片下方 */
.picList > div > div {
  position: absolute;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.30);
  color: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
  transition: opacity 0.5s linear; /* vendorless fallback */
  -o-transition: opacity 0.5s linear; /* opera */
  -ms-transition: opacity 0.5s linear; /* IE 10 */
  -moz-transition: opacity 0.5s linear; /* Firefox */
  -webkit-transition: opacity 0.5s linear; /*safari and chrome */
  visibility: hidden;
}
#endSection {
  width: 100%;
  overflow-y: hidden;
}
.logo_20th {
  height: 400px;
  width: 90%;
  margin: 0 auto;
  text-align: center;
  animation: scale-change ease-in forwards;
  animation-timeline: scroll(root);
  animation-range: 90% 100%;
  opacity: 0;
  align-items: start;
  padding-top: 200px;
}
.logo_20th > img {
  width: 480px;
  max-width: 100%;
}
.logo_20th_bg {
  height: 90vh;
  width: 100%;
  display: flex;
  position: fixed;
  bottom: 0px;
  z-index: -5;
}
.logo_20th_bg > div {
  display: block;
  background-repeat: no-repeat;
  width: 50%;
  height: 1000px;
}
.logo_20th_bl {
  background-image: url("../img/1x/bg1.png");
  background-position: left bottom;
  animation: text-flow linear both;
  animation-iteration-count: infinite;
  animation-duration: 5s;
}
.logo_20th_br {
  background-image: url("../img/1x/bg2.png");
  background-position: right top;
  animation: text-flow linear both;
  animation-iteration-count: infinite;
  animation-duration: 10s;
}
@keyframes text-flow {
  from {
    transform: translateX(15px);
    transform: translateY(0px);
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
  to {
    transform: translateX(-15px);
    transform: translateY(0px);
    opacity: 0;
  }
}
footer {
  background: #666;
  color: #FFF;
  height: fit-content;
  padding: 6px;
  margin-top: 50px;
}
footer > p {
  font-size: 0.9rem;
  text-align: center;
  line-height: 20px;
}
/*------- {{ effect-4 }} -------*/
.slogen:before, .slogen:after {
  left: 0;
  width: 100%;
  height: 2px;
  background: #ccc;
  content: "";
}
.slogen:before {
  bottom: 0;
  transform: translateX(-100%);
}
.slogen:after {
  top: 0;
  transform: translateX(100%);
}
.slogen:hover:before, .slogen:hover:after {
  transform: translateX(0);
}
@media (max-width:990px) {
  #kvSection {
        background-image: url(../img/kv_m.jpg);
    }
  .carServiceBl {
    width: 60%;
    min-width: 360px;
  }
  .pic_number > img {
    max-width: 100px;
  }
  .kvContent-title {
    font-size: 17vw;
  }
  .section > p, .pin-wrap-sticky > p {
    padding-top: 10px;
  }
}
@media (max-width:780px) {
 .kvContent-title {
    font-size: 20vw;
  }
  .carServiceBl {
    display: block;width: 100%;
    background: #FFF;
    direction: ltr;
  }
  .carServiceBr {
    height: 90%;  align-items: stretch;
  }
  .pic_number {
    font-size: 5rem;
    background: #fff;
	padding: 0;
  }
	.pic_number >img{
		margin-left: -10px;
	}	
  #carService {
padding-top: 0;
        padding-bottom: 30vh;
        justify-content: start;
        height: 80vh;
  }
 
	  #carSection h3 {
   font-size: 1.2rem;
    margin-top: 0; 
  }
	.pin-wrap-sticky{
		top: 0;
	}
  .carServiceDesc {
	  border-top: 10px solid #eb8800;
    border-top-width: 0;
    padding-bottom: 10px;
	padding-left: 30px;
    padding-right: 30px;
	min-height: 200px;
  }

  #carService > article {
    display: block;
    height: calc(100% - 35px);
	padding-right: 2vw; 
	background-color:transparent;
  }
  .pin-wrap {
    width: fit-content;
  }
  .slogenBg {
    height: 300px;
  }
	.picList {
	justify-content: space-between;
	}
	.picList >div{
		width: 48%;
	}

}
@media (max-width:640px) {
  .headerMenu {
    display: none;
  }
  .headerMenu-M > a {
    padding: 5px;
  }
  .headerMenuq-M {
    display: table-column;
    background: #FFF;
    position: relative;
    z-index: 100;
  }
  .logo_20th_bg {
    display: flow;
  }
  .logo_20th_bg > div {
    width: 90%;
  }
	.pin-wrap{
        
	}
	.pic_number img {
  min-width: 150px;
	}
}
@media (max-width:480px) {
 	#kvSection, #kv, .videoKV{
		height: 95vh;
	}
	.kv_bottom{
		bottom: 0;
		left: 46%;
		transform: translateX(-50%);
	}
	.kvContent-text {
    top: 25%;
  }
  .section h2 {
    font-size: 2rem;
    padding-top: 30px;
  }
  .video_bg2 {
    height: 10vh;top: -5vh;
  }
 
  #diarySection {
    padding-top: 1vh;
  }
  .pic_number {
   padding-top: 0;
  }
  #carService > article {
	 width: 100vw;
	}

  .routeDesc div {
    width: 340px;
    height: 340px;
  }

}

/* 小手機修正：保留原本橫向版型，避免固定寬度造成裁切 */
@media (max-width: 780px) {
  html,
  body {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .headerLogo {
    animation: none !important;
    filter: none !important;
  }

  .headerLogo img {
    display: block;
    width: 100%;
    height: auto;
    filter: brightness(0) invert(1) contrast(1.08) !important;
  }

  body.mobile-header-light .headerLogo img {
    filter: none !important;
  }

  #carSection {
    height: auto !important;
    overflow: hidden !important;
  }

  #carSection .pin-wrap-sticky {
    position: relative !important;
    top: auto !important;
    width: 100%;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding-bottom: 24px !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: 24px;
    touch-action: pan-x pan-y;
  }

  #carSection .pin-wrap-sticky::-webkit-scrollbar {
    display: none;
  }

  #carService,
  #carSection .pin-wrap {
    width: max-content !important;
    max-width: none;
    height: auto !important;
    display: inline-flex !important;
    flex-direction: row;
    align-items: stretch;
    gap: 0;
    padding: 0 18px 12px;
    box-sizing: border-box;
    transform: none !important;
    animation: none !important;
    scroll-snap-type: x mandatory;
  }

  #carService > article {
    width: calc(100vw - 48px) !important;
    flex: 0 0 calc(100vw - 48px);
    max-width: none;
    height: auto !important;
    min-height: 0;
    padding: 0 !important;
    margin: 0 6px;
    display: block !important;
    direction: ltr;
    overflow: visible;
    box-sizing: border-box;
    background: transparent;
    scroll-snap-align: center;
  }

  .carServiceBr {
    width: 100%;
    height: auto !important;
    min-height: 0;
    aspect-ratio: 16 / 10;
    background-size: cover;
    background-position: center;
    border: 0 !important;
  }

  .carServiceBl {
    width: 100%;
    min-width: 0 !important;
    box-sizing: border-box;
    border-top: 5px solid #000 !important;
    background: #fff;
  }

  .pic_number {
    border-top: 10px solid #eb8800;
    padding-top: 26px !important;
    padding-left: 28px;
    overflow: visible;
    box-sizing: border-box;
  }

  .pic_number img,
  .pic_number > img {
    width: min(46vw, 150px);
    min-width: 0 !important;
    max-width: 150px;
    margin-left: 0;
    padding-left: 0;
    display: block;
  }

  .carServiceDesc {
    min-height: 0 !important;
    padding: 0 22px 34px;
    box-sizing: border-box;
  }

  .carServiceDesc h3 {
    line-height: 1.35;
  }

  .carServiceDesc p {
    margin-bottom: 0;
    line-height: 1.8;
    word-break: break-word;
  }
}

@media (max-width: 360px) {
  #carSection .pin-wrap-sticky {
    scroll-padding-inline: 18px;
  }

  #carService,
  #carSection .pin-wrap {
    padding-left: 14px;
    padding-right: 14px;
  }

  #carService > article {
    width: calc(100vw - 40px) !important;
    flex-basis: calc(100vw - 40px);
    margin: 0 6px;
  }

  .carServiceDesc {
    padding-left: 18px;
    padding-right: 18px;
  }

  .pic_number img,
  .pic_number > img {
    width: min(44vw, 132px);
  }

  .pic_number {
    padding-top: 22px !important;
    padding-left: 22px;
  }
}

/* carSection 手機卡片對齊：數字與標題拉開，1-6 欄白色內容等高 */
@media (max-width: 780px) {
  .carServiceBl {
    min-height: 380px !important;
    display: flex !important;
    flex-direction: column;
  }

  .pic_number {
    padding-bottom: 18px !important;
  }

  .carServiceDesc {
    flex: 1;
    display: flex;
    flex-direction: column;
    padding-top: 12px;
  }

  .carServiceDesc h3 {
    margin-top: 0 !important;
    margin-bottom: 18px;
  }

  .carServiceDesc p {
    flex: 0;
  }
}

@media (max-width: 480px) {
  .carServiceBl {
    min-height: 410px !important;
  }
}

@media (max-width: 360px) {
  .carServiceBl {
    min-height: 440px !important;
  }

  .pic_number {
    padding-bottom: 20px !important;
  }
}

/* videoSection 手機版：影片自適應，影片下方文字完整顯示 */
@media (max-width: 780px) {
  #videoSection {
    height: auto !important;
    min-height: 0 !important;
    padding-bottom: 56px;
    overflow: visible;
  }

  #video {
    width: calc(100% - 36px);
    margin-top: 26px;
  }

  #video iframe {
    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9;
    display: block;
  }

  .video_bg2 {
    position: relative;
    z-index: 0;
    top: 0 !important;
    left: 0;
    width: calc(100% - 36px);
    height: 18vw;
    min-height: 70px;
    margin: 22px auto 0;
    background-position: center top;
  }
}

@media (max-width: 480px) {
  .video_bg2 {
    height: 22vw;
    min-height: 76px;
    margin-top: 18px;
  }
}
