@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+TC:wght@100;300;400;500;700;900&family=Noto+Serif+TC:wght@200;300;400;500;600;700;900&display=swap");

@font-face {
    font-family: "Futura-Std-Heavy";
    src: url(../fonts/Futura\ Std\ Heavy.otf);
}

@font-face {
    font-family: "Futura-Std-Light";
    src: url(../fonts/Futura\ Std\ Light.otf);
}

@font-face {
    font-family: "Futura-Std-Medium";
    src: url(../fonts/Futura\ Std\ Medium.otf);
}

@font-face {
    font-family: "Futura-Std-Book";
    src: url(../fonts/Futura\ Std\ Book.otf);
}

@font-face {
    font-family: "Futura-Std-BookOblique";
    src: url(../fonts/Futura\ Std\ Book\ Oblique.otf);
}

@font-face {
    font-family: "GenKiMin2JP-R";
    src: url(../fonts/GenKiMin2JP-R.otf);
}



@font-face {
    font-family: "GenKiMin2JP-SB";
    src: url(../fonts/GenKiMin2JP-SB.otf);
}

@font-face {
    font-family: "Branch-Regular";
    src: url(../fonts/Branch-Regular.otf);
}

.Futura-Std-Light {
    font-family: "Futura-Std-Light";
}

.Futura-Std-Heavy {
    font-family: "Futura-Std-Heavy";
}

.Futura-Std-Medium {
    font-family: "Futura-Std-Medium";
}

.Futura-Std-Book {
    font-family: "Futura-Std-Book";
}

.noto-sans-300 {
    font-family: "Noto Sans TC";
    font-weight: 300;
}

.Branch-Regular {
    font-family: "Branch-Regular";
}

/* 自定義 AOS：Scale Fade (1.05 -> 1.00) */
[data-aos="scale-fade"] {
    opacity: 0;
    transform: scale(1.05);
    transition-property: transform, opacity;
}

[data-aos="scale-fade"].aos-animate {
    opacity: 1;
    transform: scale(1);
}

/* 自定義 AOS：Clip Down (由上往下) */
[data-aos="clip-down"] {
    opacity: 1;
    clip-path: inset(0 0 100% 0);
}

[data-aos="clip-down"].aos-animate {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transition-property: clip-path;
}

[data-aos="clip-right"] {
    opacity: 1;
    clip-path: inset(0 100% 0 0);
}

[data-aos="clip-right"].aos-animate {
    opacity: 1;
    clip-path: inset(0 0 0 0);
    transition-property: clip-path;
}


body,
html {
    position: relative;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    scroll-behavior: smooth;
    --vw-base: calc(100vw / 1920);
}

body>* {}

h1,
h2,
h3,
h4,
h5,
h6,
p {
    margin: 0;
    padding: 0;
}

a:link,
a:visited,
a:hover,
a:active {
    text-decoration: none;
}

button,
input,
textarea,
select,
option {
    margin: 0;
    padding: 0;
    -webkit-appearance: none;
    -webkit-border-radius: 0px;
    border-radius: 0;
    -moz-appearance: none;
    appearance: none;
    outline: none;
}

ul {
    list-style: none;
    padding: 0;
    margin: 0;
}

img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.pic-txt {
    position: absolute;
    bottom: calc(10* var(--vw-base));
    right: calc(10* var(--vw-base));
    color: #fff;
    font-size: calc(15* var(--vw-base));
    font-family: "GenKiMin2JP-R";
    letter-spacing: 0.05em;
    line-height: calc(20* var(--vw-base));
    z-index: 10;
    text-shadow: #4e484698 1px 1px 1px;
}

.sw-next {
    position: absolute;
    right: calc(20*var(--vw-base));
    top: 46%;
    width: calc(26*var(--vw-base));
    height: calc(36*var(--vw-base));
    background-image: url(../img/sw5-next.png);
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 10;
    cursor: pointer;
}

.sw-prev {
    position: absolute;
    left: calc(20*var(--vw-base));
    top: 46%;
    width: calc(26*var(--vw-base));
    height: calc(36*var(--vw-base));
    background-image: url(../img/sw5-prev.png);
    background-size: contain;
    background-repeat: no-repeat;
    z-index: 10;
    cursor: pointer;
}


.nav {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: calc(79*var(--vw-base));
    z-index: 100;
    display: flex;
    justify-content: space-between;
    align-items: center;
    pointer-events: none;
    opacity: 0;
    transform: translateY(-100%);
    transition: all 0.5s ease-in-out;
    /* background-color: #000000c0; */
    background-image: url(../img/nav-all.png);
    background-size: cover;
    background-position: bottom center;
}

.nav.active {
    pointer-events: all;
    opacity: 1;
    transform: translateY(0%);
}


/* .nav::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: #e7a423;
    z-index: 10;
} */

.nav .logo {
    position: relative;
    width: calc(202*var(--vw-base));
    height: calc(59*var(--vw-base));
    margin-left: calc(28*var(--vw-base));
}

.nav .logo img {
    object-fit: contain;
}

.nav .menu {
    position: relative;
    height: 100%;
    display: flex;
    align-items: center;
    gap: calc(0*var(--vw-base));
    margin-right: calc(15*var(--vw-base));
}

.nav .menu-btn {
    position: relative;
    width: calc(78*var(--vw-base));
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    /* background-color: #ffffff28; */
}

.nav .menu-btn::before {
    /* content: "";
    position: absolute;
    right: 0;
    top: 0;
    width: 1px;
    height: 100%;
    background-color: #605531; */
}

.nav .menu-btn:last-child::before {
    display: none;
}


.nav .menu-btn .menu-icon {
    width: calc(34*var(--vw-base));
    height: calc(37*var(--vw-base));
}

.nav .menu-btn .menu-icon img {
    object-fit: contain;
}


/*內容*/
.container {
    width: 100%;
    height: auto;
    position: relative;
    background-color: #0f0f0f;
}

.container .cn img,
.container .en img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}


.container h4 {
    color: #fff;
    /* font-size: calc(25*var(--vw-base)); */
    font-size: calc(19*var(--vw-base));
    font-family: "GenKiMin2JP-R";
    line-height: calc(35*var(--vw-base));
    letter-spacing: 0.1em;
    font-weight: normal;
    text-align: start;
}


.m1 {
    position: relative;
    width: 100%;
    height: calc(950*var(--vw-base));
    /* background-color: #fff; */
    /* 白色背景開始 */
    overflow: hidden;
}



.m1-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

.m1-bg video {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.m1-logo {
    position: absolute;
    left: calc(32*var(--vw-base));
    top: calc(18*var(--vw-base));
    width: calc(202*var(--vw-base));
    height: calc(59*var(--vw-base));
}

.voice,
.voice2 {
    width: 2vw;
    z-index: 9;
    color: #fff;
    position: absolute;
    left: 1.5vw;
    bottom: 1.5vw;
    cursor: pointer;
}


.haveVoice,
.noVoice {
    width: 100%;
    position: relative;
}

.haveVoice2,
.noVoice2 {
    width: 100%;
    position: relative;
}


.m2 {
    position: relative;
    width: 100%;
    height: calc(1110*var(--vw-base));
}

.m2 .title {
    position: absolute;
    left: calc(1311*var(--vw-base));
    top: calc(376*var(--vw-base));
    display: flex;
    flex-direction: column;
    align-items: start;
    z-index: 5;
}

.m2 .title .cn {
    position: relative;
    width: calc(236*var(--vw-base));
    height: calc(27*var(--vw-base));
}

.m2 .title .en {
    position: relative;
    margin-top: calc(15*var(--vw-base));
    width: calc(195*var(--vw-base));
    height: calc(27*var(--vw-base));
}

.m2 .title h4 {
    position: relative;
    width: 100%;
    margin-top: calc(32*var(--vw-base));
}


.m2-swiper {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

.m2-swiper .swiper-slide .sw-pic {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    z-index: 1;
    transform: translate(-50%, -50%);

}

.m2-swiper .swiper-slide .sw-pic img {
    transform: scale(1.1);
    transition: transform 5s ease-in-out;
}

.m2-swiper.is-inview .swiper-slide-active .sw-pic img {
    transform: scale(1);
}


.m2-pic-txt {
    position: absolute;
    bottom: calc(182* var(--vw-base));
    left: calc(35* var(--vw-base));
    color: #fff;
    font-size: calc(14* var(--vw-base));
    font-family: "GenKiMin2JP-R";
    font-weight: 400;
    letter-spacing: 0.1em;
    line-height: calc(24* var(--vw-base));
    z-index: 10;
    /* text-shadow: #000000 0px 0px 2px; */
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.m2-swiper.is-inview .swiper-slide-active .m2-pic-txt {
    opacity: 1;
    transition: opacity 1s ease-in-out 3s;
}


.m3 {
    position: relative;
    width: 100%;
    height: calc(950*var(--vw-base));
}

.m3-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


.m3 .title {
    position: absolute;
    left: calc(227*var(--vw-base));
    top: calc(144*var(--vw-base));
    display: flex;
    flex-direction: column;
    align-items: start;
    z-index: 5;
}

.m3 .title .cn {
    position: relative;
    width: calc(237*var(--vw-base));
    height: calc(27*var(--vw-base));
}

.m3 .title .en {
    position: relative;
    width: calc(164*var(--vw-base));
    height: calc(22*var(--vw-base));
    margin-top: calc(10*var(--vw-base));
}

.m3 .title h4 {
    position: relative;
    margin-top: calc(30*var(--vw-base));
}

.m3-swiper {
    position: absolute;
    top: 0;
    left: calc(857*var(--vw-base));
    width: calc(911*var(--vw-base));
    height: calc(684*var(--vw-base));
}

.m3-swiper .swiper-slide .sw-pic {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    z-index: 1;
    transform: translate(-50%, -50%);

}

.m3-swiper .swiper-slide .sw-pic img {
    transform: scale(1.1);
    transition: transform 5s ease-in-out;
}

.m3-swiper.is-inview .swiper-slide-active .sw-pic img {
    transform: scale(1);
}


.m4 {
    position: relative;
    width: 100%;
    /* height: calc(1086*var(--vw-base)); */
    background-color: #0f0f0f;
    height: calc(1162*var(--vw-base));
    overflow: hidden;
}

/* m4-swiper 輪播背景容器 */
.m4-swiper {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

/* 輪播圖片容器，置中定位 */
.m4-swiper .swiper-slide .sw-pic {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    z-index: 1;
    transform: translate(-50%, -50%);
}

/* 輪播圖片預設稍微放大，用於縮小轉場動畫 */
.m4-swiper .swiper-slide .sw-pic img {
    transform: scale(1.1);
    transition: transform 5s ease-in-out;
}

/* 當輪播 active 且區塊進入畫面時，圖片縮小回原始比例 */
.m4-swiper.is-inview .swiper-slide-active .sw-pic img {
    transform: scale(1);
}

/* 輪播 slide 內圖片說明文字的淡入動畫 */
.m4-swiper.is-inview .swiper-slide-active .m2-pic-txt {
    opacity: 1;
    transition: opacity 1s ease-in-out 3s;
}


.m4 .title {
    position: absolute;
    left: calc(115*var(--vw-base));
    top: calc(441*var(--vw-base));
    display: flex;
    flex-direction: column;
    align-items: start;
    z-index: 5;
    gap: calc(0*var(--vw-base));
}

/* .m4 .title .t1 {
    display: flex;
    flex-direction: column;
} */

.m4 .title .cn {
    position: relative;
    margin-top: calc(0*var(--vw-base));
    width: calc(241*var(--vw-base));
    height: calc(27*var(--vw-base));
}

.m4 .title .en {
    position: relative;
    width: calc(213*var(--vw-base));
    height: calc(28*var(--vw-base));
    margin-top: calc(10*var(--vw-base));
}

.m4 .title h4 {
    position: relative;
    margin-top: calc(40*var(--vw-base));
}

.m4-pic-txt {
    position: absolute;
    bottom: calc(106* var(--vw-base));
    left: calc(39* var(--vw-base));
    color: #fff;
    font-size: calc(15* var(--vw-base));
    font-family: "GenKiMin2JP-R";
    font-weight: 400;
    letter-spacing: 0.1em;
    line-height: calc(24* var(--vw-base));
    z-index: 10;
}

.m4 .sw-next {
    position: absolute;
    right: calc(38*var(--vw-base));
    top: calc(650*var(--vw-base));

}

.m4 .sw-prev {
    position: absolute;
    left: calc(38*var(--vw-base));
    top: calc(650*var(--vw-base));
}



.m5 {
    position: relative;
    width: 100%;
    height: calc(845*var(--vw-base));
    overflow: hidden;
}

.m5 .swiper {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: calc(935*var(--vw-base));
}

.m5 .swiper .sw-bg {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: calc(935*var(--vw-base));
}

.m5-swiper.is-inview .swiper-slide-active .pic-txt {
    opacity: 1;
    transition: opacity 1s ease-in-out 3s;
}

.m5-swiper .swiper-slide .sw-pic {
    position: absolute;
    top: 0;
    right: 0%;
    width: calc(1234*var(--vw-base));
    height: calc(737*var(--vw-base));
    z-index: 1;
    /* transform: translate(-50%, -50%); */
    overflow: hidden;

}

.m5-swiper .swiper-slide .sw-pic img {
    transform: scale(1.1);
    transition: transform 5s ease-in-out;
}

.m5-swiper.is-inview .swiper-slide-active .sw-pic img {
    transform: scale(1);
}

.m5-tilte-line {
    position: relative;

    width: 1px;
    height: calc(85*var(--vw-base));
}

.m5-tilte-line .ani-line {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    opacity: 0.5;
}




.m5 .title {
    position: absolute;
    left: calc(221*var(--vw-base));
    top: calc(324*var(--vw-base));
    display: flex;
    flex-direction: column;
    align-items: start;
    z-index: 5;
}

.m5 .title .cn {
    position: relative;
    width: calc(238*var(--vw-base));
    height: calc(27*var(--vw-base));
}

.m5 .title .en {
    position: relative;
    width: calc(191*var(--vw-base));
    height: calc(30*var(--vw-base));
    margin-top: calc(10*var(--vw-base));
}

.m5 .sw-next {
    position: absolute;
    right: calc(38*var(--vw-base));
    top: calc(350*var(--vw-base));

}

.m5 .sw-prev {
    position: absolute;
    left: calc(38*var(--vw-base));
    top: calc(350*var(--vw-base));
}

.m6 {
    position: relative;
    width: 100%;
    height: calc(961*var(--vw-base));
}

.m6-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}


.m6 .title {
    position: absolute;
    left: calc(1147*var(--vw-base));
    top: calc(212*var(--vw-base));
    display: flex;
    flex-direction: column;
    align-items: start;
    z-index: 5;
}

.m6 .title .cn {
    position: relative;
    width: calc(239*var(--vw-base));
    height: calc(27*var(--vw-base));
}

.m6 .title .en {
    position: relative;
    width: calc(210*var(--vw-base));
    height: calc(22*var(--vw-base));
    margin-top: calc(10*var(--vw-base));
}

.m6-tilte-line {
    position: absolute;
    left: calc(1147*var(--vw-base));
    top: calc(280*var(--vw-base));
    width: 1px;
    height: calc(52*var(--vw-base));
}

.m6-tilte-line .ani-line {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    opacity: 0.5;
}

.m6-swiper {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
}

.m6 .swiper-title {
    position: absolute;
    left: calc(1147*var(--vw-base));
    top: calc(335*var(--vw-base));
    text-align: start;
    color: #ffffff;
    font-size: calc(25*var(--vw-base));
    font-family: "GenKiMin2JP-R";
    letter-spacing: 0.1em;
    line-height: calc(40*var(--vw-base));
    display: flex;
    flex-direction: column;
    align-items: start;
    justify-content: center;
}

.swiper-title.t1 {
    flex-direction: row;
}

.m6 .main-pic {
    position: absolute;
    left: calc(30*var(--vw-base));
    top: calc(49*var(--vw-base));
    width: calc(1124*var(--vw-base));
    height: calc(655*var(--vw-base));
}

.m6 .project-box {
    position: absolute;
    left: calc(1147*var(--vw-base));
    top: calc(447*var(--vw-base));
    display: flex;
    gap: calc(7*var(--vw-base));
    justify-content: start;
}

.m6 .project-item {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: calc(16*var(--vw-base));
    cursor: pointer;
}

.m6 .project-name {
    color: #ffffff;
    font-size: calc(18*var(--vw-base));
    font-family: "GenKiMin2JP-R";
    letter-spacing: 0.1em;
    text-align: center;
}

.m6 .project-pic {
    position: relative;
    width: calc(152*var(--vw-base));
    height: calc(107*var(--vw-base));
}

.m6 .sw-next {
    position: absolute;
    right: calc(38*var(--vw-base));
    top: calc(370*var(--vw-base));

}

.m6 .sw-prev {
    position: absolute;
    left: calc(38*var(--vw-base));
    top: calc(370*var(--vw-base));
}

.m6-open {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 100vh;
    z-index: 100;
    background-color: #000;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    /* 加入 clip-down 動畫初始狀態 */
    clip-path: inset(0 0 100% 0);
    /* 離開時延遲 0.6s 收回背景，等待內容先淡出 */
    transition: clip-path 0.7s ease-in-out 0.3s, opacity 0.7s ease 0.3s;
    pointer-events: none;
    opacity: 0;
}

.m6-open.active {
    clip-path: inset(0 0 0 0);
    pointer-events: auto;
    opacity: 1;
    /* 進場時立刻開始背景動畫（延遲 0s） */
    transition-delay: 0s;
}

.m6-open-title,
.m6-open-pic {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
    /* 離開時延遲 0s，立刻開始淡出 */
    transition-delay: 0s;
}

/* 當活動狀態時，內容延遲顯示 */
.m6-open.active .m6-open-title,
.m6-open.active .m6-open-pic {
    opacity: 1;
    transform: translateY(0);
    /* 進場時延遲 0.8s，等背景切下來後才出現 */
    transition-delay: 0.8s;
}

.m6-open-title {
    position: relative;
    /* margin-bottom: calc(40*var(--vw-base)); */
    font-size: calc(20*var(--vw-base));
    line-height: calc(30*var(--vw-base));
    letter-spacing: 0.1em;
    color: #fff;
    font-family: "GenKiMin2JP-R";
    text-align: center;
}

.m6-open-pic {
    position: relative;
    margin-top: calc(20*var(--vw-base));
    width: calc(1073*var(--vw-base));
    height: calc(753*var(--vw-base));
}

.m6-open-pic img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.open-close {
    position: absolute;
    right: 3vw;
    top: 3vw;
    width: calc(40*var(--vw-base));
    height: calc(40*var(--vw-base));
    cursor: pointer;
}












.m7 {
    position: relative;
    width: 100%;
    height: calc(684*var(--vw-base));
}

.m7-map {
    position: absolute;
    left: calc(853*var(--vw-base));
    top: 0;
    width: calc(919*var(--vw-base));
    height: calc(684*var(--vw-base));

}

.m7-contain {
    position: absolute;
    left: 0;
    top: 0;
    width: calc(853*var(--vw-base));
    display: flex;
    flex-direction: column;
    box-sizing: border-box;
    padding: calc(110*var(--vw-base)) 0 calc(0*var(--vw-base)) calc(220*var(--vw-base));
}

.m7 .cn {
    position: relative;
    width: calc(437*var(--vw-base));
    height: calc(27*var(--vw-base));
}

.m7 .en {
    position: relative;
    margin-top: calc(10*var(--vw-base));
    width: calc(397*var(--vw-base));
    height: calc(23*var(--vw-base));
}



.m7-info {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: start;
    gap: calc(25*var(--vw-base));
    box-sizing: border-box;
    padding: calc(0*var(--vw-base)) 0 calc(69*var(--vw-base)) calc(0*var(--vw-base));
    margin: calc(40*var(--vw-base)) 0 calc(0*var(--vw-base)) 0;
}


.m7-info.info::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 1px;
    background-color: #fff;
    opacity: 0.3;
}

.m7-info li {
    display: flex;
}

.m7-info .info-title {
    position: relative;
    width: calc(150*var(--vw-base));
    font-size: calc(20*var(--vw-base));
    line-height: calc(24*var(--vw-base));
    letter-spacing: 0.05em;
    color: #fff;
    font-family: "GenKiMin2JP-R";
}

.m7-info .info-content {
    position: relative;
    /* width: calc(134*var(--vw-base)); */
    font-size: calc(20*var(--vw-base));
    line-height: calc(24*var(--vw-base));
    letter-spacing: 0.05em;
    color: #fff;
    font-family: "GenKiMin2JP-R";
}

.m7-info-line {
    position: absolute;
    left: calc(114*var(--vw-base));
    top: calc(0*var(--vw-base));
    width: 1px;
    height: 100%;
}

.m7-info-line .line-ani {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    z-index: 10;
    opacity: 0.3;
}

.m7-bottom-line {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
}

.m7-bottom-line .line-ani {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    background-color: #fff;
    z-index: 10;
    opacity: 0.3;
}


/*m8*/
.m8 {
    width: 100%;
    height: calc(1618*var(--vw-base));
    position: relative;
    /* background-color: #000; */
    z-index: 20;
    box-sizing: border-box;
    /* padding: calc(0*var(--vw-base)) 0 calc(175*var(--vw-base)) 0; */
    display: flex;
    flex-direction: column;
    align-items: center;
    overflow: hidden;
}

.m8-bg {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 100%
}

.form-required-txt {
    position: relative;
    width: 68%;
    text-align: end;
    font-size: calc(20*var(--vw-base));
    line-height: calc(32*var(--vw-base));
    letter-spacing: 0.1em;
    color: #f5f0ea;
    font-family: "GenKiMin2JP-SB";
    font-weight: 500;
    /* font-style: italic; */
    margin-top: calc(30*var(--vw-base));
}

.form-title {
    position: relative;
    margin-top: calc(270*var(--vw-base));
    width: calc(113*var(--vw-base));
    height: calc(27*var(--vw-base));
}

.form-title-en {
    width: 100%;
    position: relative;
    margin-top: calc(10*var(--vw-base));
    width: calc(199*var(--vw-base));
    height: calc(22*var(--vw-base));
}


.form-title img,
.form-title-en img {
    object-fit: contain;
}

.form {
    width: 68%;
    height: auto;
    position: relative;
    margin: 0.5vw auto 10vw auto;
    color: #fff;
    font-family: "GenKiMin2JP-R";
    padding: 0;
}

.form form {
    position: relative;
    overflow: hidden;
}

.star {
    position: absolute;
    left: 4.8vw;
    top: 0vw;
    font-size: calc(16 * var(--vw-base));
}

.text-input {
    width: 100%;
    height: 3.5vw;
    line-height: 3.5vw;
    background-color: rgba(239, 239, 239, 0.75);
    font-size: calc(20 * var(--vw-base));
    position: relative;
    padding: 0 1vw;
    box-sizing: border-box;
    margin-bottom: 1vw;
    border: 1px solid rgba(0, 0, 0, 0.4);
}

.text-input.half {
    width: 49%;
    height: 3.5vw;
    line-height: 3.5vw;
    background-color: rgba(239, 239, 239, 0.75);
    font-size: calc(20 * var(--vw-base));
    position: relative;
    padding: 0 1vw;
    box-sizing: border-box;
    margin-bottom: 1vw;
    border: 1px solid rgba(0, 0, 0, 0.4);
    display: inline-block;
}

.input-title {
    position: relative;
    margin-top: 1.2vw;
    width: 7vw;
    /* height: 3.5vw; */
    line-height: 1.2;
    /* 縮小行高以利多行顯示 (Adjust line height for multi-line display) */
    color: #3e3a39;
    float: left;
    letter-spacing: 0.1vw;
    /* margin-top: -1px; */
    display: flex;
    /* 使用 Flexbox 彈性佈局 (Use Flexbox layout) */
    flex-direction: column;
    /* 垂直排列 (Vertical direction) */
    justify-content: center;
    /* 垂直置中 (Vertical alignment) */
}

.input-title.long {
    margin-top: 0.7vw;
}

.input-title.code {
    /* margin-top: vw; */
}

.input-title .mini {
    font-size: calc(16 * var(--vw-base));
    /* PC 版適應之字體大小 (Font size adapter for PC) */
    opacity: 0.8;
    /* 稍微淡化 (Slightly faded) */
}

.input {
    width: 75%;
    float: left;
    position: relative;
    overflow: hidden;
    margin-top: -1px;
    font-weight: bold;
    font-family: "GenKiMin2JP-R";
}

.input input {
    width: 100%;
    line-height: 3.5vw;
    padding: 0 0 0 2%;
    box-sizing: border-box;
    border: none;
    color: #3e3a39;
    font-size: calc(20 * var(--vw-base));
    background-color: transparent;
    font-family: "GenKiMin2JP-R";
    outline: none;
    letter-spacing: 0.3vw;
    margin-top: -1px;
}

.form input::placeholder {
    color: #3e3a39 !important;
}

.check-txt {
    width: 100%;
    font-size: calc(19.88 * var(--vw-base));
    letter-spacing: 0.1vw;
    text-align: center;
    margin-bottom: 0vw;
    color: #ffffff;
    line-height: 2vw;
}

.check-item {
    width: 100%;
    height: auto;
    line-height: 2vw;
    margin: 0;
    vertical-align: middle;
    position: relative;
    color: #ffffff;
    font-family: "GenKiMin2JP-R";
}

.check-item label {
    width: 100%;
    display: block;
    line-height: 2vw;
    cursor: pointer;
    font-size: calc(19.88 * var(--vw-base));
    letter-spacing: 0.15vw;
    text-align: center;
}

.check-item label input[type="checkbox"] {
    width: 1.2vw;
    height: 1.2vw;
    margin: 0 0.5vw -0.3% 0;
    -webkit-appearance: none;
    -webkit-border-radius: 0px;
    -moz-appearance: none;
    appearance: none;
    background: url(../img/check-white.png) no-repeat top center;
    background-size: 1.2vw 1.2vw;
    border: none;
    cursor: pointer;
}

.check-item label input:checked {
    background: url("../img/checked-white.png") no-repeat top center;
    background-size: 1.2vw 1.2vw;
}

.check-space {
    width: 77vw;
    margin: -6vw 0 0 5vw;
}

.form-btn {
    width: 100%;
    height: auto;
    margin: 2vw auto 0vw auto;
    position: relative;
}

.form input[type="button"],
.form input[type="submit"],
.form input[type="reset"] {
    width: 100%;
    background-color: transparent;
    color: #fff;
    background-color: #b97550;
    font-family: "GenKiMin2JP-R";
    outline: none;
    font-size: calc(24 * var(--vw-base));
    box-sizing: border-box;
    letter-spacing: 0.15vw;
    line-height: 3.5vw;
    border: none;
    border-radius: 0;
    -webkit-appearance: none;
    -webkit-border-radius: 0px;
    position: relative;
    cursor: pointer;
}

.form select {
    width: 100%;
    box-sizing: border-box;
    height: 3.5vw;
    line-height: 3.5vw;
    font-size: calc(20 * var(--vw-base));
    color: #3e3a39;
    padding-left: 27.5%;
    font-family: "GenKiMin2JP-R";
    background-color: transparent;
    appearance: none;
    -moz-appearance: none;
    -webkit-appearance: none;
    -webkit-tap-highlight-color: rgba(255, 255, 255, 0);
    -webkit-tap-highlight-color: transparent;
    background-image: url(../img/select.png);
    background-position-x: 97%;
    background-position-y: 53%;
    background-repeat: no-repeat;
    background-size: 2.8%;
    outline: none;
    border: none;
    cursor: pointer;
    -webkit-appearance: none;
    -webkit-border-radius: 0px;
    letter-spacing: 0.2vw;
    position: relative;
    margin-top: -1px;
}

.form select option {
    color: #333;
}

.select {
    width: 100%;
    position: absolute;
    left: 0;
    top: 0;
    margin-top: -1px;
}

.refresh {
    width: 4vw;
    height: 4vw;
    position: absolute;
    right: 0;
    top: 1vw;
    background-image: url(../img/refresh.png);
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
}

.check-item-sex {
    position: absolute;
    right: 0vw;
    top: 0;
    height: 3.5vw;
    line-height: 3.5vw;
    color: #3e3a39;
    z-index: 1;
}

.check-item-time {
    position: absolute;
    left: 10vw;
    top: 0vw;
    height: 3.5vw;
    line-height: 3.5vw;
    color: #3e3a39;
    z-index: 1;
}

.check-select {
    position: absolute;
    left: 10vw;
    top: 0vw;
    height: 3.5vw;
    line-height: 3.5vw;
    color: #3e3a39;
    z-index: 1;
}

.check-select2 {
    position: absolute;
    left: 10vw;
    top: 0.5vw;
    height: 3.5vw;
    line-height: 3.5vw;
    color: #3e3a39;
    z-index: 1;
}

.check-item-time label {
    width: 11vw;
    height: 3.5vw;
    line-height: 3.5vw;
    cursor: pointer;
    font-size: calc(20 * var(--vw-base));
    display: block;
    float: left;
    font-family: "GenKiMin2JP-R";
}

.check-item-sex label {
    width: 5vw;
    height: 3.5vw;
    line-height: 3.5vw;
    cursor: pointer;
    font-size: calc(20 * var(--vw-base));
    display: block;
    float: left;
    font-family: "GenKiMin2JP-R";
}

.check-select label {
    width: 7.5vw;
    height: 3.5vw;
    line-height: 3.5vw;
    cursor: pointer;
    font-size: calc(20 * var(--vw-base));
    display: block;
    float: left;
    white-space: nowrap;
    font-family: "GenKiMin2JP-R";
}

.check-select2 label {
    width: 8.5vw;
    height: 2.5vw;
    line-height: 2.5vw;
    cursor: pointer;
    font-size: calc(20 * var(--vw-base));
    display: block;
    float: left;
    white-space: nowrap;
    font-family: "GenKiMin2JP-R";
}

.check-select2 label {
    width: 12vw;
}

.check-select3 label {
    width: 11vw;
    height: 3.5vw;
    line-height: 3.5vw;
    cursor: pointer;
    font-size: calc(20 * var(--vw-base));
    display: block;
    float: left;
    white-space: nowrap;
    font-family: "GenKiMin2JP-R";
}

.check-item-sex label input[type="radio"],
.check-item-time label input[type="radio"],
.check-select label input[type="radio"],
.check-select label input[type="checkbox"],
.check-item-time label input[type="checkbox"] {
    width: 1vw;
    height: 1vw;
    margin: 0 2% -1% 0;
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    -webkit-border-radius: 0px;
    background: url(../img/check.png) no-repeat top center;
    background-size: 1vw 1vw;
    border: none;
    cursor: pointer;
}

.check-item-sex label input:checked,
.check-item-time label input:checked,
.check-select label input:checked {
    background: url("../img/checked.png") no-repeat top center;
    background-size: 1vw 1vw;
}

.openTxtBtn {
    /* border-bottom: 1px solid #000000; */
}

input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
input:-webkit-autofill:active {
    -webkit-text-fill-color: #3e3a39;
    -webkit-box-shadow: 0 0 0px 1000px transparent inset;
    /*淡淡的白*/
    transition: background-color 5000s ease-in-out 0s;
    /*透明*/
}

.verification-code input {
    text-align: left;
}

.verification-code .input-title {
    width: 7.4vw;
    margin-top: 0.3vw;
    padding: 0.5vw;
    box-sizing: border-box;
}

.verification-code .input-title img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.verification-code.text-input {
    padding: 0;
}

.line-placeholder {
    position: absolute;
    left: 1vw;
    top: 50%;
    transform: translateY(-50%);
    color: #393939;
    opacity: 0.3;
    font-size: calc(20 * var(--vw-base));
    line-height: 1;
    pointer-events: none;
    font-family: 'GenKiMin2JP-R';
    white-space: nowrap;
}

#txtLine:not(:placeholder-shown)+.line-placeholder {
    display: none;
}


/*同意書照片預覽*/

.black {
    display: none;
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0px;
    top: 0px;
    background-color: rgba(0, 0, 0, 0.9);
    z-index: 11111;
    font-family: "jf-jinxuan-medium";
}

.closeBtn {
    width: 30px;
    position: absolute;
    right: 5%;
    top: 4%;
    cursor: pointer;
}

.infoWrap {
    width: 100%;
    margin: 0 auto;
    max-width: 65%;
    position: relative;
    height: 100vh;
    overflow: auto;
}

.infoWrap ul {
    list-style: none;
    font-size: 1vw;
    padding-inline-start: 2vw;
    letter-spacing: 0.05vw;
}

.infoWrap ul>li>ul {
    list-style: none;
    font-size: 1vw;
    padding-inline-start: 1vw;
}

.li1::before {
    content: "一、";
    position: absolute;
    left: 0vw;
}

.li2::before {
    content: "二、";
    position: absolute;
    left: 0vw;
}

.li3::before {
    content: "三、";
    position: absolute;
    left: 0vw;
}

.li4::before {
    content: "四、";
    position: absolute;
    left: 0vw;
}

.li5::before {
    content: "五、";
    position: absolute;
    left: 0vw;
}

.li1-li::before {
    content: "（１）";
    position: absolute;
    left: 0vw;
}

.li2-li::before {
    content: "（２）";
    position: absolute;
    left: 0vw;
}

.li3-li::before {
    content: "（３）";
    position: absolute;
    left: 0vw;
}

.li4-li::before {
    content: "（４）";
    position: absolute;
    left: 0vw;
}

.infoBox {
    width: 100%;
    height: calc(100% - 15vw);
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -50%);
    overflow-y: auto;
    color: #fff;
    text-align: left;
}

.infoBox h3 {
    font-size: 1.2vw;
    line-height: 200%;
    margin-bottom: 25px;
    text-align: center;
    letter-spacing: 0.05vw;
}

.infoBox h4 {
    font-size: 1vw;
    line-height: 200%;
    margin-bottom: 1vw;
    letter-spacing: 0.05vw;
}

.infoBox h5 {
    font-size: 1.2vw;
    line-height: 200%;
    margin-bottom: 1vw;
    letter-spacing: 0.05vw;
}

.infoBox p {
    font-size: 1vw;
    line-height: 200%;
    letter-spacing: 0.05vw;
}

/* 隱藏瀏覽器原生的滾動條以防止 100vw 的寬度包含滾動條 (Hide native scrollbar to prevent 100vw from including scrollbar width) */
::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
}

html {
    scrollbar-width: none !important;
    /* Firefox */
    -ms-overflow-style: none !important;
    /* IE and Edge */
}

/* 自製滾動條軌道容器 (Custom Scrollbar Track Container) */
.custom-scrollbar {
    position: fixed;
    right: 4px;
    top: 4px;
    bottom: 4px;
    width: 4px;
    /* background-color: rgba(255, 255, 255, 0.02); */
    /* 微弱的半透明背景軌道 */
    border-radius: 4px;
    z-index: 999999;
    pointer-events: auto;
    opacity: 0;
    transition: opacity 0.3s ease, background-color 0.3s ease;
}

/* 當滑鼠懸停於軌道或是有 visible 類別時顯示滾動條 (Show scrollbar when hovered or has visible class) */
.custom-scrollbar.visible,
.custom-scrollbar:hover {
    opacity: 1;
    background-color: rgba(255, 255, 255, 0.08);
    /* 懸停時軌道背景變深一點 */
}

/* 自製滾動條滑塊 (Custom Scrollbar Thumb) */
.custom-scrollbar-thumb {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 20px;
    /* 高度由 JS 動態設定 */
    background-color: rgba(255, 255, 255, 0.3);
    /* 半透明白色色塊 */
    /* border-radius: 4px; */
    cursor: pointer;
    transition: background-color 0.2s ease;
}

/* 滑塊懸停或啟用狀態 (Thumb hover or active state) */
.custom-scrollbar-thumb:hover,
.custom-scrollbar-thumb.active {
    background-color: rgba(255, 255, 255, 0.5);
    /* 更亮一些 */
}

/* 拖曳時臨時停用平滑捲動以防止滑塊抖動滯後 (Temporarily disable smooth scroll during drag to prevent thumb lag) */
html.no-smooth {
    scroll-behavior: auto !important;
}