
.margin-h-0 {
    margin-left: 0 !important;
    margin-right: 0 !important;
}

.margin-h-1 {
    margin-left: 12px !important;
    margin-right: 12px  !important;
}

.margin-l-1 {
    margin-left: 12px !important;
}

.margin-top-0 {
    margin-top: 0px !important;
}

.margin-top-1 {
    margin-top: 12px !important;
}

.margin-bottom-1 {
    margin-bottom: 12px !important;
}

.margin-bottom-2 {
    margin-bottom: 24px !important;
}


.margin-v-0 {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

.margin-v-3 {
    margin-top: 36px !important;
    margin-bottom: 36px !important;
}

.padding-0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.padding-h-0 {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

.padding-v-0 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.position-relative {
    position: relative;
}

.title-padding {
    padding-top: 50px;
    padding-bottom: 70px;
}

.default-bg-color {
    background: #E4E4E4;
}

.display-block {
    display: block !important;
}

.display-inline {
    display: inline !important;
}

.display-flex {
    display: flex !important;
}

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

.nav-link:focus, .nav-link:hover {
    color: lightgray !important;
}

/************ 

banner section 

*************/

.banner {
    height: 470px;
}

.banner-background {
    background: black;
    height: 430px;
}

.banner-mask-group {
    height: 430px;
    position: absolute;
    z-index: 1;
    left: 0;
    width: 100%;
}

.banner-image {
    position: absolute;
    right: 40px;
    bottom: -40px;
    z-index: 2;
    height: 400px;
}

.banner-title {
    color: #FFF;
    font-family: "Noto Sans CJK TC";
    font-size: 62px;
    font-style: normal;
    font-weight: 900;
    line-height: 70px; /* 112.903% */
}

.banner-subtitle {
    color: #FFF;
    font-family: "Noto Sans CJK TC";
    font-size: 52px;
    font-style: normal;
    font-weight: 900;
    line-height: 70px; /* 134.615% */
}

.banner-button-section {
    width: 50%;
    position: absolute;
    z-index: 2;
    top: 20%;
}

.banner-button {
    border-radius: 5px;
    border: 1px solid var(--Primary, #E50012);
    background: var(--Primary, #E50012);
    padding: 10px 40px;
    justify-content: center;
    align-items: center;
    margin-top: 20px;
    display: inline-flex;
    text-decoration: none;
}

.banner-button-text {
    color: var(--Neutral-White, #FFF);
    /* Heading/H6 */
    font-family: "Noto Sans CJK TC";
    font-size: 18px;
    font-style: normal;
    font-weight: 700;
    line-height: 28px; /* 155.556% */
    margin: 0 !important;
}

@media (max-width: 1100px) and (min-width: 992px) {
   
    .banner-title {      
        font-size: 52px;        
    }
    
    .banner-subtitle {       
        font-size: 42px;        
    }
    

    .banner-image {       
       height: 370px;
    }

}

@media (max-width: 992px)  and (min-width: 768px) {

    .banner {
        height: 720px;
    }

    
    .banner-background {
        background: black;
        height: 700px;
    }

    .banner-mask-group {
        height: 700px;      
    }

    .banner-image {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);        
        bottom: -40px;
        z-index: 2;
        height: 370px;
    }    

    .banner-button-section {
        width: -webkit-fill-available;
        position: absolute;
        z-index: 2;
        top: 10%;
    }
}

@media (max-width: 768px)  and (min-width: 576px){
    .banner {
        height: 570px;
    }

    .banner-title {      
        font-size: 42px;     
        line-height: 50px; /* 112.903% */   
    }
    
    .banner-subtitle {       
        font-size: 32px;        
        line-height: 50px; /* 112.903% */   
    }
    
    .banner-background {
        background: black;
        height: 570px;
    }

    .banner-mask-group {
        height: 570px;      
    }

    .banner-image {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);        
        bottom: -20px;
        z-index: 2;
        height: 300px;
    }    

    .banner-button-section {
        width: -webkit-fill-available;
        position: absolute;
        z-index: 2;
        top: 10%;
    }
}

@media (max-width: 576px)  and (min-width: 455px){ 
    .banner {
        height: 570px;
    }

    .banner-title {      
        font-size: 42px;     
        line-height: 50px; /* 112.903% */   
    }
    
    .banner-subtitle {       
        font-size: 32px;        
        line-height: 50px; /* 112.903% */   
    }
    
    .banner-background {
        background: black;
        height: 530px;
    }

    .banner-mask-group {
        height: 530px;      
    }

    .banner-image {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);        
        bottom: -20px;
        z-index: 2;
        height: 250px;
    }    

    .banner-button-section {
        width: -webkit-fill-available;
        position: absolute;
        z-index: 2;
        top: 10%;
    }
}

@media (max-width: 455px) { 
    .banner {
        height: 570px;
    }

    .banner-title {      
        font-size: 42px;     
        line-height: 50px; /* 112.903% */   
    }
    
    .banner-subtitle {       
        font-size: 32px;        
        line-height: 50px; /* 112.903% */   
    }
    
    .banner-background {
        background: black;
        height: 510px;
    }

    .banner-mask-group {
        height: 510px;      
    }

    .banner-image {
        position: absolute;
        left: 50%;
        transform: translateX(-50%);        
        bottom: -20px;
        z-index: 2;
        height: 220px;
    }    

    .banner-button-section {
        width: -webkit-fill-available;
        position: absolute;
        z-index: 2;
        top: 10%;
    }
}


/************ 

service section 

*************/

.service-section {
    padding-bottom: 100px;
}

.service-title {
    color: var(--Neutral-Black-100, #000);
    text-align: center;
    /* Heading/H1 */
    font-family: "Noto Sans CJK TC";
    font-size: 40px;
    font-style: normal;
    font-weight: 700;
    line-height: 50px; /* 125% */
}

@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* 初始状态 */
.service-image {
    padding-top: 30px;
    padding-bottom: 30px;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}

/* 滚动到视口时的状态 */
.service-image.show {
    opacity: 1;
    transform: translateY(0);
}

.service-subtitle {
    color: var(--Primary, #E50012);
    text-align: center;
    /* Heading/H2 */
    font-family: "Noto Sans CJK TC";
    font-size: 32px;
    font-style: normal;
    font-weight: 700;
    line-height: 46px; /* 143.75% */
}

.service-description {
    color: var(--Neutral-Black-100, #000);
    text-align: center;
    /* Heading/H4 */
    font-family: "Noto Sans CJK TC";
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 40px; /* 166.667% */
    letter-spacing: 0.24px;
}

@media (max-width: 992px)  and (min-width: 768px) {
    .service-description {
        font-size: 20px;
    }
}

@media (max-width: 768px){

    .title-padding {
        padding-bottom: 20px;
    }
    .service-description {
        font-size: 20px;
    }
    .service-image {
       width: 40%;
       padding-top: 0px;
       padding-bottom: 0px;
    }

    .description-padding {
        padding-bottom: 50px;
    }

    .service-section {
        padding-bottom: 0px;
    }
}



/************ 

soccer section 

*************/

.soccer-section {
    /* background-image: url('/img/soccer_background.png');
    background-size: cover;
    background-position: right center;
    background-repeat: no-repeat; */
    height: 540px;
}

.soccer-mask-group {
    height: 540px;
    position: absolute;
    z-index: 2;
    left: 0;
    width: 100%;
}

#sportSection .soccer-mask-group {
    position: absolute;        
    z-index: 1;
    height: 540px;
    left: 0;
    opacity: 0;
    transition: opacity 1s ease;
}

#sportSection .soccer-mask-group.active {
    opacity: 1;
}

.soccer-button-section {
    width: 60%;
    position: absolute;
    z-index: 3;
    top: 170px;
    left: 170px;
}

.soccer-title {
    color: #FFF;
    font-family: "Noto Sans CJK TC";
    font-size: 62px;
    font-style: normal;
    font-weight: 700;
    line-height: 70px; /* 112.903% */
}

.soccer-subtitle {
    color: #FFF;
    /* Heading/H3 */
    font-family: "Noto Sans CJK TC";
    font-size: 28px;
    font-style: normal;
    font-weight: 700;
    line-height: 42px; /* 150% */
    letter-spacing: 0.28px;
}

@media (max-width: 768px) and (min-width: 400px){


    .soccer-button-section {
        width: 300px;
        position: absolute;
        z-index: 2;    
        left: 30px;      
        top: 60px      
    }

    .soccer-title {      
        font-size: 42px;        
    }
    
    .soccer-subtitle {
        font-size: 20px;      
    }

}

@media (max-width: 400px) {


    .soccer-button-section {
        width: 300px;
        position: absolute;
        z-index: 2;    
        left: 20px;      
        top: 30px      
    }

    .soccer-title {      
        font-size: 42px;        
    }
    
    .soccer-subtitle {
        font-size: 20px;      
    }

}

.desktop-img {
    display: block;
}
.mobile-img {
    display: none;
}

@media (max-width: 768px) {
    .desktop-img {
        display: none; /* 隐藏桌面图片 */
    }
    .mobile-img {
        display: block; /* 显示移动版图片 */
    }
}

/*

Steps

*/
.steps {
    padding: 40px !important;
}
.steps .step {

    color: #909090;
    text-align: center;

    /* Body/Small */
    font-family: "Noto Sans CJK TC";
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px; /* 157.143% */

    list-style-type: none;
    width: 25%; /* 修改宽度以适应四个步骤 */
    float: left;   
    position: relative;
    text-align: center;
    text-transform: uppercase;   

    z-index: 2;
}

.steps .step:before {
    width: 30px;
    height: 30px;
    content: '';
    line-height: 30px;
    border: 2px solid #000;
    display: block;
    text-align: center;
    margin: 0 auto 10px;
    border-radius: 50%;
    background-color:  #fff;
    color: white;
}

.steps .step:after {
    width: 90%;
    height: 2px;
    content: '';
    position: absolute;
    background-color: #000;
    top: 15px;
    left: -42%;
    z-index: -1;
}

@media (max-width: 1160px) and (min-width: 1050px) {
    .steps .step:after {
        width: 90%;
        height: 2px;
        content: '';
        position: absolute;
        background-color: #000;
        top: 15px;
        left: -34%;
        z-index: -1;
    }    
}

@media (max-width: 1050px) and (min-width: 950px) {
    .steps .step:after {
        width: 90%;
        height: 2px;
        content: '';
        position: absolute;
        background-color: #000;
        top: 15px;
        left: -33%;
        z-index: -1;
    }    
}

@media (max-width: 950px) and (min-width: 890px) {
    .steps .step:after {
        width: 90%;
        height: 2px;
        content: '';
        position: absolute;
        background-color: #000;
        top: 15px;
        left: -32%;
        z-index: -1;
    }    
}

@media (max-width: 890px) and (min-width: 767px) {
    .steps .step:after {
        width: 90%;
        height: 2px;
        content: '';
        position: absolute;
        background-color: #000;
        top: 15px;
        left: -30%;
        z-index: -1;
    }    
}

@media (max-width: 767px) and (min-width: 570px) {
    .steps .step:after {
        width: 90%;
        height: 2px;
        content: '';
        position: absolute;
        background-color: #000;
        top: 15px;
        left: -35%;
        z-index: -1;
    }
}

@media (max-width: 570px) and (min-width: 500px) {
    .steps .step:after {
        width: 90%;
        height: 2px;
        content: '';
        position: absolute;
        background-color: #000;
        top: 15px;
        left: -32%;
        z-index: -1;
    }
}

@media (max-width: 500px)  and (min-width: 400px) {
    .steps .step:after {
        width: 90%;
        height: 2px;
        content: '';
        position: absolute;
        background-color: #000;
        top: 15px;
        left: -30%;
        z-index: -1;
    }
}

@media (max-width: 400px) {
    .steps .step:after {
        width: 90%;
        height: 2px;
        content: '';
        position: absolute;
        background-color: #000;
        top: 15px;
        left: -28%;
        z-index: -1;
    }
}

.steps .step:first-child:after {
    content: none;
}

.step.completed {
    color: var(--Neutral-Black-100, #000);
    text-align: center;
    /* Body/Small */
    font-family: "Noto Sans CJK TC";
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px; /* 157.143% */
}

.step.completed:before {
    border-color: #000;
    color: #fff;
    background-color:  #000;
}

.info-div {
    background: #FFF;
    border-radius: 20px;
    background: var(--Neutral-White, #FFF);
    padding: 40px;
    margin-top: 40px;
    margin-bottom: 40px;
}

.info-div.margin-bottom {
   margin-bottom: 25vh !important;
}

.info-div-title {
    color: #000;

    /* Heading/H5 */
    font-family: "Noto Sans CJK TC";
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 32px; /* 160% */
    margin-top: 24px;
}

.info-div-subtitle {
    color: var(--Neutral-Black-60, #606060);

    /* Body/Regular */
    font-family: "Noto Sans CJK TC";
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 24px; /* 150% */
}

.info-form {
    margin: 40px;
}

.info-label {
    width: 100%;
    color: var(--Neutral-Black-100, #000);

    /* Body/Regular */
    font-family: "Noto Sans CJK TC";
    font-size: 16px;
    font-style: normal;
    font-weight: 500;
    line-height: 24px; /* 150% */
}

.previous-button, .next-button, .submit-button {
    border-radius: 5px;
    border: 1px solid var(--Primary, #E50012) !important; 
    background: var(--Primary, #E50012) !important;
}

.back-to-homepage-btn {
    margin-top: 20px;
    display: inline-flex;
    padding: 6px 15px;
    justify-content: center;
    align-items: center;
    gap: 8px;
    border-radius: 5px;
    border: 1px solid var(--Neutral-Black-100, #000);
    background: var(--Neutral-White, #FFF);
    text-decoration: none;
    color: #000;

    /* Body/Small */
    font-family: "Noto Sans CJK TC";
    font-size: 14px;
    font-style: normal;
    font-weight: 400;
    line-height: 22px; /* 157.143% */
}

.login-btn {
    border-radius: 5px;
    border: 1px solid var(--Primary, #E50012);
    background: var(--Primary, #E50012) !important;
    width: 100%;
    margin-top: 20px;
    margin-bottom: 20px;
}

.forget-password {
    color: var(--Neutral-Black-100, #000);

    /* Body/Regular */
    font-family: "Noto Sans CJK TC";
    font-size: 16px;
    font-style: normal;
    font-weight: 400;
    line-height: 24px; /* 150% */
    text-decoration: none;
}

.send-forgetpassword-email {
    display: inline !important;
    width: 68.5% !important;
}

.send-verification-code-btn {
    display: inline;
    width: 30%;
    margin-bottom: 5px;
}

.btn-indianred {
    background-color: indianred !important;
    color: #fff !important;
}

.btn-orangered {
    background-color: orangered !important;
    color: #fff !important;
}


@media (max-width: 768px) {
    .send-forgetpassword-email {        
        width: 100% !important;
    }
    .send-verification-code-btn {        
        width: 100% !important;
    }
}

.google-button {    
    background: #FFF;
    width: 100%;
    border-radius: 10px;
    padding: 10px;
    margin-top: 20px;
    border: 2px solid #A9A9A9;
    display: block;
    text-decoration: none;
}

.google-button-table {
    width: 100%;
}

.google-button-text {
    color: #464646;
    text-align: center;
    font-family: "Noto Sans TC";
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.google-btn-section {
    margin: 40px ;
}


.line-button {    
    background: #00c300;
    width: 100%;
    border-radius: 10px;
    padding: 10px;
    margin-top: 20px;
    border: 2px solid #00c300;
    display: block;
    text-decoration: none;
}

.line-button-table {
    width: 100%;
}

.line-button-text {
    color: #fff;
    text-align: center;
    font-family: "Noto Sans TC";
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
}

.line-btn-section {
    margin: 0 40px 40px 40px;
}


.divider {
    display: flex;
    align-items: center;        
    color: #A9A9A9;
    text-align: center;
    font-family: "Noto Sans TC";
    font-size: 18px;
    font-style: normal;
    font-weight: 400;
    line-height: normal;
    margin: 40px ;
  }
  
  .divider::before,
  .divider::after {
    content: '';
    flex: 1; /* 線條和文字平均分配空間 */
    height: 1.5px; /* 線條的厚度 */
    background: #A9A9A9;
    margin: 0 10px; /* 線條與文字的間距 */
  }

/*
  
member section
  
*/

.member-banner-section {
    position: relative;
    height: 200px;
}

.member-banner {
    position: absolute;
    height: 200px;
}

.member-banner-soccer {
    position: absolute;
    bottom: 0;
    right: 10%;
}

.member-banner-text {
    position: absolute;
    left: 18%;
    top: 40%;
    color: var(--Neutral-White, #FFF);
    font-family: "Noto Sans CJK TC";
    font-size: 24px;
    font-style: normal;
    font-weight: 700;
    line-height: 40px;
    letter-spacing: 0.24px;
}

.member-center-banner {
    background: #000;
    color: var(--Neutral-White, #FFF);
    font-family: "Noto Sans CJK TC";
    font-size: 20px;
    font-style: normal;
    font-weight: 700;
    line-height: 32px;
    padding: 40px 20px;
    border-radius: 10px 10px 0 0 ;
}

.member-center-banner > h4 {
    margin-bottom: 0 !important;
}

.flex-item{
    flex: 1;
    text-align: center;
}

.nav-tabs .nav-link {
    width: 100% !important;  
    color:  #000 !important;

    /* Body/Bold */
    font-family: "Noto Sans CJK TC";
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 150%; /* 24px */          
}

.nav-tabs .nav-link.active {    
    border-bottom: 2px solid red !important;
    border-left: none;
    border-right: none;
    border-top: none;
    color: #E50012 !important;

    /* Body/Bold */
    font-family: "Noto Sans CJK TC";
    font-size: 16px;
    font-style: normal;
    font-weight: 700;
    line-height: 150%; /* 24px */    
}

#settingTab {
    margin-bottom: 20px;
}

.new-apply-text {
    font-size: medium;
    background-color: red;
    padding: 0px 10px;
    color: white;
    border-radius: 10px;    
}

.unverified-text {
    font-size: smaller;
    background-color: red;
    padding: 0px 10px;
    color: white;
    border-radius: 10px;
    opacity: 0.5;
}

.verified-text {
    font-size: smaller;
    background-color: green;
    padding: 0px 10px;
    color: white;
    border-radius: 10px;
    opacity: 0.5;
}

.upload-preview {
    display: none; 
    width: 150px;
    margin: auto;
    padding-bottom: 10px;
}

.setting-image-preview {        
    height: 165px;
    margin: auto;
    padding-bottom: 10px;
}

.hint-text {
    color: var(--Netural-Grey-Grey-40, #ACACAC);

    /* Body/Caption */
    font-family: "Noto Sans CJK TC";
    font-size: 12px;
    font-style: normal;
    font-weight: 400;
    line-height: 16px; /* 133.333% */
}

.member-signature-image{
    border: 1px solid black;
    margin-bottom: 30px;
}

.image-modal {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    min-height: calc(100% - 1rem) !important;
}
line,
polyline {
  fill: none;
  stroke: #00c300;
  stroke-width: 6.5;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.fix-tab-div {
    position: fixed;
    right: -65px;
    top: 80% !important;
    width: 8em;
    margin-top: -2.5em;
    z-index: 100;
}

.loading {
    pointer-events: none; /* 禁用点击 */
    opacity: 0.6; /* 使按钮变暗 */
    position: relative;
}

.loading::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 20px;
    border: 2px solid transparent;
    border-top: 2px solid #fff;
    border-radius: 50%;
    animation: spin 1s linear infinite;
    transform: translate(-50%, -50%);
}

/* Spin animation */
@keyframes spin {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}