:root {
    --navy: #25265E;
    --navy-dark: #0F172A;
    --white: #ffffff;
    --green: #008E8A;
    --green-light: #00AFAA;
    --green-lighter: #008E8A1a;
    --green-dark: #007672;
    --yellow: #FFC800;
    --teal: #2086A7;
    --orange: #FF8807;
    --red: #E7405B;
    --blue: #255fef;
    --purple: #4A4AF4;
    --grey-lighter: #37597b08;
    --grey-light: #f3f3f3;
    --grey: #e1e3e5;
    --font-primary: #292D32;
    --font-black: #080808;
    --font-secondary: #98A6AD;
    --font-steel-grey: #677788;
}

::selection {
    --tw-bg-opacity: 1;
    background-color: var(--green);
    --tw-text-opacity: 1;
    color: var(--white);
}

body {
    font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica Now Display, PingFang TC, Noto Sans TC, "sans-serif";
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: var(--font-primary);
    font-size: 16px;
    line-height: 1.25;
    font-weight: 400;
}

ol,
ul {
    padding-left: 0rem;
    margin-bottom: 0rem;
    list-style: none;
}

p {
    margin-bottom: 0;
}

img {
    width: 100%;
}

input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

table {
    border-collapse: collapse;
    border-spacing: 0;
}

html {
    scroll-behavior: smooth;
}

/* Navi */
#navbar_top {
    box-shadow: 0px 15px 20px -20px rgb(0 0 0 / 2%);
    z-index: 999;
    background: transparent;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    transition: 0.3s linear;
}

.fixed-top {
    background-color: #000000cc;
    -webkit-backdrop-filter: blur(16px);
    backdrop-filter: blur(16px);
}

.fixed-top:hover {
    background-color: #0b0c1b;
}

.navbar-brand {
    width: 130px;
}

.ctaWrap {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    gap: .75rem;
}

.btnApplySm {
    background: var(--green);
    color: var(--white);
    text-decoration: none;
    transition: 0.15s linear;
    border: none;
    padding: .5rem 1.5rem;
    border-radius: 8px;
    font-weight: 600;
    font-size: 1rem;
}

.btnApplySm:hover {
    background: var(--green-dark);
}

/* Hero Section */
.section_hero {
    height: 90vh;
    display: flex;
    align-items: center;
    margin-top: 80px; /* 桌面版主區塊上方間距，避免被固定導航欄遮住 */
}

.section_hero h1 {
    margin-bottom: 1rem;
    font-size: 2.8rem;
    line-height: 1.5;
    font-weight: 700;
}

.section_hero .mainTag {
    font-size: 2.8rem;
    line-height: 1.5;
}

.section_hero p {
    font-size: 1.25rem;
    line-height: 1.5;
    margin-bottom: 1.5rem;
    color: var(--font-steel-grey);
}

.btnApply {
    background: var(--green);
    color: var(--white);
    text-decoration: none;
    transition: 0.15s linear;
    border: none;
    padding: 0.75rem 2.5rem .75rem 1.5rem;
    border-radius: 12px;
    font-weight: 600;
    font-size: 1.125rem;
    position: relative;
}

.btnApply:hover {
    background: var(--green-dark);
}

.btnAgree {
    width: 100%;
    background: var(--green);
    color: var(--white);
    text-decoration: none;
    transition: 0.15s linear;
    border: none;
    padding: 0.75rem 0;
    border-radius: 12px;
    font-weight: 600;
    font-size: 1rem;
    position: relative;
    margin: 0;
}

.btnAgree:hover {
    background: var(--green-dark);
}

.btnApply i {
    font-size: 1rem;
    top: calc(50% - 10px);
    right: 1rem;
    position: absolute;
    transition: 0.15s linear;
}

.btnApply:hover i {
    right: .75rem;
}

.heroImgWrapper {
    width: 100%;
}

.sectionTitleWrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
}

.sectionLabel {
    padding: .5rem 2rem;
    background: #000;
    border-radius: 60px;
    color: #fff;
    margin-bottom: 1rem;
    font-weight: 500;
}

.sectionTitleWrapper h3 {
    font-size: 2.2rem;
    line-height: 1.5;
    margin-bottom: 3rem;
}

.sectionTitleWrapper p {
    font-size: 1.25rem;
    color: var(--font-steel-grey);
    line-height: 1.5;
    margin-bottom: 2rem;
}


/* Feature Section */
.featureContentWrapper {
    display: grid;
    grid-template-columns: 6fr 4fr;
    /* 預設兩欄 */
    gap: 16px;
    /* 元素間距，可依需求調整 */
    margin-bottom: 6rem;
}

.featureContentItem1 {
    grid-column: 1;
    /* 第一欄 */
    grid-row: 1;
}

.featureContentItem2 {
    grid-column: 1;
    /* 第一欄 */
    grid-row: 2;
}

.featureContentItem3 {
    grid-column: 2;
    /* 第二欄 */
    grid-row: 1 / span 2;
    /* 佔兩列 */
}

.featureContentItem1,
.featureContentItem2 {
    background: var(--grey-lighter);
    padding: 1.5rem;
    display: flex;
    border-radius: 1.5rem;
    flex-direction: row;
    justify-content: space-between;
}

.featureContentItem1 .featureContentItemWrapper,
.featureContentItem2 .featureContentItemWrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
}

.featureContentItem1 .featureContentImgWrapper,
.featureContentItem2 .featureContentImgWrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 30%;
}

.featureContentItem3 {
    background: var(--grey-lighter);
    padding: 1.5rem;
    display: flex;
    border-radius: 1.5rem;
    flex-direction: column;
    justify-content: space-between;
}

.featureContentItem3 .featureContentImgWrapper {
    width: 75%;
    margin: 0 auto;
}

.featureContentItemWrapper span {
    width: 32px;
    height: 32px;
    background: var(--green-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    font-weight: 700;
    color: #fff;
    margin-bottom: .5rem;
}

.featureContentItemWrapper .featureContentTitle {
    font-size: 2.25rem;
    font-weight: 700;
    margin-bottom: .5rem;
}

.featureContentItemWrapper p {
    font-size: 1.25rem;
    color: var(--font-steel-grey);
}

/* Feature Flex Section */
.featureFlexContentWrapper {
    display: flex;
    list-style: none;
    gap: 1rem;
    margin: 5rem 0;
}

.featureFlexContentWrapper li {
    width: 100%;
    background: var(--grey-lighter);
    padding: 1.5rem;
    border-radius: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: flex-end;
    position: relative;
    min-height: 360px;
}

.featureFlexTitle {
    font-size: 2.25rem;
    font-weight: 700;
    margin-bottom: .5rem;
}

.featureFlexImgWrapper {
    position: absolute;
    top: -5rem;
    left: calc(50% - 150px);
}

.featureFlexImgWrapper img {
    width: 300px;
    height: unset;
}

.featureFlexContentWrapper li p {
    font-size: 1.125rem;
    color: var(--font-steel-grey);
    line-height: 1.5;
}

.featureFlexContentWrapper li p span {
    display: block;
}

/* Feature Highlight Section */
.featureHighlightWrapper {
    background: var(--grey-lighter);
    padding: 4rem 0;
    margin: 4rem 0;
}

.featureHighlightContentWrapper {
    display: flex;
    list-style: none;
    gap: 1rem;
}

.featureHighlightContentWrapper li {
    width: 100%;
    background: var(--white);
    border: 1px solid var(--grey-light);
    padding: 1.5rem;
    border-radius: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
}

.featureHighlightImgWrapper {
    width: 30%;
    margin: 0 auto;
}

.featureHighlightContentWrapper .featureHighlightTitle {
    font-size: 2.25rem;
    font-weight: 700;
    margin: .75rem 0;
}

.featureHighlightContentWrapper li p {
    font-size: 1.125rem;
    color: var(--font-steel-grey);
    line-height: 1.5;
}

/* Feature Step Section */
.featureStepWrapper {
    background: var(--grey-lighter);
    padding: 4rem 0;
    margin: 4rem 0;
}

.marginFixed {
    margin-bottom: -6rem;
}

.featureStepContentWrapper {
    display: flex;
    list-style: none;
    gap: 1rem;
    margin: 4rem 0;
}

.featureStepContentWrapper li {
    width: 100%;
    background: var(--white);
    box-shadow: 0px 30px 25px 10px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
    border-radius: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    position: relative;
}

.featureStepContentWrapper li::after {
    width: 36px;
    height: 36px;
    content: "";
    background-image: url('/static/img/liff/icon_step_arrow.svg');
    background-repeat: no-repeat;
    background-size: 100%;
    position: absolute;
    right: -26px;
    top: calc(50% - 18px);
    z-index: 10;
}

.featureStepContentWrapper li:last-child::after {
    content: none;
}

.featureStepImgWrapper {
    width: 30%;
    margin: 0 auto;
}

.featureStepContentWrapper .featureStepTitle {
    font-size: 2.25rem;
    font-weight: 700;
    margin: .75rem 0;
}

.featureStepContentWrapper li p {
    font-size: 1.125rem;
    color: var(--font-steel-grey);
    line-height: 1.5;
}

footer {
    padding: 8rem 0 3rem 0;
    background: var(--font-primary);
    display: flex;
    flex-direction: column;
    align-items: center;
}

.footerLogoWrapper {
    width: 300px;
    margin-bottom: 4rem;
    margin-top: 2rem;
}

.companyInfo {
    margin-bottom: 1.25rem;
    text-align: center;
    font-size: 1rem;
    font-weight: 600;
    color: var(--white);
}

.siteLinkWrapper {
    color: var(--font-steel-grey);
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}


.siteLinkWrapper a {
    transition: 0.2s linear;
    color: var(--white);
    text-decoration: none;
    font-size: .9rem;
    line-height: 1;
    border-right: 1px solid var(--white);
    padding-right: 1rem;
}

.siteLinkWrapper a:last-child {
    border-right: none;
    padding-right: 0;
}

.siteLinkWrapper a:hover {
    color: var(--green-light);
    text-decoration: underline;
}

/* Modal Style */
.modal-content {
    border: none;
    border-radius: 16px;
}

.modal-header {
    padding: 1rem 0;
    justify-content: center;
    border-bottom: 1px solid var(--grey-lighter);
}

.modal-footer {
    border-top: none;
    padding: 0 1rem 1rem 1rem;
}

.modal-footer p {
    font-size: 1rem;
    color: var(--font-primary);
    text-align: center;
    margin: 0;
    margin-bottom: .75rem;
    width: 100%;
}

.modal-footer p a {
    color: var(--green);
    text-decoration: none;
    transition: 0.15s linear;
}

.modal-footer p a:hover {
    color: var(--green-dark);
    text-decoration: underline;
}

.modal-content .modal-title {
    font-size: 1.125rem;
    font-weight: 700;
    text-align: center;
}

.modal-header .btn-close {
    margin: unset;
    position: absolute;
    right: 10px;
    font-size: .8rem;
    margin: unset;
}

.TermWrapper {
    background: #f9f9f9;
    padding: .5rem;
    border-radius: 8px;
}

.termsContentWrapper {
    padding: 0 .5rem 0 0.5rem;
    font-size: 1rem;
    line-height: 1.75;
    color: var(--font-steel-grey);
    max-height: 400px;
    overflow-y: scroll;
}

.termsContentWrapper::-webkit-scrollbar {
    width: 14px;
    background-color: #f9f9f9;
}

.termsContentWrapper::-webkit-scrollbar-thumb {
    background: var(--grey);
    border-radius: 10px;
    border: 5px solid rgba(255, 255, 255, 0);
    background-clip: padding-box;
}

.ddlifeAccountWrapper {
    margin-bottom: 1rem;
}

.ddlifeAccountWrapper .formTitle {
    font-size: 1rem;
    font-weight: 400;
    color: var(--font-steel-grey);
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

.ddlifeAccountWrapper .formTitle span {
    color: var(--font-primary);
}

.accountInfoWrapper {
    padding: .75rem;
    background-color: #F7F9FC;
    border-radius: 12px;
    font-weight: 600;
    font-size: 1.125rem;
    line-height: 1.8;
    color: var(--font-primary);
}


.ddlifeAccountWrapper .form-control {
    padding: .5rem .25rem;
    border: 1px solid var(--grey-light);
    background-color: var(--white);
    border-radius: 12px;
    text-align: center;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--font-primary);
}

.ddlifeAccountWrapper .form-control:focus {
    border-color: var(--green);
    outline: 0;
    box-shadow: 0 0 0 0.25rem var(--green-lighter);
}

.btnOtp {
    padding: .5rem .25rem;
    border: 1px solid var(--font-black);
    background-color: var(--font-black);
    border-radius: 12px;
    text-align: center;
    font-weight: 600;
    font-size: 1rem;
    line-height: 1.8;
    color: var(--white);
    transition: 0.15s linear;
    width: 100%;
}

.btnOtp:hover {
    padding: .5rem .25rem;
    border: 1px solid var(--font-primary);
    background-color: var(--font-primary);
}

.btnOtp.disabled {
    color: var(--font-steel-grey);
    background: var(--grey-light);
    border: 1px solid var(--grey-light);
    cursor: not-allowed;
}

.invalid-otp {
    background: #e3202012;
    border-radius: 8px;
    color: #e32020;
    font-size: .9rem;
    font-weight: 600;
    padding: .75rem;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    width: 100%;
}

/* Section Completed */
.adjColor {
    background: var(--white) !important;
}

.section_completed {
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    flex-direction: column;
    background: var(--grey-lighter);
}

.completedContentWrapper {
    max-width: 600px;
    margin: 0 auto;
    padding: 2rem;
    border-radius: 24px;
    background: var(--white);
    box-shadow: 0px 30px 25px 10px rgba(0, 0, 0, 0.05);
}

.IconWrapper {
    font-size: 48px;
    margin: 0 auto;
    color: var(--green);
    margin-bottom: 1rem;
}

.completedContentTitle {
    font-size: 1.5rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
}

.completedContentWrapper>p {
    text-align: left;
    width: 100%;
    padding: 0.75rem;
    color: var(--green);
    background: rgb(0 142 138 / 5%);
    border-radius: 8px;
    font-size: .9rem;
    line-height: 1.5;
}

.followStepsWrapper {
    list-style: none;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    margin: 2rem 1rem 1rem 1rem;
    gap: 1.5rem;
}

.followStepsWrapper li {
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 1rem;
    position: relative;

}

.followStepsWrapper li::after {
    position: absolute;
    content: '';
    width: 1px;
    height: 24px;
    bottom: -24px;
    left: 20px;
    background: var(--white);
    border-left: 1px dotted #dadada;

}

.followStepsWrapper li:last-child::after {
    content: none;
}

.followStepsWrapper li span {
    min-width: 40px;
    height: 40px;
    background: var(--font-black);
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--white);
    z-index: 10;
}

.stepContentWrapper {
    display: flex;
    flex-direction: column;
    align-items: flex-start;

}

.stepTitle {
    font-size: 1.125rem;
    margin-bottom: .5rem;
}

.stepContentWrapper p {
    font-size: .95rem;
    color: var(--font-steel-grey);
    text-align: left;
}

/* Responsive */

/* Greater than or equal to 1000px */
@media (width >=1920px) {
    .section_hero {
        height: 800px;
    }
}

@media (max-width: 992px) {

    .section_hero {
        height: unset;
        padding: 7em 1.5rem;
        margin-top: 0; /* 平板版使用 padding，不需要額外的 margin-top */
    }

    .section_hero .mainTag {
        font-size: 2.6rem;
        line-height: 1.25;
    }

    .section_hero h1 {
        line-height: 1.25;
    }

    .sectionTitleWrapper h3 {
        line-height: 1.25;
    }

    .featureContentWrapper {
        display: grid;
        grid-template-columns: 5fr 5fr;
        /* 預設兩欄 */
        gap: 16px;
        /* 元素間距，可依需求調整 */
    }

    .featureContentItem1 .featureContentImgWrapper,
    .featureContentItem2 .featureContentImgWrapper {
        width: 50%;
    }

    .featureContentItem3 .featureContentImgWrapper {
        width: 60%;
    }

    .featureContentItemWrapper .featureContentTitle {
        font-size: 2rem;
    }

    .featureContentItemWrapper p {
        font-size: 1rem;
    }

    /* Feature Flex Section */
    .featureFlexContentWrapper li {
        min-height: 260px;
    }

    .featureFlexImgWrapper {
        left: calc(50% - 100px);
    }

    .featureFlexImgWrapper img {
        width: 200px;
    }

    .featureFlexTitle {
        font-size: 2rem;
    }

    .featureFlexContentWrapper li p {
        font-size: 1rem;
    }

    /* Feature Highlight Section */
    .featureHighlightContentWrapper .featureHighlightTitle {
        font-size: 2rem;
    }

    .featureHighlightContentWrapper li p {
        font-size: 1rem;
    }

    .featureHighlightImgWrapper {
        width: 40%;
    }

    /* Feature Step Section */
    .featureStepContentWrapper .featureStepTitle {
        font-size: 1.8rem;
    }

    .featureStepContentWrapper li p {
        font-size: 1rem;
    }

    .featureStepImgWrapper {
        width: 40%;
    }

}

@media (max-width: 768px) {

    .section_hero {
        padding: 7rem 0;
        margin-top: 0; /* 平板版使用 padding，不需要額外的 margin-top */
    }

    .heroImgWrapper {
        width: 75%;
        margin: 0 auto;
    }

    .sectionTitleWrapper h3 {
        font-size: 2rem;
    }

    .featureContentWrapper {
        grid-template-columns: 1fr;
        /* 單欄 */
        width: 95%;
        margin: 0 auto;
        gap: 32px;
        margin-bottom: 4rem;
    }

    .featureContentItem1,
    .featureContentItem2,
    .featureContentItem3 {
        grid-column: 1;
        grid-row: auto;
    }

    .featureContentItem3 {
        flex-direction: row-reverse;
    }

    .featureContentItem3 .featureContentItemWrapper {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-end;
    }

    .featureContentItem3 .featureContentImgWrapper {
        width: 30%;
        margin: unset;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .featureContentItem1 .featureContentImgWrapper,
    .featureContentItem2 .featureContentImgWrapper {
        width: 30%;
    }

    .featureContentItemWrapper .featureContentTitle {
        font-size: 3rem;
    }

    .featureContentItemWrapper p {
        font-size: 1.25rem;
    }

    /* Feature Flex Section */
    .featureFlexContentWrapper {
        flex-direction: column;
        width: 96%;
        margin: 0 auto;
        gap: 2rem;
        margin-top: 3rem;
    }

    .featureFlexContentWrapper li {
        min-height: 260px;
    }

    .featureFlexImgWrapper {
        top: -2.5rem;
        left: unset;
        right: 0;
    }

    .featureFlexImgWrapper img {
        width: 240px;
    }

    .featureFlexTitle {
        font-size: 3.25rem;
        line-height: 1;
    }

    .featureFlexTitle span {
        display: block;
    }

    .featureFlexContentWrapper li p {
        font-size: 1.25rem;
    }

    .featureFlexContentWrapper li p span {
        display: unset;
    }

    /* Feature Highlight Section */
    .featureHighlightContentWrapper {
        flex-direction: column;
        width: 96%;
        margin: 0 auto;
        gap: 1.5rem;
    }

    .featureHighlightContentWrapper li p {
        font-size: 1.25rem;
    }

    .featureHighlightImgWrapper {
        width: 30%;
    }

    /* Feature Step Section */
    .featureStepContentWrapper {
        flex-direction: column;
        width: 96%;
        margin: 0 auto;
        gap: 2rem;
        margin-top: 3rem;
    }

    .featureStepContentWrapper li::after {
        width: 48px;
        height: 48px;
        right: unset;
        top: unset;
        left: calc(50% - 24px);
        z-index: 10;
        bottom: -40px;
        transform: rotate(90deg);
    }

    .featureStepContentWrapper .featureStepTitle {
        font-size: 2rem;
    }

    .featureStepContentWrapper li p {
        font-size: 1.25rem;
    }

    .featureStepImgWrapper {
        width: 30%;
    }
}

@media (max-width: 600px) {

    .section_hero {
        height: 98vh;
        padding: 0;
        margin-top: 200px; /* 手機版主區塊上方間距 */
    }

    .section_hero .mainTag {
        font-size: 2rem;
    }

    .section_hero h1 {
        font-size: 2.65rem;
    }

    .section_hero p {
        font-size: 1.125rem;
        line-height: 1.5;
    }

    .heroImgWrapper {
        width: 80%;
        margin: 0 auto;
        margin-top: 2rem;
    }

    .btnApply {
        width: 100%;
        padding: 1rem 0;
        font-size: 1.25rem;
    }

    .btnApply i {
        font-size: 1rem;
        top: calc(50% - 10px);
        right: 1.5rem;
    }

    .btnApply:hover i {
        right: 1.25rem;
    }

    .sectionTitleWrapper h3 span {
        display: block;
    }

    .featureContentItemWrapper span {
        width: 24px;
        height: 24px;
    }

    .featureContentItem3 {
        align-items: center;
    }

    .featureContentItem1 .featureContentImgWrapper,
    .featureContentItem2 .featureContentImgWrapper {
        width: 50%;
    }

    .featureContentItem3 .featureContentImgWrapper {
        width: 50%;
    }

    .featureContentItemWrapper .featureContentTitle {
        font-size: 1.7rem;
    }

    .featureContentItemWrapper p {
        font-size: 1rem;
    }

    /* Feature Flex Section */
    .featureFlexContentWrapper li {
        min-height: 200px;
    }

    .featureFlexImgWrapper {
        top: -2rem;
        left: unset;
        right: 0;
    }

    .featureFlexImgWrapper img {
        width: 160px;
    }

    .featureFlexTitle {
        font-size: 2.25rem;
    }

    .featureFlexContentWrapper li p {
        font-size: 1rem;
    }

    /* Feature Highlight Section */
    .featureHighlightContentWrapper li p {
        font-size: 1rem;
    }

    /* Feature Step Section */
    .featureStepContentWrapper li p {
        font-size: 1rem;
    }

    .featureStepContentWrapper .featureStepTitle {
        font-size: 1.8rem;
    }

    .modal-dialog {
        max-width: 90%;
        margin: 0 auto;
    }

    .completedContentWrapper {
        max-width: 90%;
        padding: 1.5rem 1rem;
    }

    .completedContentTitle {
        font-size: 1.35rem;
    }

    .completedContentTitle span {
        display: block;
    }

    .followStepsWrapper {
        margin: 1rem .5rem .5rem .5rem;
    }

    .stepTitle {
        font-size: 1rem;
        margin-bottom: .25rem;
    }

    .stepContentWrapper p {
        font-size: .9rem;

    }

    .followStepsWrapper li::after {
        height: 100%;
        bottom: -40px;
    }

}